Coding violations corrected.
[u/mrichter/AliRoot.git] / EVGEN / AliGenMUONLMR.h
CommitLineData
368fc61e 1#ifndef AliGenMUONLMR_h
2#define AliGenMUONLMR_h
3
4#include <TH1F.h>
5#include <TH1D.h>
6#include <TF1.h>
7#include <TParticle.h>
8#include <TLorentzVector.h>
9#include "AliGenMC.h"
10
11class AliGenMUONLMR : public AliGenMC {
12 public:
13 enum parttype_t {kPionLMR, kKaonLMR, kEtaLMR, kRhoLMR, kOmegaLMR, kPhiLMR, kEtaPrimeLMR};
14 AliGenMUONLMR();
15 ~AliGenMUONLMR();
4a33c50d 16 static Double_t PtDistr(const Double_t *x, const Double_t *par);
17 static Double_t YDistr(const Double_t *x, const Double_t *par);
18 virtual void Decay2Body(const TParticle *mother);
19 virtual void DalitzDecay(const TParticle *mother);
368fc61e 20 virtual void DecayPiK(TParticle *mother, Bool_t &hadDecayed);
21 virtual Double_t FormFactor(Double_t q2, Int_t decay);
22 virtual void Generate();
23 virtual TParticle* GetMuon(Int_t i) {return fMu[i];}
24 virtual void SetNMuMin(Int_t nmin) {fNMuMin = nmin; }
25 virtual void GenerateSingleProcess(Int_t whichproc) { fGenSingleProc = whichproc;}
26 virtual void SetScaleMultiplicity(Int_t ipart, Double_t scale) { fScaleMult[ipart] = scale; }
4a33c50d 27 static Double_t RhoLineShapeNew(const Double_t *, const Double_t *);
368fc61e 28 virtual void FinishRun();
aee2a19b 29 private:
30 AliGenMUONLMR(const AliGenMUONLMR &lmr);
31 AliGenMUONLMR & operator=(const AliGenMUONLMR & rhs);
32
368fc61e 33 private:
34 static const Int_t fgkNpart = 7; // number of particles to be generated
35 Int_t fNMuMin; // min. number of muons to accept the event for writing
36 Int_t fGenSingleProc; // flag to generate a single process (1) or the whole cocktail (0)
37 Int_t fPDG[7]; // pdg code of particle to be generated
38 Double_t fScaleMult[7]; // multiplicity scaling factor (w.r.t. pythia@7TeV)
39 TF1 *fPt[7]; // pt distribution
40 TF1 *fY[7]; // rapidity distribution
41 TF1 *fMult[7]; // multiplicity distribution
42 TF1 *fDecay[2]; // fDecay[0] = pion, fDecay[1] = kaon
43 TH1F *fDalitz[3]; // Dalitz decay form factor for eta, omega, etaprime
44 TF1 *fCosTheta; // function for polarized theta distributions
45 TF1 *fRhoLineShape; // rho line shape
46 TParticle* fParticle[7]; // TPaticle object for the particles to be generated
47 TParticle* fMu[2]; // fMu[0] = mu+ fMu[1] = mu-
48 TH1D *fHMultMu; // muon multiplicity
49 TH1D *fHNProc; // number of events generated per process
50 ClassDef(AliGenMUONLMR, 1) // example of analysis
51};
52
53#endif