PWGJE
[u/mrichter/AliRoot.git] / EVGEN / AliGenPairFlat.h
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