]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EVGEN/AliGenParam.h
Introduction of new ITS and CPV and PHOS separated
[u/mrichter/AliRoot.git] / EVGEN / AliGenParam.h
1
2 #ifndef AliGenParam_H
3 #define AliGenParam_H
4 #include "AliGenerator.h"
5 #include "AliPythia.h"
6 #include "TNamed.h"
7 #include "TF1.h"
8 #include "TArrayF.h"
9 #include "TArrayI.h"
10 #include "TTree.h"
11 #include "TParticle.h"
12
13 //-------------------------------------------------------------
14 class AliGenParam : public AliGenerator
15 {
16 protected:
17   Double_t (*fPtParaFunc)(Double_t*, Double_t*); //! Pointer to Pt parametrisation function
18   Double_t (*fYParaFunc )(Double_t*, Double_t*); //! Pointer to Y parametrisation function
19   Int_t    (*fIpParaFunc )();    //! Pointer to particle type parametrisation function
20     TF1* fPtPara;
21     TF1* fYPara;
22     Param_t     fParam;
23     Float_t     fdNdy0;
24     Float_t     fYWgt;
25     Float_t     fPtWgt;
26     Weighting_t fAnalog;       //Flaf for anolog or pt-weighted generation
27     Float_t     fBias;
28     Int_t       fTrials;
29     Decay_t     fForceDecay;
30     Int_t       fCutOnChild;
31     TArrayI   fChildSelect;
32     AliPythia *fPythia;
33  private:
34     // check if particle is selected as child
35     Bool_t ChildSelected(Int_t ip);
36     // all kinematic selection goes here
37     Bool_t KinematicSelection(TParticle *particle);
38  public:
39   AliGenParam();
40   AliGenParam(Int_t npart, Param_t param);
41 //                 Double_t (*PtPara)(Double_t*, Double_t*),
42 //                 Double_t (*YPara )(Double_t*, Double_t*));
43   virtual ~AliGenParam();
44   virtual void Generate();
45   virtual void Init();
46   // select particle type
47   virtual void SetParam(Param_t param=jpsi_p) {fParam=param;}
48   // force decay type
49   virtual void ForceDecay(Decay_t decay=dimuon) {fForceDecay=decay;}
50   virtual void SetWeighting(Weighting_t flag=analog) {fAnalog=flag;}    
51   virtual void SetCutOnChild(Int_t flag=0) {fCutOnChild=flag;}
52   ClassDef(AliGenParam,1) // Generator using parameterised pt- and y-distribution
53 };
54 #endif
55
56
57
58
59
60
61
62
63
64