5 //////////////////////////////////////////////////////////////////////////
9 // This class implements an interface to the Hijing event generator. //
11 //////////////////////////////////////////////////////////////////////////
13 #ifndef ROOT_TGenerator
14 #include "TGenerator.h"
18 class THijing : public TGenerator {
24 THijing(Float_t efrm, const char *frame, const char *proj, const char *targ,
25 Int_t iap, Int_t izp, Int_t iat, Int_t izt, Float_t bmin,
29 virtual void Initialize();
31 virtual void GenerateEvent();
33 virtual Int_t ImportParticles(TClonesArray *particles, Option_t *option="");
34 virtual TObjArray* ImportParticles(Option_t *option="");
37 //Parameters for the generation:
39 virtual void SetEFRM(Float_t efrm);
40 virtual Float_t GetEFRM() const;
42 virtual void SetFRAME(const char *frame);
43 virtual const char *GetFRAME() const;
45 virtual void SetPROJ(const char *frame);
46 virtual const char *GetPROJ() const;
48 virtual void SetTARG(const char *frame);
49 virtual const char *GetTARG() const;
51 virtual void SetIAP(Int_t iap);
52 virtual Int_t GetIAP() const;
54 virtual void SetIZP(Int_t izp);
55 virtual Int_t GetIZP() const;
57 virtual void SetIAT(Int_t iat);
58 virtual Int_t GetIAT() const;
60 virtual void SetIZT(Int_t izt);
61 virtual Int_t GetIZT() const;
63 virtual void SetBMIN(Float_t bmin);
64 virtual Float_t GetBMIN() const;
66 virtual void SetBMAX(Float_t bmax);
67 virtual Float_t GetBMAX() const;
69 //common HIPARNT access routines:
71 virtual void SetHIPR1(Int_t key, Float_t value);
72 virtual Float_t GetHIPR1(Int_t key) const;
74 virtual void SetIHPR2(Int_t key, Int_t value);
75 virtual Int_t GetIHPR2(Int_t key) const;
77 virtual Float_t GetHINT1(Int_t key) const;
79 virtual Int_t GetIHNT2(Int_t key) const;
81 //common HIMAIN1 access routines - read-only common:
83 virtual Int_t GetNATT() const;
85 virtual Int_t GetNPART() const;
87 virtual Float_t GetEATT() const;
89 virtual Int_t GetJATT() const;
91 virtual Int_t GetNT() const;
93 virtual Int_t GetNP() const;
95 virtual Int_t GetN0() const;
97 virtual Int_t GetN01() const;
99 virtual Int_t GetN10() const;
101 virtual Int_t GetN11() const;
103 virtual Float_t GetBB() const;
105 // common HIMAIN2 access routines - read-only common:
107 virtual Int_t GetKATT(Int_t key1, Int_t key2) const;
109 virtual Float_t GetPATT(Int_t key1, Int_t key2) const;
111 virtual Float_t GetVATT(Int_t key1, Int_t key2) const;
114 // common HIJJET1 access routines - read-only common:
116 virtual Int_t GetNPJ(Int_t key) const;
118 virtual Int_t GetKFPJ(Int_t key1, Int_t key2) const;
120 virtual Float_t GetPJPX(Int_t key1, Int_t key2) const;
122 virtual Float_t GetPJPY(Int_t key1, Int_t key2) const;
124 virtual Float_t GetPJPZ(Int_t key1, Int_t key2) const;
126 virtual Float_t GetPJPE(Int_t key1, Int_t key2) const;
128 virtual Float_t GetPJPM(Int_t key1, Int_t key2) const;
130 virtual Int_t GetNTJ(Int_t key) const;
132 virtual Int_t GetKFTJ(Int_t key1, Int_t key2) const;
134 virtual Float_t GetPJTX(Int_t key1, Int_t key2) const;
136 virtual Float_t GetPJTY(Int_t key1, Int_t key2) const;
138 virtual Float_t GetPJTZ(Int_t key1, Int_t key2) const;
140 virtual Float_t GetPJTE(Int_t key1, Int_t key2) const;
142 virtual Float_t GetPJTM(Int_t key1, Int_t key2) const;
145 // common HIJJET2 access routines - read-only common:
147 virtual Int_t GetNSG() const;
149 virtual Int_t GetNJSG(Int_t key) const;
151 virtual Int_t GetIASG(Int_t key1, Int_t key2) const;
153 virtual Int_t GetK1SG(Int_t key1, Int_t key2) const;
155 virtual Int_t GetK2SG(Int_t key1, Int_t key2) const;
157 virtual Float_t GetPXSG(Int_t key1, Int_t key2) const;
159 virtual Float_t GetPYSG(Int_t key1, Int_t key2) const;
161 virtual Float_t GetPZSG(Int_t key1, Int_t key2) const;
163 virtual Float_t GetPESG(Int_t key1, Int_t key2) const;
165 virtual Float_t GetPMSG(Int_t key1, Int_t key2) const;
167 // common HISTRNG access routines - read-only common:
169 virtual Int_t GetNFP(Int_t key1, Int_t key2) const;
171 virtual Float_t GetPP(Int_t key1, Int_t key2) const;
173 virtual Int_t GetNFT(Int_t key1, Int_t key2) const;
175 virtual Float_t GetPT(Int_t key1, Int_t key2) const;
177 // common LUDAT1_HIJING common:
178 virtual void SetPARJ(Int_t key, Float_t parm);
179 virtual void SetMSTJ(Int_t key, Int_t parm);
180 virtual void SetMDCY(Int_t key1, Int_t key2, Int_t parm);
181 virtual void SetMDME(Int_t key1, Int_t key2, Int_t parm);
182 virtual void SetBRAT(Int_t key, Float_t parm);
183 virtual Int_t GetMDCY(Int_t key1, Int_t key2);
184 // access to HIJING routines:
186 virtual void Hijset(float efrm, const char* frame, const char*
187 proj, const char* targ, int iap, int izp,
190 virtual void Hijing(const char* frame, float bmin, float bmax);
192 virtual Float_t Profile(float b);
194 // access to Jeteset routines
196 virtual void Rluget(Int_t lfn, Int_t move=0);
197 virtual void Rluset(Int_t lfn, Int_t move=0);
198 virtual void Pylist(Int_t flag);
199 virtual void Luupda(Int_t mupda, Int_t lfn);
202 Float_t fEfrm; // Energy in the centre of mass (CMS) or lab-frame (LAB)
203 TString fFrame; // Reference frame CMS or LAB
204 TString fProj; // Projectile name
205 TString fTarg; // Target name
206 Int_t fIap; // Atomic number of projectile
207 Int_t fIzp; // Charge number of projectile
208 Int_t fIat; // Atomic number of target
209 Int_t fIzt; // Charge number of target
210 Float_t fBmin; // Minimum impact parameter
211 Float_t fBmax; // Maximum impact parameter
212 ClassDef(THijing,1) //Interface to Hijing Event Generator