4 //+SEQ,CopyRight,T=NOINCLUDE.
6 //////////////////////////////////////////////////////////////////////////
10 // This class implements an interface to the DPMJET 3.0 event generator.//
12 //////////////////////////////////////////////////////////////////////////
14 #ifndef ROOT_TGenerator
16 #include "TGenerator.h"
20 typedef enum {kDpmMb, kDpmMbNonDiffr, kDpmDiffr, kDpmSingleDiffr, kDpmDoubleDiffr, kDpmCentralDiffr} DpmProcess_t;
24 class TDPMjet : public TGenerator {
29 TDPMjet(DpmProcess_t ip, Int_t Ip, Int_t Ipz, Int_t It, Int_t Itz, Double_t Epn, Double_t CMEn);
31 virtual ~TDPMjet() {;}
33 virtual void Initialize();
35 virtual void GenerateEvent();
37 virtual Int_t ImportParticles(TClonesArray *particles, Option_t *option="");
38 virtual TObjArray *ImportParticles(Option_t * /*option*/) {return 0;}
40 // Parameters for the generation:
41 virtual void SetNEvent(Int_t iev) {fNEvent = iev;}
42 virtual Int_t GetNEvent() {return fNEvent;}
44 virtual void SetfIp(Int_t Ip) {fIp = Ip;}
45 virtual Int_t GetfIp() const {return fIp;}
47 virtual void SetfIpz(Int_t Ipz) {fIpz = Ipz;}
48 virtual Int_t GetfIpz() const {return fIpz;}
50 virtual void SetfIt(Int_t It) {fIt = It;}
51 virtual Int_t GetfIt() const {return fIt;}
53 virtual void SetfItz(Int_t Itz) {fItz = Itz;}
54 virtual Int_t GetfItz() const {return fItz;}
56 virtual void SetfEpn(Double_t Epn) {fEpn = Epn;}
57 virtual Double_t GetfEpn() const {return fEpn;}
59 virtual void SetfCMEn(Double_t CMEn) {fCMEn = CMEn;}
60 virtual Double_t GetfCMEn() const {return fCMEn;}
62 virtual void SetfIdp(Int_t idp) {fIdp = idp;}
63 virtual Int_t GetfIdp() const {return fIdp;}
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;}
70 virtual void SetfFCentr(Int_t icentr) {fFCentr = icentr;}
71 virtual Int_t GetfFCentr() const {return fFCentr;}
73 virtual void SetPi0Decay(Int_t iPi0) {fPi0Decay = iPi0;}
74 virtual void SetDecayAll(Int_t iDecAll) {fDecayAll = iDecAll;}
76 virtual void SetFragmentProd(Bool_t val) {fFragmentation = val;}
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;
91 virtual Int_t GetFragmentA(Int_t evnum) const;
92 virtual Int_t GetFragmentZ(Int_t evnum) const;
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;
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;
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);
117 virtual void Dt_Kkinc(int npmass, int npchar, int ntmass, int ntchar,
118 int idp, double elab, int kkmat, int irej);
120 virtual void Pho_Phist(int imode, double weight);
122 virtual void Dt_Dtuout();
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);
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
148 Bool_t fFragmentation; // Allows evaporation and fragments production
150 ClassDef(TDPMjet,3) //Interface to DPMJET Event Generator