]>
Commit | Line | Data |
---|---|---|
a65a7e70 | 1 | #ifndef ALIVZEROTRIGGERDATA_H |
2 | #define ALIVZEROTRIGGERDATA_H | |
3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights | |
4 | * reserved. | |
5 | * | |
6 | * See cxx source for full Copyright notice | |
7 | */ | |
8 | ||
9 | // Class AliVZEROTriggerData | |
10 | // ------------------------- | |
11 | // Retrieves and hold the FEE parameters | |
12 | // The parameters are recieved from the shuttle | |
13 | // AliVZEROTriggerData is then used in the AliVZEROTriggerSimulator | |
14 | // | |
15 | ||
16 | #include <TNamed.h> | |
17 | ||
18 | #include "AliVZERODataFEE.h" | |
19 | ||
20 | ||
21 | class AliVZEROTriggerData : public TNamed { | |
22 | public: | |
23 | AliVZEROTriggerData(); | |
24 | AliVZEROTriggerData(Int_t nRun, UInt_t startTime, UInt_t endTime); | |
25 | ~AliVZEROTriggerData(); | |
26 | ||
27 | void FillData(AliVZERODataFEE * data); | |
28 | ||
29 | // ----- Setters ----- | |
30 | ||
31 | void SetClk1Win1(UShort_t* clks); | |
32 | void SetClk1Win1(UShort_t clk, Int_t board); | |
33 | void SetClk2Win1(UShort_t* clks); | |
34 | void SetClk2Win1(UShort_t clk, Int_t board); | |
35 | ||
36 | void SetClk1Win2(UShort_t* clks); | |
37 | void SetClk1Win2(UShort_t clk, Int_t board); | |
38 | void SetClk2Win2(UShort_t* clks); | |
39 | void SetClk2Win2(UShort_t clk, Int_t board); | |
40 | ||
41 | void SetDelayClk1Win1(UShort_t* delays); | |
42 | void SetDelayClk1Win1(UShort_t delay, Int_t board); | |
43 | void SetDelayClk2Win1(UShort_t* delays); | |
44 | void SetDelayClk2Win1(UShort_t delay, Int_t board); | |
45 | ||
46 | void SetDelayClk1Win2(UShort_t* delays); | |
47 | void SetDelayClk1Win2(UShort_t delay, Int_t board); | |
48 | void SetDelayClk2Win2(UShort_t* delays); | |
49 | void SetDelayClk2Win2(UShort_t delay, Int_t board); | |
50 | ||
51 | void SetLatchWin1(UShort_t *latchs); | |
52 | void SetLatchWin1(UShort_t latch, Int_t board); | |
53 | void SetLatchWin2(UShort_t *latchs); | |
54 | void SetLatchWin2(UShort_t latch, Int_t board); | |
55 | ||
56 | void SetResetWin1(UShort_t *resets); | |
57 | void SetResetWin1(UShort_t reset, Int_t board); | |
58 | void SetResetWin2(UShort_t *resets); | |
59 | void SetResetWin2(UShort_t reset, Int_t board); | |
60 | ||
61 | void SetPedestalSubtraction(Bool_t *peds); | |
62 | void SetPedestalSubtraction(Bool_t ped, Int_t board); | |
63 | ||
64 | void SetBBAThreshold(UShort_t th) {fBBAThreshold = th;}; | |
65 | void SetBBCThreshold(UShort_t th) {fBBCThreshold = th;}; | |
66 | ||
67 | void SetBGAThreshold(UShort_t th) {fBGAThreshold = th;}; | |
68 | void SetBGCThreshold(UShort_t th) {fBGCThreshold = th;}; | |
69 | ||
70 | void SetBBAForBGThreshold(UShort_t th) {fBBAForBGThreshold = th;}; | |
71 | void SetBBCForBGThreshold(UShort_t th) {fBBCForBGThreshold = th;}; | |
72 | ||
73 | void SetCentralityV0AThrLow(UShort_t th) {fCentralityVOAThrLow = th;}; | |
74 | void SetCentralityV0AThrHigh(UShort_t th) {fCentralityVOAThrHigh = th;}; | |
75 | ||
76 | void SetCentralityV0CThrLow(UShort_t th) {fCentralityVOCThrLow = th;}; | |
77 | void SetCentralityV0CThrHigh(UShort_t th) {fCentralityVOCThrHigh = th;}; | |
78 | ||
79 | void SetMultV0AThrLow(UShort_t th) {fMultV0AThrLow = th;}; | |
80 | void SetMultV0AThrHigh(UShort_t th) {fMultV0AThrHigh = th;}; | |
81 | ||
82 | void SetMultV0CThrLow(UShort_t th) {fMultV0CThrLow = th;}; | |
83 | void SetMultV0CThrHigh(UShort_t th) {fMultV0CThrHigh = th;}; | |
84 | ||
85 | void SetTriggerSelected(UShort_t trigger, Int_t output); | |
86 | ||
87 | void SetEnableCharge(Bool_t val, Int_t board, Int_t channel); | |
88 | void SetEnableTiming(Bool_t val, Int_t board, Int_t channel); | |
89 | void SetDiscriThr(UShort_t val, Int_t board, Int_t channel); | |
90 | void SetDelayHit(UShort_t val, Int_t board, Int_t channel); | |
91 | void SetPedestal(UShort_t val, Int_t integrator, Int_t board, Int_t channel); | |
92 | void SetPedestalCut(UShort_t val, Int_t integrator, Int_t board, Int_t channel); | |
93 | ||
94 | ||
95 | // ----- Getters ----- | |
96 | ||
97 | UShort_t * GetClk1Win1() const {return (UShort_t*)fClk1Win1;}; | |
98 | UShort_t GetClk1Win1(Int_t board ) const {return ((board>=0 && board<kNCIUBoards)?fClk1Win1[board]:0);}; | |
99 | UShort_t * GetClk2Win1() const {return (UShort_t*)fClk2Win1;}; | |
100 | UShort_t GetClk2Win1(Int_t board ) const {return ((board>=0 && board<kNCIUBoards)?fClk2Win1[board]:0);}; | |
101 | ||
102 | UShort_t * GetClk1Win2() const {return (UShort_t*)fClk1Win2;}; | |
103 | UShort_t GetClk1Win2(Int_t board ) const {return ((board>=0 && board<kNCIUBoards)?fClk1Win2[board]:0);}; | |
104 | UShort_t * GetClk2Win2() const {return (UShort_t*)fClk2Win2;}; | |
105 | UShort_t GetClk2Win2(Int_t board ) const {return ((board>=0 && board<kNCIUBoards)?fClk2Win2[board]:0);}; | |
106 | ||
107 | UShort_t * GetDelayClk1Win1() const {return (UShort_t*)fDelayClk1Win1;}; | |
108 | UShort_t GetDelayClk1Win1(Int_t board ) const {return ((board>=0 && board<kNCIUBoards)?fDelayClk1Win1[board]:0);}; | |
109 | UShort_t * GetDelayClk2Win1() const {return (UShort_t*)fDelayClk2Win1;}; | |
110 | UShort_t GetDelayClk2Win1(Int_t board ) const {return ((board>=0 && board<kNCIUBoards)?fDelayClk2Win1[board]:0);}; | |
111 | ||
112 | UShort_t * GetDelayClk1Win2() const {return (UShort_t*)fDelayClk1Win2;}; | |
113 | UShort_t GetDelayClk1Win2(Int_t board ) const {return ((board>=0 && board<kNCIUBoards)?fDelayClk1Win2[board]:0);}; | |
114 | UShort_t * GetDelayClk2Win2() const {return (UShort_t*)fDelayClk2Win2;}; | |
115 | UShort_t GetDelayClk2Win2(Int_t board ) const {return ((board>=0 && board<kNCIUBoards)?fDelayClk2Win2[board]:0);}; | |
116 | ||
117 | UShort_t * GetLatchWin1() const {return (UShort_t*)fLatchWin1;}; | |
118 | UShort_t GetLatchWin1(Int_t board ) const {return ((board>=0 && board<kNCIUBoards)?fLatchWin1[board]:0);}; | |
119 | UShort_t * GetLatchWin2() const {return (UShort_t*)fLatchWin2;}; | |
120 | UShort_t GetLatchWin2(Int_t board ) const {return ((board>=0 && board<kNCIUBoards)?fLatchWin2[board]:0);}; | |
121 | ||
122 | UShort_t * GetResetWin1() const {return (UShort_t*)fResetWin1;}; | |
123 | UShort_t GetResetWin1(Int_t board ) const {return ((board>=0 && board<kNCIUBoards)?fResetWin1[board]:0);}; | |
124 | UShort_t * GetResetWin2() const {return (UShort_t*)fResetWin2;}; | |
125 | UShort_t GetResetWin2(Int_t board ) const {return ((board>=0 && board<kNCIUBoards)?fResetWin2[board]:0);}; | |
126 | ||
127 | Bool_t * GetPedestalSubtraction() const {return (Bool_t*) fPedestalSubtraction;}; | |
128 | Bool_t GetPedestalSubtraction(Int_t board ) const {return ((board>=0 && board<kNCIUBoards)?fPedestalSubtraction[board]:0);}; | |
129 | ||
130 | UShort_t GetBBAThreshold() const {return fBBAThreshold;}; | |
131 | UShort_t GetBBCThreshold() const {return fBBCThreshold;}; | |
132 | ||
133 | UShort_t GetBGAThreshold() const {return fBGAThreshold;}; | |
134 | UShort_t GetBGCThreshold() const {return fBGCThreshold;}; | |
135 | ||
136 | UShort_t GetBBAForBGThreshold() const {return fBBAForBGThreshold;}; | |
137 | UShort_t GetBBCForBGThreshold() const {return fBBCForBGThreshold;}; | |
138 | ||
139 | UShort_t GetCentralityV0AThrLow() const {return fCentralityVOAThrLow;}; | |
140 | UShort_t GetCentralityV0AThrHigh() const {return fCentralityVOAThrHigh;}; | |
141 | ||
142 | UShort_t GetCentralityV0CThrLow() const {return fCentralityVOCThrLow;}; | |
143 | UShort_t GetCentralityV0CThrHigh() const {return fCentralityVOCThrHigh;}; | |
144 | ||
145 | UShort_t GetMultV0AThrLow() const {return fMultV0AThrLow;}; | |
146 | UShort_t GetMultV0AThrHigh() const {return fMultV0AThrHigh;}; | |
147 | ||
148 | UShort_t GetMultV0CThrLow() const {return fMultV0CThrLow;}; | |
149 | UShort_t GetMultV0CThrHigh() const {return fMultV0CThrHigh;}; | |
150 | ||
151 | UShort_t GetTriggerSelected(Int_t output) const {return ((output>=0 && output<kNTriggerOutputs)?fTriggerSelected[output]:0);}; | |
152 | ||
153 | Bool_t GetEnableCharge(Int_t board, Int_t channel); | |
154 | Bool_t GetEnableTiming(Int_t board, Int_t channel); | |
155 | UShort_t GetDiscriThr(Int_t board, Int_t channel); | |
156 | UShort_t GetDelayHit(Int_t board, Int_t channel); | |
157 | UShort_t GetPedestal(Int_t integrator, Int_t board, Int_t channel); | |
158 | UShort_t GetPedestalCut(Int_t integrator, Int_t board, Int_t channel); | |
159 | ||
160 | enum { | |
161 | kNCIUBoards = AliVZERODataFEE::kNCIUBoards, | |
162 | kNAliases = AliVZERODataFEE::kNAliases, | |
163 | kNTriggerOutputs = 5, | |
164 | kNChannels = 8 | |
165 | }; | |
166 | ||
167 | private: | |
168 | AliVZEROTriggerData(const AliVZEROTriggerData &/*triggerData*/); | |
169 | AliVZEROTriggerData& operator= (const AliVZEROTriggerData &/*triggerData*/); | |
170 | ||
171 | UShort_t fClk1Win1[kNCIUBoards]; //Profil of the Clock 1 of the Window 1 (BB window) | |
172 | UShort_t fClk2Win1[kNCIUBoards]; //Profil of the Clock 2 of the Window 1 (BB window) | |
173 | UShort_t fClk1Win2[kNCIUBoards]; //Profil of the Clock 1 of the Window 2 (BG window) | |
174 | UShort_t fClk2Win2[kNCIUBoards]; //Profil of the Clock 2 of the Window 2 (BG window) | |
175 | UShort_t fDelayClk1Win1[kNCIUBoards]; // Delays of the Clock 1 of the Window 1 (BB window) | |
176 | UShort_t fDelayClk2Win1[kNCIUBoards]; // Delays of the Clock 2 of the Window 1 (BB window) | |
177 | UShort_t fDelayClk1Win2[kNCIUBoards]; // Delays of the Clock 1 of the Window 2 (BG window) | |
178 | UShort_t fDelayClk2Win2[kNCIUBoards]; // Delays of the Clock 2 of the Window 2 (BG window) | |
179 | UShort_t fLatchWin1[kNCIUBoards]; //Profil of the Clock of the Latch signal of Window 1 (BB window) | |
180 | UShort_t fLatchWin2[kNCIUBoards]; //Profil of the Clock of the Latch signal of Window 2 (BG window) | |
181 | UShort_t fResetWin1[kNCIUBoards]; //Profil of the Clock of the Reset signal of Window 1 (BB window) | |
182 | UShort_t fResetWin2[kNCIUBoards]; //Profil of the Clock of the Reset signal of Window 2 (BG window) | |
183 | Bool_t fPedestalSubtraction[kNCIUBoards]; // Flag to en(dis)able pedestal subtraction before centrality trigger calculation | |
184 | UShort_t fBBAThreshold; // Minimum bias Threshold in number of channel hit for V0A | |
185 | UShort_t fBBCThreshold; // Minimum bias Threshold in number of channel hit for V0C | |
186 | UShort_t fBGAThreshold; // Beam Gas Threshold in number of channel hit for V0A | |
187 | UShort_t fBGCThreshold; // Beam Gas Threshold in number of channel hit for V0C | |
188 | UShort_t fBBAForBGThreshold; // BBA threshold for Beam Gas triggers (i.e. BBA and BGC) | |
189 | UShort_t fBBCForBGThreshold; // BBC threshold for Beam Gas triggers (i.e. BBC and BGA) | |
190 | UShort_t fCentralityVOAThrLow; // Threshold used for centrality triggers (i.e. CTA1 and CTC1) | |
191 | UShort_t fCentralityVOAThrHigh; // Threshold used for centrality triggers (i.e. CTA2 and CTC2) | |
192 | UShort_t fCentralityVOCThrLow; // Threshold used for centrality triggers (i.e. CTA1 and CTC1) | |
193 | UShort_t fCentralityVOCThrHigh; // Threshold used for centrality triggers (i.e. CTA2 and CTC2) | |
194 | UShort_t fMultV0AThrLow; // Threshold used for multiplicity triggers (i.e. MTA and MTC) | |
195 | UShort_t fMultV0AThrHigh; // Threshold used for multiplicity triggers (i.e. MTA and MTC) | |
196 | UShort_t fMultV0CThrLow; // Threshold used for multiplicity triggers (i.e. MTA and MTC) | |
197 | UShort_t fMultV0CThrHigh; // Threshold used for multiplicity triggers (i.e. MTA and MTC) | |
198 | UShort_t fTriggerSelected[kNTriggerOutputs]; // Triggers selected on the 5 outputs to CTP | |
199 | Bool_t fEnableCharge[kNCIUBoards][kNChannels]; // Flag to know is a channel is participating to the Charge triggers | |
200 | Bool_t fEnableTiming[kNCIUBoards][kNChannels]; // Flag to know is a channel is participating to the Timing triggers | |
201 | UShort_t fDiscriThr[kNCIUBoards][kNChannels]; // Threshold of each discriminator | |
202 | UShort_t fDelayHit[kNCIUBoards][kNChannels]; // Individual delays of each channel | |
203 | UShort_t fPedestalOdd[kNCIUBoards][kNChannels]; // Pedestals for the Odd integrators | |
204 | UShort_t fPedestalEven[kNCIUBoards][kNChannels]; // Pedestals for the Even integrators | |
205 | UShort_t fPedestalCutOdd[kNCIUBoards][kNChannels]; // Pedestals Cut for the Odd integrators | |
206 | UShort_t fPedestalCutEven[kNCIUBoards][kNChannels]; // Pedestals Cut for the Even integrators | |
207 | ||
208 | Int_t fRun; // Run number | |
209 | Int_t fStartTime; // Start time | |
210 | Int_t fEndTime; // End time | |
211 | TString fAliasNames[kNAliases]; // aliases for DCS data | |
212 | Bool_t fIsProcessed; // bool to know processing status | |
213 | ||
214 | Bool_t IsClkValid(UShort_t clock) const; | |
215 | void SetParameter(TString name, Int_t val); | |
216 | ||
217 | ||
218 | ClassDef( AliVZEROTriggerData, 2 ) | |
219 | ||
220 | }; | |
221 | ||
222 | #endif // ALIVZEROTRIGGERDATA_H | |
223 | ||
224 |