Line data Source code
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 :
6 : //
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 : //
11 :
12 : #include "AliGenCocktail.h"
13 : #include "AliDecayer.h"
14 :
15 : class AliGenCocktailEntry;
16 : class AliGenParam;
17 :
18 : class AliGenMUONCocktailpp : public AliGenCocktail
19 : {
20 : public:
21 :
22 : AliGenMUONCocktailpp();
23 : enum CMSEnergyCode { kCMS07TeV, kCMS10TeV, kCMS14TeV, kCMS03TeVpPb, kCMS03TeVPbp, kCMS04TeVpPb, kCMS04TeVPbp, kCMS05TeVpPb, kCMS05TeVPbp, kCMS09TeVpPb, kCMS09TeVPbp, kCMS03TeVPbPb, kNCMSEs };
24 :
25 : virtual ~AliGenMUONCocktailpp();
26 : virtual void Init();
27 : virtual void CreateCocktail();
28 : virtual void Generate();
29 0 : Int_t GetNSucceded() const {return fNSucceded;}
30 0 : Int_t GetNGenerated() const {return fNGenerated;}
31 0 : Int_t GetCentralityBin() const {return fCentralityBin;}
32 0 : Int_t GetMuonMultiplicity() const {return fMuonMultiplicity;}
33 0 : Float_t GetMuonPtCut() const {return fMuonPtCut;}
34 0 : Float_t GetMuonPCut() const {return fMuonPCut;}
35 0 : Float_t GetMuonThetaMin() const {return fMuonThetaMinCut;}
36 0 : Float_t GetMuonThetaMax() const {return fMuonThetaMaxCut;}
37 0 : Float_t GetMuonOriginCut() const {return fMuonOriginCut;}
38 0 : Float_t GetDecayModeResonance()const {return fDecayModeResonance;}
39 0 : Float_t GetDecayModePythia() const {return fDecayModePythia;}
40 :
41 0 : void SetCentralityBin(Int_t bin) { fCentralityBin = bin;}
42 0 : void SetMuonMultiplicity(Int_t MuonMultiplicity) { fMuonMultiplicity = MuonMultiplicity;}
43 0 : void SetMuonPtCut(Float_t PtCut) { fMuonPtCut = PtCut;}
44 0 : void SetMuonPCut(Float_t PCut) { fMuonPCut = PCut;}
45 0 : void SetMuonOriginCut(Float_t originCut) { fMuonOriginCut = originCut;}
46 : void SetMuonThetaRange(Float_t ThetaMin, Float_t ThetaMax){
47 0 : fMuonThetaMinCut=ThetaMin;
48 0 : fMuonThetaMaxCut=ThetaMax; }
49 0 : void SetDecayer(AliDecayer* const decayer){fDecayer = decayer;}
50 0 : void SetDecayModeResonance(Decay_t decay){ fDecayModeResonance = decay;}
51 0 : void SetDecayModePythia(Decay_t decay){ fDecayModePythia = decay;}
52 : void SetResPolarization(Double_t JpsiPol, Double_t PsiPPol, Double_t UpsPol,
53 : Double_t UpsPPol, Double_t UpsPPPol, char *PolFrame);
54 :
55 : void SetCMSEnergy(CMSEnergyCode cmsEnergy);
56 0 : void SetSigmaSilent() { fSigmaSilent = kTRUE; }
57 :
58 0 : void ScaleJPsi(Double_t sc) { fScaleJPsi = sc;}
59 0 : void ScaleCharmonia(Double_t sc) { fScaleCharmonia = sc;}
60 0 : void ScaleBottomonia(Double_t sc) { fScaleBottomonia = sc;}
61 0 : void ScaleCCbar(Double_t sc) { fScaleCCbar = sc;}
62 0 : void ScaleBBbar(Double_t sc) { fScaleBBbar = sc;}
63 :
64 : protected:
65 :
66 : //
67 : private:
68 : AliGenMUONCocktailpp(const AliGenMUONCocktailpp &cocktail);
69 : AliGenMUONCocktailpp & operator=(const AliGenMUONCocktailpp &cocktail);
70 :
71 : void AddReso2Generator(Char_t *nameReso, AliGenParam* const genReso, Double_t sigmaReso, Double_t polReso);
72 :
73 : AliDecayer* fDecayer; // External decayer
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
76 : Int_t fMuonMultiplicity; // Muon multiplicity for the primordial trigger
77 : Float_t fMuonPtCut;// Transverse momentum cut for muons
78 : Float_t fMuonPCut;// Momentum cut for muons
79 : Float_t fMuonThetaMinCut;// Minimum theta cut for muons
80 : Float_t fMuonThetaMaxCut; // Maximum theta cut for muons
81 : Float_t fMuonOriginCut; //use only muons whose "part->Vz()" value is larger than fMuonOrigin
82 : Int_t fNSucceded;// Number of Succes in the (di)-muon generation in the acceptance
83 : Int_t fNGenerated;// Number of generated cocktails
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;
90 : Double_t fJpsiPol, fChic1Pol, fChic2Pol, fPsiPPol, fUpsPol, fUpsPPol, fUpsPPPol;//Resonances polarization parameters
91 : Int_t fPolFrame;//Resonances polarization frame (Collins-Soper / Helicity)
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 :
117 : Bool_t fSigmaSilent; // hide values of cross-sections in output
118 :
119 6 : ClassDef(AliGenMUONCocktailpp,5) // cocktail for physics in the Alice
120 : };
121 :
122 : #endif
123 :
124 :
125 :
|