Overlaps corrected, new shape of sectors
[u/mrichter/AliRoot.git] / THydjet / THydjet.h
1 #ifndef THYDJET_H
2 #define THYDJET_H
3
4
5 //////////////////////////////////////////////////////////////////////////
6 //                                                                      //
7 // THydjet                                                              //
8 //                                                                      //
9 // This class implements an interface to the Hydjet event generator.    //
10 //                                                                      //
11 //////////////////////////////////////////////////////////////////////////
12
13 #ifndef ROOT_TGenerator
14 #include "TGenerator.h"
15 #endif
16 class TObjArray;
17
18 class THydjet : public TGenerator {
19
20
21 public:
22
23    THydjet();
24    THydjet(Float_t efrm, const char *frame, Float_t aw,
25            Int_t ifb, Float_t bmin, Float_t bmax, Float_t bfix, Int_t nh);
26    virtual            ~THydjet();
27
28    virtual void        Initialize();
29
30    virtual void        GenerateEvent();
31
32    virtual Int_t       ImportParticles(TClonesArray *particles, Option_t *option="");
33    virtual TObjArray*  ImportParticles(Option_t *option="");
34
35
36    //Parameters for the generation:
37    
38    virtual void        SetEfrm(Float_t efrm);
39    virtual Float_t     GetEfrm() const;
40
41    virtual void        SetFrame(const char *frame);
42    virtual const char *GetFrame() const;
43
44    virtual void        SetAw(Float_t aw);
45    virtual Float_t     GetAw() const;
46
47    virtual void        SetIfb(Int_t ifb);
48    virtual Int_t       GetIfb() const;
49
50    virtual void        SetBmin(Float_t bmin);
51    virtual Float_t     GetBmin() const;
52
53    virtual void        SetBmax(Float_t bmax);
54    virtual Float_t     GetBmax() const;
55
56    virtual void        SetBfix(Float_t bfix);
57    virtual Float_t     GetBfix() const;
58
59    virtual void        SetNh(Int_t nh);
60    virtual Int_t       GetNh() const;
61
62
63
64    //common HYFLOW access routines:
65
66    virtual const void  SetYTFL(Float_t ytfl) const;
67    virtual Float_t     GetYTFL() const;
68
69    virtual const void  SetYLFL(Float_t ylfl) const;
70    virtual Float_t     GetYLFL() const;
71
72    virtual const void  SetFPART(Float_t fpart) const;
73    virtual Float_t     GetFPART() const;
74
75    //common HYJPAR access routines
76
77    virtual const void  SetNHSEL(Int_t nhsel) const;
78    virtual Int_t       GetNHSEL() const;
79
80    virtual const void  SetPTMIN(Float_t ptmin) const;
81    virtual Float_t     GetPTMIN() const;
82
83    virtual const void  SetNJET(Int_t njet) const;
84    virtual Int_t       GetNJET() const;
85
86    // common HYFPAR access routines - read-only common:
87
88    virtual Float_t     GetBGEN() const;
89
90    virtual Int_t     GetNBCOL() const;
91
92    virtual Int_t     GetNPART() const;
93
94    virtual Int_t     GetNPYT() const;
95
96    virtual Int_t     GetNHYD() const;
97
98
99    // common LUJETS access routines - read-only common:
100
101    virtual Int_t       GetN() const;
102
103    virtual Int_t       GetK(Int_t key1, Int_t key2) const;
104
105    virtual Float_t     GetP(Int_t key1, Int_t key2) const;
106
107    virtual Float_t     GetV(Int_t key1, Int_t key2) const;
108
109
110    // common HYJETS access routines - read-only common:
111
112    virtual Int_t       GetNL() const;
113
114    virtual Int_t       GetKL(Int_t key1, Int_t key2) const;
115
116    virtual Float_t     GetPL(Int_t key1, Int_t key2) const;
117
118    virtual Float_t     GetVL(Int_t key1, Int_t key2) const;
119
120    // common PYDAT1 access routines:
121
122    virtual void        SetMSTU(Int_t key, Int_t value);
123
124    virtual void        SetPARU(Int_t key, Double_t value);
125
126    virtual void        SetMSTJ(Int_t key, Int_t value);
127
128    virtual void        SetPARJ(Int_t key, Double_t value);
129
130    // common PYSUBS access routines:
131
132    virtual const void  SetMSEL(Int_t msel) const;
133
134    virtual void        SetCKIN(Int_t key, Double_t value);
135
136    // common PYPARS access routines:
137
138    virtual void        SetMSTP(Int_t key, Int_t value);
139
140    // access to HYDJET routines:
141
142    virtual void         Hydro();
143
144
145    protected:
146
147     Float_t      fEfrm;     // Energy in the centre of mass (CMS) or lab-frame (LAB)
148     TString      fFrame;    // Reference frame CMS or LAB
149     Float_t      fAw;       // Beam and target nucleus atomic weight
150     Int_t        fIfb;       // flag of type of centrality generation
151                             //    0 impact parameter fixed (bfix)
152                             //    else impact parameter is generated with standard Glauber geometry
153                                  //    between minimum (bmin) and maximum (bmax) values
154     Float_t      fBmin;     // Minimum impact parameter in units of nucleus radius RA
155                             // (i.e. minimum value in [fm] will be bmin*RA),
156                             // valid only if ifb not equal to zero
157     Float_t      fBmax;     // Maximum impact parameter in units of nucleus radius RA
158                             // (i.e. maximum value in [fm] will be bmax*RA),
159                             // valid only if ifb not equal to zero
160     Float_t      fBfix;     // Fixed impact parameter in units of nucleus radius RA
161                             // (i.e. fixed value in [fm] will be bfix*RA),
162                             // valid only if ifb=0
163     Int_t        fNh;       // Mean soft hadron multiplicity in central Pb-Pb collisions
164                             // (multiplicity for other centralities and atomic numbers
165                             // will be calculated automatically).
166
167     ClassDef(THydjet,1)  //Interface to Hydjet Event Generator
168 };
169
170 #endif
171
172
173
174
175
176
177