]>
Commit | Line | Data |
---|---|---|
e40b9538 | 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" | |
4ae1c9f0 | 13 | #include "AliGenEMlib.h" |
4ae1c9f0 | 14 | #include "AliDecayer.h" |
15 | #include "AliGenParam.h" | |
16 | ||
e40b9538 | 17 | |
18 | class AliGenCocktailEntry; | |
19 | ||
20 | class AliGenEMCocktail : public AliGenCocktail | |
21 | { | |
41b25ae9 | 22 | public: |
e40b9538 | 23 | |
41b25ae9 | 24 | AliGenEMCocktail(); |
25 | enum GeneratorIndex_t { kPizero=0, kEta, kRho0, kOmega, kEtaprime, kPhi, kJpsi, kSigma0, kK0s, kDeltaPlPl, kDeltaPl, kDeltaMi, kDeltaZero, kRhoPl, kRhoMi, kK0star, kDirectRealGamma, kDirectVirtGamma, kGENs }; | |
26 | enum ParticleGenerator_t { kGenPizero = 0x00001, kGenEta = 0x00002, kGenRho0 = 0x00004, kGenOmega = 0x00008, | |
27 | kGenEtaprime = 0x00010, kGenPhi = 0x000020, kGenJpsi = 0x000040, | |
28 | kGenDirectRealGamma = 0x00100, kGenDirectVirtGamma = 0x00200, kGenSigma0 = 0x00400, kGenK0s = 0x00800, | |
29 | kGenDeltaPlPl = 0x01000, kGenDeltaPl = 0x02000, kGenDeltaMi = 0x04000, kGenDeltaZero = 0x08000, | |
30 | kGenRhoPl = 0x10000, kGenRhoMi = 0x20000, kGenK0star = 0x40000, | |
31 | kGenHadrons = 0x100000, kGenGammas = 0x200000 }; | |
32 | ||
33 | virtual ~AliGenEMCocktail(); | |
34 | virtual void Init(); | |
35 | virtual void CreateCocktail(); | |
36 | virtual void Generate(); | |
37 | Float_t GetDecayMode() const { return fDecayMode ;} | |
38 | Float_t GetWeightingMode() const { return fWeightingMode ;} | |
39 | void SetDecayer(AliDecayer* const decayer) { fDecayer = decayer ;} | |
40 | void SetDecayMode(Decay_t decay) { fDecayMode = decay ;} | |
41 | void SetWeightingMode(Weighting_t weight) { fWeightingMode = weight ;} | |
42 | void SetNPart(Int_t npart){ fNPart = npart; } | |
43 | void SetPtParamPi0(AliGenEMlib::PtParamSetPi0_t PtSelect) { fPtSelectPi0 = PtSelect ;} | |
44 | void SetPtParamEta(AliGenEMlib::PtParamSetEta_t PtSelect) { fPtSelectEta = PtSelect ;} | |
45 | void SetPtParamOmega(AliGenEMlib::PtParamSetOmega_t PtSelect) { fPtSelectOmega = PtSelect ;} | |
46 | void SetPtParamPhi(AliGenEMlib::PtParamSetPhi_t PtSelect) { fPtSelectPhi = PtSelect ;} | |
47 | void SetCollisionSystem(AliGenEMlib::CollisionSystem_t col) { fCollisionSystem = col ;} | |
48 | void SetCentrality(AliGenEMlib::Centrality_t cent) { fCentrality = cent ;} | |
49 | void SetV2Systematic(AliGenEMlib::v2Sys_t v2sys) { fV2Systematic = v2sys ;} | |
50 | void SetForceGammaConversion(Bool_t force=kTRUE) { fForceConv=force ;} | |
51 | void SetHeaviestHadron(ParticleGenerator_t part); | |
e40b9538 | 52 | |
41b25ae9 | 53 | //*********************************************************************************************** |
54 | // This function allows to select the particle which should be procude based on 1 Integer value | |
55 | // this integer value is then bitwise compare to the values in SelectParticle | |
56 | // Examples: | |
57 | // a) you would like to switch on: pi0, eta, rho0, omega, eta', phi, jpsi, sigma0 and all deltas | |
58 | // implies you want the binary number: 00 1111 0100 0111 1111 = | |
59 | // which translates 62591_10 (in decimal) and F47F_16 (in hexadecimal) | |
60 | // b) you would like to switch on: pi0, eta, rho0, omega, eta', phi, sigma0 and | |
61 | // implies you want the binary number: 00 0000 0100 0011 1111 = | |
62 | // which translates 1087_10 (in decimal) and 43F_16 (in hexadecimal) | |
63 | // c) you would like to switch on: pi0, eta, rho0, omega, eta', phi, sigma0 and all deltas | |
64 | // implies you want the binary number: 00 1111 0100 0011 1111 = | |
65 | // which translates 62527_10 (in decimal) and F43F_16 (in hexadecimal) | |
66 | // d) you would like to switch on: pi0, eta, rho0, omega, eta', phi | |
67 | // implies you want the binary number: 00 0000 0000 0011 1111 = | |
68 | // which translates 63_10 (in decimal) and 3F_16 (in hexadecimal) | |
69 | //*********************************************************************************************** | |
70 | void SelectMotherParticles(UInt_t part) { fSelectedParticles=part ;} | |
71 | ||
72 | private: | |
73 | AliGenEMCocktail(const AliGenEMCocktail &cocktail); | |
74 | AliGenEMCocktail & operator=(const AliGenEMCocktail &cocktail); | |
75 | ||
76 | void AddSource2Generator(Char_t *nameReso, AliGenParam* const genReso); | |
77 | ||
78 | AliDecayer* fDecayer; // External decayer | |
79 | Decay_t fDecayMode; // decay mode in which resonances are forced to decay, default: kAll | |
80 | Weighting_t fWeightingMode; // weighting mode: kAnalog or kNonAnalog | |
81 | ||
82 | Int_t fNPart; // multiplicity of each source per event | |
83 | Double_t fYieldArray[kGENs]; // array of dN/dy for each source | |
84 | ||
85 | AliGenEMlib::CollisionSystem_t fCollisionSystem; // selected collision system | |
86 | AliGenEMlib::PtParamSetPi0_t fPtSelectPi0; // selected pT parameterization for pi0 | |
87 | AliGenEMlib::PtParamSetEta_t fPtSelectEta; // selected pT parameterization for eta | |
88 | AliGenEMlib::PtParamSetOmega_t fPtSelectOmega; // selected pT parameterization for omega | |
89 | AliGenEMlib::PtParamSetPhi_t fPtSelectPhi; // selected pT parameterization for phi | |
90 | AliGenEMlib::Centrality_t fCentrality; // selected centrality | |
91 | AliGenEMlib::v2Sys_t fV2Systematic; // selected systematic error for v2 parameters | |
92 | ||
93 | Bool_t fForceConv; // select whether you want to force all gammas to convert imidediately | |
94 | UInt_t fSelectedParticles; // which particles to simulate, allows to switch on and off 32 different particles | |
e40b9538 | 95 | |
4ae1c9f0 | 96 | |
4ae1c9f0 | 97 | |
41b25ae9 | 98 | ClassDef(AliGenEMCocktail,2) // cocktail for EM physics |
e40b9538 | 99 | }; |
100 | ||
101 | #endif | |
102 | ||
103 | ||
104 |