b9c9b3fb2d2b95d1183c2b3a99b1c8f41de9980c
[u/mrichter/AliRoot.git] / THijing / THijing.h
1 #ifndef THIJING_H
2 #define THIJING_H
3
4
5 //////////////////////////////////////////////////////////////////////////
6 //                                                                      //
7 // THijing                                                              //
8 //                                                                      //
9 // This class implements an interface to the Hijing event generator.    //
10 //                                                                      //
11 //////////////////////////////////////////////////////////////////////////
12
13 #ifndef ROOT_TGenerator
14 #include "TGenerator.h"
15 #endif
16 class TObjArray;
17
18 class THijing : public TGenerator {
19
20
21 public:
22    
23    THijing();
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, 
26            Float_t bmax);
27    virtual            ~THijing();
28
29    virtual void        Initialize();
30
31    virtual void        GenerateEvent();
32
33    virtual Int_t       ImportParticles(TClonesArray *particles, Option_t *option="");
34    virtual TObjArray*  ImportParticles(Option_t *option="");
35
36
37    //Parameters for the generation:
38    
39    virtual void        SetEFRM(Float_t efrm);
40    virtual Float_t     GetEFRM() const;
41
42    virtual void        SetFRAME(const char *frame);
43    virtual const char *GetFRAME() const;
44
45    virtual void        SetPROJ(const char *frame);
46    virtual const char *GetPROJ() const;
47
48    virtual void        SetTARG(const char *frame);
49    virtual const char *GetTARG() const;
50
51    virtual void        SetIAP(Int_t iap);
52    virtual Int_t       GetIAP() const;
53
54    virtual void        SetIZP(Int_t izp);
55    virtual Int_t       GetIZP() const;
56
57    virtual void        SetIAT(Int_t iat);
58    virtual Int_t       GetIAT() const;
59
60    virtual void        SetIZT(Int_t izt);
61    virtual Int_t       GetIZT() const;
62
63    virtual void        SetBMIN(Float_t bmin);
64    virtual Float_t     GetBMIN() const;
65
66    virtual void        SetBMAX(Float_t bmax);
67    virtual Float_t     GetBMAX() const;
68
69    //common HIPARNT access routines:
70    
71    virtual void        SetHIPR1(Int_t key, Float_t value);
72    virtual Float_t     GetHIPR1(Int_t key) const;
73
74    virtual void        SetIHPR2(Int_t key, Int_t value);
75    virtual Int_t       GetIHPR2(Int_t key) const;
76
77    virtual Float_t     GetHINT1(Int_t key) const;
78
79    virtual Int_t       GetIHNT2(Int_t key) const;
80
81    //common HIMAIN1 access routines - read-only common:
82    
83    virtual Int_t       GetNATT() const;
84
85    virtual Int_t       GetNPART() const;
86
87    virtual Float_t     GetEATT() const;
88
89    virtual Int_t       GetJATT() const;
90
91    virtual Int_t       GetNT() const;
92
93    virtual Int_t       GetNP() const;
94
95    virtual Int_t       GetN0() const;
96
97    virtual Int_t       GetN01() const;
98
99    virtual Int_t       GetN10() const;
100
101    virtual Int_t       GetN11() const;
102
103    virtual Float_t     GetBB() const;
104
105
106    // common HIMAIN2 access routines - read-only common:
107
108    virtual Int_t       GetKATT(Int_t key1, Int_t key2) const;
109
110    virtual Float_t     GetPATT(Int_t key1, Int_t key2) const;
111
112    virtual Float_t     GetVATT(Int_t key1, Int_t key2) const;
113
114
115    // common HIJJET1 access routines - read-only common: 
116
117    virtual Int_t       GetNPJ(Int_t key) const;
118
119    virtual Int_t       GetKFPJ(Int_t key1, Int_t key2) const;
120
121    virtual Float_t     GetPJPX(Int_t key1, Int_t key2) const;
122
123    virtual Float_t     GetPJPY(Int_t key1, Int_t key2) const;
124
125    virtual Float_t     GetPJPZ(Int_t key1, Int_t key2) const;
126
127    virtual Float_t     GetPJPE(Int_t key1, Int_t key2) const;
128
129    virtual Float_t     GetPJPM(Int_t key1, Int_t key2) const;
130
131    virtual Int_t       GetNTJ(Int_t key) const;
132
133    virtual Int_t       GetKFTJ(Int_t key1, Int_t key2) const;
134
135    virtual Float_t     GetPJTX(Int_t key1, Int_t key2) const;
136
137    virtual Float_t     GetPJTY(Int_t key1, Int_t key2) const;
138
139    virtual Float_t     GetPJTZ(Int_t key1, Int_t key2) const;
140
141    virtual Float_t     GetPJTE(Int_t key1, Int_t key2) const;
142
143    virtual Float_t     GetPJTM(Int_t key1, Int_t key2) const;
144
145
146    // common HIJJET2 access routines - read-only common: 
147
148    virtual Int_t       GetNSG() const;
149
150    virtual Int_t       GetNJSG(Int_t key) const;
151
152    virtual Int_t       GetIASG(Int_t key1, Int_t key2) const;
153
154    virtual Int_t       GetK1SG(Int_t key1, Int_t key2) const;
155
156    virtual Int_t       GetK2SG(Int_t key1, Int_t key2) const;
157
158    virtual Float_t     GetPXSG(Int_t key1, Int_t key2) const;
159
160    virtual Float_t     GetPYSG(Int_t key1, Int_t key2) const;
161
162    virtual Float_t     GetPZSG(Int_t key1, Int_t key2) const;
163
164    virtual Float_t     GetPESG(Int_t key1, Int_t key2) const;
165
166    virtual Float_t     GetPMSG(Int_t key1, Int_t key2) const;
167
168    // common HISTRNG access routines - read-only common: 
169
170    virtual Int_t       GetNFP(Int_t key1, Int_t key2) const;
171
172    virtual Float_t     GetPP(Int_t key1, Int_t key2) const;
173
174    virtual Int_t       GetNFT(Int_t key1, Int_t key2) const;
175
176    virtual Float_t     GetPT(Int_t key1, Int_t key2) const;
177
178    // common LUDAT1_HIJING common:
179    virtual void        SetPARJ(Int_t key, Float_t parm);
180    virtual void        SetMSTJ(Int_t key, Int_t   parm);   
181    virtual void        SetMDCY(Int_t key1, Int_t key2, Int_t   parm);   
182    virtual void        SetMDME(Int_t key1, Int_t key2, Int_t   parm);   
183    virtual Int_t       GetMDCY(Int_t key1, Int_t key2);   
184    // access to HIJING routines:
185
186    virtual void         Hijset(float efrm, const char* frame, const char*
187                               proj, const char* targ, int iap, int izp,
188                               int iat, int izt);
189                               
190    virtual void         Hijing(const char* frame, float bmin, float bmax);
191
192    virtual Float_t      Profile(float b);
193
194    // access to Jeteset routines
195
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);
200    protected:
201
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
213 };
214
215 #endif
216
217
218
219
220
221
222