]>
Commit | Line | Data |
---|---|---|
1a52e0ed | 1 | #ifndef ROOT_TDPMjet |
2 | #define ROOT_TDPMjet | |
3 | ||
4 | //+SEQ,CopyRight,T=NOINCLUDE. | |
5 | ||
6 | ////////////////////////////////////////////////////////////////////////// | |
7 | // // | |
8 | // TDPMjet // | |
9 | // // | |
10 | // This class implements an interface to the DPMJET 3.0 event generator.// | |
11 | // // | |
12 | ////////////////////////////////////////////////////////////////////////// | |
13 | ||
14 | #ifndef ROOT_TGenerator | |
15 | //*KEEP,TGenerator. | |
16 | #include "TGenerator.h" | |
17 | //*KEND. | |
18 | #endif | |
6a45631b | 19 | |
cab41d67 | 20 | typedef enum {kDpmMb, kDpmMbNonDiffr, kDpmDiffr, kDpmSingleDiffr, kDpmDoubleDiffr, kDpmCentralDiffr} DpmProcess_t; |
07c71c2e | 21 | class TClonesArray; |
6a45631b | 22 | |
1a52e0ed | 23 | |
24 | class TDPMjet : public TGenerator { | |
25 | ||
26 | public: | |
27 | ||
28 | TDPMjet(); | |
d38751f5 | 29 | TDPMjet(DpmProcess_t ip, Int_t Ip, Int_t Ipz, Int_t It, Int_t Itz, Double_t Epn, Double_t CMEn); |
1a52e0ed | 30 | |
31 | virtual ~TDPMjet() {;} | |
32 | ||
33 | virtual void Initialize(); | |
34 | ||
35 | virtual void GenerateEvent(); | |
36 | ||
37 | virtual Int_t ImportParticles(TClonesArray *particles, Option_t *option=""); | |
1e6b599d | 38 | virtual TObjArray *ImportParticles(Option_t * /*option*/) {return 0;} |
1a52e0ed | 39 | |
40 | // Parameters for the generation: | |
41 | virtual void SetNEvent(Int_t iev) {fNEvent = iev;} | |
42 | virtual Int_t GetNEvent() {return fNEvent;} | |
43 | ||
44 | virtual void SetfIp(Int_t Ip) {fIp = Ip;} | |
45 | virtual Int_t GetfIp() const {return fIp;} | |
46 | ||
47 | virtual void SetfIpz(Int_t Ipz) {fIpz = Ipz;} | |
48 | virtual Int_t GetfIpz() const {return fIpz;} | |
49 | ||
50 | virtual void SetfIt(Int_t It) {fIt = It;} | |
51 | virtual Int_t GetfIt() const {return fIt;} | |
52 | ||
53 | virtual void SetfItz(Int_t Itz) {fItz = Itz;} | |
54 | virtual Int_t GetfItz() const {return fItz;} | |
55 | ||
56 | virtual void SetfEpn(Double_t Epn) {fEpn = Epn;} | |
57 | virtual Double_t GetfEpn() const {return fEpn;} | |
58 | ||
59 | virtual void SetfCMEn(Double_t CMEn) {fCMEn = CMEn;} | |
60 | virtual Double_t GetfCMEn() const {return fCMEn;} | |
61 | ||
62 | virtual void SetfIdp(Int_t idp) {fIdp = idp;} | |
63 | virtual Int_t GetfIdp() const {return fIdp;} | |
64 | ||
65 | virtual void SetbRange(Double_t bmin, Double_t bmax) | |
66 | {fBmin = bmin; fBmax = bmax;} | |
67 | virtual Double_t GetMinImpactParameter() const {return fBmin;} | |
f97d4a8e | 68 | virtual Double_t GetMaxImpactParameter() const {return fBmax;} |
69 | ||
1a52e0ed | 70 | virtual void SetfFCentr(Int_t icentr) {fFCentr = icentr;} |
71 | virtual Int_t GetfFCentr() const {return fFCentr;} | |
72 | ||
717765ce | 73 | virtual void SetPi0Decay(Int_t iPi0) {fPi0Decay = iPi0;} |
74 | virtual void SetDecayAll(Int_t iDecAll) {fDecayAll = iDecAll;} | |
f97d4a8e | 75 | |
5fed2e29 | 76 | virtual void SetFragmentProd(Bool_t val) {fFragmentation = val;} |
77 | ||
1a52e0ed | 78 | // Access to DPMJET common blocks: |
79 | virtual Int_t GetEvNum() const; | |
80 | virtual Int_t GetEntriesNum() const; | |
81 | virtual Int_t GetNumStablePc() const; | |
82 | virtual Float_t GetTotEnergy() const; | |
83 | virtual Int_t GetStatusCode(Int_t evnum) const; | |
84 | virtual Int_t GetPDGCode(Int_t evnum) const; | |
85 | virtual Double_t Getpx(Int_t evnum) const; | |
86 | virtual Double_t Getpy(Int_t evnum) const; | |
87 | virtual Double_t Getpz(Int_t evnum) const; | |
88 | virtual Double_t GetEnergy(Int_t evnum) const; | |
89 | virtual Double_t GetMass(Int_t evnum) const; | |
90 | ||
91 | virtual Int_t GetFragmentA(Int_t evnum) const; | |
92 | virtual Int_t GetFragmentZ(Int_t evnum) const; | |
93 | ||
94 | virtual Double_t GetXSFrac() const; | |
95 | virtual Double_t GetBImpac() const; | |
96 | virtual Double_t GetProjRadius() const; | |
97 | virtual Double_t GetTargRadius() const; | |
98 | virtual Int_t GetProjWounded() const; | |
99 | virtual Int_t GetTargWounded() const; | |
3c349853 | 100 | virtual Int_t GetProjParticipants() const; |
101 | virtual Int_t GetTargParticipants() const; | |
9dcc0beb | 102 | virtual Int_t GetProcessCode() const; |
103 | ||
fb941ba2 | 104 | // Phojet access (POEVT1) |
105 | virtual Int_t NHEP() const; | |
106 | virtual Int_t ISTHEP(Int_t i) const; | |
107 | virtual Int_t IDHEP(Int_t i) const; | |
c3bc7b6f | 108 | virtual Double_t PHEP(Int_t i, Int_t j) const; |
fb941ba2 | 109 | |
110 | ||
111 | ||
112 | ||
1a52e0ed | 113 | // Access to DPMJET routines: |
114 | virtual void Dt_Dtuini(int nevts, double epn, int npmass, int npchar, | |
115 | int ntmass, int ntchar, int idp, int iemu); | |
116 | ||
117 | virtual void Dt_Kkinc(int npmass, int npchar, int ntmass, int ntchar, | |
118 | int idp, double elab, int kkmat, int irej); | |
119 | ||
120 | virtual void Pho_Phist(int imode, double weight); | |
121 | ||
122 | virtual void Dt_Dtuout(); | |
123 | ||
124 | virtual void Dt_Rndm(int idummy); | |
125 | virtual void Dt_Rndmst(int na1, int na2, int na3, int nb1); | |
126 | virtual void Dt_Rndmin(int u, int c, int cd, int cm, int i, int j); | |
127 | virtual void Dt_Rndmou(int u, int c, int cd, int cm, int i, int j); | |
128 | ||
fb941ba2 | 129 | |
1a52e0ed | 130 | protected: |
131 | ||
d38751f5 | 132 | Int_t fNEvent; // Event number to be generated |
133 | Int_t fIp; // Projectile mass | |
134 | Int_t fIpz; // Projectile charge | |
135 | Int_t fIt; // Target mass | |
136 | Int_t fItz; // Target charge | |
137 | Float_t fEpn; // Beam energy | |
138 | Float_t fPpn; // Beam momentum | |
139 | Float_t fCMEn; // Energy in CM | |
140 | Int_t fIdp; // Internal particle code | |
141 | Float_t fBmin; // Minimum impact parameter | |
142 | Float_t fBmax; // Maximum impact parameter | |
143 | Int_t fFCentr; // Flag to force central collisions | |
f97d4a8e | 144 | Int_t fPi0Decay;// Flag for pi0 decays |
717765ce | 145 | Int_t fDecayAll;// Flag to decay also long-lived particles |
d38751f5 | 146 | DpmProcess_t fProcess; // Process type |
5fed2e29 | 147 | // |
148 | Bool_t fFragmentation; // Allows evaporation and fragments production | |
d38751f5 | 149 | |
5fed2e29 | 150 | ClassDef(TDPMjet,3) //Interface to DPMJET Event Generator |
1a52e0ed | 151 | }; |
152 | ||
153 | #endif | |
154 | ||
155 | ||
156 | ||
157 | ||
158 | ||
159 | ||
160 |