1. Leading time was not decoded properly (there are coarse and fine gains in the...
[u/mrichter/AliRoot.git] / STEER / AliESDVZERO.h
1 #ifndef AliESDVZERO_H
2 #define AliESDVZERO_H
3
4 #include <TObject.h>
5
6 class AliESDVZERO : public TObject 
7 {
8 public:
9   AliESDVZERO();
10   AliESDVZERO(const AliESDVZERO&);
11   AliESDVZERO(UInt_t BBtriggerV0A,   UInt_t BGtriggerV0A,
12               UInt_t BBtriggerV0C,   UInt_t BGtriggerV0C,
13               Float_t *Multiplicity, Float_t *Adc, 
14               Float_t *Time, Float_t *Width, Bool_t *BBFlag, Bool_t *BGFlag);
15
16   virtual ~AliESDVZERO() {};
17   
18   // Setters
19   virtual void SetBBtriggerV0A(UInt_t BBtrigger) {fBBtriggerV0A=BBtrigger;}
20   virtual void SetBGtriggerV0A(UInt_t BGtrigger) {fBGtriggerV0A=BGtrigger;}
21   virtual void SetBBtriggerV0C(UInt_t BBtrigger) {fBBtriggerV0C=BBtrigger;}
22   virtual void SetBGtriggerV0C(UInt_t BGtrigger) {fBGtriggerV0C=BGtrigger;}
23   virtual void SetMultiplicity(Float_t Multiplicity[64])
24     {for(Int_t i=0;i<64;i++) fMultiplicity[i]=Multiplicity[i];}
25   virtual void SetADC(Float_t adc[64])
26     {for(Int_t i=0;i<64;i++) fAdc[i]=adc[i];}
27   virtual void SetTime(Float_t time[64])
28     {for(Int_t i=0;i<64;i++) fTime[i]=time[i];}
29   virtual void SetWidth(Float_t width[64])
30     {for(Int_t i=0;i<64;i++) fWidth[i]=width[i];}    
31   virtual void SetBBFlag(Bool_t BBFlag[64])
32     {for(Int_t i=0;i<64;i++) fBBFlag[i]=BBFlag[i];} 
33   virtual void SetBGFlag(Bool_t BGFlag[64])
34     {for(Int_t i=0;i<64;i++) fBGFlag[i]=BGFlag[i];}   
35          
36   // Getters  
37   Short_t  GetNbPMV0A();
38   Short_t  GetNbPMV0C();
39   Float_t  GetMTotV0A();
40   Float_t  GetMTotV0C(); 
41   Float_t* GetMRingV0A();
42   Float_t* GetMRingV0C();
43   Float_t  GetMRingV0A(Int_t ring);
44   Float_t  GetMRingV0C(Int_t ring);
45
46   Float_t  GetMultiplicity(Int_t i);
47   Float_t  GetMultiplicityV0A(Int_t i);
48   Float_t  GetMultiplicityV0C(Int_t i);    
49   Float_t  GetAdc(Int_t i);
50   Float_t  GetAdcV0A(Int_t i); 
51   Float_t  GetAdcV0C(Int_t i);   
52   Float_t  GetTime(Int_t i);
53   Float_t  GetTimeV0A(Int_t i);   
54   Float_t  GetTimeV0C(Int_t i);    
55   Float_t  GetWidth(Int_t i);
56   Float_t  GetWidthV0A(Int_t i);
57   Float_t  GetWidthV0C(Int_t i);
58   Bool_t   BBTriggerV0A(Int_t i);
59   Bool_t   BGTriggerV0A(Int_t i);
60   Bool_t   BBTriggerV0C(Int_t i);
61   Bool_t   BGTriggerV0C(Int_t i);  
62   Bool_t   GetBBFlag(Int_t i);
63   Bool_t   GetBGFlag(Int_t i);
64   
65   Bool_t OutOfRange(Int_t i, const char *s, Int_t upper) const;
66   AliESDVZERO &operator=(const AliESDVZERO& source);
67     
68 protected:
69
70   UInt_t  fBBtriggerV0A;     // bit mask for Beam-Beam trigger in V0A
71   UInt_t  fBGtriggerV0A;     // bit mask for Beam-Gas trigger in V0A
72   UInt_t  fBBtriggerV0C;     // bit mask for Beam-Beam trigger in V0C
73   UInt_t  fBGtriggerV0C;     // bit mask for Beam-Gas trigger in V0C
74
75   Float_t fMultiplicity[64]; //  multiplicity for each channel
76   Float_t fAdc[64];          //  adc for each channel
77   Float_t fTime[64];         //  time for each channel
78   Float_t fWidth[64];        //  time width for each channel
79   Bool_t  fBBFlag[64];       //  BB Flags from Online V0 Electronics
80   Bool_t  fBGFlag[64];       //  BG Flags from Online V0 Electronics
81   
82   ClassDef(AliESDVZERO,7)
83 };
84
85 #endif