]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TDPMjet/TDPMjet.h
Possibility to simulate pile-up event with correct time distribution.
[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 class TDPMjet : public TGenerator {
21
22 public:
23    
24    TDPMjet();
25    TDPMjet(Int_t Ip, Int_t Ipz, Int_t It, Int_t Itz, Double_t Epn, Double_t CMEn);
26
27    virtual       ~TDPMjet() {;}
28
29    virtual void  Initialize();
30
31    virtual void  GenerateEvent();
32
33    virtual Int_t ImportParticles(TClonesArray *particles, Option_t *option="");
34
35    
36    // Parameters for the generation:
37    virtual void  SetNEvent(Int_t iev)    {fNEvent = iev;}
38    virtual Int_t GetNEvent()             {return fNEvent;}
39    
40    virtual void  SetfIp(Int_t Ip)        {fIp = Ip;}
41    virtual Int_t GetfIp() const          {return fIp;}
42
43    virtual void  SetfIpz(Int_t Ipz)      {fIpz = Ipz;}
44    virtual Int_t GetfIpz() const         {return fIpz;}
45
46    virtual void  SetfIt(Int_t It)        {fIt = It;}
47    virtual Int_t GetfIt() const          {return fIt;}
48
49    virtual void  SetfItz(Int_t Itz)      {fItz = Itz;}
50    virtual Int_t GetfItz() const         {return fItz;}
51
52    virtual void  SetfEpn(Double_t Epn)   {fEpn = Epn;}
53    virtual Double_t GetfEpn() const      {return fEpn;}
54
55    virtual void  SetfCMEn(Double_t CMEn) {fCMEn = CMEn;}
56    virtual Double_t GetfCMEn() const     {return fCMEn;}
57
58    virtual void  SetfIdp(Int_t idp)      {fIdp = idp;}
59    virtual Int_t GetfIdp() const         {return fIdp;}
60
61    virtual void SetbRange(Double_t bmin, Double_t bmax) 
62                 {fBmin = bmin; fBmax = bmax;} 
63    virtual Double_t GetMinImpactParameter() const {return fBmin;}  
64    virtual Double_t GetMaxImpactParameter() const {return fBmax;}  
65    
66    virtual void  SetfFCentr(Int_t icentr)  {fFCentr = icentr;}
67    virtual Int_t GetfFCentr() const        {return fFCentr;}
68
69    // Access to DPMJET common blocks:
70    virtual Int_t    GetEvNum() const;             
71    virtual Int_t    GetEntriesNum() const;                
72    virtual Int_t    GetNumStablePc() const;               
73    virtual Float_t  GetTotEnergy() const;
74    virtual Int_t    GetStatusCode(Int_t evnum) const; 
75    virtual Int_t    GetPDGCode(Int_t evnum) const; 
76    virtual Double_t Getpx(Int_t evnum) const;  
77    virtual Double_t Getpy(Int_t evnum) const;  
78    virtual Double_t Getpz(Int_t evnum) const;  
79    virtual Double_t GetEnergy(Int_t evnum) const;  
80    virtual Double_t GetMass(Int_t evnum) const;
81    
82    virtual Int_t    GetFragmentA(Int_t evnum) const;    
83    virtual Int_t    GetFragmentZ(Int_t evnum) const;    
84    
85    virtual Double_t GetXSFrac() const;
86    virtual Double_t GetBImpac() const;
87    virtual Double_t GetProjRadius() const;
88    virtual Double_t GetTargRadius() const;
89    virtual Int_t GetProjWounded() const;
90    virtual Int_t GetTargWounded() const;
91    virtual Int_t GetProjSpectators() const;
92    virtual Int_t GetTargSpectators() const;
93    
94   
95    // Access to DPMJET routines:
96    virtual void Dt_Dtuini(int nevts, double epn, int npmass, int npchar, 
97                           int ntmass, int ntchar, int idp, int iemu);
98         
99    virtual void Dt_Kkinc(int npmass, int npchar, int ntmass, int ntchar, 
100                          int idp, double elab, int kkmat, int irej);
101
102    virtual void Pho_Phist(int imode, double weight);
103
104    virtual void Dt_Dtuout();
105
106    virtual void Dt_Rndm(int idummy);   
107    virtual void Dt_Rndmst(int na1, int na2, int na3, int nb1);   
108    virtual void Dt_Rndmin(int u, int c, int cd, int cm, int i, int j);   
109    virtual void Dt_Rndmou(int u, int c, int cd, int cm, int i, int j);   
110
111 protected:
112
113    Int_t    fNEvent;    // Event number to be generated 
114    Int_t    fIp;        // Projectile mass
115    Int_t    fIpz;       // Projectile charge
116    Int_t    fIt;        // Target mass
117    Int_t    fItz;       // Target charge
118    Double_t fEpn;       // Beam energy
119    Double_t fPpn;       // Beam momentum
120    Double_t fCMEn;      // Energy in CM 
121    Int_t    fIdp;       // Internal particle code
122    Double_t fBmin;      // Minimum impact parameter
123    Double_t fBmax;      // Maximum impact parameter
124    Int_t    fFCentr;    // Flag to force central collisions
125
126    ClassDef(TDPMjet,1)  //Interface to DPMJET Event Generator
127 };
128
129 #endif
130
131
132
133
134
135
136