RelVal: more retries w/pauses on VM + small fixes
[u/mrichter/AliRoot.git] / ANALYSIS / AliEventPoolOTF.h
CommitLineData
2d0a3a45 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>
15class AliRunTagCuts;
16class AliLHCTagCuts;
17class AliDetectorTagCuts;
18class AliEventTagCuts;
19class AliTagAnalysis;
21b8dea4 20class TGridResult;
2d0a3a45 21
a01e4203 22typedef enum {kMultiplicity, kZVertex, kEventPlane, kLeadingParticleEta, kLeadingParticlePhi, kUser1, kUser2} EventPoolAxis_t;
df5036f6 23
2d0a3a45 24class AliEventPoolOTF : public AliVEventPool
25{
26 public:
27 AliEventPoolOTF();
c08c82c3 28 AliEventPoolOTF(const char* name, const char* title = "AOD");
2d0a3a45 29
2e33f655 30 virtual ~AliEventPoolOTF();
2d0a3a45 31 // Interface
32 virtual TChain* GetNextChain();
33 virtual void GetCurrentBin(Float_t* /*bin*/);
34 virtual Int_t GetDimension();
35 virtual void Init();
36 virtual void SetMultiplicityBin(Int_t min, Int_t max, Int_t step)
df5036f6 37 {fValueMin[kMultiplicity] = Float_t(min); fValueMax[kMultiplicity] = Float_t(max); fValueStep[kMultiplicity] = Float_t(step);}
38
39 virtual void SetMultiplicityBinning(Float_t min, Float_t max, Float_t step)
40 {fValueMin[kMultiplicity] = min; fValueMax[kMultiplicity] = max; fValueStep[kMultiplicity] = step;}
41 virtual void SetZVertexBinning(Float_t min, Float_t max, Float_t step)
42 {fValueMin[kZVertex] = min; fValueMax[kZVertex] = max; fValueStep[kZVertex] = step;}
43 virtual void SetEventPlaneBinning(Float_t min, Float_t max, Float_t step)
44 {fValueMin[kEventPlane] = min; fValueMax[kEventPlane] = max; fValueStep[kEventPlane] = step;}
45 virtual void SetLeadingParticleEtaBinning(Float_t min, Float_t max, Float_t step)
46 {fValueMin[kLeadingParticleEta] = min; fValueMax[kLeadingParticleEta] = max; fValueStep[kLeadingParticleEta] = step;}
a01e4203 47 virtual void SetLeadingParticlePhiBinning(Float_t min, Float_t max, Float_t step)
48 {fValueMin[kLeadingParticlePhi] = min; fValueMax[kLeadingParticlePhi] = max; fValueStep[kLeadingParticlePhi] = step;}
df5036f6 49
2d0a3a45 50 //
a6e0ebfe 51 void SetTagDirectory(const char* dirname) {fTagDirectory = dirname;};
21b8dea4 52 void SetGridResult(TGridResult* gridTag) {fGridTags = gridTag;};
a6e0ebfe 53 virtual Int_t BinNumber() const {return fBinNumber;}
a065d8ed 54
2d0a3a45 55 private:
56 AliEventPoolOTF(const AliEventPoolOTF& obj);
57 AliEventPoolOTF& operator=(const AliEventPoolOTF& other);
df5036f6 58 void InitArrays();
59
2d0a3a45 60 protected:
21b8dea4 61 AliTagAnalysis* fTagAnalysis; // Pointer to tag analysis
62 AliRunTagCuts* fRunCuts; // Run cuts
63 AliLHCTagCuts* fLHCCuts; // LHC cuts
64 AliDetectorTagCuts* fDetectorCuts; // Detector cuts
65 AliEventTagCuts* fEventCuts; // Event cuts
66 TGridResult* fGridTags; // Tags from a grid file collection
9ce6b490 67 TChain* fChain; // Current chain
21b8dea4 68 const char* fTagDirectory; // Directory with local tag files
df5036f6 69 // Common pool cuts
70 // Multiplicity
a01e4203 71 Float_t fValueMin[10]; // Minimum value
72 Float_t fValueMax[10]; // Maximum value
73 Float_t fValueStep[10]; // Step size
74 Float_t fValue[10]; // Current value
df5036f6 75 //
a065d8ed 76 Int_t fBinNumber; // Current bin number
df5036f6 77 Bool_t fNoMore; // No more bins
a065d8ed 78
2d0a3a45 79 ClassDef(AliEventPoolOTF, 0);
80};
81
82#endif