ROOT logo
#ifndef ALIGENMUONCOCKTAIL_H
#define ALIGENMUONCOCKTAIL_H
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */


/* $Id$ */
//
// Classe to create the MUON coktail for physics in the Alice muon spectrometer
// The followoing muons sources are included in this cocktail: 
//     jpsi, upsilon, non-correlated open and beauty, and muons from pion and kaons.
// The free parameeters are :
//      pp reaction cross-section
//      production cross-sections in pp collisions and 
//      branching ratios in the muon channel
// Hard probes are supposed to scale with Ncoll and hadronic production with (0.8Ncoll+0.2*Npart)
// There is a primordial trigger wiche requires :
//      a minimum muon multiplicity above a pT cut in a theta acceptance cone
//
// Gines Martinez, jan 2004, Nantes  martinez@in2p3.fr




#include "AliGenCocktail.h"

class AliFastGlauber;
class AliGenCocktailEntry;


class AliGenMUONCocktail : public AliGenCocktail
{
 public:
    AliGenMUONCocktail();
     virtual ~AliGenMUONCocktail();
    virtual void Init();
    virtual void Generate();
    Int_t   GetMuonMultiplicity()  const {return fMuonMultiplicity;}
    Int_t   GetNSucceded()         const {return fNSucceded;}
    Int_t   GetNGenerated()        const {return fNGenerated;}
    Float_t GetNumberOfCollisions()const {return fNumberOfCollisions;} 
    Float_t GetNumberOfParticipants() const {return fNumberOfParticipants;}
    Float_t GetMuonPtCut()         const { return fMuonPtCut;}

    void    SetMuonMultiplicity(Int_t MuonMultiplicity) { fMuonMultiplicity= MuonMultiplicity;}
    void    SetNumberOfCollisions(Float_t NumberOfCollisions) { fNumberOfCollisions= NumberOfCollisions;}
    void    SetNumberOfParticipants(Float_t NumberOfParticipants) { fNumberOfParticipants= NumberOfParticipants;}
    void    SetImpactParameterRange(Float_t bmin=0., Float_t bmax=5.) { fLowImpactParameter = bmin; fHighImpactParameter=bmax;}
    void    SetMuonPtCut(Float_t PtCut) { fMuonPtCut = PtCut;}
    void    SetMuonThetaCut(Float_t ThetaMin, Float_t ThetaMax) 
      { fMuonThetaMinCut=ThetaMin; 
        fMuonThetaMaxCut=ThetaMax; }
    void    SetHadronicMuons(Bool_t HadronicMuons) { fHadronicMuons = HadronicMuons;}
    void    SetInvMassRange(Float_t MassMin, Float_t MassMax) 
      { fInvMassMinCut=MassMin; 
        fInvMassMaxCut=MassMax;
        fInvMassCut = kTRUE; }
 private:
    AliGenMUONCocktail(const AliGenMUONCocktail &cocktail); 
    AliGenMUONCocktail& operator=(const AliGenMUONCocktail & rhs);

    //
 private:
    AliFastGlauber *  fFastGlauber; //! Fast glauber calculations
    Float_t fTotalRate;             // Total rate of the full cocktail processes
    Int_t   fMuonMultiplicity;      // Muon multiplicity for the primordial trigger
    Float_t fMuonPtCut;             // Transverse momentum cut for muons
    Float_t fMuonThetaMinCut;       // Minimum theta cut for muons
    Float_t fMuonThetaMaxCut;       // Maximum theta cut for muons
    Int_t   fNSucceded;             // Number of Succes in the dimuon pair generation in the acceptance
    Int_t   fNGenerated;            // Number of generated cocktails
    Float_t fLowImpactParameter;    // Lowest simulated impact parameter
    Float_t fHighImpactParameter;   // Highest impact parameter
    Float_t fAverageImpactParameter;// AVergae Impact parameter in the impact parameter range
    Float_t fNumberOfCollisions;    // Average number of collisions in the impact parameter range
    Float_t fNumberOfParticipants;  // Average number of participants in the impact parameter range
    Bool_t  fHadronicMuons;         // If kTRUE hadronic muons are included in the cocktail. Default is true.
    Bool_t  fInvMassCut;            // If kTRUE cut on the Invariant mass is required. Default is false
    Float_t fInvMassMinCut;	    // Minimum invariant mass cut
    Float_t fInvMassMaxCut;	    // Maximum invariant mass cut
   
    ClassDef(AliGenMUONCocktail,1)  //  MUON cocktail for physics in the Alice muon spectrometer
};

#endif





 AliGenMUONCocktail.h:1
 AliGenMUONCocktail.h:2
 AliGenMUONCocktail.h:3
 AliGenMUONCocktail.h:4
 AliGenMUONCocktail.h:5
 AliGenMUONCocktail.h:6
 AliGenMUONCocktail.h:7
 AliGenMUONCocktail.h:8
 AliGenMUONCocktail.h:9
 AliGenMUONCocktail.h:10
 AliGenMUONCocktail.h:11
 AliGenMUONCocktail.h:12
 AliGenMUONCocktail.h:13
 AliGenMUONCocktail.h:14
 AliGenMUONCocktail.h:15
 AliGenMUONCocktail.h:16
 AliGenMUONCocktail.h:17
 AliGenMUONCocktail.h:18
 AliGenMUONCocktail.h:19
 AliGenMUONCocktail.h:20
 AliGenMUONCocktail.h:21
 AliGenMUONCocktail.h:22
 AliGenMUONCocktail.h:23
 AliGenMUONCocktail.h:24
 AliGenMUONCocktail.h:25
 AliGenMUONCocktail.h:26
 AliGenMUONCocktail.h:27
 AliGenMUONCocktail.h:28
 AliGenMUONCocktail.h:29
 AliGenMUONCocktail.h:30
 AliGenMUONCocktail.h:31
 AliGenMUONCocktail.h:32
 AliGenMUONCocktail.h:33
 AliGenMUONCocktail.h:34
 AliGenMUONCocktail.h:35
 AliGenMUONCocktail.h:36
 AliGenMUONCocktail.h:37
 AliGenMUONCocktail.h:38
 AliGenMUONCocktail.h:39
 AliGenMUONCocktail.h:40
 AliGenMUONCocktail.h:41
 AliGenMUONCocktail.h:42
 AliGenMUONCocktail.h:43
 AliGenMUONCocktail.h:44
 AliGenMUONCocktail.h:45
 AliGenMUONCocktail.h:46
 AliGenMUONCocktail.h:47
 AliGenMUONCocktail.h:48
 AliGenMUONCocktail.h:49
 AliGenMUONCocktail.h:50
 AliGenMUONCocktail.h:51
 AliGenMUONCocktail.h:52
 AliGenMUONCocktail.h:53
 AliGenMUONCocktail.h:54
 AliGenMUONCocktail.h:55
 AliGenMUONCocktail.h:56
 AliGenMUONCocktail.h:57
 AliGenMUONCocktail.h:58
 AliGenMUONCocktail.h:59
 AliGenMUONCocktail.h:60
 AliGenMUONCocktail.h:61
 AliGenMUONCocktail.h:62
 AliGenMUONCocktail.h:63
 AliGenMUONCocktail.h:64
 AliGenMUONCocktail.h:65
 AliGenMUONCocktail.h:66
 AliGenMUONCocktail.h:67
 AliGenMUONCocktail.h:68
 AliGenMUONCocktail.h:69
 AliGenMUONCocktail.h:70
 AliGenMUONCocktail.h:71
 AliGenMUONCocktail.h:72
 AliGenMUONCocktail.h:73
 AliGenMUONCocktail.h:74
 AliGenMUONCocktail.h:75
 AliGenMUONCocktail.h:76
 AliGenMUONCocktail.h:77
 AliGenMUONCocktail.h:78
 AliGenMUONCocktail.h:79
 AliGenMUONCocktail.h:80
 AliGenMUONCocktail.h:81
 AliGenMUONCocktail.h:82
 AliGenMUONCocktail.h:83
 AliGenMUONCocktail.h:84
 AliGenMUONCocktail.h:85
 AliGenMUONCocktail.h:86
 AliGenMUONCocktail.h:87
 AliGenMUONCocktail.h:88
 AliGenMUONCocktail.h:89
 AliGenMUONCocktail.h:90