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 */
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
12 #include "AliGenCocktail.h"
13 #include "AliDecayer.h"
15 class AliGenCocktailEntry;
18 class AliGenMUONCocktailpp : public AliGenCocktail
22 AliGenMUONCocktailpp();
23 enum CMSEnergyCode { kCMS07TeV, kCMS10TeV, kCMS14TeV, kNCMSEs };
25 virtual ~AliGenMUONCocktailpp();
27 virtual void CreateCocktail();
28 virtual void Generate();
29 Int_t GetNSucceded() const {return fNSucceded;}
30 Int_t GetNGenerated() const {return fNGenerated;}
31 Int_t GetMuonMultiplicity() const {return fMuonMultiplicity;}
32 Float_t GetMuonPtCut() const {return fMuonPtCut;}
33 Float_t GetMuonPCut() const {return fMuonPCut;}
34 Float_t GetMuonThetaMin() const {return fMuonThetaMinCut;}
35 Float_t GetMuonThetaMax() const {return fMuonThetaMaxCut;}
36 Float_t GetMuonOriginCut() const {return fMuonOriginCut;}
37 Float_t GetDecayModeResonance()const {return fDecayModeResonance;}
38 Float_t GetDecayModePythia() const {return fDecayModePythia;}
40 void SetMuonMultiplicity(Int_t MuonMultiplicity) { fMuonMultiplicity = MuonMultiplicity;}
41 void SetMuonPtCut(Float_t PtCut) { fMuonPtCut = PtCut;}
42 void SetMuonPCut(Float_t PCut) { fMuonPCut = PCut;}
43 void SetMuonOriginCut(Float_t originCut) { fMuonOriginCut = originCut;}
44 void SetMuonThetaRange(Float_t ThetaMin, Float_t ThetaMax){
45 fMuonThetaMinCut=ThetaMin;
46 fMuonThetaMaxCut=ThetaMax; }
47 void SetDecayer(AliDecayer* const decayer){fDecayer = decayer;}
48 void SetDecayModeResonance(Decay_t decay){ fDecayModeResonance = decay;}
49 void SetDecayModePythia(Decay_t decay){ fDecayModePythia = decay;}
50 void SetResPolarization(Double_t JpsiPol, Double_t PsiPPol, Double_t UpsPol,
51 Double_t UpsPPol, Double_t UpsPPPol, char *PolFrame);
53 void SetCMSEnergy(CMSEnergyCode cmsEnergy);
54 void SetSigmaSilent() { fSigmaSilent = kTRUE; }
60 AliGenMUONCocktailpp(const AliGenMUONCocktailpp &cocktail);
61 AliGenMUONCocktailpp & operator=(const AliGenMUONCocktailpp &cocktail);
63 void AddReso2Generator(Char_t *nameReso, AliGenParam* const genReso, Double_t sigmaReso, Double_t polReso);
65 AliDecayer* fDecayer; // External decayer
66 Decay_t fDecayModeResonance; //decay mode in which resonances are forced to decay, default: kAll
67 Decay_t fDecayModePythia; //decay mode in which particles in Pythia are forced to decay, default: kAll
68 Int_t fMuonMultiplicity; // Muon multiplicity for the primordial trigger
69 Float_t fMuonPtCut;// Transverse momentum cut for muons
70 Float_t fMuonPCut;// Momentum cut for muons
71 Float_t fMuonThetaMinCut;// Minimum theta cut for muons
72 Float_t fMuonThetaMaxCut; // Maximum theta cut for muons
73 Float_t fMuonOriginCut; //use only muons whose "part->Vz()" value is larger than fMuonOrigin
74 Int_t fNSucceded;// Number of Succes in the (di)-muon generation in the acceptance
75 Int_t fNGenerated;// Number of generated cocktails
76 Double_t fJpsiPol, fChic1Pol, fChic2Pol, fPsiPPol, fUpsPol, fUpsPPol, fUpsPPPol;//Resonances polarization parameters
77 Int_t fPolFrame;//Resonances polarization frame (Collins-Soper / Helicity)
78 // Int_t fCMSEnergy; // CMS beam energy
80 Double_t fCMSEnergyTeV; // energy
81 Double_t fCMSEnergyTeVArray[kNCMSEs]; //!
82 Double_t fSigmaReaction; // xsec pp
83 Double_t fSigmaReactionArray[kNCMSEs]; //!
84 Double_t fSigmaJPsi; // xsec JPsi
85 Double_t fSigmaJPsiArray[kNCMSEs]; //!
86 Double_t fSigmaChic1; // xsec Chic1
87 Double_t fSigmaChic1Array[kNCMSEs]; //!
88 Double_t fSigmaChic2; // xsec Chic2
89 Double_t fSigmaChic2Array[kNCMSEs]; //!
90 Double_t fSigmaPsiP; // xsec Psi-prime
91 Double_t fSigmaPsiPArray[kNCMSEs]; //!
92 Double_t fSigmaUpsilon; // xsec Upsilon
93 Double_t fSigmaUpsilonArray[kNCMSEs]; //!
94 Double_t fSigmaUpsilonP; // xsec Upsilon-prime
95 Double_t fSigmaUpsilonPArray[kNCMSEs]; //!
96 Double_t fSigmaUpsilonPP; // xsec Upsilon-double-prime
97 Double_t fSigmaUpsilonPPArray[kNCMSEs]; //!
98 Double_t fSigmaCCbar; // xsec correlated charm
99 Double_t fSigmaCCbarArray[kNCMSEs]; //!
100 Double_t fSigmaBBbar; // xsec correlated beauty
101 Double_t fSigmaBBbarArray[kNCMSEs]; //!
103 Bool_t fSigmaSilent; // hide values of cross-sections in output
105 ClassDef(AliGenMUONCocktailpp,5) // cocktail for physics in the Alice