Bug corrected.
[u/mrichter/AliRoot.git] / STEER / AliESDVZERO.h
CommitLineData
5fc205b9 1#ifndef ALIESDVZERO_H
2#define ALIESDVZERO_H
dd735cf0 3
4#include <TObject.h>
5
6class AliESDVZERO : public TObject
7{
8public:
9 AliESDVZERO();
5fc205b9 10 AliESDVZERO(const AliESDVZERO&o);
d0502ab2 11 AliESDVZERO(UInt_t BBtriggerV0A, UInt_t BGtriggerV0A,
12 UInt_t BBtriggerV0C, UInt_t BGtriggerV0C,
db0db003 13 Float_t *Multiplicity, Float_t *Adc,
14 Float_t *Time, Float_t *Width, Bool_t *BBFlag, Bool_t *BGFlag);
4ca09433 15 virtual void Copy(TObject &obj) const;
732a24fe 16
a055ee24 17 virtual ~AliESDVZERO() {};
b44c933e 18
19 enum {
20 kCorrectedLeadingTime = BIT(14),
21 kTriggerBitsFilled = BIT(15),
89a39339 22 kDecisionFilled = BIT(16),
23 kOnlineBitsFilled = BIT(17)
b44c933e 24 };
25 enum Decision { kV0Invalid = -1, kV0Empty = 0, kV0BB, kV0BG, kV0Fake };
dd735cf0 26
d0502ab2 27 // Setters
a055ee24 28 virtual void SetBBtriggerV0A(UInt_t BBtrigger) {fBBtriggerV0A=BBtrigger;}
29 virtual void SetBGtriggerV0A(UInt_t BGtrigger) {fBGtriggerV0A=BGtrigger;}
30 virtual void SetBBtriggerV0C(UInt_t BBtrigger) {fBBtriggerV0C=BBtrigger;}
31 virtual void SetBGtriggerV0C(UInt_t BGtrigger) {fBGtriggerV0C=BGtrigger;}
6c6d6114 32 virtual void SetMultiplicity(Float_t Multiplicity[64])
a055ee24 33 {for(Int_t i=0;i<64;i++) fMultiplicity[i]=Multiplicity[i];}
db0db003 34 virtual void SetADC(Float_t adc[64])
28fdf12c 35 {for(Int_t i=0;i<64;i++) fAdc[i]=adc[i];}
db0db003 36 virtual void SetTime(Float_t time[64])
28fdf12c 37 {for(Int_t i=0;i<64;i++) fTime[i]=time[i];}
db0db003 38 virtual void SetWidth(Float_t width[64])
d0502ab2 39 {for(Int_t i=0;i<64;i++) fWidth[i]=width[i];}
40 virtual void SetBBFlag(Bool_t BBFlag[64])
41 {for(Int_t i=0;i<64;i++) fBBFlag[i]=BBFlag[i];}
42 virtual void SetBGFlag(Bool_t BGFlag[64])
43 {for(Int_t i=0;i<64;i++) fBGFlag[i]=BGFlag[i];}
b44c933e 44
45 void SetV0ATime(Float_t time) {fV0ATime = time;}
46 void SetV0CTime(Float_t time) {fV0CTime = time;}
47 void SetV0ATimeError(Float_t err) {fV0ATimeError = err;}
48 void SetV0CTimeError(Float_t err) {fV0CTimeError = err;}
49
50 void SetV0ADecision(Decision des) {fV0ADecision = des;}
51 void SetV0CDecision(Decision des) {fV0CDecision = des;}
d0502ab2 52
a055ee24 53 // Getters
5fc205b9 54 Short_t GetNbPMV0A() const;
55 Short_t GetNbPMV0C() const;
56 Float_t GetMTotV0A() const;
57 Float_t GetMTotV0C() const;
58 Float_t* GetMRingV0A() const;
59 Float_t* GetMRingV0C() const;
60 Float_t GetMRingV0A(Int_t ring) const;
61 Float_t GetMRingV0C(Int_t ring) const;
28fdf12c 62
5fc205b9 63 Float_t GetMultiplicity(Int_t i) const;
64 Float_t GetMultiplicityV0A(Int_t i) const;
65 Float_t GetMultiplicityV0C(Int_t i) const;
66 Float_t GetAdc(Int_t i) const;
67 Float_t GetAdcV0A(Int_t i) const;
68 Float_t GetAdcV0C(Int_t i) const;
69 Float_t GetTime(Int_t i) const;
70 Float_t GetTimeV0A(Int_t i) const;
71 Float_t GetTimeV0C(Int_t i) const;
72 Float_t GetWidth(Int_t i) const;
73 Float_t GetWidthV0A(Int_t i) const;
74 Float_t GetWidthV0C(Int_t i) const;
75 Bool_t BBTriggerV0A(Int_t i) const;
76 Bool_t BGTriggerV0A(Int_t i) const;
77 Bool_t BBTriggerV0C(Int_t i) const;
78 Bool_t BGTriggerV0C(Int_t i) const;
79 Bool_t GetBBFlag(Int_t i) const;
80 Bool_t GetBGFlag(Int_t i) const;
b44c933e 81
82 Float_t GetV0ATime() const { return fV0ATime; }
83 Float_t GetV0CTime() const { return fV0CTime; }
84 Float_t GetV0ATimeError() const { return fV0ATimeError; }
85 Float_t GetV0CTimeError() const { return fV0CTimeError; }
86
87 Decision GetV0ADecision() const { return fV0ADecision; }
88 Decision GetV0CDecision() const { return fV0CDecision; }
d0502ab2 89
28fdf12c 90 Bool_t OutOfRange(Int_t i, const char *s, Int_t upper) const;
a055ee24 91 AliESDVZERO &operator=(const AliESDVZERO& source);
dd735cf0 92
93protected:
dd735cf0 94
d0502ab2 95 UInt_t fBBtriggerV0A; // bit mask for Beam-Beam trigger in V0A
96 UInt_t fBGtriggerV0A; // bit mask for Beam-Gas trigger in V0A
97 UInt_t fBBtriggerV0C; // bit mask for Beam-Beam trigger in V0C
98 UInt_t fBGtriggerV0C; // bit mask for Beam-Gas trigger in V0C
a055ee24 99
6c6d6114 100 Float_t fMultiplicity[64]; // multiplicity for each channel
db0db003 101 Float_t fAdc[64]; // adc for each channel
102 Float_t fTime[64]; // time for each channel
103 Float_t fWidth[64]; // time width for each channel
d0502ab2 104 Bool_t fBBFlag[64]; // BB Flags from Online V0 Electronics
105 Bool_t fBGFlag[64]; // BG Flags from Online V0 Electronics
b44c933e 106
107 Float_t fV0ATime; // Average time in V0A
108 Float_t fV0CTime; // Average time in V0C
109 Float_t fV0ATimeError; // Error in the average time in V0A
110 Float_t fV0CTimeError; // Error in the average time in V0C
111
112 Decision fV0ADecision; // V0A final decision based on average time of channels
113 Decision fV0CDecision; // V0C final decision based on average time of channels
114
115 ClassDef(AliESDVZERO,8)
dd735cf0 116};
117
118#endif