class AliGenMUONLMR : public AliGenMC {
public:
enum parttype_t {kPionLMR, kKaonLMR, kEtaLMR, kRhoLMR, kOmegaLMR, kPhiLMR, kEtaPrimeLMR};
+ enum CMSEnergies { kCMS2760GeV, kCMS7000GeV, kCMS8000GeV, kCMS5020GeVpPb, kCMS5020GeVPbp, kNCMSEnergies };
AliGenMUONLMR();
+ AliGenMUONLMR(AliGenMUONLMR &gen);
+ AliGenMUONLMR &operator=(const AliGenMUONLMR &gen);
~AliGenMUONLMR();
- static Double_t PtDistr(const Double_t *x, const Double_t *par);
- static Double_t YDistr(const Double_t *x, const Double_t *par);
- virtual void Decay2Body(const TParticle *mother);
- virtual void DalitzDecay(const TParticle *mother);
+ static Double_t PtDistr(Double_t *x, Double_t *par);
+ static Double_t YDistr(Double_t *x, Double_t *par);
+ virtual void SetPtParams(Int_t iproc, Double_t p1, Double_t p2, Double_t p3) {fPt[iproc]->SetParameters(p1,p2,p3);}
+ virtual void SetYParams(Int_t iproc, Double_t p1, Double_t p2, Double_t p3, Double_t ycm=0) {fY[iproc]->SetParameters(p1,p2,p3,ycm);}
+ virtual void Decay2Body(TParticle *mother);
+ virtual void DalitzDecay(TParticle *mother);
virtual void DecayPiK(TParticle *mother, Bool_t &hadDecayed);
virtual Double_t FormFactor(Double_t q2, Int_t decay);
virtual void Generate();
virtual TParticle* GetMuon(Int_t i) {return fMu[i];}
- virtual void SetNMuMin(Int_t nmin) {fNMuMin = nmin; }
+ virtual void SetNMuMin(Int_t nmin) {fNMuMin = nmin;}
virtual void GenerateSingleProcess(Int_t whichproc) { fGenSingleProc = whichproc;}
virtual void SetScaleMultiplicity(Int_t ipart, Double_t scale) { fScaleMult[ipart] = scale; }
- static Double_t RhoLineShapeNew(const Double_t *, const Double_t *);
+ static Double_t RhoLineShapeNew(Double_t *, Double_t *);
virtual void FinishRun();
- private:
- AliGenMUONLMR(const AliGenMUONLMR &lmr);
- AliGenMUONLMR & operator=(const AliGenMUONLMR & rhs);
-
+ virtual TF1* GetRapidity(Int_t iproc) { return fY[iproc]; }
+ virtual TF1* GetPt(Int_t iproc) { return fPt[iproc]; }
+ void SetCMSEnergy(CMSEnergies energy);
+ virtual void SetCMSRapidity(Double_t ycm) { fYCM = ycm; }
private:
static const Int_t fgkNpart = 7; // number of particles to be generated
Int_t fNMuMin; // min. number of muons to accept the event for writing
+ CMSEnergies fCMSEnergy; // CMS Energy
Int_t fGenSingleProc; // flag to generate a single process (1) or the whole cocktail (0)
+ Double_t fYCM; // center of mass rapidity (def. 0)
Int_t fPDG[7]; // pdg code of particle to be generated
Double_t fScaleMult[7]; // multiplicity scaling factor (w.r.t. pythia@7TeV)
TF1 *fPt[7]; // pt distribution
TParticle* fMu[2]; // fMu[0] = mu+ fMu[1] = mu-
TH1D *fHMultMu; // muon multiplicity
TH1D *fHNProc; // number of events generated per process
- ClassDef(AliGenMUONLMR, 1) // example of analysis
+ ClassDef(AliGenMUONLMR, 1) // low mass dimuons parametric generator
};
#endif
+