Changes concerning the cocktail simulations used for heavy flavour v2 analyses.
[u/mrichter/AliRoot.git] / EVGEN / AliGenEMCocktail.h
1 #ifndef ALIGENEMCOCKTAIL_H
2 #define ALIGENEMCOCKTAIL_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 //
7 // Class to create the cocktail for physics with electrons, di-electrons,
8 // and photons from the decay of the following sources:
9 // pizero, eta, rho, omega, etaprime, phi
10 //
11
12 #include "AliGenCocktail.h"
13 #include "AliGenEMlib.h"
14 #include "AliPythia.h"
15 #include "AliDecayer.h"
16 #include "AliGenParam.h"
17
18
19 class AliGenCocktailEntry;
20
21 class AliGenEMCocktail : public AliGenCocktail
22 {
23 public:
24
25     AliGenEMCocktail();
26   enum GeneratorCode { kGenPizero=0, kGenEta, kGenRho, kGenOmega, kGenEtaprime, kGenPhi, kGenJpsi, kGENs };    
27
28     virtual ~AliGenEMCocktail();    
29     virtual void Init();
30     virtual void CreateCocktail();
31     virtual void Generate();    
32     Float_t GetDecayMode()         const {return fDecayMode;}
33     Float_t GetWeightingMode()     const {return fWeightingMode;}
34     void    SetDecayer(AliDecayer* const decayer){fDecayer = decayer;}
35     void    SetDecayMode(Decay_t decay){ fDecayMode = decay;}
36     void    SetWeightingMode(Weighting_t weight){ fWeightingMode = weight;}
37   void    SetNPart(Int_t npart){ fNPart = npart; }
38   void    SetPtParam(Int_t PtSelect){ fPtSelect = PtSelect; }
39   void    SetCentrality(Int_t cent){ fCentrality = cent; }
40   void    SetV2Systematic(Int_t v2sys){ fV2Systematic = v2sys; }
41   void    SetForceGammaConversion(Bool_t force=kTRUE){ fForceConv=force; }
42   void    SetHeaviestParticle(Int_t part){ fHeaviestParticle=part; }
43     
44 protected:
45
46   TVector3& OrthogonalVector(TVector3 &inVec);
47     
48 private:
49     AliGenEMCocktail(const AliGenEMCocktail &cocktail); 
50     AliGenEMCocktail & operator=(const AliGenEMCocktail &cocktail); 
51
52     void AddSource2Generator(Char_t *nameReso, AliGenParam* const genReso);
53     
54     AliDecayer* fDecayer;        // External decayer
55   Decay_t fDecayMode;   //decay mode in which resonances are forced to decay, default: kAll
56   Weighting_t fWeightingMode; //weighting mode: kAnalog or kNonAnalog
57     
58     Int_t    fNPart;             // multiplicity of each source per event
59     Double_t fYieldArray[kGENs]; // array of dN/dy for each source
60
61   Int_t fPtSelect; // selected pT parameterization
62   Int_t fCentrality; // selected centrality
63   Int_t fV2Systematic; //selected systematic error for v2 parameters
64
65   Bool_t fForceConv; //select whether you want to force all gammas to convert imidediately
66   Int_t fHeaviestParticle; //select up to which particle to simulate
67
68     ClassDef(AliGenEMCocktail,1)  //  cocktail for EM physics
69 };
70
71 #endif
72
73
74