]> git.uio.no Git - u/mrichter/AliRoot.git/blob - STEER/ESD/AliESDVZERO.h
Geometry for run3 implemented with updated TDI
[u/mrichter/AliRoot.git] / STEER / ESD / AliESDVZERO.h
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   virtual ~AliESDVZERO() {};
23
24   // Setters
25   void SetBBtriggerV0A(UInt_t BBtrigger) {fBBtriggerV0A=BBtrigger;}
26   void SetBGtriggerV0A(UInt_t BGtrigger) {fBGtriggerV0A=BGtrigger;}
27   void SetBBtriggerV0C(UInt_t BBtrigger) {fBBtriggerV0C=BBtrigger;}
28   void SetBGtriggerV0C(UInt_t BGtrigger) {fBGtriggerV0C=BGtrigger;}
29   void SetMultiplicity(Float_t Multiplicity[64])
30     {for(Int_t i=0;i<64;i++) fMultiplicity[i]=Multiplicity[i];}
31   void SetADC(Float_t adc[64])
32     {for(Int_t i=0;i<64;i++) fAdc[i]=adc[i];}
33   void SetTime(Float_t time[64])
34     {for(Int_t i=0;i<64;i++) fTime[i]=time[i];}
35   void SetWidth(Float_t width[64])
36     {for(Int_t i=0;i<64;i++) fWidth[i]=width[i];}    
37   void SetBBFlag(Bool_t BBFlag[64])
38     {for(Int_t i=0;i<64;i++) fBBFlag[i]=BBFlag[i];} 
39   void SetBGFlag(Bool_t BGFlag[64])
40     {for(Int_t i=0;i<64;i++) fBGFlag[i]=BGFlag[i];}   
41
42   void SetV0ATime(Float_t time) {fV0ATime = time;}
43   void SetV0CTime(Float_t time) {fV0CTime = time;}
44   void SetV0ATimeError(Float_t err) {fV0ATimeError = err;}
45   void SetV0CTimeError(Float_t err) {fV0CTimeError = err;}
46
47   void SetV0ADecision(Decision des) {fV0ADecision = des;}
48   void SetV0CDecision(Decision des) {fV0CDecision = des;}
49
50   void SetTriggerChargeA(UShort_t chargeA) {fTriggerChargeA = chargeA;}
51   void SetTriggerChargeC(UShort_t chargeC) {fTriggerChargeC = chargeC;}
52   void SetTriggerBits(UShort_t triggerBits) {fTriggerBits = triggerBits;}
53
54   // Getters  
55   virtual Short_t  GetNbPMV0A() const;
56   virtual Short_t  GetNbPMV0C() const;
57   virtual Float_t  GetMTotV0A() const;
58   virtual Float_t  GetMTotV0C() const; 
59   virtual Float_t  GetMRingV0A(Int_t ring) const;
60   virtual Float_t  GetMRingV0C(Int_t ring) const;
61
62   virtual Float_t  GetMultiplicity(Int_t i) const;
63   virtual Float_t  GetMultiplicityV0A(Int_t i) const;
64   virtual Float_t  GetMultiplicityV0C(Int_t i) const;    
65   virtual Float_t  GetAdc(Int_t i) const;
66   virtual Float_t  GetAdcV0A(Int_t i) const; 
67   virtual Float_t  GetAdcV0C(Int_t i) const;   
68   virtual Float_t  GetTime(Int_t i) const;
69   virtual Float_t  GetTimeV0A(Int_t i) const;   
70   virtual Float_t  GetTimeV0C(Int_t i) const;    
71   virtual Float_t  GetWidth(Int_t i) const;
72   virtual Float_t  GetWidthV0A(Int_t i) const;
73   virtual Float_t  GetWidthV0C(Int_t i) const;
74   virtual Bool_t   BBTriggerV0A(Int_t i) const;
75   virtual Bool_t   BGTriggerV0A(Int_t i) const;
76   virtual Bool_t   BBTriggerV0C(Int_t i) const;
77   virtual Bool_t   BGTriggerV0C(Int_t i) const;  
78   virtual Bool_t   GetBBFlag(Int_t i) const;
79   virtual Bool_t   GetBGFlag(Int_t i) const;
80
81   virtual Float_t  GetV0ATime() const { return fV0ATime; }
82   virtual Float_t  GetV0CTime() const { return fV0CTime; }
83   virtual Float_t  GetV0ATimeError() const { return fV0ATimeError; }
84   virtual Float_t  GetV0CTimeError() const { return fV0CTimeError; }
85
86   virtual Decision GetV0ADecision() const { return fV0ADecision; }
87   virtual Decision GetV0CDecision() const { return fV0CDecision; }
88
89   virtual UShort_t GetTriggerChargeA() const { return fTriggerChargeA; }
90   virtual UShort_t GetTriggerChargeC() const { return fTriggerChargeC; }
91   virtual UShort_t GetTriggerBits() const { return fTriggerBits; }
92   
93   AliESDVZERO &operator=(const AliESDVZERO& source);
94     
95 protected:
96
97   UInt_t  fBBtriggerV0A;     // bit mask for Beam-Beam trigger in V0A
98   UInt_t  fBGtriggerV0A;     // bit mask for Beam-Gas trigger in V0A
99   UInt_t  fBBtriggerV0C;     // bit mask for Beam-Beam trigger in V0C
100   UInt_t  fBGtriggerV0C;     // bit mask for Beam-Gas trigger in V0C
101
102   Float_t fMultiplicity[64]; //  multiplicity for each channel
103   Float_t fAdc[64];          //  adc for each channel
104   Float_t fTime[64];         //  time for each channel
105   Float_t fWidth[64];        //  time width for each channel
106   Bool_t  fBBFlag[64];       //  BB Flags from Online V0 Electronics
107   Bool_t  fBGFlag[64];       //  BG Flags from Online V0 Electronics
108
109   Float_t fV0ATime;          // Average time in V0A
110   Float_t fV0CTime;          // Average time in V0C
111   Float_t fV0ATimeError;     // Error in the average time in V0A
112   Float_t fV0CTimeError;     // Error in the average time in V0C
113
114   Decision fV0ADecision;     // V0A final decision based on average time of channels
115   Decision fV0CDecision;     // V0C final decision based on average time of channels
116
117   UShort_t fTriggerChargeA;  // Sum of the trigger (clock=10) charge on A side
118   UShort_t fTriggerChargeC;  // Sum of the trigger (clock=10) charge on C side
119   UShort_t fTriggerBits;     // V0 trigger bits as defined in the firmware
120
121   ClassDef(AliESDVZERO,10)
122 };
123
124 #endif