Line data Source code
1 : #ifndef ALIESDVZERO_H
2 : #define ALIESDVZERO_H
3 :
4 : //-------------------------------------------------------------------------
5 : // Container class for ESD VZERO data
6 : // Author: Brigitte Cheynis & Cvetan Cheshkov
7 : //-------------------------------------------------------------------------
8 :
9 : #include <AliVVZERO.h>
10 :
11 : class AliESDVZERO : public AliVVZERO
12 : {
13 : public:
14 : AliESDVZERO();
15 : AliESDVZERO(const AliESDVZERO&o);
16 : AliESDVZERO(UInt_t BBtriggerV0A, UInt_t BGtriggerV0A,
17 : UInt_t BBtriggerV0C, UInt_t BGtriggerV0C,
18 : Float_t *Multiplicity, Float_t *Adc,
19 : Float_t *Time, Float_t *Width, Bool_t *BBFlag, Bool_t *BGFlag);
20 : void Copy(TObject &obj) const;
21 :
22 168 : virtual ~AliESDVZERO() {};
23 :
24 : // Setters
25 16 : void SetBBtriggerV0A(UInt_t BBtrigger) {fBBtriggerV0A=BBtrigger;}
26 16 : void SetBGtriggerV0A(UInt_t BGtrigger) {fBGtriggerV0A=BGtrigger;}
27 16 : void SetBBtriggerV0C(UInt_t BBtrigger) {fBBtriggerV0C=BBtrigger;}
28 16 : void SetBGtriggerV0C(UInt_t BGtrigger) {fBGtriggerV0C=BGtrigger;}
29 : void SetMultiplicity(const Float_t Multiplicity[64])
30 1056 : {for(Int_t i=0;i<64;i++) fMultiplicity[i]=Multiplicity[i];}
31 : void SetADC(const Float_t adc[64])
32 1056 : {for(Int_t i=0;i<64;i++) fAdc[i]=adc[i];}
33 : void SetTime(const Float_t time[64])
34 1056 : {for(Int_t i=0;i<64;i++) fTime[i]=time[i];}
35 : void SetWidth(const Float_t width[64])
36 1056 : {for(Int_t i=0;i<64;i++) fWidth[i]=width[i];}
37 : void SetBBFlag(const Bool_t BBFlag[64])
38 1056 : {for(Int_t i=0;i<64;i++) fBBFlag[i]=BBFlag[i];}
39 : void SetBGFlag(const Bool_t BGFlag[64])
40 1056 : {for(Int_t i=0;i<64;i++) fBGFlag[i]=BGFlag[i];}
41 :
42 16 : void SetV0ATime(Float_t time) {fV0ATime = time;}
43 16 : void SetV0CTime(Float_t time) {fV0CTime = time;}
44 16 : void SetV0ATimeError(Float_t err) {fV0ATimeError = err;}
45 16 : void SetV0CTimeError(Float_t err) {fV0CTimeError = err;}
46 :
47 32 : void SetV0ADecision(Decision des) {fV0ADecision = des;}
48 32 : void SetV0CDecision(Decision des) {fV0CDecision = des;}
49 :
50 16 : void SetTriggerChargeA(UShort_t chargeA) {fTriggerChargeA = chargeA;}
51 16 : void SetTriggerChargeC(UShort_t chargeC) {fTriggerChargeC = chargeC;}
52 16 : void SetTriggerBits(UShort_t triggerBits) {fTriggerBits = triggerBits;}
53 :
54 10752 : void SetPFBBFlag(Int_t channel, Int_t clock, Bool_t flag) { fIsBB[channel][clock] = flag; }
55 10752 : void SetPFBGFlag(Int_t channel, Int_t clock, Bool_t flag) { fIsBG[channel][clock] = flag; }
56 :
57 : // Getters
58 : virtual Short_t GetNbPMV0A() const;
59 : virtual Short_t GetNbPMV0C() const;
60 : virtual Float_t GetMTotV0A() const;
61 : virtual Float_t GetMTotV0C() const;
62 : virtual Float_t GetMRingV0A(Int_t ring) const;
63 : virtual Float_t GetMRingV0C(Int_t ring) const;
64 :
65 : virtual Float_t GetMultiplicity(Int_t i) const;
66 : virtual Float_t GetMultiplicityV0A(Int_t i) const;
67 : virtual Float_t GetMultiplicityV0C(Int_t i) const;
68 : virtual Float_t GetAdc(Int_t i) const;
69 : virtual Float_t GetAdcV0A(Int_t i) const;
70 : virtual Float_t GetAdcV0C(Int_t i) const;
71 : virtual Float_t GetTime(Int_t i) const;
72 : virtual Float_t GetTimeV0A(Int_t i) const;
73 : virtual Float_t GetTimeV0C(Int_t i) const;
74 : virtual Float_t GetWidth(Int_t i) const;
75 : virtual Float_t GetWidthV0A(Int_t i) const;
76 : virtual Float_t GetWidthV0C(Int_t i) const;
77 : virtual Bool_t BBTriggerV0A(Int_t i) const;
78 : virtual Bool_t BGTriggerV0A(Int_t i) const;
79 : virtual Bool_t BBTriggerV0C(Int_t i) const;
80 : virtual Bool_t BGTriggerV0C(Int_t i) const;
81 : virtual Bool_t GetBBFlag(Int_t i) const;
82 : virtual Bool_t GetBGFlag(Int_t i) const;
83 :
84 16 : virtual Float_t GetV0ATime() const { return fV0ATime; }
85 16 : virtual Float_t GetV0CTime() const { return fV0CTime; }
86 0 : virtual Float_t GetV0ATimeError() const { return fV0ATimeError; }
87 0 : virtual Float_t GetV0CTimeError() const { return fV0CTimeError; }
88 :
89 112 : virtual Decision GetV0ADecision() const { return fV0ADecision; }
90 84 : virtual Decision GetV0CDecision() const { return fV0CDecision; }
91 :
92 32 : virtual UShort_t GetTriggerChargeA() const { return fTriggerChargeA; }
93 32 : virtual UShort_t GetTriggerChargeC() const { return fTriggerChargeC; }
94 16 : virtual UShort_t GetTriggerBits() const { return fTriggerBits; }
95 :
96 0 : virtual UInt_t GetBBTriggerV0A() const { return fBBtriggerV0A; }
97 0 : virtual UInt_t GetBGTriggerV0A() const { return fBGtriggerV0A; }
98 0 : virtual UInt_t GetBBTriggerV0C() const { return fBBtriggerV0C; }
99 0 : virtual UInt_t GetBGTriggerV0C() const { return fBGtriggerV0C; }
100 :
101 21504 : virtual Bool_t GetPFBBFlag(Int_t channel, Int_t clock) const { return fIsBB[channel][clock]; }
102 21504 : virtual Bool_t GetPFBGFlag(Int_t channel, Int_t clock) const { return fIsBG[channel][clock]; }
103 :
104 : AliESDVZERO &operator=(const AliESDVZERO& source);
105 :
106 : protected:
107 :
108 : UInt_t fBBtriggerV0A; // bit mask for Beam-Beam trigger in V0A
109 : UInt_t fBGtriggerV0A; // bit mask for Beam-Gas trigger in V0A
110 : UInt_t fBBtriggerV0C; // bit mask for Beam-Beam trigger in V0C
111 : UInt_t fBGtriggerV0C; // bit mask for Beam-Gas trigger in V0C
112 :
113 : Float_t fMultiplicity[64]; // multiplicity for each channel
114 : Float_t fAdc[64]; // adc for each channel
115 : Float_t fTime[64]; // time for each channel
116 : Float_t fWidth[64]; // time width for each channel
117 : Bool_t fBBFlag[64]; // BB Flags from Online V0 Electronics
118 : Bool_t fBGFlag[64]; // BG Flags from Online V0 Electronics
119 :
120 : Float_t fV0ATime; // Average time in V0A
121 : Float_t fV0CTime; // Average time in V0C
122 : Float_t fV0ATimeError; // Error in the average time in V0A
123 : Float_t fV0CTimeError; // Error in the average time in V0C
124 :
125 : Decision fV0ADecision; // V0A final decision based on average time of channels
126 : Decision fV0CDecision; // V0C final decision based on average time of channels
127 :
128 : UShort_t fTriggerChargeA; // Sum of the trigger (clock=10) charge on A side
129 : UShort_t fTriggerChargeC; // Sum of the trigger (clock=10) charge on C side
130 : UShort_t fTriggerBits; // V0 trigger bits as defined in the firmware
131 :
132 : Bool_t fIsBB[64][21]; // 'Beam-Beam' flag for all channels and 21 clocks
133 : Bool_t fIsBG[64][21]; // 'Beam-Gas' flag for all channels and 21 clocks
134 :
135 1208 : ClassDef(AliESDVZERO,11)
136 : };
137 :
138 : #endif
|