Overlaps corrected, new shape of sectors
[u/mrichter/AliRoot.git] / EVGEN / AliGenMUONCocktailpp.h
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     Int_t   GetNSucceded()         const {return fNSucceded;}    
30     Int_t   GetNGenerated()        const {return fNGenerated;}
31     Int_t   GetCentralityBin()     const {return fCentralityBin;}
32     Int_t   GetMuonMultiplicity()  const {return fMuonMultiplicity;}
33     Float_t GetMuonPtCut()         const {return fMuonPtCut;}
34     Float_t GetMuonPCut()          const {return fMuonPCut;}    
35     Float_t GetMuonThetaMin()      const {return fMuonThetaMinCut;}
36     Float_t GetMuonThetaMax()      const {return fMuonThetaMaxCut;}         
37     Float_t GetMuonOriginCut()     const {return fMuonOriginCut;}           
38     Float_t GetDecayModeResonance()const {return fDecayModeResonance;}
39     Float_t GetDecayModePythia()   const {return fDecayModePythia;}
40     
41     void    SetCentralityBin(Int_t bin) { fCentralityBin = bin;}
42     void    SetMuonMultiplicity(Int_t MuonMultiplicity) { fMuonMultiplicity = MuonMultiplicity;}
43     void    SetMuonPtCut(Float_t PtCut) { fMuonPtCut = PtCut;}
44     void    SetMuonPCut(Float_t PCut) { fMuonPCut = PCut;}    
45     void    SetMuonOriginCut(Float_t originCut) { fMuonOriginCut = originCut;}
46     void    SetMuonThetaRange(Float_t ThetaMin, Float_t ThetaMax){
47         fMuonThetaMinCut=ThetaMin;
48         fMuonThetaMaxCut=ThetaMax; }    
49     void    SetDecayer(AliDecayer* const decayer){fDecayer = decayer;}
50     void    SetDecayModeResonance(Decay_t decay){ fDecayModeResonance = decay;}
51     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     void    SetSigmaSilent() { fSigmaSilent = kTRUE; }
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    
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     ClassDef(AliGenMUONCocktailpp,5)  //  cocktail for physics in the Alice
120 };
121
122 #endif
123
124
125