Fix Coverity 24835
[u/mrichter/AliRoot.git] / EVGEN / AliGenMUONCocktailpp.h
CommitLineData
103ac317 1#ifndef ALIGENMUONCOCKTAILPP_H
2#define ALIGENMUONCOCKTAILPP_H
3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
5
e5ab62dd 6//
ba762ab4 7// Class to create the coktail for physics with muons for pp collisions
8// using the The followoing sources:
9// jpsi, psiP, upsilon, upsilonP, upsilonPP, open charm and open beauty
10//
e5ab62dd 11
103ac317 12#include "AliGenCocktail.h"
aaa95f22 13#include "AliDecayer.h"
103ac317 14
15class AliGenCocktailEntry;
ba762ab4 16class AliGenParam;
103ac317 17
18class AliGenMUONCocktailpp : public AliGenCocktail
19{
20 public:
21
22 AliGenMUONCocktailpp();
4bac9bd3 23 enum CMSEnergyCode { kCMS07TeV, kCMS10TeV, kCMS14TeV, kCMS03TeVpPb, kCMS03TeVPbp, kCMS04TeVpPb, kCMS04TeVPbp, kCMS05TeVpPb, kCMS05TeVPbp, kCMS09TeVpPb, kCMS09TeVPbp, kCMS03TeVPbPb, kNCMSEs };
ba762ab4 24
103ac317 25 virtual ~AliGenMUONCocktailpp();
26 virtual void Init();
8058ead1 27 virtual void CreateCocktail();
103ac317 28 virtual void Generate();
29 Int_t GetNSucceded() const {return fNSucceded;}
30 Int_t GetNGenerated() const {return fNGenerated;}
7455632e 31 Int_t GetCentralityBin() const {return fCentralityBin;}
103ac317 32 Int_t GetMuonMultiplicity() const {return fMuonMultiplicity;}
33 Float_t GetMuonPtCut() const {return fMuonPtCut;}
f81a4aca 34 Float_t GetMuonPCut() const {return fMuonPCut;}
103ac317 35 Float_t GetMuonThetaMin() const {return fMuonThetaMinCut;}
36 Float_t GetMuonThetaMax() const {return fMuonThetaMaxCut;}
aaa95f22 37 Float_t GetMuonOriginCut() const {return fMuonOriginCut;}
38 Float_t GetDecayModeResonance()const {return fDecayModeResonance;}
39 Float_t GetDecayModePythia() const {return fDecayModePythia;}
103ac317 40
7455632e 41 void SetCentralityBin(Int_t bin) { fCentralityBin = bin;}
aaa95f22 42 void SetMuonMultiplicity(Int_t MuonMultiplicity) { fMuonMultiplicity = MuonMultiplicity;}
103ac317 43 void SetMuonPtCut(Float_t PtCut) { fMuonPtCut = PtCut;}
f81a4aca 44 void SetMuonPCut(Float_t PCut) { fMuonPCut = PCut;}
aaa95f22 45 void SetMuonOriginCut(Float_t originCut) { fMuonOriginCut = originCut;}
103ac317 46 void SetMuonThetaRange(Float_t ThetaMin, Float_t ThetaMax){
47 fMuonThetaMinCut=ThetaMin;
48 fMuonThetaMaxCut=ThetaMax; }
ba762ab4 49 void SetDecayer(AliDecayer* const decayer){fDecayer = decayer;}
aaa95f22 50 void SetDecayModeResonance(Decay_t decay){ fDecayModeResonance = decay;}
51 void SetDecayModePythia(Decay_t decay){ fDecayModePythia = decay;}
00e6c5ee 52 void SetResPolarization(Double_t JpsiPol, Double_t PsiPPol, Double_t UpsPol,
53 Double_t UpsPPol, Double_t UpsPPPol, char *PolFrame);
9ff768ee 54
ba762ab4 55 void SetCMSEnergy(CMSEnergyCode cmsEnergy);
9ff768ee 56 void SetSigmaSilent() { fSigmaSilent = kTRUE; }
4bac9bd3 57
58 void ScaleJPsi(Double_t sc) { fScaleJPsi = sc;}
59 void ScaleCharmonia(Double_t sc) { fScaleCharmonia = sc;}
60 void ScaleBottomonia(Double_t sc) { fScaleBottomonia = sc;}
61 void ScaleCCbar(Double_t sc) { fScaleCCbar = sc;}
62 void ScaleBBbar(Double_t sc) { fScaleBBbar = sc;}
63
103ac317 64 protected:
65
66 //
67 private:
93a2041b 68 AliGenMUONCocktailpp(const AliGenMUONCocktailpp &cocktail);
69 AliGenMUONCocktailpp & operator=(const AliGenMUONCocktailpp &cocktail);
ba762ab4 70
71 void AddReso2Generator(Char_t *nameReso, AliGenParam* const genReso, Double_t sigmaReso, Double_t polReso);
72
73 AliDecayer* fDecayer; // External decayer
aaa95f22 74 Decay_t fDecayModeResonance; //decay mode in which resonances are forced to decay, default: kAll
75 Decay_t fDecayModePythia; //decay mode in which particles in Pythia are forced to decay, default: kAll
103ac317 76 Int_t fMuonMultiplicity; // Muon multiplicity for the primordial trigger
77 Float_t fMuonPtCut;// Transverse momentum cut for muons
f81a4aca 78 Float_t fMuonPCut;// Momentum cut for muons
103ac317 79 Float_t fMuonThetaMinCut;// Minimum theta cut for muons
80 Float_t fMuonThetaMaxCut; // Maximum theta cut for muons
aaa95f22 81 Float_t fMuonOriginCut; //use only muons whose "part->Vz()" value is larger than fMuonOrigin
103ac317 82 Int_t fNSucceded;// Number of Succes in the (di)-muon generation in the acceptance
83 Int_t fNGenerated;// Number of generated cocktails
4bac9bd3 84 Int_t fCentralityBin; // Collision centrality bin number
85 Double_t fScaleJPsi; // xsec scale factors for onia and HF
86 Double_t fScaleCharmonia;
87 Double_t fScaleBottomonia;
88 Double_t fScaleCCbar;
89 Double_t fScaleBBbar;
ba8bf3f5 90 Double_t fJpsiPol, fChic1Pol, fChic2Pol, fPsiPPol, fUpsPol, fUpsPPol, fUpsPPPol;//Resonances polarization parameters
00e6c5ee 91 Int_t fPolFrame;//Resonances polarization frame (Collins-Soper / Helicity)
ba762ab4 92// Int_t fCMSEnergy; // CMS beam energy
93
94 Double_t fCMSEnergyTeV; // energy
95 Double_t fCMSEnergyTeVArray[kNCMSEs]; //!
96 Double_t fSigmaReaction; // xsec pp
97 Double_t fSigmaReactionArray[kNCMSEs]; //!
98 Double_t fSigmaJPsi; // xsec JPsi
99 Double_t fSigmaJPsiArray[kNCMSEs]; //!
100 Double_t fSigmaChic1; // xsec Chic1
101 Double_t fSigmaChic1Array[kNCMSEs]; //!
102 Double_t fSigmaChic2; // xsec Chic2
103 Double_t fSigmaChic2Array[kNCMSEs]; //!
104 Double_t fSigmaPsiP; // xsec Psi-prime
105 Double_t fSigmaPsiPArray[kNCMSEs]; //!
106 Double_t fSigmaUpsilon; // xsec Upsilon
107 Double_t fSigmaUpsilonArray[kNCMSEs]; //!
108 Double_t fSigmaUpsilonP; // xsec Upsilon-prime
109 Double_t fSigmaUpsilonPArray[kNCMSEs]; //!
110 Double_t fSigmaUpsilonPP; // xsec Upsilon-double-prime
111 Double_t fSigmaUpsilonPPArray[kNCMSEs]; //!
112 Double_t fSigmaCCbar; // xsec correlated charm
113 Double_t fSigmaCCbarArray[kNCMSEs]; //!
114 Double_t fSigmaBBbar; // xsec correlated beauty
115 Double_t fSigmaBBbarArray[kNCMSEs]; //!
116
9ff768ee 117 Bool_t fSigmaSilent; // hide values of cross-sections in output
103ac317 118
ba762ab4 119 ClassDef(AliGenMUONCocktailpp,5) // cocktail for physics in the Alice
103ac317 120};
121
122#endif
123
124
125