]>
Commit | Line | Data |
---|---|---|
1 | #ifndef ALIGENPAIRFLAT_H | |
2 | #define ALIGENPAIRFLAT_H | |
3 | ||
4 | ||
5 | // Generator for particle pairs in a preset | |
6 | // kinematic range | |
7 | // ranges can be set for invariant mass, pair pT, pair rapidity | |
8 | // and pair azimuth | |
9 | ||
10 | // Comments and suggestions: markus.konrad.kohler@cern.ch | |
11 | ||
12 | ||
13 | #include "AliGenerator.h" | |
14 | ||
15 | class TF1; | |
16 | ||
17 | class AliGenPairFlat : public AliGenerator | |
18 | { | |
19 | public: | |
20 | AliGenPairFlat(); | |
21 | virtual ~AliGenPairFlat(); | |
22 | virtual void Generate(); | |
23 | virtual void Init(); | |
24 | ||
25 | virtual void SetPairNPart(Int_t npart) {fPairNpart=npart;} | |
26 | virtual void SetPairYRange(Float_t Ymin, Float_t Ymax) | |
27 | {fPairYMin = Ymin; fPairYMax = Ymax;} | |
28 | virtual void SetPairPhiRange(Float_t phimin, Float_t phimax) | |
29 | {fPairPhiMin = phimin; fPairPhiMax = phimax;} | |
30 | virtual void SetPairPtRange(Float_t ptmin, Float_t ptmax) | |
31 | {fPairPtMin = ptmin; fPairPtMax = ptmax;} | |
32 | virtual void SetPairMassRange(Float_t massmin, Float_t massmax) | |
33 | {fPairMassMin = massmin; fPairMassMax = massmax;} | |
34 | virtual void SetLegPdg(Int_t pdg1, Int_t pdg2) | |
35 | {fLegPdg1 = pdg1; fLegPdg2 = pdg2;} | |
36 | virtual void SetPolarization(Float_t Alpha) | |
37 | {fAlpha = Alpha;} | |
38 | void SetDebug(Int_t debug) {fDebug=debug;} | |
39 | ||
40 | protected: | |
41 | ||
42 | Int_t fPairNpart; //Number of generated pairs | |
43 | Float_t fPairYMin; // Minimum eta | |
44 | Float_t fPairYMax; // Maximum eta | |
45 | Float_t fPairPhiMin; // Minimum phi | |
46 | Float_t fPairPhiMax; // Maximum phi | |
47 | Float_t fPairPtMin; // Minimum pt | |
48 | Float_t fPairPtMax; // Maximum pt | |
49 | Float_t fPairMassMin; // Minimum mass | |
50 | Float_t fPairMassMax; // Maximum mass | |
51 | Int_t fLegPdg1; // pdg code of first daughter | |
52 | Int_t fLegPdg2; // pdg code of second daughter | |
53 | Float_t fAlpha; // Polarization factor | |
54 | Int_t fDebug; // debug level | |
55 | TF1 *fPol; // Polarization function | |
56 | ||
57 | Bool_t Decay(const TLorentzVector& mother, TLorentzVector &dau1, TLorentzVector &dau2 , TF1* fPol); | |
58 | ||
59 | ||
60 | private: | |
61 | AliGenPairFlat(const AliGenPairFlat &pair); | |
62 | AliGenPairFlat & operator=(const AliGenPairFlat & pair); | |
63 | ||
64 | ClassDef(AliGenPairFlat,1) // Flat random pair generator | |
65 | }; | |
66 | ||
67 | #endif |