Added V0A23 (V0 rings 2-3), V0C01 (V0 rings 0-1) and V0S = V0A23+V0C01
[u/mrichter/AliRoot.git] / STEER / STEERBase / AliVVZERO.h
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   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),
27     kCorrectedForSaturation = BIT(18),
28     kRobustMeanTime = BIT(19),
29     kTriggerChargeBitsFilled = BIT(20)
30   };
31   enum Decision { kV0Invalid = -1, kV0Empty = 0, kV0BB, kV0BG, kV0Fake };
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   };
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;
74
75   virtual UShort_t GetTriggerChargeA() const = 0;
76   virtual UShort_t GetTriggerChargeC() const = 0;
77   virtual UShort_t GetTriggerBits() const = 0;
78
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
84 protected:  
85
86   Bool_t OutOfRange(Int_t i, const char *s, Int_t upper) const;
87     
88   ClassDef(AliVVZERO,2)
89 };
90
91 #endif