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