]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ANALYSIS/AliEventPoolOTF.h
Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[u/mrichter/AliRoot.git] / ANALYSIS / AliEventPoolOTF.h
index a464958e41f28835b1e303fed13d43ea96e18144..78a07988fdf611ab01037aa04cfd4892df3ac4e0 100644 (file)
@@ -17,40 +17,64 @@ class AliLHCTagCuts;
 class AliDetectorTagCuts;
 class AliEventTagCuts;
 class AliTagAnalysis;
+class TGridResult;
+
+typedef enum {kMultiplicity, kZVertex, kEventPlane, kLeadingParticleEta, kLeadingParticlePhi, kUser1, kUser2}  EventPoolAxis_t;
 
 class AliEventPoolOTF : public AliVEventPool
 {
  public:
     AliEventPoolOTF();
-    AliEventPoolOTF(const char* name, const char* title);
+    AliEventPoolOTF(const char* name, const char* title = "AOD");
 
-    virtual ~AliEventPoolOTF() {;}
+    virtual ~AliEventPoolOTF();
     // Interface
     virtual TChain* GetNextChain();
     virtual void  GetCurrentBin(Float_t* /*bin*/);
     virtual Int_t GetDimension();
     virtual void  Init();
     virtual void  SetMultiplicityBin(Int_t min, Int_t max, Int_t step)
-       {fMultMin = min; fMultMax = max; fMultStep = step;}
+       {fValueMin[kMultiplicity] = Float_t(min); fValueMax[kMultiplicity] = Float_t(max); fValueStep[kMultiplicity] = Float_t(step);}
+
+    virtual void  SetMultiplicityBinning(Float_t min, Float_t max, Float_t step)
+       {fValueMin[kMultiplicity] = min; fValueMax[kMultiplicity] = max; fValueStep[kMultiplicity] = step;}
+    virtual void  SetZVertexBinning(Float_t min, Float_t max, Float_t step)
+       {fValueMin[kZVertex] = min; fValueMax[kZVertex] = max; fValueStep[kZVertex] = step;}
+    virtual void  SetEventPlaneBinning(Float_t min, Float_t max, Float_t step)
+       {fValueMin[kEventPlane] = min; fValueMax[kEventPlane] = max; fValueStep[kEventPlane] = step;}
+    virtual void  SetLeadingParticleEtaBinning(Float_t min, Float_t max, Float_t step)
+       {fValueMin[kLeadingParticleEta] = min; fValueMax[kLeadingParticleEta] = max; fValueStep[kLeadingParticleEta] = step;}
+  virtual void  SetLeadingParticlePhiBinning(Float_t min, Float_t max, Float_t step)
+       {fValueMin[kLeadingParticlePhi] = min; fValueMax[kLeadingParticlePhi] = max; fValueStep[kLeadingParticlePhi] = step;}
+
     //
-    void SetTagDirectory(char* dirname) {fTagDirectory = dirname;};
-    virtual Int_t BinNumber() {return fBinNumber;}
+    void SetTagDirectory(const char* dirname) {fTagDirectory = dirname;};
+    void SetGridResult(TGridResult*  gridTag) {fGridTags = gridTag;};
+    virtual Int_t BinNumber() const {return fBinNumber;}
            
  private:
     AliEventPoolOTF(const AliEventPoolOTF& obj);
     AliEventPoolOTF& operator=(const AliEventPoolOTF& other);
+    void InitArrays();
+    
  protected:
-    AliTagAnalysis*      fTagAnalysis;  // Pointer to tag analysis
-    AliRunTagCuts*       fRunCuts;      // Run      cuts
-    AliLHCTagCuts*       fLHCCuts;      // LHC      cuts
-    AliDetectorTagCuts*  fDetectorCuts; // Detector cuts
-    AliEventTagCuts*     fEventCuts;    // Event    cuts
-    char*                fTagDirectory; // Directory with local tag files
-    Int_t                fMultMin;      // Minimum multiplicity
-    Int_t                fMultMax;      // Maximum multiplicity
-    Int_t                fMultStep;     // Multiplicity step-size 
-    Int_t                fMultiplicity; // Current multiplicity
+    AliTagAnalysis*      fTagAnalysis;   // Pointer to tag analysis
+    AliRunTagCuts*       fRunCuts;       // Run      cuts
+    AliLHCTagCuts*       fLHCCuts;       // LHC      cuts
+    AliDetectorTagCuts*  fDetectorCuts;  // Detector cuts
+    AliEventTagCuts*     fEventCuts;     // Event    cuts
+    TGridResult*         fGridTags;      // Tags from a grid file collection
+    TChain*              fChain;         // Current chain
+    const char*          fTagDirectory;  // Directory with local tag files
+    // Common pool cuts
+    // Multiplicity
+    Float_t              fValueMin[10];  // Minimum value
+    Float_t              fValueMax[10];  // Maximum value
+    Float_t              fValueStep[10]; // Step size
+    Float_t              fValue[10];     // Current value
+    //
     Int_t                fBinNumber;    // Current bin number
+    Bool_t               fNoMore;       // No more bins 
     
     ClassDef(AliEventPoolOTF, 0); 
 };