]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EVGEN/AliGenPythia.h
Add default case to GetPt, GetY and GetIp to avoid warning when compiling with optimi...
[u/mrichter/AliRoot.git] / EVGEN / AliGenPythia.h
1 #ifndef AliGenPythia_H
2 #define AliGenPythia_H
3 /////////////////////////////////////////////////////////
4 //  Manager and hits classes for set:MUON version 0    //
5 /////////////////////////////////////////////////////////
6 #include "AliGenerator.h"
7 #include "TNamed.h"
8 #include "TF1.h"
9 #include "TArrayF.h"
10 #include "TTree.h"
11 #include "AliPythia.h"
12 #include "TArrayI.h"
13 #include "TMCParticle.h"
14
15 class AliGenPythia : public AliGenerator
16 {
17  protected:
18     Process_t   fProcess;
19     StrucFunc_t fStrucFunc;
20     Decay_t     fForceDecay;
21     Float_t     fEnergyCMS;
22     Float_t     fKineBias;
23     Int_t       fTrials;
24     TArrayI     fParentSelect;
25     TArrayI     fChildSelect;
26     Float_t     fXsection;
27     AliPythia   *fPythia;
28     Float_t     fPtHardMin;
29     Float_t     fPtHardMax;    
30
31  private:
32     // check if particle is selected as parent particle
33     Bool_t ParentSelected(Int_t ip);
34     // check if particle is selected as child particle
35     Bool_t ChildSelected(Int_t ip);
36     // all kinematic selection cuts go here 
37     Bool_t KinematicSelection(TMCParticle *particle);
38     // adjust the weight from kinematic cuts
39     void   AdjustWeights();
40  public:
41     AliGenPythia();
42     AliGenPythia(Int_t npart);
43     virtual ~AliGenPythia();
44     virtual void    Generate();
45     virtual void    Init();
46     // select process type
47     virtual void    SetProcess(Process_t proc=charm) {fProcess=proc;}
48     // select structure function
49     virtual void    SetStrucFunc(StrucFunc_t func=GRV_HO) {fStrucFunc=func;}
50     // select pt of hard scattering 
51     virtual void    SetPtHard(Float_t ptmin=0, Float_t ptmax=1.e10)
52         {fPtHardMin=ptmin; fPtHardMax=ptmax; }
53     // set centre of mass energy
54     virtual void    SetEnergyCMS(Float_t energy=5500) {fEnergyCMS=energy;}
55     // force decay type
56     virtual void    ForceDecay(Decay_t decay=semimuonic) {fForceDecay=decay;}
57     // get cross section of process
58     virtual Float_t GetXsection() {return fXsection;}
59     ClassDef(AliGenPythia,1)
60 };
61 #endif
62
63
64
65
66