]>
Commit | Line | Data |
---|---|---|
9ef1c2d9 | 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 | */ | |
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; | |
27 | ||
28 | class TEpos : public TGenerator { | |
29 | ||
30 | ||
31 | public: | |
32 | ||
33 | TEpos(); | |
34 | ||
35 | virtual ~TEpos(); | |
36 | ||
37 | virtual void Initialize(); | |
38 | ||
39 | virtual void GenerateEvent(); | |
40 | ||
41 | virtual Int_t ImportParticles(TClonesArray *particles, Option_t *option=""); | |
42 | virtual TObjArray* ImportParticles(Option_t *option=""); | |
43 | ||
44 | //Geters for event header | |
45 | ||
46 | Float_t GetBimevt(); // bimevt ........ absolute value of impact parameter | |
47 | Float_t GetPhievt(); // phievt ........ angle of impact parameter | |
48 | Int_t GetKolevt(); // kolevt ........ number of collisions | |
49 | Int_t GetKoievt(); // koievt ........ number of inelastic collisions | |
50 | Float_t GetPmxevt(); // pmxevt ........ reference momentum | |
51 | Float_t GetEgyevt(); // egyevt ........ pp cm energy (hadron) or string energy (lepton) | |
52 | Int_t GetNpjevt(); // npjevt ........ number of primary projectile participants | |
53 | Int_t GetNtgevt(); // ntgevt ........ number of primary target participants | |
54 | Int_t GetNpnevt(); // npnevt ........ number of primary projectile neutron spectators | |
55 | Int_t GetNppevt(); // nppevt ........ number of primary projectile proton spectators | |
56 | Int_t GetNtnevt(); // ntnevt ........ number of primary target neutron spectators | |
57 | Int_t GetNtpevt(); // ntpevt ........ number of primary target proton spectators | |
58 | Int_t GetJpnevt(); // jpnevt ........ number of absolute projectile neutron spectators | |
59 | Int_t GetJppevt(); // jppevt ........ number of absolute projectile proton spectators | |
60 | Int_t GetJtnevt(); // jtnevt ........ number of absolute target neutron spectators | |
61 | Int_t GetJtpevt(); // jtpevt ........ number of absolute target proton spectators | |
62 | Float_t GetXbjevt(); // xbjevt ........ bjorken x for dis | |
63 | Float_t GetQsqevt(); // qsqevt ........ q**2 for dis | |
64 | Int_t GetNglevt(); // nglevt ........ number of collisions acc to Glauber | |
65 | Float_t GetZppevt(); // zppevt ........ average Z-parton-proj | |
66 | Float_t GetZptevt(); // zptevt ........ average Z-parton-targ | |
67 | ||
68 | //Parameters for the generator: | |
69 | void SetLaproj(Int_t laproj) { fLaproj = laproj; } | |
70 | void SetMaproj(Int_t maproj) { fMaproj = maproj; } | |
71 | void SetLatarg(Int_t latarg) { fLatarg = latarg; } | |
72 | void SetMatarg(Int_t matarg) { fMatarg = matarg; } | |
73 | ||
74 | void SetBminim(Float_t bminim) { fBminim = bminim; } | |
75 | void SetBmaxim(Float_t bmaxim) { fBmaxim = bmaxim; } | |
76 | ||
77 | void SetPhimin(Float_t phimin) { fPhimin = phimin; } | |
78 | void SetPhimax(Float_t phimax) { fPhimax = phimax; } | |
79 | ||
80 | void SetEcms(Float_t ecms) { fEcms = ecms; } | |
81 | void SetSplitting(Bool_t splitting) { fSplitting = splitting; } | |
82 | ||
83 | void AddNoDecay(Int_t nodecay); | |
84 | void AddExtraInputLine(const char *); | |
85 | ||
86 | Int_t GetLaproj() const { return fLaproj; } | |
87 | Int_t GetMaproj() const { return fMaproj; } | |
88 | Int_t GetLatarg() const { return fLatarg; } | |
89 | Int_t GetMatarg() const { return fMatarg; } | |
90 | ||
91 | Double_t GetBminim() const { return fBminim; } | |
92 | Double_t GetBmaxim() const { return fBmaxim; } | |
93 | ||
94 | Double_t GetPhimin() const { return fPhimin; } | |
95 | Double_t GetPhimax() const { return fPhimax; } | |
96 | ||
97 | Double_t GetEcms() const { return fEcms; } | |
98 | Bool_t GetSplitting() const { return fSplitting; } | |
99 | ||
100 | protected: | |
101 | virtual void GenerateInputFile(); | |
102 | virtual const char * GetInputFileName() const { return "/tmp/epos.input"; } | |
103 | ||
104 | Int_t fLaproj; //atomic number of projectile | |
105 | Int_t fMaproj; //mass number of projectile | |
106 | Int_t fLatarg; //atomic number of target | |
107 | Int_t fMatarg; //mass number of target | |
108 | Float_t fBminim; //lower limit for impact parameter | |
109 | Float_t fBmaxim; //upper limit for impact parameter | |
110 | Float_t fPhimin; //lower limit for reaction plane angle | |
111 | Float_t fPhimax; //upper limit for reaction plane angle | |
112 | Float_t fEcms; //energy in CMS | |
113 | Bool_t fSplitting; //consideration of parton splitting and fussion | |
114 | ||
115 | std::vector<Int_t> fNoDecays; // list of user supplied ISAJET codes of particles that will not be decayed by the model | |
116 | std::vector<const char * > fExtraInputLines; // list of user supplied lines to be added to EPOS input | |
117 | ||
118 | ||
119 | private: | |
120 | ClassDef(TEpos,1) //Interface to EPOS Event Generator | |
121 | }; | |
122 | ||
123 | #endif | |
124 |