]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG/muon/AliEventPoolMuon.h
o small fix
[u/mrichter/AliRoot.git] / PWG / muon / AliEventPoolMuon.h
1 #ifndef AliEventPoolMuon_H
2 #define AliEventPoolMuon_H
3
4 /* $Id$ */ 
5
6 #include "AliVEventPool.h"
7 #include "AliRunTagCuts.h"
8 #include "AliLHCTagCuts.h"
9 #include "AliDetectorTagCuts.h"
10 #include "AliEventTagCuts.h"
11 #include "AliTagAnalysis.h"
12
13 // Realisation of an AliVEventPool via
14 // on the flight generation of the bin using AliTagAnalysis.
15 // Created expanding AliEventPoolOTF class functionalities
16 //
17 // Authors Alessandro De Falco and Antonio Uras, INFN Cagliari
18 // alessandro.de.falco@ca.infn.it  antonio.uras@ca.infn.it
19
20 //======================================================================================================
21
22 class AliEventPoolMuon : public AliVEventPool {
23
24  public:
25   AliEventPoolMuon();
26   AliEventPoolMuon(const Char_t *name, const Char_t *title = "AOD");
27   
28   virtual ~AliEventPoolMuon() {;}
29
30   virtual TChain* GetNextChain();
31   virtual void  GetCurrentBin(Float_t* /*bin*/);
32   virtual Int_t GetDimension();
33   virtual void  Init();
34   virtual void  SetMultiplicityRange(Int_t min, Int_t max, Int_t step)
35   { fMultiplicityMin = min; fMultiplicityMax = max; fMultiplicityStep = step; }
36   virtual void  SetNFWMuonRange(Int_t min, Int_t max, Int_t step)
37   { fNFWMuonMin = min; fNFWMuonMax = max; fNFWMuonStep = step; }
38   virtual void  SetPrimaryVertexZRange(Int_t min, Int_t max, Int_t step)
39   { fPrimaryVertexZMin = min; fPrimaryVertexZMax = max; fPrimaryVertexZStep = step; }
40   virtual Double_t GetMeanPrimaryVertexZ() { return fPrimaryVertexZ + 0.5*fPrimaryVertexZStep; }
41   
42   void SetTagDirectory(const Char_t *dirname) {fTagDirectory = dirname;};
43   virtual Int_t BinNumber() const {return fBinNumber;}
44   
45  private:
46   AliEventPoolMuon(const AliEventPoolMuon& obj);
47   AliEventPoolMuon& operator=(const AliEventPoolMuon& other);
48
49  protected:
50
51   AliTagAnalysis      *fTagAnalysis;  // Pointer to tag analysis
52   AliRunTagCuts       *fRunCuts;      // Run      cuts
53   AliLHCTagCuts       *fLHCCuts;      // LHC      cuts
54   AliDetectorTagCuts  *fDetectorCuts; // Detector cuts
55   AliEventTagCuts     *fEventCuts;    // Event    cuts
56
57   const Char_t        *fTagDirectory; // Directory with local tag files
58
59   Int_t  fMultiplicityMin;       // Minimum multiplicity
60   Int_t  fMultiplicityMax;       // Maximum multiplicity
61   Int_t  fMultiplicityStep;      // Multiplicity step-size 
62   Int_t  fMultiplicity;          // Minimum multiplicity for the current bin
63         
64   Int_t  fNFWMuonMin;            // Minimum NFWMuon
65   Int_t  fNFWMuonMax;            // Maximum NFWMuon
66   Int_t  fNFWMuonStep;           // NFWMuon step-size 
67   Int_t  fNFWMuon;               // Minimum NFWMuon for the current bin
68         
69   Double_t  fPrimaryVertexZMin;  // Minimum PrimaryVertexZ
70   Double_t  fPrimaryVertexZMax;  // Maximum PrimaryVertexZ
71   Double_t  fPrimaryVertexZStep; // PrimaryVertexZ step-size
72   Double_t  fPrimaryVertexZ;     // Minimum PrimaryVertexZ for the current bin
73   
74   Int_t  fBinNumber;             // Current bin number
75   
76   ClassDef(AliEventPoolMuon, 0); 
77
78 };
79
80 //======================================================================================================
81  
82 #endif