Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[u/mrichter/AliRoot.git] / EVGEN / AliGenEMCocktail.h
CommitLineData
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"
e40b9538 14#include "AliPythia.h"
4ae1c9f0 15#include "AliDecayer.h"
16#include "AliGenParam.h"
17
e40b9538 18
19class AliGenCocktailEntry;
20
21class AliGenEMCocktail : public AliGenCocktail
22{
4ae1c9f0 23public:
e40b9538 24
25 AliGenEMCocktail();
1b589c8a 26 enum GeneratorIndex_t { kPizero=0, kEta, kRho, kOmega, kEtaprime, kPhi, kJpsi, kDirectRealGamma, kDirectVirtGamma, kGENs };
27 enum ParticeGenerator_t { kGenPizero=0x001, kGenEta=0x002, kGenRho=0x004, kGenOmega=0x008, kGenEtaprime=0x010, kGenPhi=0x020, kGenJpsi=0x040, kGenDirectRealGamma=0x100, kGenDirectVirtGamma=0x200, kGenHadrons=0x7f, kGenGammas=0x300 };
e40b9538 28
29 virtual ~AliGenEMCocktail();
30 virtual void Init();
31 virtual void CreateCocktail();
32 virtual void Generate();
33 Float_t GetDecayMode() const {return fDecayMode;}
34 Float_t GetWeightingMode() const {return fWeightingMode;}
e40b9538 35 void SetDecayer(AliDecayer* const decayer){fDecayer = decayer;}
36 void SetDecayMode(Decay_t decay){ fDecayMode = decay;}
37 void SetWeightingMode(Weighting_t weight){ fWeightingMode = weight;}
4ae1c9f0 38 void SetNPart(Int_t npart){ fNPart = npart; }
1b589c8a 39 void SetPtParam(AliGenEMlib::PtParamSet_t PtSelect){ fPtSelect = PtSelect; }
40 void SetCentrality(AliGenEMlib::Centrality_t cent){ fCentrality = cent; }
4ae1c9f0 41 void SetV2Systematic(Int_t v2sys){ fV2Systematic = v2sys; }
42 void SetForceGammaConversion(Bool_t force=kTRUE){ fForceConv=force; }
1b589c8a 43 void SetHeaviestHadron(ParticeGenerator_t part);
44 void SelectMotherParticles(ParticeGenerator_t part){ fSelectedParticles=part; }
e40b9538 45
4ae1c9f0 46private:
e40b9538 47 AliGenEMCocktail(const AliGenEMCocktail &cocktail);
48 AliGenEMCocktail & operator=(const AliGenEMCocktail &cocktail);
49
50 void AddSource2Generator(Char_t *nameReso, AliGenParam* const genReso);
51
52 AliDecayer* fDecayer; // External decayer
4ae1c9f0 53 Decay_t fDecayMode; //decay mode in which resonances are forced to decay, default: kAll
54 Weighting_t fWeightingMode; //weighting mode: kAnalog or kNonAnalog
e40b9538 55
56 Int_t fNPart; // multiplicity of each source per event
57 Double_t fYieldArray[kGENs]; // array of dN/dy for each source
58
1b589c8a 59 AliGenEMlib::PtParamSet_t fPtSelect; // selected pT parameterization
60 AliGenEMlib::Centrality_t fCentrality; // selected centrality
4ae1c9f0 61 Int_t fV2Systematic; //selected systematic error for v2 parameters
62
63 Bool_t fForceConv; //select whether you want to force all gammas to convert imidediately
6a8b015a 64 Int_t fSelectedParticles; //which particles to simulate
4ae1c9f0 65
e40b9538 66 ClassDef(AliGenEMCocktail,1) // cocktail for EM physics
67};
68
69#endif
70
71
72