Line data Source code
1 : #ifndef ALIVVZERO_H
2 : #define ALIVVZERO_H
3 :
4 : //-------------------------------------------------------------------------
5 : // Base class for ESD and AOD VZERO data
6 : // Author: Cvetan Cheshkov
7 : // cvetan.cheshkov@cern.ch 2/02/2011
8 : //-------------------------------------------------------------------------
9 :
10 : #include "TObject.h"
11 : #include "TMath.h"
12 :
13 : class AliVVZERO : public TObject
14 : {
15 : public:
16 110 : AliVVZERO() { }
17 : AliVVZERO(const AliVVZERO& source);
18 : AliVVZERO &operator=(const AliVVZERO& source);
19 :
20 78 : virtual ~AliVVZERO() { }
21 :
22 : enum {
23 : kCorrectedLeadingTime = BIT(14),
24 : kTriggerBitsFilled = BIT(15),
25 : kDecisionFilled = BIT(16),
26 : kOnlineBitsFilled = BIT(17),
27 : kCorrectedForSaturation = BIT(18),
28 : kRobustMeanTime = BIT(19),
29 : kTriggerChargeBitsFilled = BIT(20),
30 : kPastFutureFlagsFilled = BIT(21)
31 : };
32 : enum Decision { kV0Invalid = -1, kV0Empty = 0, kV0BB, kV0BG, kV0Fake };
33 : enum TriggerBits {
34 : kBBAandBBC = 0,
35 : kBBAorBBC = 1,
36 : kBGAandBBC = 2,
37 : kBGA = 3,
38 : kBGCandBBA = 4,
39 : kBGC = 5,
40 : kCTA1andCTC1 = 6,
41 : kCTA1orCTC1 = 7,
42 : kCTA2andCTC2 = 8,
43 : kCTA2orCTC2 = 9,
44 : kMTAandMTC = 10,
45 : kMTAorMTC = 11,
46 : kBBA = 12,
47 : kBBC = 13,
48 : kBGAorBGC = 14,
49 : kBGAandBBCorBGCandBBA = 15
50 : };
51 :
52 : virtual Short_t GetNbPMV0A() const = 0;
53 : virtual Short_t GetNbPMV0C() const = 0;
54 : virtual Float_t GetMTotV0A() const = 0;
55 : virtual Float_t GetMTotV0C() const = 0;
56 : virtual Float_t GetMRingV0A(Int_t ring) const = 0;
57 : virtual Float_t GetMRingV0C(Int_t ring) const = 0;
58 :
59 : virtual Float_t GetMultiplicity(Int_t i) const = 0;
60 : virtual Float_t GetMultiplicityV0A(Int_t i) const = 0;
61 : virtual Float_t GetMultiplicityV0C(Int_t i) const = 0;
62 :
63 : virtual Bool_t BBTriggerV0A(Int_t i) const = 0;
64 : virtual Bool_t BGTriggerV0A(Int_t i) const = 0;
65 : virtual Bool_t BBTriggerV0C(Int_t i) const = 0;
66 : virtual Bool_t BGTriggerV0C(Int_t i) const = 0;
67 : virtual Bool_t GetBBFlag(Int_t i) const = 0;
68 : virtual Bool_t GetBGFlag(Int_t i) const = 0;
69 :
70 : virtual Float_t GetV0ATime() const = 0;
71 : virtual Float_t GetV0CTime() const = 0;
72 :
73 : virtual Decision GetV0ADecision() const = 0;
74 : virtual Decision GetV0CDecision() const = 0;
75 :
76 : virtual UShort_t GetTriggerChargeA() const = 0;
77 : virtual UShort_t GetTriggerChargeC() const = 0;
78 : virtual UShort_t GetTriggerBits() const = 0;
79 :
80 : virtual Bool_t GetPFBBFlag(Int_t channel, Int_t clock) const = 0;
81 : virtual Bool_t GetPFBGFlag(Int_t channel, Int_t clock) const = 0;
82 :
83 : static Float_t GetVZEROAvgPhi(Int_t channel)
84 0 : { return TMath::Pi() / 8 + TMath::Pi() / 4 * (channel%8); }
85 : static Float_t GetVZEROEtaMin(Int_t channel);
86 : static Float_t GetVZEROEtaMax(Int_t channel);
87 :
88 : protected:
89 :
90 : Bool_t OutOfRange(Int_t i, const char *s, Int_t upper) const;
91 :
92 196 : ClassDef(AliVVZERO,3)
93 : };
94 :
95 : #endif
|