]> git.uio.no Git - u/mrichter/AliRoot.git/blame - EPOS/TEpos.h
Switch to 2 Kt3 bins
[u/mrichter/AliRoot.git] / EPOS / TEpos.h
CommitLineData
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>
26class TObjArray;
879c2333 27class AliGenEposIsajetToPdgConverter;
9ef1c2d9 28
29class TEpos : public TGenerator {
30
31
32public:
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
103protected:
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
122private:
879c2333 123 AliGenEposIsajetToPdgConverter* fIdConverter;// PDG helper object
9ef1c2d9 124 ClassDef(TEpos,1) //Interface to EPOS Event Generator
125};
126
127#endif
128