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