o First Version of TRDnSigma implementation (Xianguo) o still requires some catching...
[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    // common HIMAIN2 access routines - read-only common:
106
107    virtual Int_t       GetKATT(Int_t key1, Int_t key2) const;
108
109    virtual Float_t     GetPATT(Int_t key1, Int_t key2) const;
110
111    virtual Float_t     GetVATT(Int_t key1, Int_t key2) const;
112
113
114    // common HIJJET1 access routines - read-only common: 
115
116    virtual Int_t       GetNPJ(Int_t key) const;
117
118    virtual Int_t       GetKFPJ(Int_t key1, Int_t key2) const;
119
120    virtual Float_t     GetPJPX(Int_t key1, Int_t key2) const;
121
122    virtual Float_t     GetPJPY(Int_t key1, Int_t key2) const;
123
124    virtual Float_t     GetPJPZ(Int_t key1, Int_t key2) const;
125
126    virtual Float_t     GetPJPE(Int_t key1, Int_t key2) const;
127
128    virtual Float_t     GetPJPM(Int_t key1, Int_t key2) const;
129
130    virtual Int_t       GetNTJ(Int_t key) const;
131
132    virtual Int_t       GetKFTJ(Int_t key1, Int_t key2) const;
133
134    virtual Float_t     GetPJTX(Int_t key1, Int_t key2) const;
135
136    virtual Float_t     GetPJTY(Int_t key1, Int_t key2) const;
137
138    virtual Float_t     GetPJTZ(Int_t key1, Int_t key2) const;
139
140    virtual Float_t     GetPJTE(Int_t key1, Int_t key2) const;
141
142    virtual Float_t     GetPJTM(Int_t key1, Int_t key2) const;
143
144
145    // common HIJJET2 access routines - read-only common: 
146
147    virtual Int_t       GetNSG() const;
148
149    virtual Int_t       GetNJSG(Int_t key) const;
150
151    virtual Int_t       GetIASG(Int_t key1, Int_t key2) const;
152
153    virtual Int_t       GetK1SG(Int_t key1, Int_t key2) const;
154
155    virtual Int_t       GetK2SG(Int_t key1, Int_t key2) const;
156
157    virtual Float_t     GetPXSG(Int_t key1, Int_t key2) const;
158
159    virtual Float_t     GetPYSG(Int_t key1, Int_t key2) const;
160
161    virtual Float_t     GetPZSG(Int_t key1, Int_t key2) const;
162
163    virtual Float_t     GetPESG(Int_t key1, Int_t key2) const;
164
165    virtual Float_t     GetPMSG(Int_t key1, Int_t key2) const;
166
167    // common HISTRNG access routines - read-only common: 
168
169    virtual Int_t       GetNFP(Int_t key1, Int_t key2) const;
170
171    virtual Float_t     GetPP(Int_t key1, Int_t key2) const;
172
173    virtual Int_t       GetNFT(Int_t key1, Int_t key2) const;
174
175    virtual Float_t     GetPT(Int_t key1, Int_t key2) const;
176
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:
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