FairRoot/PandaRoot
Public Member Functions | Private Attributes | List of all members
chigen::PndChiGenExclusive Class Reference

#include <PndChiGenExclusive.h>

Inheritance diagram for chigen::PndChiGenExclusive:

Public Member Functions

 PndChiGenExclusive (PartonicModel &model)
 
virtual ~PndChiGenExclusive ()
 
virtual Bool_t ReadEvent (FairPrimaryGenerator *primGen)
 
 ClassDef (PndChiGenExclusive, 1)
 

Private Attributes

PartonicModelmodel
 
EvtVector4R chiMomentum
 
EvtStdHep evtstdhep
 

Detailed Description

Definition at line 17 of file PndChiGenExclusive.h.

Constructor & Destructor Documentation

chigen::PndChiGenExclusive::PndChiGenExclusive ( PartonicModel model)

Definition at line 10 of file PndChiGenExclusive.cxx.

References chiMomentum, chigen::ensure_chigen_is_initialized(), chigen::PartonicModel::mesonMass, model, p, PROTON_MASS, and sqrt().

11 : model(pmodel) {
13  double Mchi = model.mesonMass;
14  double p = sqrt(
15  (pow(Mchi, 4) - 4 * pow(Mchi, 2) * pow(PROTON_MASS, 2))
16  / (4 * pow(PROTON_MASS, 2)));
17  double e = sqrt(pow(Mchi, 2) + p * p);
18  chiMomentum = EvtVector4R(e, 0., 0., p);
19  assert(Mchi * Mchi - 1E-6 <= chiMomentum.mass2()
20  && chiMomentum.mass2() <= Mchi * Mchi + 1E-6);
21 }
Double_t p
Definition: anasim.C:58
void ensure_chigen_is_initialized()
friend F32vec4 sqrt(const F32vec4 &a)
Definition: P4_F32vec4.h:29
#define PROTON_MASS
Definition: ChiGenContext.h:31
chigen::PndChiGenExclusive::~PndChiGenExclusive ( )
virtual

Definition at line 23 of file PndChiGenExclusive.cxx.

23  {
24 }

Member Function Documentation

chigen::PndChiGenExclusive::ClassDef ( PndChiGenExclusive  ,
 
)
Bool_t chigen::PndChiGenExclusive::ReadEvent ( FairPrimaryGenerator *  primGen)
virtual

Definition at line 26 of file PndChiGenExclusive.cxx.

References CHI1_PDG_ID, CHI2_PDG_ID, chigen::ostreams::chigen_cout, chigen::evtgen::evt_gen, p, PSI_PDG_ID, chigen::pythia::pythia, and chigen::ostreams::verbose_mode.

26  {
27  EvtParticle *chiMeson =
28  EvtParticleFactory::particleFactory(model.evtId, chiMomentum);
29  chiMeson->setSpinDensityForward(model.spinDensity);
30 
31  //decay
32  chigen::evtgen::evt_gen->generateDecay(chiMeson);
33  //write info
34  evtstdhep.init();
35  chiMeson->makeStdHep(evtstdhep);
36 
37  if (chigen::ostreams::verbose_mode)//<- if verbose then print Pythia event
38  chigen::pythia::pythia->event.reset();
39 
40  EvtVector4R vertexPoint, evtMomentum;
41  for (int particleNumber = 0, size = evtstdhep.getNPart();
42  particleNumber < size; ++particleNumber) {
43 
44  vertexPoint = evtstdhep.getX4(particleNumber);
45  evtMomentum = evtstdhep.getP4(particleNumber);
46 
48  //printing Pythia event
49  int id;
50  Pythia8::Particle p;
51  p.id(id = evtstdhep.getStdHepID(particleNumber));
52  p.px(evtMomentum.get(1));
53  p.py(evtMomentum.get(2));
54  p.pz(evtMomentum.get(3));
55  p.e(evtMomentum.get(0));
56  p.daughter1(evtstdhep.getFirstDaughter(particleNumber) + 1);
57  p.daughter2(evtstdhep.getLastDaughter(particleNumber) + 1);
58  p.mother1(evtstdhep.getFirstMother(particleNumber) + 1);
59  p.mother2(evtstdhep.getLastMother(particleNumber) + 1);
60  if (id == CHI1_PDG_ID || id == CHI2_PDG_ID || id == PSI_PDG_ID)
61  p.status(-33);
62  else
63  p.status(91);
64  chigen::pythia::pythia->event.append(p);
65  }
66 
67  //skip non final particles
68  if (evtstdhep.getFirstDaughter(particleNumber) != -1 ||
69  evtstdhep.getLastDaughter(particleNumber) != -1)
70  continue;
71 
72  primGen->AddTrack(evtstdhep.getStdHepID(particleNumber),
73  evtMomentum.get(1), evtMomentum.get(2), evtMomentum.get(3),
74  vertexPoint.get(1), vertexPoint.get(2), vertexPoint.get(3),
75  -1, true, evtMomentum.get(0));
76  }
79  return true;
80 }
Double_t p
Definition: anasim.C:58
#define CHI1_PDG_ID
Definition: ChiGenContext.h:43
std::ostream * chigen_cout
FairPrimaryGenerator * primGen
Definition: sim_emc_apd.C:81
#define CHI2_PDG_ID
Definition: ChiGenContext.h:49
#define PSI_PDG_ID
Definition: ChiGenContext.h:41
EvtSpinDensity spinDensity
Definition: PartonicModel.h:52
Pythia8::Pythia * pythia

Member Data Documentation

EvtVector4R chigen::PndChiGenExclusive::chiMomentum
private

Definition at line 29 of file PndChiGenExclusive.h.

Referenced by PndChiGenExclusive().

EvtStdHep chigen::PndChiGenExclusive::evtstdhep
private

Definition at line 31 of file PndChiGenExclusive.h.

PartonicModel& chigen::PndChiGenExclusive::model
private

Definition at line 27 of file PndChiGenExclusive.h.

Referenced by PndChiGenExclusive().


The documentation for this class was generated from the following files: