]> git.uio.no Git - u/mrichter/AliRoot.git/blob - STEER/ESD/AliESDAD.h
Geometry for run3 implemented with updated TDI
[u/mrichter/AliRoot.git] / STEER / ESD / AliESDAD.h
1 #ifndef ALIESDAD_H
2 #define ALIESDAD_H
3
4 //-------------------------------------------------------------------------
5 //     Container class for ESD AD data
6 //     Author: Brigitte Cheynis & Cvetan Cheshkov
7 //-------------------------------------------------------------------------
8
9 #include <AliVAD.h>
10
11 class AliESDAD : public AliVAD 
12 {
13 public:
14   AliESDAD();
15   AliESDAD(const AliESDAD&o);
16   AliESDAD(UInt_t BBtriggerADA,   UInt_t BGtriggerADA,
17               UInt_t BBtriggerADC,   UInt_t BGtriggerADC,
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 ~AliESDAD() {};
23
24   // Setters
25   void SetBBtriggerADA(UInt_t BBtrigger) {fBBtriggerADA=BBtrigger;}
26   void SetBGtriggerADA(UInt_t BGtrigger) {fBGtriggerADA=BGtrigger;}
27   void SetBBtriggerADC(UInt_t BBtrigger) {fBBtriggerADC=BBtrigger;}
28   void SetBGtriggerADC(UInt_t BGtrigger) {fBGtriggerADC=BGtrigger;}
29   void SetMultiplicity(Float_t Multiplicity[16])
30     {for(Int_t i=0;i<16;i++) fMultiplicity[i]=Multiplicity[i];}
31   void SetADC(Float_t adc[16])
32     {for(Int_t i=0;i<16;i++) fAdc[i]=adc[i];}
33   void SetTime(Float_t time[16])
34     {for(Int_t i=0;i<16;i++) fTime[i]=time[i];}
35   void SetWidth(Float_t width[16])
36     {for(Int_t i=0;i<16;i++) fWidth[i]=width[i];}    
37   void SetBBFlag(Bool_t BBFlag[16])
38     {for(Int_t i=0;i<16;i++) fBBFlag[i]=BBFlag[i];} 
39   void SetBGFlag(Bool_t BGFlag[16])
40     {for(Int_t i=0;i<16;i++) fBGFlag[i]=BGFlag[i];}   
41
42   void SetADATime(Float_t time) {fADATime = time;}
43   void SetADCTime(Float_t time) {fADCTime = time;}
44   void SetADATimeError(Float_t err) {fADATimeError = err;}
45   void SetADCTimeError(Float_t err) {fADCTimeError = err;}
46
47   void SetADADecision(Decision des) {fADADecision = des;}
48   void SetADCDecision(Decision des) {fADCDecision = 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  GetNbPMADA() const;
56   virtual Short_t  GetNbPMADC() const;
57   virtual Float_t  GetMTotADA() const;
58   virtual Float_t  GetMTotADC() const; 
59
60   virtual Float_t  GetMultiplicity(Int_t i) const;
61   virtual Float_t  GetMultiplicityADA(Int_t i) const;
62   virtual Float_t  GetMultiplicityADC(Int_t i) const;    
63   virtual Float_t  GetAdc(Int_t i) const;
64   virtual Float_t  GetAdcADA(Int_t i) const; 
65   virtual Float_t  GetAdcADC(Int_t i) const;   
66   virtual Float_t  GetTime(Int_t i) const;
67   virtual Float_t  GetTimeADA(Int_t i) const;   
68   virtual Float_t  GetTimeADC(Int_t i) const;    
69   virtual Float_t  GetWidth(Int_t i) const;
70   virtual Float_t  GetWidthADA(Int_t i) const;
71   virtual Float_t  GetWidthADC(Int_t i) const;
72   virtual Bool_t   BBTriggerADA(Int_t i) const;
73   virtual Bool_t   BGTriggerADA(Int_t i) const;
74   virtual Bool_t   BBTriggerADC(Int_t i) const;
75   virtual Bool_t   BGTriggerADC(Int_t i) const;  
76   virtual Bool_t   GetBBFlag(Int_t i) const;
77   virtual Bool_t   GetBGFlag(Int_t i) const;
78
79   virtual Float_t  GetADATime() const { return fADATime; }
80   virtual Float_t  GetADCTime() const { return fADCTime; }
81   virtual Float_t  GetADATimeError() const { return fADATimeError; }
82   virtual Float_t  GetADCTimeError() const { return fADCTimeError; }
83
84   virtual Decision GetADADecision() const { return fADADecision; }
85   virtual Decision GetADCDecision() const { return fADCDecision; }
86
87   virtual UShort_t GetTriggerChargeA() const { return fTriggerChargeA; }
88   virtual UShort_t GetTriggerChargeC() const { return fTriggerChargeC; }
89   virtual UShort_t GetTriggerBits() const { return fTriggerBits; }
90   
91   AliESDAD &operator=(const AliESDAD& source);
92     
93 protected:
94
95   UInt_t  fBBtriggerADA;     // bit mask for Beam-Beam trigger in ADA
96   UInt_t  fBGtriggerADA;     // bit mask for Beam-Gas trigger in ADA
97   UInt_t  fBBtriggerADC;     // bit mask for Beam-Beam trigger in ADC
98   UInt_t  fBGtriggerADC;     // bit mask for Beam-Gas trigger in ADC
99
100   Float_t fMultiplicity[16]; //  multiplicity for each channel
101   Float_t fAdc[16];          //  adc for each channel
102   Float_t fTime[16];         //  time for each channel
103   Float_t fWidth[16];        //  time width for each channel
104   Bool_t  fBBFlag[16];       //  BB Flags from Online AD Electronics
105   Bool_t  fBGFlag[16];       //  BG Flags from Online AD Electronics
106
107   Float_t fADATime;          // Average time in ADA
108   Float_t fADCTime;          // Average time in ADC
109   Float_t fADATimeError;     // Error in the average time in ADA
110   Float_t fADCTimeError;     // Error in the average time in ADC
111
112   Decision fADADecision;     // ADA final decision based on average time of channels
113   Decision fADCDecision;     // ADC final decision based on average time of channels
114
115   UShort_t fTriggerChargeA;  // Sum of the trigger (clock=10) charge on A side
116   UShort_t fTriggerChargeC;  // Sum of the trigger (clock=10) charge on C side
117   UShort_t fTriggerBits;     // AD trigger bits as defined in the firmware
118
119   ClassDef(AliESDAD,10)
120 };
121
122 #endif