/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice */
-/* $Id$ */
+/* $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;
{
public:
AliGenMUONCocktail();
- AliGenMUONCocktail(const AliGenMUONCocktail &cocktail);
- virtual ~AliGenMUONCocktail();
+ virtual ~AliGenMUONCocktail();
virtual void Init();
virtual void Generate();
- Int_t GetMuonMultiplicity() {return fMuonMultiplicity;}
- Int_t GetNSucceded() {return fNSucceded;}
- Int_t GetNGenerated() {return fNGenerated;}
- Float_t GetNumberOfCollisions() {return fNumberOfCollisions;}
- Float_t GetNumberOfParticipants() {return fNumberOfParticipants;}
- Float_t GetMuonPtCut() { return fMuonPtCut;}
+ 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; }
+ 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);
- protected:
-
//
private:
- 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 fNumberOfCollisions; // Average Number of collisions in the centrality class
- Float_t fNumberOfParticipants; // Average Number of participants in the centrality class
-
- ClassDef(AliGenMUONCocktail,1) // MUON cocktail for physics in the Alice muon spectrometer
+ 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