ROOT logo
#ifndef ALIGENMUONCOCKTAILPP_H
#define ALIGENMUONCOCKTAILPP_H
/* 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;}    
    Float_t GetMuonThetaMin()      const {return fMuonThetaMinCut;}
    Float_t GetMuonThetaMax()      const {return fMuonThetaMaxCut;}	    
    Float_t GetMuonOriginCut()     const {return fMuonOriginCut;}	    
    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;}    
    void    SetMuonOriginCut(Float_t originCut) { fMuonOriginCut = originCut;}
    void    SetMuonThetaRange(Float_t ThetaMin, Float_t ThetaMax){
	fMuonThetaMinCut=ThetaMin;
	fMuonThetaMaxCut=ThetaMax; }    
    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(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); 

    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
    Float_t fMuonPtCut;// Transverse momentum cut for muons
    Float_t fMuonPCut;// Momentum cut for muons    
    Float_t fMuonThetaMinCut;// Minimum theta cut for muons
    Float_t fMuonThetaMaxCut; // Maximum theta cut for muons
    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
    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 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,5)  //  cocktail for physics in the Alice
};

#endif



 AliGenMUONCocktailpp.h:1
 AliGenMUONCocktailpp.h:2
 AliGenMUONCocktailpp.h:3
 AliGenMUONCocktailpp.h:4
 AliGenMUONCocktailpp.h:5
 AliGenMUONCocktailpp.h:6
 AliGenMUONCocktailpp.h:7
 AliGenMUONCocktailpp.h:8
 AliGenMUONCocktailpp.h:9
 AliGenMUONCocktailpp.h:10
 AliGenMUONCocktailpp.h:11
 AliGenMUONCocktailpp.h:12
 AliGenMUONCocktailpp.h:13
 AliGenMUONCocktailpp.h:14
 AliGenMUONCocktailpp.h:15
 AliGenMUONCocktailpp.h:16
 AliGenMUONCocktailpp.h:17
 AliGenMUONCocktailpp.h:18
 AliGenMUONCocktailpp.h:19
 AliGenMUONCocktailpp.h:20
 AliGenMUONCocktailpp.h:21
 AliGenMUONCocktailpp.h:22
 AliGenMUONCocktailpp.h:23
 AliGenMUONCocktailpp.h:24
 AliGenMUONCocktailpp.h:25
 AliGenMUONCocktailpp.h:26
 AliGenMUONCocktailpp.h:27
 AliGenMUONCocktailpp.h:28
 AliGenMUONCocktailpp.h:29
 AliGenMUONCocktailpp.h:30
 AliGenMUONCocktailpp.h:31
 AliGenMUONCocktailpp.h:32
 AliGenMUONCocktailpp.h:33
 AliGenMUONCocktailpp.h:34
 AliGenMUONCocktailpp.h:35
 AliGenMUONCocktailpp.h:36
 AliGenMUONCocktailpp.h:37
 AliGenMUONCocktailpp.h:38
 AliGenMUONCocktailpp.h:39
 AliGenMUONCocktailpp.h:40
 AliGenMUONCocktailpp.h:41
 AliGenMUONCocktailpp.h:42
 AliGenMUONCocktailpp.h:43
 AliGenMUONCocktailpp.h:44
 AliGenMUONCocktailpp.h:45
 AliGenMUONCocktailpp.h:46
 AliGenMUONCocktailpp.h:47
 AliGenMUONCocktailpp.h:48
 AliGenMUONCocktailpp.h:49
 AliGenMUONCocktailpp.h:50
 AliGenMUONCocktailpp.h:51
 AliGenMUONCocktailpp.h:52
 AliGenMUONCocktailpp.h:53
 AliGenMUONCocktailpp.h:54
 AliGenMUONCocktailpp.h:55
 AliGenMUONCocktailpp.h:56
 AliGenMUONCocktailpp.h:57
 AliGenMUONCocktailpp.h:58
 AliGenMUONCocktailpp.h:59
 AliGenMUONCocktailpp.h:60
 AliGenMUONCocktailpp.h:61
 AliGenMUONCocktailpp.h:62
 AliGenMUONCocktailpp.h:63
 AliGenMUONCocktailpp.h:64
 AliGenMUONCocktailpp.h:65
 AliGenMUONCocktailpp.h:66
 AliGenMUONCocktailpp.h:67
 AliGenMUONCocktailpp.h:68
 AliGenMUONCocktailpp.h:69
 AliGenMUONCocktailpp.h:70
 AliGenMUONCocktailpp.h:71
 AliGenMUONCocktailpp.h:72
 AliGenMUONCocktailpp.h:73
 AliGenMUONCocktailpp.h:74
 AliGenMUONCocktailpp.h:75
 AliGenMUONCocktailpp.h:76
 AliGenMUONCocktailpp.h:77
 AliGenMUONCocktailpp.h:78
 AliGenMUONCocktailpp.h:79
 AliGenMUONCocktailpp.h:80
 AliGenMUONCocktailpp.h:81
 AliGenMUONCocktailpp.h:82
 AliGenMUONCocktailpp.h:83
 AliGenMUONCocktailpp.h:84
 AliGenMUONCocktailpp.h:85
 AliGenMUONCocktailpp.h:86
 AliGenMUONCocktailpp.h:87
 AliGenMUONCocktailpp.h:88
 AliGenMUONCocktailpp.h:89
 AliGenMUONCocktailpp.h:90
 AliGenMUONCocktailpp.h:91
 AliGenMUONCocktailpp.h:92
 AliGenMUONCocktailpp.h:93
 AliGenMUONCocktailpp.h:94
 AliGenMUONCocktailpp.h:95
 AliGenMUONCocktailpp.h:96
 AliGenMUONCocktailpp.h:97
 AliGenMUONCocktailpp.h:98
 AliGenMUONCocktailpp.h:99
 AliGenMUONCocktailpp.h:100
 AliGenMUONCocktailpp.h:101
 AliGenMUONCocktailpp.h:102
 AliGenMUONCocktailpp.h:103
 AliGenMUONCocktailpp.h:104
 AliGenMUONCocktailpp.h:105
 AliGenMUONCocktailpp.h:106
 AliGenMUONCocktailpp.h:107
 AliGenMUONCocktailpp.h:108
 AliGenMUONCocktailpp.h:109
 AliGenMUONCocktailpp.h:110
 AliGenMUONCocktailpp.h:111
 AliGenMUONCocktailpp.h:112
 AliGenMUONCocktailpp.h:113
 AliGenMUONCocktailpp.h:114
 AliGenMUONCocktailpp.h:115
 AliGenMUONCocktailpp.h:116
 AliGenMUONCocktailpp.h:117
 AliGenMUONCocktailpp.h:118
 AliGenMUONCocktailpp.h:119
 AliGenMUONCocktailpp.h:120
 AliGenMUONCocktailpp.h:121
 AliGenMUONCocktailpp.h:122
 AliGenMUONCocktailpp.h:123
 AliGenMUONCocktailpp.h:124
 AliGenMUONCocktailpp.h:125