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(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
- const 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);
};