Fixes
[u/mrichter/AliRoot.git] / TAmpt / TAmpt.h
1 #ifndef TAMPT_H
2 #define TAMPT_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 #ifndef ROOT_TGenerator
7 #include "TGenerator.h"
8 #endif
9 class TObjArray;
10
11 class TAmpt : public TGenerator {
12 public:
13   TAmpt();
14   TAmpt(Double_t efrm, const char *frame, const char *proj, const char *targ,
15         Int_t iap, Int_t izp, Int_t iat, Int_t izt, Double_t bmin,  Double_t bmax);
16   virtual            ~TAmpt();
17   virtual void        Initialize();
18   virtual void        GenerateEvent();
19   virtual Int_t       ImportParticles(TClonesArray *particles, Option_t *option="");
20   virtual TObjArray*  ImportParticles(Option_t *option="");
21   virtual Int_t       ImportNucleons(TClonesArray *nucleons, Option_t *option="");
22
23   //Parameters for the generation:
24   virtual void        SetEFRM(Float_t efrm);
25   virtual Float_t     GetEFRM() const;
26
27   virtual void        SetFRAME(const char *frame);
28   virtual const char *GetFRAME() const;
29
30   virtual void        SetPROJ(const char *frame);
31   virtual const char *GetPROJ() const;
32
33   virtual void        SetTARG(const char *frame);
34   virtual const char *GetTARG() const;
35
36   virtual void        SetIAP(Int_t iap);
37   virtual Int_t       GetIAP() const;
38
39   virtual void        SetIZP(Int_t izp);
40   virtual Int_t       GetIZP() const;
41
42   virtual void        SetIAT(Int_t iat);
43   virtual Int_t       GetIAT() const;
44
45   virtual void        SetIZT(Int_t izt);
46   virtual Int_t       GetIZT() const;
47
48   virtual void        SetBMIN(Float_t bmin);
49   virtual Float_t     GetBMIN() const;
50
51   virtual void        SetBMAX(Float_t bmax);
52   virtual Float_t     GetBMAX() const;
53
54   //common HIPARNT access routines:
55   virtual void        SetHIPR1(Int_t key, Float_t value);
56   virtual Float_t     GetHIPR1(Int_t key) const;
57
58   virtual void        SetIHPR2(Int_t key, Int_t value);
59   virtual Int_t       GetIHPR2(Int_t key) const;
60
61   virtual Float_t     GetHINT1(Int_t key) const;
62   virtual Int_t       GetIHNT2(Int_t key) const;
63
64   //common HIMAIN1 access routines - read-only common:
65    
66   virtual Int_t       GetNATT() const;
67   virtual Float_t     GetEATT() const;
68   virtual Int_t       GetJATT() const;
69   virtual Int_t       GetNT()   const;
70   virtual Int_t       GetNP()   const;
71   virtual Int_t       GetN0()   const;
72   virtual Int_t       GetN01()  const;
73   virtual Int_t       GetN10()  const;
74   virtual Int_t       GetN11()  const;
75   virtual Float_t     GetBB()   const;
76   virtual Float_t     GetPhi()  const { return fPhi; }
77
78   // common HIMAIN2 access routines - read-only common:
79   virtual Int_t       GetKATT(Int_t key1, Int_t key2) const;
80   virtual Float_t     GetPATT(Int_t key1, Int_t key2) const;
81   virtual Float_t     GetVATT(Int_t key1, Int_t key2) const;
82
83   // common HIJJET1 access routines - read-only common: 
84   virtual Int_t       GetNPJ(Int_t key) const;
85   virtual Int_t       GetKFPJ(Int_t key1, Int_t key2) const;
86   virtual Float_t     GetPJPX(Int_t key1, Int_t key2) const;
87   virtual Float_t     GetPJPY(Int_t key1, Int_t key2) const;
88   virtual Float_t     GetPJPZ(Int_t key1, Int_t key2) const;
89   virtual Float_t     GetPJPE(Int_t key1, Int_t key2) const;
90   virtual Float_t     GetPJPM(Int_t key1, Int_t key2) const;
91   virtual Int_t       GetNTJ(Int_t key) const;
92   virtual Int_t       GetKFTJ(Int_t key1, Int_t key2) const;
93   virtual Float_t     GetPJTX(Int_t key1, Int_t key2) const;
94   virtual Float_t     GetPJTY(Int_t key1, Int_t key2) const;
95   virtual Float_t     GetPJTZ(Int_t key1, Int_t key2) const;
96   virtual Float_t     GetPJTE(Int_t key1, Int_t key2) const;
97   virtual Float_t     GetPJTM(Int_t key1, Int_t key2) const;
98
99   // common HIJJET2 access routines - read-only common: 
100   virtual Int_t       GetNSG() const;
101   virtual Int_t       GetNJSG(Int_t key) const;
102   virtual Int_t       GetIASG(Int_t key1, Int_t key2) const;
103   virtual Int_t       GetK1SG(Int_t key1, Int_t key2) const;
104   virtual Int_t       GetK2SG(Int_t key1, Int_t key2) const;
105   virtual Float_t     GetPXSG(Int_t key1, Int_t key2) const;
106   virtual Float_t     GetPYSG(Int_t key1, Int_t key2) const;
107   virtual Float_t     GetPZSG(Int_t key1, Int_t key2) const;
108   virtual Float_t     GetPESG(Int_t key1, Int_t key2) const;
109   virtual Float_t     GetPMSG(Int_t key1, Int_t key2) const;
110
111   // common HISTRNG access routines - read-only common: 
112   virtual Int_t       GetNFP(Int_t key1, Int_t key2) const;
113   virtual Float_t     GetPP(Int_t key1, Int_t key2)  const;
114   virtual Int_t       GetNFT(Int_t key1, Int_t key2) const;
115   virtual Float_t     GetPT(Int_t key1, Int_t key2)  const;
116
117   // common LUDAT1_AMPT common:
118   virtual void        SetPARJ(Int_t key, Float_t parm);
119   virtual void        SetMSTJ(Int_t key, Int_t   parm);   
120    
121   // access to AMPT routines:
122   virtual void        Amptset(Double_t efrm, const char* frame, const char*
123                               proj, const char* targ, Int_t iap, Int_t izp,
124                               Int_t iat, Int_t izt);
125                               
126   virtual void        Ampt(const char* frame, Double_t bmin, Double_t bmax);
127
128   virtual Float_t     Profile(Float_t b);
129
130   // access to Jetset routines
131   virtual void        Rluget(Int_t lfn, Int_t move=0);
132   virtual void        Rluset(Int_t lfn, Int_t move=0);   
133
134   // set AMPT specific
135   virtual void       SetIsoft(Int_t i);
136   virtual void       SetNtMax(Int_t max);
137   virtual void       SetIpop(Int_t pop);
138   virtual void       SetXmu(Float_t m);
139
140 protected:
141   Double_t     fEfrm;     // Energy in the centre of mass (CMS) or lab-frame (LAB)
142   TString      fFrame;    // Reference frame CMS or LAB
143   TString      fProj;     // Projectile name
144   TString      fTarg;     // Target name
145   Int_t        fIap;      // Atomic number of projectile
146   Int_t        fIzp;      // Charge number of projectile 
147   Int_t        fIat;      // Atomic number of target
148   Int_t        fIzt;      // Charge number of target
149   Double_t     fBmin;     // Minimum impact parameter
150   Double_t     fBmax;     // Maximum impact parameter
151   Double_t     fPhi;      //reaction plane angle (rotated from zero in C++ code)
152  
153   ClassDef(TAmpt,1)  //Interface to Ampt Event Generator
154 };
155 #endif