SetSeed implementation
[u/mrichter/AliRoot.git] / EVGEN / AliGenMUONCocktail.h
1 #ifndef ALIGENMUONCOCKTAIL_H
2 #define ALIGENMUONCOCKTAIL_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6
7 /* $Id$ */
8 //
9 // Classe to create the MUON coktail for physics in the Alice muon spectrometer
10 // The followoing muons sources are included in this cocktail: 
11 //     jpsi, upsilon, non-correlated open and beauty, and muons from pion and kaons.
12 // The free parameeters are :
13 //      pp reaction cross-section
14 //      production cross-sections in pp collisions and 
15 //      branching ratios in the muon channel
16 // Hard probes are supposed to scale with Ncoll and hadronic production with (0.8Ncoll+0.2*Npart)
17 // There is a primordial trigger wiche requires :
18 //      a minimum muon multiplicity above a pT cut in a theta acceptance cone
19 //
20 // Gines Martinez, jan 2004, Nantes  martinez@in2p3.fr
21
22
23
24
25 #include "AliGenCocktail.h"
26
27 class AliFastGlauber;
28 class AliGenCocktailEntry;
29
30
31 class AliGenMUONCocktail : public AliGenCocktail
32 {
33  public:
34     AliGenMUONCocktail();
35      virtual ~AliGenMUONCocktail();
36     virtual void Init();
37     virtual void Generate();
38     Int_t   GetMuonMultiplicity()  const {return fMuonMultiplicity;}
39     Int_t   GetNSucceded()         const {return fNSucceded;}
40     Int_t   GetNGenerated()        const {return fNGenerated;}
41     Float_t GetNumberOfCollisions()const {return fNumberOfCollisions;} 
42     Float_t GetNumberOfParticipants() const {return fNumberOfParticipants;}
43     Float_t GetMuonPtCut()         const { return fMuonPtCut;}
44
45     void    SetMuonMultiplicity(Int_t MuonMultiplicity) { fMuonMultiplicity= MuonMultiplicity;}
46     void    SetNumberOfCollisions(Float_t NumberOfCollisions) { fNumberOfCollisions= NumberOfCollisions;}
47     void    SetNumberOfParticipants(Float_t NumberOfParticipants) { fNumberOfParticipants= NumberOfParticipants;}
48     void    SetImpactParameterRange(Float_t bmin=0., Float_t bmax=5.) { fLowImpactParameter = bmin; fHighImpactParameter=bmax;}
49     void    SetMuonPtCut(Float_t PtCut) { fMuonPtCut = PtCut;}
50     void    SetMuonThetaCut(Float_t ThetaMin, Float_t ThetaMax) 
51       { fMuonThetaMinCut=ThetaMin; 
52         fMuonThetaMaxCut=ThetaMax; }
53     void    SetHadronicMuons(Bool_t HadronicMuons) { fHadronicMuons = HadronicMuons;}
54     void    SetInvMassRange(Float_t MassMin, Float_t MassMax) 
55       { fInvMassMinCut=MassMin; 
56         fInvMassMaxCut=MassMax;
57         fInvMassCut = kTRUE; }
58  private:
59     AliGenMUONCocktail(const AliGenMUONCocktail &cocktail); 
60     AliGenMUONCocktail& operator=(const AliGenMUONCocktail & rhs);
61
62     //
63  private:
64     AliFastGlauber *  fFastGlauber; //! Fast glauber calculations
65     Float_t fTotalRate;             // Total rate of the full cocktail processes
66     Int_t   fMuonMultiplicity;      // Muon multiplicity for the primordial trigger
67     Float_t fMuonPtCut;             // Transverse momentum cut for muons
68     Float_t fMuonThetaMinCut;       // Minimum theta cut for muons
69     Float_t fMuonThetaMaxCut;       // Maximum theta cut for muons
70     Int_t   fNSucceded;             // Number of Succes in the dimuon pair generation in the acceptance
71     Int_t   fNGenerated;            // Number of generated cocktails
72     Float_t fLowImpactParameter;    // Lowest simulated impact parameter
73     Float_t fHighImpactParameter;   // Highest impact parameter
74     Float_t fAverageImpactParameter;// AVergae Impact parameter in the impact parameter range
75     Float_t fNumberOfCollisions;    // Average number of collisions in the impact parameter range
76     Float_t fNumberOfParticipants;  // Average number of participants in the impact parameter range
77     Bool_t  fHadronicMuons;         // If kTRUE hadronic muons are included in the cocktail. Default is true.
78     Bool_t  fInvMassCut;            // If kTRUE cut on the Invariant mass is required. Default is false
79     Float_t fInvMassMinCut;         // Minimum invariant mass cut
80     Float_t fInvMassMaxCut;         // Maximum invariant mass cut
81    
82     ClassDef(AliGenMUONCocktail,1)  //  MUON cocktail for physics in the Alice muon spectrometer
83 };
84
85 #endif
86
87
88
89
90