PAR: includes from previously enabled PARfiles
[u/mrichter/AliRoot.git] / TDPMjet / TDPMjet.h
1 #ifndef ROOT_TDPMjet
2 #define ROOT_TDPMjet
3
4 //+SEQ,CopyRight,T=NOINCLUDE.
5
6 //////////////////////////////////////////////////////////////////////////
7 //                                                                      //
8 //                                TDPMjet                               //
9 //                                                                      //
10 // This class implements an interface to the DPMJET 3.0 event generator.//
11 //                                                                      //
12 //////////////////////////////////////////////////////////////////////////
13
14 #ifndef ROOT_TGenerator
15 //*KEEP,TGenerator.
16 #include "TGenerator.h"
17 //*KEND.
18 #endif
19
20 typedef enum {kDpmMb, kDpmMbNonDiffr, kDpmDiffr, kDpmSingleDiffr, kDpmDoubleDiffr, kDpmCentralDiffr} DpmProcess_t;
21 class TClonesArray;
22
23
24 class TDPMjet : public TGenerator {
25
26 public:
27    
28    TDPMjet();
29    TDPMjet(DpmProcess_t ip, Int_t Ip, Int_t Ipz, Int_t It, Int_t Itz, Double_t Epn, Double_t CMEn);
30
31    virtual       ~TDPMjet() {;}
32
33    virtual void  Initialize();
34
35    virtual void  GenerateEvent();
36
37    virtual Int_t ImportParticles(TClonesArray *particles, Option_t *option="");
38    virtual TObjArray      *ImportParticles(Option_t * /*option*/) {return 0;}
39    
40    // Parameters for the generation:
41    virtual void  SetNEvent(Int_t iev)    {fNEvent = iev;}
42    virtual Int_t GetNEvent()             {return fNEvent;}
43    
44    virtual void  SetfIp(Int_t Ip)        {fIp = Ip;}
45    virtual Int_t GetfIp() const          {return fIp;}
46
47    virtual void  SetfIpz(Int_t Ipz)      {fIpz = Ipz;}
48    virtual Int_t GetfIpz() const         {return fIpz;}
49
50    virtual void  SetfIt(Int_t It)        {fIt = It;}
51    virtual Int_t GetfIt() const          {return fIt;}
52
53    virtual void  SetfItz(Int_t Itz)      {fItz = Itz;}
54    virtual Int_t GetfItz() const         {return fItz;}
55
56    virtual void  SetfEpn(Double_t Epn)   {fEpn = Epn;}
57    virtual Double_t GetfEpn() const      {return fEpn;}
58
59    virtual void  SetfCMEn(Double_t CMEn) {fCMEn = CMEn;}
60    virtual Double_t GetfCMEn() const     {return fCMEn;}
61
62    virtual void  SetfIdp(Int_t idp)      {fIdp = idp;}
63    virtual Int_t GetfIdp() const         {return fIdp;}
64
65    virtual void SetbRange(Double_t bmin, Double_t bmax) 
66                 {fBmin = bmin; fBmax = bmax;} 
67    virtual Double_t GetMinImpactParameter() const {return fBmin;}  
68    virtual Double_t GetMaxImpactParameter() const {return fBmax;}
69
70    virtual void  SetfFCentr(Int_t icentr)  {fFCentr = icentr;}
71    virtual Int_t GetfFCentr() const        {return fFCentr;}
72
73    virtual void  SetPi0Decay(Int_t iPi0)    {fPi0Decay = iPi0;}
74    virtual void  SetDecayAll(Int_t iDecAll) {fDecayAll = iDecAll;}
75    
76    virtual void  SetFragmentProd(Bool_t val) {fFragmentation = val;}
77    
78    // Access to DPMJET common blocks:
79    virtual Int_t    GetEvNum() const;             
80    virtual Int_t    GetEntriesNum() const;                
81    virtual Int_t    GetNumStablePc() const;               
82    virtual Float_t  GetTotEnergy() const;
83    virtual Int_t    GetStatusCode(Int_t evnum) const; 
84    virtual Int_t    GetPDGCode(Int_t evnum) const; 
85    virtual Double_t Getpx(Int_t evnum) const;  
86    virtual Double_t Getpy(Int_t evnum) const;  
87    virtual Double_t Getpz(Int_t evnum) const;  
88    virtual Double_t GetEnergy(Int_t evnum) const;  
89    virtual Double_t GetMass(Int_t evnum) const;
90    
91    virtual Int_t    GetFragmentA(Int_t evnum) const;    
92    virtual Int_t    GetFragmentZ(Int_t evnum) const;    
93    
94    virtual Double_t GetXSFrac() const;
95    virtual Double_t GetBImpac() const;
96    virtual Double_t GetProjRadius() const;
97    virtual Double_t GetTargRadius() const;
98    virtual Int_t GetProjWounded() const;
99    virtual Int_t GetTargWounded() const;
100    virtual Int_t GetProjParticipants() const;
101    virtual Int_t GetTargParticipants() const;
102    virtual Int_t    GetProcessCode() const;
103
104    // Phojet access (POEVT1)
105    virtual Int_t NHEP()                   const;
106    virtual Int_t ISTHEP(Int_t i)          const;
107    virtual Int_t IDHEP(Int_t i)           const;
108    virtual Double_t PHEP(Int_t i, Int_t j)   const;
109    
110       
111            
112    
113    // Access to DPMJET routines:
114    virtual void Dt_Dtuini(int nevts, double epn, int npmass, int npchar, 
115                           int ntmass, int ntchar, int idp, int iemu);
116         
117    virtual void Dt_Kkinc(int npmass, int npchar, int ntmass, int ntchar, 
118                          int idp, double elab, int kkmat, int irej);
119
120    virtual void Pho_Phist(int imode, double weight);
121
122    virtual void Dt_Dtuout();
123
124    virtual void Dt_Rndm(int idummy);   
125    virtual void Dt_Rndmst(int na1, int na2, int na3, int nb1);   
126    virtual void Dt_Rndmin(int u, int c, int cd, int cm, int i, int j);   
127    virtual void Dt_Rndmou(int u, int c, int cd, int cm, int i, int j);   
128
129    
130 protected:
131
132    Int_t        fNEvent;  // Event number to be generated 
133    Int_t        fIp;      // Projectile mass
134    Int_t        fIpz;     // Projectile charge
135    Int_t        fIt;      // Target mass
136    Int_t        fItz;     // Target charge
137    Float_t      fEpn;     // Beam energy
138    Float_t      fPpn;     // Beam momentum
139    Float_t      fCMEn;    // Energy in CM 
140    Int_t        fIdp;     // Internal particle code
141    Float_t      fBmin;    // Minimum impact parameter
142    Float_t      fBmax;    // Maximum impact parameter
143    Int_t        fFCentr;  // Flag to force central collisions
144    Int_t        fPi0Decay;// Flag for pi0 decays
145    Int_t        fDecayAll;// Flag to decay also long-lived particles
146    DpmProcess_t fProcess; // Process type
147    //
148    Bool_t       fFragmentation; // Allows evaporation and fragments production
149    
150    ClassDef(TDPMjet,3)  //Interface to DPMJET Event Generator
151 };
152
153 #endif
154
155
156
157
158
159
160