Added V0A23 (V0 rings 2-3), V0C01 (V0 rings 0-1) and V0S = V0A23+V0C01
[u/mrichter/AliRoot.git] / STEER / STEERBase / AliVVZERO.h
CommitLineData
aa2494a4 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"
01789fbf 11#include "TMath.h"
aa2494a4 12
13class AliVVZERO : public TObject
14{
15public:
16 AliVVZERO() { }
17 AliVVZERO(const AliVVZERO& source);
18 AliVVZERO &operator=(const AliVVZERO& source);
19
20 virtual ~AliVVZERO() { }
21
22 enum {
23 kCorrectedLeadingTime = BIT(14),
24 kTriggerBitsFilled = BIT(15),
25 kDecisionFilled = BIT(16),
26 kOnlineBitsFilled = BIT(17),
7bf5b178 27 kCorrectedForSaturation = BIT(18),
18b2dabf 28 kRobustMeanTime = BIT(19),
29 kTriggerChargeBitsFilled = BIT(20)
aa2494a4 30 };
31 enum Decision { kV0Invalid = -1, kV0Empty = 0, kV0BB, kV0BG, kV0Fake };
889c27e3 32 enum TriggerBits {
33 kBBAandBBC = 0,
34 kBBAorBBC = 1,
35 kBGAandBBC = 2,
36 kBGA = 3,
37 kBGCandBBA = 4,
38 kBGC = 5,
39 kCTA1andCTC1 = 6,
40 kCTA1orCTC1 = 7,
41 kCTA2andCTC2 = 8,
42 kCTA2orCTC2 = 9,
43 kMTAandMTC = 10,
44 kMTAorMTC = 11,
45 kBBA = 12,
46 kBBC = 13,
47 kBGAorBGC = 14,
48 kBGAandBBCorBGCandBBA = 15
49 };
aa2494a4 50
51 virtual Short_t GetNbPMV0A() const = 0;
52 virtual Short_t GetNbPMV0C() const = 0;
53 virtual Float_t GetMTotV0A() const = 0;
54 virtual Float_t GetMTotV0C() const = 0;
55 virtual Float_t GetMRingV0A(Int_t ring) const = 0;
56 virtual Float_t GetMRingV0C(Int_t ring) const = 0;
57
58 virtual Float_t GetMultiplicity(Int_t i) const = 0;
59 virtual Float_t GetMultiplicityV0A(Int_t i) const = 0;
60 virtual Float_t GetMultiplicityV0C(Int_t i) const = 0;
61
62 virtual Bool_t BBTriggerV0A(Int_t i) const = 0;
63 virtual Bool_t BGTriggerV0A(Int_t i) const = 0;
64 virtual Bool_t BBTriggerV0C(Int_t i) const = 0;
65 virtual Bool_t BGTriggerV0C(Int_t i) const = 0;
66 virtual Bool_t GetBBFlag(Int_t i) const = 0;
67 virtual Bool_t GetBGFlag(Int_t i) const = 0;
68
69 virtual Float_t GetV0ATime() const = 0;
70 virtual Float_t GetV0CTime() const = 0;
71
72 virtual Decision GetV0ADecision() const = 0;
73 virtual Decision GetV0CDecision() const = 0;
b734abbe 74
18b2dabf 75 virtual UShort_t GetTriggerChargeA() const = 0;
76 virtual UShort_t GetTriggerChargeC() const = 0;
77 virtual UShort_t GetTriggerBits() const = 0;
78
01789fbf 79 static Float_t GetVZEROAvgPhi(Int_t channel)
80 { return TMath::Pi() / 8 + TMath::Pi() / 4 * (channel%8); }
81 static Float_t GetVZEROEtaMin(Int_t channel);
82 static Float_t GetVZEROEtaMax(Int_t channel);
83
b734abbe 84protected:
85
aa2494a4 86 Bool_t OutOfRange(Int_t i, const char *s, Int_t upper) const;
87
18b2dabf 88 ClassDef(AliVVZERO,2)
aa2494a4 89};
90
91#endif