Line data Source code
1 : #ifndef ALIESDAD_H
2 : #define ALIESDAD_H
3 :
4 : //-------------------------------------------------------------------------
5 : // Container class for ESD AD data
6 : // Author: Michal Broz
7 : // Michal.Broz@cern.ch
8 : //-------------------------------------------------------------------------
9 :
10 : #include <AliVAD.h>
11 :
12 : class AliESDAD : public AliVAD
13 : {
14 : public:
15 : AliESDAD();
16 : AliESDAD(const AliESDAD&o);
17 : AliESDAD(UInt_t BBtriggerADA, UInt_t BGtriggerADA,
18 : UInt_t BBtriggerADC, UInt_t BGtriggerADC,
19 : Float_t *Multiplicity, Float_t *Adc,
20 : Float_t *Time, Float_t *Width, Bool_t *BBFlag, Bool_t *BGFlag);
21 : void Copy(TObject &obj) const;
22 :
23 156 : virtual ~AliESDAD() {};
24 :
25 : // Setters
26 0 : void SetBBtriggerADA(UInt_t BBtrigger) {fBBtriggerADA=BBtrigger;}
27 0 : void SetBGtriggerADA(UInt_t BGtrigger) {fBGtriggerADA=BGtrigger;}
28 0 : void SetBBtriggerADC(UInt_t BBtrigger) {fBBtriggerADC=BBtrigger;}
29 0 : void SetBGtriggerADC(UInt_t BGtrigger) {fBGtriggerADC=BGtrigger;}
30 : void SetMultiplicity(Float_t Multiplicity[16])
31 0 : {for(Int_t i=0;i<16;i++) fMultiplicity[i]=Multiplicity[i];}
32 : void SetADC(Float_t adc[16])
33 0 : {for(Int_t i=0;i<16;i++) fAdc[i]=adc[i];}
34 : void SetTime(Float_t time[16])
35 0 : {for(Int_t i=0;i<16;i++) fTime[i]=time[i];}
36 : void SetWidth(Float_t width[16])
37 0 : {for(Int_t i=0;i<16;i++) fWidth[i]=width[i];}
38 : void SetBBFlag(Bool_t BBFlag[16])
39 0 : {for(Int_t i=0;i<16;i++) fBBFlag[i]=BBFlag[i];}
40 : void SetBGFlag(Bool_t BGFlag[16])
41 0 : {for(Int_t i=0;i<16;i++) fBGFlag[i]=BGFlag[i];}
42 :
43 0 : void SetADATime(Float_t time) {fADATime = time;}
44 0 : void SetADCTime(Float_t time) {fADCTime = time;}
45 0 : void SetADATimeError(Float_t err) {fADATimeError = err;}
46 0 : void SetADCTimeError(Float_t err) {fADCTimeError = err;}
47 :
48 0 : void SetADADecision(Decision des) {fADADecision = des;}
49 0 : void SetADCDecision(Decision des) {fADCDecision = des;}
50 :
51 0 : void SetTriggerChargeA(UShort_t chargeA) {fTriggerChargeA = chargeA;}
52 0 : void SetTriggerChargeC(UShort_t chargeC) {fTriggerChargeC = chargeC;}
53 0 : void SetTriggerBits(UShort_t triggerBits) {fTriggerBits = triggerBits;}
54 :
55 0 : void SetPFBBFlag(Int_t channel, Int_t clock, Bool_t flag) { fIsBB[channel][clock] = flag; }
56 0 : void SetPFBGFlag(Int_t channel, Int_t clock, Bool_t flag) { fIsBG[channel][clock] = flag; }
57 :
58 : void SetADCTail(Float_t adc[16])
59 0 : {for(Int_t i=0;i<16;i++) fAdcTail[i]=adc[i];}
60 :
61 : void SetADCTrigger(Float_t adc[16])
62 0 : {for(Int_t i=0;i<16;i++) fAdcTrigger[i]=adc[i];}
63 :
64 : // Getters
65 : virtual Short_t GetNbPMADA() const;
66 : virtual Short_t GetNbPMADC() const;
67 : virtual Float_t GetMTotADA() const;
68 : virtual Float_t GetMTotADC() const;
69 :
70 : virtual Float_t GetMultiplicity(Int_t i) const;
71 : virtual Float_t GetMultiplicityADA(Int_t i) const;
72 : virtual Float_t GetMultiplicityADC(Int_t i) const;
73 : virtual Float_t GetAdc(Int_t i) const;
74 : virtual Float_t GetAdcADA(Int_t i) const;
75 : virtual Float_t GetAdcADC(Int_t i) const;
76 : virtual Float_t GetTime(Int_t i) const;
77 : virtual Float_t GetTimeADA(Int_t i) const;
78 : virtual Float_t GetTimeADC(Int_t i) const;
79 : virtual Float_t GetWidth(Int_t i) const;
80 : virtual Float_t GetWidthADA(Int_t i) const;
81 : virtual Float_t GetWidthADC(Int_t i) const;
82 : virtual Bool_t BBTriggerADA(Int_t i) const;
83 : virtual Bool_t BGTriggerADA(Int_t i) const;
84 : virtual Bool_t BBTriggerADC(Int_t i) const;
85 : virtual Bool_t BGTriggerADC(Int_t i) const;
86 : virtual Bool_t GetBBFlag(Int_t i) const;
87 : virtual Bool_t GetBGFlag(Int_t i) const;
88 :
89 16 : virtual Float_t GetADATime() const { return fADATime; }
90 16 : virtual Float_t GetADCTime() const { return fADCTime; }
91 0 : virtual Float_t GetADATimeError() const { return fADATimeError; }
92 0 : virtual Float_t GetADCTimeError() const { return fADCTimeError; }
93 :
94 16 : virtual Decision GetADADecision() const { return fADADecision; }
95 16 : virtual Decision GetADCDecision() const { return fADCDecision; }
96 :
97 16 : virtual UShort_t GetTriggerChargeA() const { return fTriggerChargeA; }
98 16 : virtual UShort_t GetTriggerChargeC() const { return fTriggerChargeC; }
99 16 : virtual UShort_t GetTriggerBits() const { return fTriggerBits; }
100 :
101 5376 : virtual Bool_t GetPFBBFlag(Int_t channel, Int_t clock) const { return fIsBB[channel][clock]; }
102 5376 : virtual Bool_t GetPFBGFlag(Int_t channel, Int_t clock) const { return fIsBG[channel][clock]; }
103 :
104 : virtual Float_t GetAdcTail(Int_t i) const;
105 : virtual Float_t GetAdcTailADA(Int_t i) const;
106 : virtual Float_t GetAdcTailADC(Int_t i) const;
107 :
108 : virtual Float_t GetAdcTrigger(Int_t i) const;
109 : virtual Float_t GetAdcTriggerADA(Int_t i) const;
110 : virtual Float_t GetAdcTriggerADC(Int_t i) const;
111 :
112 : AliESDAD &operator=(const AliESDAD& source);
113 :
114 : protected:
115 :
116 : UInt_t fBBtriggerADA; // bit mask for Beam-Beam trigger in ADA
117 : UInt_t fBGtriggerADA; // bit mask for Beam-Gas trigger in ADA
118 : UInt_t fBBtriggerADC; // bit mask for Beam-Beam trigger in ADC
119 : UInt_t fBGtriggerADC; // bit mask for Beam-Gas trigger in ADC
120 :
121 : Float_t fMultiplicity[16]; // multiplicity for each channel
122 : Float_t fAdc[16]; // charge signal for each channel
123 : Float_t fTime[16]; // time for each channel
124 : Float_t fWidth[16]; // time width for each channel
125 : Bool_t fBBFlag[16]; // BB Flags from Online AD Electronics
126 : Bool_t fBGFlag[16]; // BG Flags from Online AD Electronics
127 :
128 : Float_t fADATime; // Average time in ADA
129 : Float_t fADCTime; // Average time in ADC
130 : Float_t fADATimeError; // Error in the average time in ADA
131 : Float_t fADCTimeError; // Error in the average time in ADC
132 :
133 : Decision fADADecision; // ADA final decision based on average time of channels
134 : Decision fADCDecision; // ADC final decision based on average time of channels
135 :
136 : UShort_t fTriggerChargeA; // Sum of the trigger (clock=10) charge on A side
137 : UShort_t fTriggerChargeC; // Sum of the trigger (clock=10) charge on C side
138 : UShort_t fTriggerBits; // AD trigger bits as defined in the firmware
139 :
140 : Bool_t fIsBB[16][21]; // BB flag for all channels and 21 clocks
141 : Bool_t fIsBG[16][21]; // BG flag for all channels and 21 clocks
142 :
143 : Float_t fAdcTail[16]; // tail of charge signal for each channel
144 : Float_t fAdcTrigger[16]; // charge trigger signal for each channel
145 :
146 516 : ClassDef(AliESDAD,13)
147 : };
148 :
149 : #endif
|