]>
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 | |
df5036f6 | 22 | typedef enum {kMultiplicity, kZVertex, kEventPlane, kLeadingParticleEta, kUser1, kUser2} EventPoolAxis_t; |
23 | ||
2d0a3a45 | 24 | class AliEventPoolOTF : public AliVEventPool |
25 | { | |
26 | public: | |
27 | AliEventPoolOTF(); | |
c08c82c3 | 28 | AliEventPoolOTF(const char* name, const char* title = "AOD"); |
2d0a3a45 | 29 | |
30 | virtual ~AliEventPoolOTF() {;} | |
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;} | |
47 | ||
2d0a3a45 | 48 | // |
a6e0ebfe | 49 | void SetTagDirectory(const char* dirname) {fTagDirectory = dirname;}; |
21b8dea4 | 50 | void SetGridResult(TGridResult* gridTag) {fGridTags = gridTag;}; |
a6e0ebfe | 51 | virtual Int_t BinNumber() const {return fBinNumber;} |
a065d8ed | 52 | |
2d0a3a45 | 53 | private: |
54 | AliEventPoolOTF(const AliEventPoolOTF& obj); | |
55 | AliEventPoolOTF& operator=(const AliEventPoolOTF& other); | |
df5036f6 | 56 | void InitArrays(); |
57 | ||
2d0a3a45 | 58 | protected: |
21b8dea4 | 59 | AliTagAnalysis* fTagAnalysis; // Pointer to tag analysis |
60 | AliRunTagCuts* fRunCuts; // Run cuts | |
61 | AliLHCTagCuts* fLHCCuts; // LHC cuts | |
62 | AliDetectorTagCuts* fDetectorCuts; // Detector cuts | |
63 | AliEventTagCuts* fEventCuts; // Event cuts | |
64 | TGridResult* fGridTags; // Tags from a grid file collection | |
65 | const char* fTagDirectory; // Directory with local tag files | |
df5036f6 | 66 | // Common pool cuts |
67 | // Multiplicity | |
68 | Float_t fValueMin[6]; // Minimum value | |
69 | Float_t fValueMax[6]; // Maximum value | |
70 | Float_t fValueStep[6]; // Step size | |
71 | Float_t fValue[6]; // Current value | |
72 | // | |
a065d8ed | 73 | Int_t fBinNumber; // Current bin number |
df5036f6 | 74 | Bool_t fNoMore; // No more bins |
a065d8ed | 75 | |
2d0a3a45 | 76 | ClassDef(AliEventPoolOTF, 0); |
77 | }; | |
78 | ||
79 | #endif |