]>
Commit | Line | Data |
---|---|---|
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> | |
15 | class AliRunTagCuts; | |
16 | class AliLHCTagCuts; | |
17 | class AliDetectorTagCuts; | |
18 | class AliEventTagCuts; | |
19 | class AliTagAnalysis; | |
21b8dea4 | 20 | class TGridResult; |
2d0a3a45 | 21 | |
a01e4203 | 22 | typedef enum {kMultiplicity, kZVertex, kEventPlane, kLeadingParticleEta, kLeadingParticlePhi, kUser1, kUser2} EventPoolAxis_t; |
df5036f6 | 23 | |
2d0a3a45 | 24 | class 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 |