]> git.uio.no Git - u/mrichter/AliRoot.git/blob - THijing/THijing.h
matching performance ITS-TPC-TRD class
[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 Float_t     GetEATT() const;
86
87    virtual Int_t       GetJATT() const;
88
89    virtual Int_t       GetNT() const;
90
91    virtual Int_t       GetNP() const;
92
93    virtual Int_t       GetN0() const;
94
95    virtual Int_t       GetN01() const;
96
97    virtual Int_t       GetN10() const;
98
99    virtual Int_t       GetN11() const;
100
101    virtual Float_t     GetBB() const;
102
103
104    // common HIMAIN2 access routines - read-only common:
105
106    virtual Int_t       GetKATT(Int_t key1, Int_t key2) const;
107
108    virtual Float_t     GetPATT(Int_t key1, Int_t key2) const;
109
110    virtual Float_t     GetVATT(Int_t key1, Int_t key2) const;
111
112
113    // common HIJJET1 access routines - read-only common: 
114
115    virtual Int_t       GetNPJ(Int_t key) const;
116
117    virtual Int_t       GetKFPJ(Int_t key1, Int_t key2) const;
118
119    virtual Float_t     GetPJPX(Int_t key1, Int_t key2) const;
120
121    virtual Float_t     GetPJPY(Int_t key1, Int_t key2) const;
122
123    virtual Float_t     GetPJPZ(Int_t key1, Int_t key2) const;
124
125    virtual Float_t     GetPJPE(Int_t key1, Int_t key2) const;
126
127    virtual Float_t     GetPJPM(Int_t key1, Int_t key2) const;
128
129    virtual Int_t       GetNTJ(Int_t key) const;
130
131    virtual Int_t       GetKFTJ(Int_t key1, Int_t key2) const;
132
133    virtual Float_t     GetPJTX(Int_t key1, Int_t key2) const;
134
135    virtual Float_t     GetPJTY(Int_t key1, Int_t key2) const;
136
137    virtual Float_t     GetPJTZ(Int_t key1, Int_t key2) const;
138
139    virtual Float_t     GetPJTE(Int_t key1, Int_t key2) const;
140
141    virtual Float_t     GetPJTM(Int_t key1, Int_t key2) const;
142
143
144    // common HIJJET2 access routines - read-only common: 
145
146    virtual Int_t       GetNSG() const;
147
148    virtual Int_t       GetNJSG(Int_t key) const;
149
150    virtual Int_t       GetIASG(Int_t key1, Int_t key2) const;
151
152    virtual Int_t       GetK1SG(Int_t key1, Int_t key2) const;
153
154    virtual Int_t       GetK2SG(Int_t key1, Int_t key2) const;
155
156    virtual Float_t     GetPXSG(Int_t key1, Int_t key2) const;
157
158    virtual Float_t     GetPYSG(Int_t key1, Int_t key2) const;
159
160    virtual Float_t     GetPZSG(Int_t key1, Int_t key2) const;
161
162    virtual Float_t     GetPESG(Int_t key1, Int_t key2) const;
163
164    virtual Float_t     GetPMSG(Int_t key1, Int_t key2) const;
165
166    // common HISTRNG access routines - read-only common: 
167
168    virtual Int_t       GetNFP(Int_t key1, Int_t key2) const;
169
170    virtual Float_t     GetPP(Int_t key1, Int_t key2) const;
171
172    virtual Int_t       GetNFT(Int_t key1, Int_t key2) const;
173
174    virtual Float_t     GetPT(Int_t key1, Int_t key2) const;
175
176    // common LUDAT1_HIJING common:
177    virtual void        SetPARJ(Int_t key, Float_t parm);
178    virtual void        SetMSTJ(Int_t key, Int_t   parm);   
179    
180    // access to HIJING routines:
181
182    virtual void         Hijset(float efrm, const char* frame, const char*
183                               proj, const char* targ, int iap, int izp,
184                               int iat, int izt);
185                               
186    virtual void         Hijing(const char* frame, float bmin, float bmax);
187
188    virtual Float_t      Profile(float b);
189
190    // access to Jeteset routines
191
192    virtual void         Rluget(Int_t lfn, Int_t move=0);
193    virtual void         Rluset(Int_t lfn, Int_t move=0);   
194
195    protected:
196
197     Float_t      fEfrm;     // Energy in the centre of mass (CMS) or lab-frame (LAB)
198     TString      fFrame;    // Reference frame CMS or LAB
199     TString      fProj;     // Projectile name
200     TString      fTarg;     // Target name
201     Int_t        fIap;      // Atomic number of projectile
202     Int_t        fIzp;      // Charge number of projectile 
203     Int_t        fIat;      // Atomic number of target
204     Int_t        fIzt;      // Charge number of target
205     Float_t      fBmin;     // Minimum impact parameter
206     Float_t      fBmax;     // Maximum impact parameter
207     ClassDef(THijing,1)  //Interface to Hijing Event Generator
208 };
209
210 #endif
211
212
213
214
215
216
217