]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TDPMjet/AliGenDPMjet.h
Removing obsolete class AliITSGeant3Geometry - Test beam simulation classes back...
[u/mrichter/AliRoot.git] / TDPMjet / AliGenDPMjet.h
1 #ifndef ALIGENDPMJET_H
2 #define ALIGENDPMJET_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 // Generator using DPMJET as an external generator
7 // The main DPMJET options are accessable for the user through this interface.
8
9 #include "AliGenMC.h"
10 #include "TDPMjet.h"
11 #include <TString.h>
12 #include <TArrayI.h>
13
14 class TDPMjet;
15 class TArrayI;
16 class TParticle;
17 class TClonesArray;
18 class TGraph;
19
20 class AliGenDPMjet : public AliGenMC
21 {
22
23  public:
24     AliGenDPMjet();
25     AliGenDPMjet(Int_t npart);
26     AliGenDPMjet(const AliGenDPMjet &Dpmjet);
27     virtual ~AliGenDPMjet(); 
28     virtual void    Generate();
29     virtual void    Init();
30     virtual void    SetEnergyCMS(Float_t energy = 14000.) {fEnergyCMS = energy; fBeamEn = energy / 2.;}
31     virtual void    SetImpactParameterRange(Float_t bmin=0., Float_t bmax=16.)
32                         {fMinImpactParam=bmin; fMaxImpactParam=bmax;}
33     virtual void    SetProcess(DpmProcess_t iproc) {fProcess = iproc;}
34     virtual void    SetCentral(Int_t icentr=-2) {fICentr = icentr;}
35     virtual void    SetFlavor(Int_t flag=0)           {fFlavor     = flag;}
36     virtual void    SetSelectAll(Int_t flag=0)        {fSelectAll  = flag;}
37     virtual void    SetSpectators(Int_t spects=1)     {fSpectators = spects;}
38     virtual void    SetBoostLHC(Int_t flag=0)         {fLHC        = flag;}
39     virtual void    SetPi0Decay(Int_t iPi0)  {fPi0Decay = iPi0;}
40     virtual Float_t GetEnergyCMS() {return fEnergyCMS;}
41     virtual void    GetProjectile(Int_t& a, Int_t& z)
42                         {a = fAProjectile; z = fZProjectile;}    
43     virtual void    GetTarget(Int_t& a, Int_t& z)
44                         {a = fATarget; z = fZTarget;}    
45     virtual void    GetImpactParameterRange(Float_t& bmin, Float_t& bmax)
46                         {bmin = fMinImpactParam; bmax = fMaxImpactParam;}
47     virtual Int_t   GetSpectators()        {return fSpectators;}
48     virtual Int_t   GetFlavor()            {return fFlavor;}
49
50     // Temporeaneo!?!
51     virtual void    SetGenImpPar(Float_t bValue) {fGenImpPar=bValue;}
52     virtual Float_t GetGenImpPar() {return fGenImpPar;}
53     
54     AliGenDPMjet &  operator=(const AliGenDPMjet & rhs);
55
56  protected:
57     Bool_t SelectFlavor(Int_t pid);
58     void   MakeHeader();
59
60  protected:
61     Float_t       fBeamEn;         // beam energy
62     Float_t       fEnergyCMS;      // Centre of mass energy
63     Float_t       fMinImpactParam; // minimum impact parameter
64     Float_t       fMaxImpactParam; // maximum impact parameter  
65     Int_t         fICentr;         // Flag to force central production
66     Int_t         fSelectAll;      // Flag to write the full event
67     Int_t         fFlavor;         // Selected particle flavor 4: charm+beauty 5: beauty
68     Int_t         fTrials;         // Number of trials
69     Int_t         fSpectators;     // put spectators on stack
70     Int_t         fSpecn;          // Num. of spectator neutrons
71     Int_t         fSpecp;          // Num. of spectator protons
72     TDPMjet      *fDPMjet;         // DPMjet
73     TClonesArray *fParticles;      // Particle List
74     Int_t         fNoGammas;       // Don't write gammas if flag "on"
75     Int_t         fLHC;            // Assume LHC as lab frame
76     Int_t         fPi0Decay;       // Flag for pi0 decays
77     Float_t       fGenImpPar;      // GeneratedImpactParameter
78     DpmProcess_t  fProcess;        // Process type
79     
80  private:
81     // adjust the weight from kinematic cuts
82     void   AdjustWeights();
83     // check seleted daughters
84     Bool_t DaughtersSelection(TParticle* iparticle);
85     // check if stable
86     Bool_t Stable(TParticle*  particle);
87     
88     ClassDef(AliGenDPMjet,1) // AliGenerator interface to DPMJET
89 };
90 #endif
91
92
93
94
95