]>
Commit | Line | Data |
---|---|---|
9033ee49 | 1 | // |
2 | //################################################################### | |
3 | //# EPOS 1.67 K. WERNER, T. PIEROG, S. PORTEBOEUF. # | |
4 | //# Contact: werner@subatech.in2p3.fr # | |
5 | //################################################################### | |
6 | // | |
7 | // TEpos.h | |
8 | // | |
9 | // Wraper class for interfacing EPOS model, derived from ROOT's TGenerator. | |
10 | // It generates temporary input file for the model, providing user with | |
11 | // ability to add his/hers own lines to the input. | |
12 | // Output is read directly from common blocks. | |
13 | // | |
14 | // Author: Piotr Ostrowski, postrow@if.pw.edu.pl | |
15 | // | |
9ef1c2d9 | 16 | |
17 | ||
18 | #ifndef TEPOS_H | |
19 | #define TEPOS_H | |
20 | ||
21 | #ifndef ROOT_TGenerator | |
22 | #include "TGenerator.h" | |
23 | #endif | |
24 | ||
25 | #include <vector> | |
26 | class TObjArray; | |
879c2333 | 27 | class AliGenEposIsajetToPdgConverter; |
9ef1c2d9 | 28 | |
29 | class TEpos : public TGenerator { | |
30 | ||
31 | ||
32 | public: | |
33 | ||
34 | TEpos(); | |
879c2333 | 35 | TEpos(const TEpos& rhs); |
36 | TEpos& operator=(const TEpos& rhs); | |
9ef1c2d9 | 37 | |
38 | virtual ~TEpos(); | |
39 | ||
40 | virtual void Initialize(); | |
41 | ||
42 | virtual void GenerateEvent(); | |
43 | ||
44 | virtual Int_t ImportParticles(TClonesArray *particles, Option_t *option=""); | |
45 | virtual TObjArray* ImportParticles(Option_t *option=""); | |
46 | ||
47 | //Geters for event header | |
48 | ||
1cf08247 | 49 | Float_t GetBimevt() const; // bimevt ........ absolute value of impact parameter |
50 | Float_t GetPhievt() const; // phievt ........ angle of impact parameter | |
51 | Int_t GetKolevt() const; // kolevt ........ number of collisions | |
52 | Int_t GetKoievt() const; // koievt ........ number of inelastic collisions | |
53 | Float_t GetPmxevt() const; // pmxevt ........ reference momentum | |
54 | Float_t GetEgyevt() const; // egyevt ........ pp cm energy (hadron) or string energy (lepton) | |
55 | Int_t GetNpjevt() const; // npjevt ........ number of primary projectile participants | |
56 | Int_t GetNtgevt() const; // ntgevt ........ number of primary target participants | |
57 | Int_t GetNpnevt() const; // npnevt ........ number of primary projectile neutron spectators | |
58 | Int_t GetNppevt() const; // nppevt ........ number of primary projectile proton spectators | |
59 | Int_t GetNtnevt() const; // ntnevt ........ number of primary target neutron spectators | |
60 | Int_t GetNtpevt() const; // ntpevt ........ number of primary target proton spectators | |
61 | Int_t GetJpnevt() const; // jpnevt ........ number of absolute projectile neutron spectators | |
62 | Int_t GetJppevt() const; // jppevt ........ number of absolute projectile proton spectators | |
63 | Int_t GetJtnevt() const; // jtnevt ........ number of absolute target neutron spectators | |
64 | Int_t GetJtpevt() const; // jtpevt ........ number of absolute target proton spectators | |
65 | Float_t GetXbjevt() const; // xbjevt ........ bjorken x for dis | |
66 | Float_t GetQsqevt() const; // qsqevt ........ q**2 for dis | |
67 | Int_t GetNglevt() const; // nglevt ........ number of collisions acc to Glauber | |
68 | Float_t GetZppevt() const; // zppevt ........ average Z-parton-proj | |
69 | Float_t GetZptevt() const; // zptevt ........ average Z-parton-targ | |
9ef1c2d9 | 70 | |
71 | //Parameters for the generator: | |
72 | void SetLaproj(Int_t laproj) { fLaproj = laproj; } | |
73 | void SetMaproj(Int_t maproj) { fMaproj = maproj; } | |
74 | void SetLatarg(Int_t latarg) { fLatarg = latarg; } | |
75 | void SetMatarg(Int_t matarg) { fMatarg = matarg; } | |
76 | ||
77 | void SetBminim(Float_t bminim) { fBminim = bminim; } | |
78 | void SetBmaxim(Float_t bmaxim) { fBmaxim = bmaxim; } | |
79 | ||
80 | void SetPhimin(Float_t phimin) { fPhimin = phimin; } | |
81 | void SetPhimax(Float_t phimax) { fPhimax = phimax; } | |
82 | ||
83 | void SetEcms(Float_t ecms) { fEcms = ecms; } | |
84 | void SetSplitting(Bool_t splitting) { fSplitting = splitting; } | |
85 | ||
86 | void AddNoDecay(Int_t nodecay); | |
1cf08247 | 87 | void AddExtraInputLine(const char *line); |
9ef1c2d9 | 88 | |
89 | Int_t GetLaproj() const { return fLaproj; } | |
90 | Int_t GetMaproj() const { return fMaproj; } | |
91 | Int_t GetLatarg() const { return fLatarg; } | |
92 | Int_t GetMatarg() const { return fMatarg; } | |
93 | ||
94 | Double_t GetBminim() const { return fBminim; } | |
95 | Double_t GetBmaxim() const { return fBmaxim; } | |
96 | ||
97 | Double_t GetPhimin() const { return fPhimin; } | |
98 | Double_t GetPhimax() const { return fPhimax; } | |
99 | ||
100 | Double_t GetEcms() const { return fEcms; } | |
101 | Bool_t GetSplitting() const { return fSplitting; } | |
102 | ||
103 | protected: | |
104 | virtual void GenerateInputFile(); | |
60ed90b3 | 105 | virtual const char * GetInputFileName() const { return "./epos.input"; } |
9ef1c2d9 | 106 | |
107 | Int_t fLaproj; //atomic number of projectile | |
108 | Int_t fMaproj; //mass number of projectile | |
109 | Int_t fLatarg; //atomic number of target | |
110 | Int_t fMatarg; //mass number of target | |
111 | Float_t fBminim; //lower limit for impact parameter | |
112 | Float_t fBmaxim; //upper limit for impact parameter | |
113 | Float_t fPhimin; //lower limit for reaction plane angle | |
114 | Float_t fPhimax; //upper limit for reaction plane angle | |
115 | Float_t fEcms; //energy in CMS | |
116 | Bool_t fSplitting; //consideration of parton splitting and fussion | |
117 | ||
118 | std::vector<Int_t> fNoDecays; // list of user supplied ISAJET codes of particles that will not be decayed by the model | |
119 | std::vector<const char * > fExtraInputLines; // list of user supplied lines to be added to EPOS input | |
120 | ||
121 | ||
122 | private: | |
879c2333 | 123 | AliGenEposIsajetToPdgConverter* fIdConverter;// PDG helper object |
9ef1c2d9 | 124 | ClassDef(TEpos,1) //Interface to EPOS Event Generator |
125 | }; | |
126 | ||
127 | #endif | |
128 |