]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ANALYSIS/AliEventPoolOTF.h
- More dimensions added.
[u/mrichter/AliRoot.git] / ANALYSIS / AliEventPoolOTF.h
1 #ifndef ALIEVENTPOOLOTF_H
2 #define ALIEVENTPOOLOTF_H
3  
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 /* $Id$ */
8
9 // Realisation of an AliVEventPool via
10 // on the flight (OTF) generation of the bin using AliTagAnalysis.
11 // Author Andreas Morsch
12 // andreas.morsch@cern.ch
13
14 #include <AliVEventPool.h>
15 class AliRunTagCuts;
16 class AliLHCTagCuts;
17 class AliDetectorTagCuts;
18 class AliEventTagCuts;
19 class AliTagAnalysis;
20
21 typedef enum {kMultiplicity, kZVertex, kEventPlane, kLeadingParticleEta, kUser1, kUser2}  EventPoolAxis_t;
22
23 class AliEventPoolOTF : public AliVEventPool
24 {
25  public:
26     AliEventPoolOTF();
27     AliEventPoolOTF(const char* name, const char* title = "AOD");
28
29     virtual ~AliEventPoolOTF() {;}
30     // Interface
31     virtual TChain* GetNextChain();
32     virtual void  GetCurrentBin(Float_t* /*bin*/);
33     virtual Int_t GetDimension();
34     virtual void  Init();
35     virtual void  SetMultiplicityBin(Int_t min, Int_t max, Int_t step)
36         {fValueMin[kMultiplicity] = Float_t(min); fValueMax[kMultiplicity] = Float_t(max); fValueStep[kMultiplicity] = Float_t(step);}
37
38     virtual void  SetMultiplicityBinning(Float_t min, Float_t max, Float_t step)
39         {fValueMin[kMultiplicity] = min; fValueMax[kMultiplicity] = max; fValueStep[kMultiplicity] = step;}
40     virtual void  SetZVertexBinning(Float_t min, Float_t max, Float_t step)
41         {fValueMin[kZVertex] = min; fValueMax[kZVertex] = max; fValueStep[kZVertex] = step;}
42     virtual void  SetEventPlaneBinning(Float_t min, Float_t max, Float_t step)
43         {fValueMin[kEventPlane] = min; fValueMax[kEventPlane] = max; fValueStep[kEventPlane] = step;}
44     virtual void  SetLeadingParticleEtaBinning(Float_t min, Float_t max, Float_t step)
45         {fValueMin[kLeadingParticleEta] = min; fValueMax[kLeadingParticleEta] = max; fValueStep[kLeadingParticleEta] = step;}
46
47     //
48     void SetTagDirectory(const char* dirname) {fTagDirectory = dirname;};
49     virtual Int_t BinNumber() const {return fBinNumber;}
50             
51  private:
52     AliEventPoolOTF(const AliEventPoolOTF& obj);
53     AliEventPoolOTF& operator=(const AliEventPoolOTF& other);
54     void InitArrays();
55     
56  protected:
57     AliTagAnalysis*      fTagAnalysis;  // Pointer to tag analysis
58     AliRunTagCuts*       fRunCuts;      // Run      cuts
59     AliLHCTagCuts*       fLHCCuts;      // LHC      cuts
60     AliDetectorTagCuts*  fDetectorCuts; // Detector cuts
61     AliEventTagCuts*     fEventCuts;    // Event    cuts
62     const char*          fTagDirectory; // Directory with local tag files
63     // Common pool cuts
64     // Multiplicity
65     Float_t              fValueMin[6];  // Minimum value
66     Float_t              fValueMax[6];  // Maximum value
67     Float_t              fValueStep[6]; // Step size
68     Float_t              fValue[6];     // Current value
69     //
70     Int_t                fBinNumber;    // Current bin number
71     Bool_t               fNoMore;       // No more bins 
72     
73     ClassDef(AliEventPoolOTF, 0); 
74 };
75  
76 #endif