]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - EVGEN/AliGenMUONCocktailpp.h
EMCAL/DCAL Trigger Mapping for Run 2
[u/mrichter/AliRoot.git] / EVGEN / AliGenMUONCocktailpp.h
index ddc155e9e2f358a938c95500cfe1ff78cb8da0b7..e518470d4dc8ba7afc1c33a6c5c5323c59ac5f15 100644 (file)
@@ -3,22 +3,32 @@
 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
  * See cxx source for full Copyright notice                               */
 
+//
+// Class to create the coktail for physics with muons for pp collisions
+// using the The followoing sources: 
+// jpsi, psiP, upsilon, upsilonP, upsilonPP, open charm and open beauty
+//
+
 #include "AliGenCocktail.h"
 #include "AliDecayer.h"
 
 class AliGenCocktailEntry;
+class AliGenParam;
 
 class AliGenMUONCocktailpp : public AliGenCocktail
 {
  public:
 
     AliGenMUONCocktailpp();
+    enum CMSEnergyCode { kCMS07TeV, kCMS10TeV, kCMS14TeV, kCMS03TeVpPb, kCMS03TeVPbp, kCMS04TeVpPb, kCMS04TeVPbp, kCMS05TeVpPb, kCMS05TeVPbp, kCMS09TeVpPb, kCMS09TeVPbp, kCMS03TeVPbPb, kNCMSEs };    
+
     virtual ~AliGenMUONCocktailpp();    
     virtual void Init();
     virtual void CreateCocktail();
     virtual void Generate();    
     Int_t   GetNSucceded()         const {return fNSucceded;}    
     Int_t   GetNGenerated()        const {return fNGenerated;}
+    Int_t   GetCentralityBin()     const {return fCentralityBin;}
     Int_t   GetMuonMultiplicity()  const {return fMuonMultiplicity;}
     Float_t GetMuonPtCut()         const {return fMuonPtCut;}
     Float_t GetMuonPCut()          const {return fMuonPCut;}    
@@ -28,6 +38,7 @@ class AliGenMUONCocktailpp : public AliGenCocktail
     Float_t GetDecayModeResonance()const {return fDecayModeResonance;}
     Float_t GetDecayModePythia()   const {return fDecayModePythia;}
     
+    void    SetCentralityBin(Int_t bin) { fCentralityBin = bin;}
     void    SetMuonMultiplicity(Int_t MuonMultiplicity) { fMuonMultiplicity = MuonMultiplicity;}
     void    SetMuonPtCut(Float_t PtCut) { fMuonPtCut = PtCut;}
     void    SetMuonPCut(Float_t PCut) { fMuonPCut = PCut;}    
@@ -35,31 +46,31 @@ class AliGenMUONCocktailpp : public AliGenCocktail
     void    SetMuonThetaRange(Float_t ThetaMin, Float_t ThetaMax){
        fMuonThetaMinCut=ThetaMin;
        fMuonThetaMaxCut=ThetaMax; }    
-    void    SetDecayer(AliDecayer* decayer){fDecayer = decayer;}
+    void    SetDecayer(AliDecayer* const decayer){fDecayer = decayer;}
     void    SetDecayModeResonance(Decay_t decay){ fDecayModeResonance = decay;}
     void    SetDecayModePythia(Decay_t decay){ fDecayModePythia = decay;}
     void    SetResPolarization(Double_t JpsiPol, Double_t PsiPPol, Double_t UpsPol, 
                                Double_t UpsPPol, Double_t UpsPPPol, char *PolFrame);
 
-    
-    void    SetCMSEnergy(Int_t einc)      { fCMSEnergy = einc; }
-    void    SetSigmaReaction(Double_t sig)      { fSigmaReaction = sig; }    
-    void    SetSigmaJPsi(Double_t sig)      { fSigmaJPsi = sig; }
-    void    SetSigmaPsiP(Double_t sig)      { fSigmaPsiP = sig; }
-    void    SetSigmaUpsilon(Double_t sig)   { fSigmaUpsilon = sig; }
-    void    SetSigmaUpsilonP(Double_t sig)  { fSigmaUpsilonP = sig; }
-    void    SetSigmaUpsilonPP(Double_t sig) { fSigmaUpsilonPP = sig; }
-    void    SetSigmaCCbar(Double_t sig)     { fSigmaCCbar = sig; }
-    void    SetSigmaBBbar(Double_t sig)     { fSigmaBBbar = sig; }
-
+    void    SetCMSEnergy(CMSEnergyCode cmsEnergy);
     void    SetSigmaSilent() { fSigmaSilent = kTRUE; }
+
+    void    ScaleJPsi(Double_t sc) { fScaleJPsi = sc;}
+    void    ScaleCharmonia(Double_t sc) { fScaleCharmonia = sc;}
+    void    ScaleBottomonia(Double_t sc) { fScaleBottomonia = sc;}
+    void    ScaleCCbar(Double_t sc) { fScaleCCbar = sc;}
+    void    ScaleBBbar(Double_t sc) { fScaleBBbar = sc;}
+   
  protected:
 
     //
  private:
     AliGenMUONCocktailpp(const AliGenMUONCocktailpp &cocktail); 
     AliGenMUONCocktailpp & operator=(const AliGenMUONCocktailpp &cocktail); 
-    AliDecayer* fDecayer;
+
+    void AddReso2Generator(Char_t *nameReso, AliGenParam* const genReso, Double_t sigmaReso, Double_t polReso);
+    
+    AliDecayer* fDecayer; // External decayer
     Decay_t fDecayModeResonance; //decay mode in which resonances are forced to decay, default: kAll
     Decay_t fDecayModePythia; //decay mode in which particles in Pythia are forced to decay, default: kAll
     Int_t   fMuonMultiplicity; // Muon multiplicity for the primordial trigger
@@ -70,20 +81,42 @@ class AliGenMUONCocktailpp : public AliGenCocktail
     Float_t fMuonOriginCut; //use only muons whose "part->Vz()" value is larger than fMuonOrigin
     Int_t   fNSucceded;// Number of Succes in the (di)-muon generation in the acceptance
     Int_t   fNGenerated;// Number of generated cocktails
-    Double_t fJpsiPol, fPsiPPol, fUpsPol, fUpsPPol, fUpsPPPol;//Resonances polarization parameters
+    Int_t   fCentralityBin;                 // Collision centrality bin number
+    Double_t fScaleJPsi;                    // xsec scale factors for onia and HF
+    Double_t fScaleCharmonia;
+    Double_t fScaleBottomonia;
+    Double_t fScaleCCbar;
+    Double_t fScaleBBbar;
+    Double_t fJpsiPol, fChic1Pol, fChic2Pol, fPsiPPol, fUpsPol, fUpsPPol, fUpsPPPol;//Resonances polarization parameters
     Int_t    fPolFrame;//Resonances polarization frame (Collins-Soper / Helicity)
-    Int_t fCMSEnergy; // CMS beam energy
-    Double_t fSigmaReaction; //  cross-section pp
-    Double_t fSigmaJPsi;      // cross-section JPsi resonance
-    Double_t fSigmaPsiP;      // cross-section Psi-prime resonance
-    Double_t fSigmaUpsilon;   // cross-section Upsilon resonance
-    Double_t fSigmaUpsilonP;  // cross-section Upsilon-prime resonance
-    Double_t fSigmaUpsilonPP; // cross-section Upsilon-double-prime resonance
-    Double_t fSigmaCCbar;     // cross-section correlated charm
-    Double_t fSigmaBBbar;     // cross-section correlated beauty
+//    Int_t fCMSEnergy; // CMS beam energy
+    
+    Double_t fCMSEnergyTeV;                 // energy
+    Double_t fCMSEnergyTeVArray[kNCMSEs];   //!
+    Double_t fSigmaReaction;                // xsec pp
+    Double_t fSigmaReactionArray[kNCMSEs];  //!
+    Double_t fSigmaJPsi;                    // xsec JPsi
+    Double_t fSigmaJPsiArray[kNCMSEs];      //!
+    Double_t fSigmaChic1;                   // xsec Chic1 
+    Double_t fSigmaChic1Array[kNCMSEs];     //!
+    Double_t fSigmaChic2;                   // xsec Chic2 
+    Double_t fSigmaChic2Array[kNCMSEs];     //!
+    Double_t fSigmaPsiP;                    // xsec Psi-prime
+    Double_t fSigmaPsiPArray[kNCMSEs];      //!
+    Double_t fSigmaUpsilon;                 // xsec Upsilon
+    Double_t fSigmaUpsilonArray[kNCMSEs];   //!
+    Double_t fSigmaUpsilonP;                // xsec Upsilon-prime 
+    Double_t fSigmaUpsilonPArray[kNCMSEs];  //!
+    Double_t fSigmaUpsilonPP;               // xsec Upsilon-double-prime
+    Double_t fSigmaUpsilonPPArray[kNCMSEs]; //!
+    Double_t fSigmaCCbar;                   // xsec correlated charm
+    Double_t fSigmaCCbarArray[kNCMSEs];     //!
+    Double_t fSigmaBBbar;                   // xsec correlated beauty
+    Double_t fSigmaBBbarArray[kNCMSEs];     //!
+    
     Bool_t   fSigmaSilent;    // hide values of cross-sections in output
 
-    ClassDef(AliGenMUONCocktailpp,3)  //  cocktail for physics in the Alice
+    ClassDef(AliGenMUONCocktailpp,5)  //  cocktail for physics in the Alice
 };
 
 #endif