]>
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; | |
20 | ||
df5036f6 | 21 | typedef enum {kMultiplicity, kZVertex, kEventPlane, kLeadingParticleEta, kUser1, kUser2} EventPoolAxis_t; |
22 | ||
2d0a3a45 | 23 | class AliEventPoolOTF : public AliVEventPool |
24 | { | |
25 | public: | |
26 | AliEventPoolOTF(); | |
c08c82c3 | 27 | AliEventPoolOTF(const char* name, const char* title = "AOD"); |
2d0a3a45 | 28 | |
29 | virtual ~AliEventPoolOTF() {;} | |
30 | // Interface | |
31 | virtual TChain* GetNextChain(); | |
32 | virtual void GetCurrentBin(Float_t* /*bin*/); | |
33 | virtual Int_t GetDimension(); | |
34 | virtual void Init(); | |
35 | virtual void SetMultiplicityBin(Int_t min, Int_t max, Int_t step) | |
df5036f6 | 36 | {fValueMin[kMultiplicity] = Float_t(min); fValueMax[kMultiplicity] = Float_t(max); fValueStep[kMultiplicity] = Float_t(step);} |
37 | ||
38 | virtual void SetMultiplicityBinning(Float_t min, Float_t max, Float_t step) | |
39 | {fValueMin[kMultiplicity] = min; fValueMax[kMultiplicity] = max; fValueStep[kMultiplicity] = step;} | |
40 | virtual void SetZVertexBinning(Float_t min, Float_t max, Float_t step) | |
41 | {fValueMin[kZVertex] = min; fValueMax[kZVertex] = max; fValueStep[kZVertex] = step;} | |
42 | virtual void SetEventPlaneBinning(Float_t min, Float_t max, Float_t step) | |
43 | {fValueMin[kEventPlane] = min; fValueMax[kEventPlane] = max; fValueStep[kEventPlane] = step;} | |
44 | virtual void SetLeadingParticleEtaBinning(Float_t min, Float_t max, Float_t step) | |
45 | {fValueMin[kLeadingParticleEta] = min; fValueMax[kLeadingParticleEta] = max; fValueStep[kLeadingParticleEta] = step;} | |
46 | ||
2d0a3a45 | 47 | // |
a6e0ebfe | 48 | void SetTagDirectory(const char* dirname) {fTagDirectory = dirname;}; |
49 | virtual Int_t BinNumber() const {return fBinNumber;} | |
a065d8ed | 50 | |
2d0a3a45 | 51 | private: |
52 | AliEventPoolOTF(const AliEventPoolOTF& obj); | |
53 | AliEventPoolOTF& operator=(const AliEventPoolOTF& other); | |
df5036f6 | 54 | void InitArrays(); |
55 | ||
2d0a3a45 | 56 | protected: |
57 | AliTagAnalysis* fTagAnalysis; // Pointer to tag analysis | |
58 | AliRunTagCuts* fRunCuts; // Run cuts | |
59 | AliLHCTagCuts* fLHCCuts; // LHC cuts | |
60 | AliDetectorTagCuts* fDetectorCuts; // Detector cuts | |
61 | AliEventTagCuts* fEventCuts; // Event cuts | |
df5036f6 | 62 | const char* fTagDirectory; // Directory with local tag files |
63 | // Common pool cuts | |
64 | // Multiplicity | |
65 | Float_t fValueMin[6]; // Minimum value | |
66 | Float_t fValueMax[6]; // Maximum value | |
67 | Float_t fValueStep[6]; // Step size | |
68 | Float_t fValue[6]; // Current value | |
69 | // | |
a065d8ed | 70 | Int_t fBinNumber; // Current bin number |
df5036f6 | 71 | Bool_t fNoMore; // No more bins |
a065d8ed | 72 | |
2d0a3a45 | 73 | ClassDef(AliEventPoolOTF, 0); |
74 | }; | |
75 | ||
76 | #endif |