]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EVGEN/AliGenMUONCocktail.h
Add possibility to change proton direction.
[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     AliGenMUONCocktail(const AliGenMUONCocktail &cocktail); 
36     virtual ~AliGenMUONCocktail();
37     virtual void Init();
38     virtual void Generate();
39     Int_t   GetMuonMultiplicity()  const {return fMuonMultiplicity;}
40     Int_t   GetNSucceded()         const {return fNSucceded;}
41     Int_t   GetNGenerated()        const {return fNGenerated;}
42     Float_t GetNumberOfCollisions()const {return fNumberOfCollisions;} 
43     Float_t GetNumberOfParticipants() const {return fNumberOfParticipants;}
44     Float_t GetMuonPtCut()         const { return fMuonPtCut;}
45
46     void    SetMuonMultiplicity(Int_t MuonMultiplicity) { fMuonMultiplicity= MuonMultiplicity;}
47     void    SetNumberOfCollisions(Float_t NumberOfCollisions) { fNumberOfCollisions= NumberOfCollisions;}
48     void    SetNumberOfParticipants(Float_t NumberOfParticipants) { fNumberOfParticipants= NumberOfParticipants;}
49     void    SetImpactParameterRange(Float_t bmin=0., Float_t bmax=5.) { fLowImpactParameter = bmin; fHighImpactParameter=bmax;}
50     void    SetMuonPtCut(Float_t PtCut) { fMuonPtCut = PtCut;}
51     void    SetMuonThetaCut(Float_t ThetaMin, Float_t ThetaMax) 
52       { fMuonThetaMinCut=ThetaMin; 
53         fMuonThetaMaxCut=ThetaMax; }
54     void    SetHadronicMuons(Bool_t HadronicMuons) { fHadronicMuons = HadronicMuons;}
55
56  protected:
57  
58     //
59  private:
60     AliFastGlauber *  fFastGlauber; //! Fast glauber calculations
61     Float_t fTotalRate;             // Total rate of the full cocktail processes
62     Int_t   fMuonMultiplicity;      // Muon multiplicity for the primordial trigger
63     Float_t fMuonPtCut;             // Transverse momentum cut for muons
64     Float_t fMuonThetaMinCut;       // Minimum theta cut for muons
65     Float_t fMuonThetaMaxCut;       // Maximum theta cut for muons
66     Int_t   fNSucceded;             // Number of Succes in the dimuon pair generation in the acceptance
67     Int_t   fNGenerated;            // Number of generated cocktails
68     Float_t fLowImpactParameter;    // Lowest simulated impact parameter
69     Float_t fHighImpactParameter;   // Highest impact parameter
70     Float_t fAverageImpactParameter;// AVergae Impact parameter in the impact parameter range
71     Float_t fNumberOfCollisions;    // Average number of collisions in the impact parameter range
72     Float_t fNumberOfParticipants;  // Average number of participants in the impact parameter range
73     Bool_t  fHadronicMuons;         // If kTrue hadronic muons are included in the cocktail. Default is true.
74    
75     ClassDef(AliGenMUONCocktail,1)  //  MUON cocktail for physics in the Alice muon spectrometer
76 };
77
78 #endif
79
80
81
82
83