]>
Commit | Line | Data |
---|---|---|
0a9de6d1 | 1 | /************************************************************************** |
2 | * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
3 | * * | |
4 | * Author: The ALICE Off-line Project. * | |
5 | * Contributors are mentioned in the code where appropriate. * | |
6 | * * | |
7 | * Permission to use, copy, modify and distribute this software and its * | |
8 | * documentation strictly for non-commercial purposes is hereby granted * | |
9 | * without fee, provided that the above copyright notice appears in all * | |
10 | * copies and that both the copyright notice and this permission notice * | |
11 | * appear in the supporting documentation. The authors make no claims * | |
12 | * about the suitability of this software for any purpose. It is * | |
13 | * provided "as is" without express or implied warranty. * | |
14 | **************************************************************************/ | |
15 | ||
16 | /* $Id$ */ | |
17 | ||
18 | /////////////////////////////////////////////////////////////////////////////// | |
19 | //. // | |
20 | // class for PHOS Trigger Parameters // | |
21 | //. // | |
22 | /////////////////////////////////////////////////////////////////////////////// | |
23 | ||
24 | #include "AliPHOSTriggerParameters.h" | |
25 | #include "TString.h" | |
26 | ||
27 | ClassImp(AliPHOSTriggerParameters) | |
28 | ||
29 | //________________________________________________________________ | |
30 | AliPHOSTriggerParameters::AliPHOSTriggerParameters() | |
31 | : TNamed() | |
32 | { | |
33 | // default constructor. Initialises with Reset(). | |
34 | Reset(); | |
35 | } | |
36 | ||
37 | //________________________________________________________________ | |
38 | AliPHOSTriggerParameters::AliPHOSTriggerParameters(const char* name) | |
39 | : TNamed(name, name) | |
40 | { | |
41 | // Specific constructor, passes name to TNamed base. Initialises with Reset(). | |
42 | ||
43 | Reset(); | |
44 | } | |
45 | ||
46 | //________________________________________________________________ | |
47 | AliPHOSTriggerParameters::AliPHOSTriggerParameters(const AliPHOSTriggerParameters& other) | |
48 | : TNamed(other) | |
49 | { | |
50 | // copy constructor | |
51 | ||
52 | for(Int_t mod = 0; mod < kNMods; ++mod) { | |
53 | for(Int_t TRURow = 0; TRURow < kNTRURows; TRURow++) { | |
54 | for(Int_t branch = 0; branch < kNBranches; branch++) { | |
55 | for(Int_t xIdx = 0; xIdx < kNTRUX; xIdx++) { | |
56 | for(Int_t zIdx = 0; zIdx < kNTRUZ; zIdx++) { | |
57 | fTRUPedestals[mod][TRURow][branch][xIdx][zIdx] = other.fTRUPedestals[mod][TRURow][branch][xIdx][zIdx]; | |
58 | } // end zIdx | |
59 | } // end xIdx | |
60 | fTRUTriggerBitReadoutOn[mod][TRURow][branch] = other.fTRUTriggerBitReadoutOn[mod][TRURow][branch]; | |
61 | fTRUSignalReadoutOn[mod][TRURow][branch] = other.fTRUSignalReadoutOn[mod][TRURow][branch]; | |
62 | fTRUSignalTimeBinFrom[mod][TRURow][branch] = other.fTRUSignalTimeBinFrom[mod][TRURow][branch]; | |
63 | fTRUSignalTimeBinTo[mod][TRURow][branch] = other.fTRUSignalTimeBinTo[mod][TRURow][branch]; | |
64 | fTRUThreshold[mod][TRURow][branch] = other.fTRUThreshold[mod][TRURow][branch]; | |
65 | fTRUMaskChannel[mod][TRURow][branch] = other.fTRUMaskChannel[mod][TRURow][branch]; | |
66 | } // end branch | |
67 | } // end tru | |
68 | // for(int tor = 0; tor < kNTORs; tor++) { | |
69 | // fTORMaskArray[mod][tor] = other.fTORMaskArray[mod][tor] ; | |
70 | // fTORReadoutMask[mod][tor] = other.fTORReadoutMask[mod][tor]; | |
71 | // } | |
72 | } // end mod | |
73 | } | |
74 | ||
75 | ||
76 | //________________________________________________________________ | |
77 | AliPHOSTriggerParameters& AliPHOSTriggerParameters::operator= (const AliPHOSTriggerParameters& other) | |
78 | { | |
79 | // assignement | |
80 | ||
81 | SetName(other.GetName()); | |
82 | SetTitle(other.GetTitle()); | |
83 | ||
84 | for(Int_t mod = 0; mod < kNMods; ++mod) { | |
85 | for(Int_t TRURow = 0; TRURow < kNTRURows; TRURow++) { | |
86 | for(Int_t branch = 0; branch < kNBranches; branch++) { | |
87 | for(Int_t xIdx = 0; xIdx < kNTRUX; xIdx++) { | |
88 | for(Int_t zIdx = 0; zIdx < kNTRUZ; zIdx++) { | |
89 | fTRUPedestals[mod][TRURow][branch][xIdx][zIdx] = other.fTRUPedestals[mod][TRURow][branch][xIdx][zIdx]; | |
90 | } | |
91 | } | |
92 | fTRUTriggerBitReadoutOn[mod][TRURow][branch] = other.fTRUTriggerBitReadoutOn[mod][TRURow][branch]; | |
93 | fTRUSignalReadoutOn[mod][TRURow][branch] = other.fTRUSignalReadoutOn[mod][TRURow][branch]; | |
94 | fTRUSignalTimeBinFrom[mod][TRURow][branch] = other.fTRUSignalTimeBinFrom[mod][TRURow][branch]; | |
95 | fTRUSignalTimeBinTo[mod][TRURow][branch] = other.fTRUSignalTimeBinTo[mod][TRURow][branch]; | |
96 | fTRUThreshold[mod][TRURow][branch] = other.fTRUThreshold[mod][TRURow][branch]; | |
97 | fTRUMaskChannel[mod][TRURow][branch] = other.fTRUMaskChannel[mod][TRURow][branch]; | |
98 | } | |
99 | } | |
100 | // for(Int_t tor = 0; tor < kNTORs; tor++) { | |
101 | // fTORMaskArray[mod][tor] = other.fTORMaskArray[mod][tor] ; | |
102 | // fTORReadoutMask[mod][tor] = other.fTORReadoutMask[mod][tor]; | |
103 | // } | |
104 | } | |
105 | return *this; | |
106 | } | |
107 | ||
108 | //________________________________________________________________ | |
109 | AliPHOSTriggerParameters::~AliPHOSTriggerParameters() | |
110 | { | |
111 | // destructor | |
112 | } | |
113 | ||
114 | ||
115 | //________________________________________________________________ | |
116 | UShort_t AliPHOSTriggerParameters::GetTRUPedestal(Int_t mod, Int_t TRURow, Int_t branch, Int_t xIdx, Int_t zIdx) const | |
117 | { | |
118 | // Returns the pedestals of the TRU FakeALTRO Trigger signal, is in the range | |
119 | // spanned by 10 bits, i.e. [0,1023]. Ideal value is is given by. | |
120 | // | |
121 | // mod: [0,4], module index, clockwise, as of 2011 only 2:4 exists | |
122 | // TRURow: [0,3], TRU Row, indexed in rising number in PHOS x direction | |
123 | // branch: [0,1], branch, indexed in rising number in z direction | |
124 | // xIdx: [0,7], TRU 2x2 cell x index, indexed in rising number in PHOS x direction | |
125 | // zIdx: [0,13], TRU 2x2 cell z index, indexed in rising number in PHOS z direction | |
126 | ||
127 | return fTRUPedestals[mod][TRURow][branch][xIdx][zIdx]; | |
128 | } | |
129 | //________________________________________________________________ | |
130 | Bool_t AliPHOSTriggerParameters::GetTRUReadoutOn(Int_t mod, Int_t TRURow, Int_t branch) const | |
131 | { | |
132 | // Returns the TRU specific flag that specifies for the TRU whether | |
133 | // or not it should be read out. | |
134 | // | |
135 | // mod: [0,4], module index, clockwise, as of 2011 only 2:4 exists | |
136 | // TRURow: [0,3], TRU Row, indexed in rising number in PHOS x direction | |
137 | // branch: [0,1], branch, indexed in rising number in z direction | |
138 | ||
139 | return fTRUTriggerBitReadoutOn[mod][TRURow][branch]; | |
140 | } | |
141 | //________________________________________________________________ | |
142 | Bool_t AliPHOSTriggerParameters::GetTRUSignalReadoutOn(Int_t mod, Int_t TRURow, Int_t branch) const | |
143 | { | |
144 | // Returns the TRU specific flag that specifies for the TRU whether | |
145 | // or not it readout should include full FakeALTRO Trigger Signal. | |
146 | // | |
147 | // mod: [0,4], module index, clockwise, as of 2011 only 2:4 exists | |
148 | // TRURow: [0,3], TRU Row, indexed in rising number in PHOS x direction | |
149 | // branch: [0,1], branch, indexed in rising number in z direction | |
150 | ||
151 | return fTRUSignalReadoutOn[mod][TRURow][branch]; | |
152 | } | |
153 | //________________________________________________________________ | |
154 | UShort_t AliPHOSTriggerParameters::GetTRUSignalTimeBinFrom(Int_t mod, Int_t TRURow, Int_t branch) const | |
155 | { | |
156 | // Returns the TRU specific value that specifies from (including), | |
157 | // which timebin TRU should read out. | |
158 | // | |
159 | // mod: [0,4], module index, clockwise, as of 2011 only 2:4 exists | |
160 | // TRURow: [0,3], TRU Row, indexed in rising number in PHOS x direction | |
161 | // branch: [0,1], branch, indexed in rising number in z direction | |
162 | ||
163 | return fTRUSignalTimeBinFrom[mod][TRURow][branch]; | |
164 | } | |
165 | //________________________________________________________________ | |
166 | UShort_t AliPHOSTriggerParameters::GetTRUSignalTimeBinTo(Int_t mod, Int_t TRURow, Int_t branch) const | |
167 | { | |
168 | // Returns the TRU specific value that specifies to (including), | |
169 | // which timebin TRU should read out. | |
170 | // | |
171 | // mod: [0,4], module index, clockwise, as of 2011 only 2:4 exists | |
172 | // TRURow: [0,3], TRU Row, indexed in rising number in PHOS x direction | |
173 | // branch: [0,1], branch, indexed in rising number in z direction | |
174 | ||
175 | return fTRUSignalTimeBinTo[mod][TRURow][branch]; | |
176 | } | |
177 | //________________________________________________________________ | |
178 | UShort_t AliPHOSTriggerParameters::GetTRUThreshold(Int_t mod, Int_t TRURow, Int_t branch) const | |
179 | { | |
180 | // Returns the TRU specific value that specifies the trigger threshold, | |
181 | // the 4x4 Sliding Window (signal - pedestal) value to which the tru | |
182 | // sends a L0. | |
183 | // | |
184 | // mod: [0,4], module index, clockwise, as of 2011 only 2:4 exists | |
185 | // TRURow: [0,3], TRU Row, indexed in rising number in PHOS x direction | |
186 | // branch: [0,1], branch, indexed in rising number in z direction | |
187 | ||
188 | return fTRUThreshold[mod][TRURow][branch]; | |
189 | } | |
190 | //________________________________________________________________ | |
191 | UShort_t AliPHOSTriggerParameters::GetTRUMaskChannel(Int_t mod, Int_t TRURow, Int_t branch) const | |
192 | { | |
193 | // TODO: description | |
194 | // | |
195 | // mod: [0,4], module index, clockwise, as of 2011 only 2:4 exists | |
196 | // TRURow: [0,3], TRU Row, indexed in rising number in PHOS x direction | |
197 | // branch: [0,1], branch, indexed in rising number in z direction | |
198 | ||
199 | return fTRUMaskChannel[mod][TRURow][branch]; | |
200 | } | |
201 | //________________________________________________________________ | |
202 | const UShort_t* AliPHOSTriggerParameters::GetTORMaskArray(Int_t mod, Int_t tor) const | |
203 | { | |
204 | // TODO: description | |
205 | // | |
206 | // mod: [0,4], module index, clockwise, as of 2011 only 2:4 exists | |
207 | // tor: [0,1], TOR index, rising in PHOS x direction | |
208 | // | |
209 | // returns a array of UShort_t of size 3. | |
210 | ||
211 | return fTORMaskArray[mod][tor]; | |
212 | } | |
213 | //________________________________________________________________ | |
214 | const UShort_t* AliPHOSTriggerParameters::GetTORReadoutMask(Int_t mod, Int_t tor) const | |
215 | { | |
216 | // TODO: description | |
217 | // | |
218 | // mod: [0,4], module index, clockwise, as of 2011 only 2:4 exists | |
219 | // tor: [0,1], TOR index, rising in PHOS x direction | |
220 | // | |
221 | // returns a array of UShort_t of size 2. | |
222 | ||
223 | return fTORReadoutMask[mod][tor]; | |
224 | } | |
225 | ||
226 | ||
227 | //________________________________________________________________ | |
228 | void AliPHOSTriggerParameters::SetTRUPedestal(UShort_t pedestal, Int_t mod, Int_t TRURow, Int_t branch, Int_t xIdx, Int_t zIdx) | |
229 | { | |
230 | // Returns the pedestals of the TRU FakeALTRO Trigger signal, | |
231 | // is in the range spanned by 10 bits | |
232 | // , i.e. [0,1023]. Ideal value is is given by. | |
233 | // | |
234 | // mod: [0,4], module index, clockwise, as of 2011 only 2:4 exists | |
235 | // TRURow: [0,3], TRU Row, indexed in rising number in PHOS x direction | |
236 | // branch: [0,1], branch, indexed in rising number in z direction | |
237 | // xIdx: [0,7], TRU 2x2 cell x index, indexed in rising number in PHOS x direction | |
238 | // zIdx: [0,7], TRU 2x2 cell z index, indexed in rising number in PHOS z direction | |
239 | ||
240 | fTRUPedestals[mod][TRURow][branch][xIdx][zIdx] = pedestal; | |
241 | } | |
242 | //________________________________________________________________ | |
243 | void AliPHOSTriggerParameters::SetTRUReadoutOn(Bool_t isOn, Int_t mod, Int_t TRURow, Int_t branch) | |
244 | { | |
245 | // Returns the TRU specific flag that specifies for the TRU | |
246 | // whether or not it should be read out. | |
247 | // | |
248 | // mod: [0,4], module index, clockwise, as of 2011 only 2:4 exists | |
249 | // TRURow: [0,3], TRU Row, indexed in rising number in PHOS x direction | |
250 | // branch: [0,1], branch, indexed in rising number in z direction | |
251 | ||
252 | fTRUTriggerBitReadoutOn[mod][TRURow][branch] = isOn; | |
253 | } | |
254 | //________________________________________________________________ | |
255 | void AliPHOSTriggerParameters::SetTRUSignalReadoutOn(Bool_t isOn, Int_t mod, Int_t TRURow, Int_t branch) | |
256 | { | |
257 | // Returns the TRU specific flag that specifies for the TRU whether or not it | |
258 | // readout should include full FakeALTRO Trigger Signal. | |
259 | // | |
260 | // mod: [0,4], module index, clockwise, as of 2011 only 2:4 exists | |
261 | // TRURow: [0,3], TRU Row, indexed in rising number in PHOS x direction | |
262 | // branch: [0,1], branch, indexed in rising number in z direction | |
263 | ||
264 | fTRUSignalReadoutOn[mod][TRURow][branch] = isOn; | |
265 | } | |
266 | //________________________________________________________________ | |
267 | void AliPHOSTriggerParameters::SetTRUSignalTimeBinFrom(UShort_t fromBin, Int_t mod, Int_t TRURow, Int_t branch) | |
268 | { | |
269 | // Returns the TRU specific value that specifies from (including), | |
270 | // which timebin TRU should read out. | |
271 | // | |
272 | // mod: [0,4], module index, clockwise, as of 2011 only 2:4 exists | |
273 | // TRURow: [0,3], TRU Row, indexed in rising number in PHOS x direction | |
274 | // branch: [0,1], branch, indexed in rising number in z direction | |
275 | ||
276 | fTRUSignalTimeBinFrom[mod][TRURow][branch] = fromBin; | |
277 | } | |
278 | //________________________________________________________________ | |
279 | void AliPHOSTriggerParameters::SetTRUSignalTimeBinTo(UShort_t toBin, Int_t mod, Int_t TRURow, Int_t branch) | |
280 | { | |
281 | // Returns the TRU specific value that specifies to (including), | |
282 | // which timebin TRU should read out. | |
283 | // | |
284 | // mod: [0,4], module index, clockwise, as of 2011 only 2:4 exists | |
285 | // TRURow: [0,3], TRU Row, indexed in rising number in PHOS x direction | |
286 | // branch: [0,1], branch, indexed in rising number in z direction | |
287 | ||
288 | fTRUSignalTimeBinTo[mod][TRURow][branch] = toBin; | |
289 | } | |
290 | //________________________________________________________________ | |
291 | void AliPHOSTriggerParameters::SetTRUThreshold(UShort_t threshold, Int_t mod, Int_t TRURow, Int_t branch) | |
292 | { | |
293 | // Returns the TRU specific value that specifies the trigger threshold, | |
294 | // the (signal - pedestal) value to which the tru sends a L0. | |
295 | // | |
296 | // mod: [0,4], module index, clockwise, as of 2011 only 2:4 exists | |
297 | // TRURow: [0,3], TRU Row, indexed in rising number in PHOS x direction | |
298 | // branch: [0,1], branch, indexed in rising number in z direction | |
299 | ||
300 | fTRUThreshold[mod][TRURow][branch] = threshold; | |
301 | } | |
302 | //________________________________________________________________ | |
303 | void AliPHOSTriggerParameters::SetTRUMaskChannel(UShort_t mask, Int_t mod, Int_t TRURow, Int_t branch) | |
304 | { | |
305 | // TODO: description | |
306 | // | |
307 | // mod: [0,4], module index, clockwise, as of 2011 only 2:4 exists | |
308 | // TRURow: [0,3], TRU Row, indexed in rising number in PHOS x direction | |
309 | // branch: [0,1], branch, indexed in rising number in z direction | |
310 | ||
311 | fTRUMaskChannel[mod][TRURow][branch] = mask; | |
312 | } | |
313 | //________________________________________________________________ | |
314 | void AliPHOSTriggerParameters::SetTORMaskArray(const UShort_t ma[3], Int_t mod, Int_t tor) | |
315 | { | |
316 | // TODO: description | |
317 | // | |
318 | // mod: [0,4], module index, clockwise, as of 2011 only 2:4 exists | |
319 | // tor: [0,1], TOR index, rising in PHOS x direction | |
320 | ||
321 | fTORMaskArray[mod][tor][0] = ma[0]; | |
322 | fTORMaskArray[mod][tor][1] = ma[1]; | |
323 | fTORMaskArray[mod][tor][2] = ma[2]; | |
324 | } | |
325 | //________________________________________________________________ | |
326 | void AliPHOSTriggerParameters::SetTORReadoutMask(const UShort_t rm[2], Int_t mod, Int_t tor) | |
327 | { | |
328 | // TODO: description | |
329 | // | |
330 | // mod: [0,4], module index, clockwise, as of 2011 only 2:4 exists | |
331 | // tor: [0,1], TOR index, rising in PHOS x direction | |
332 | ||
333 | fTORReadoutMask[mod][tor][0] = rm[0]; | |
334 | fTORReadoutMask[mod][tor][1] = rm[1]; | |
335 | } | |
336 | ||
337 | ||
338 | //________________________________________________________________ | |
339 | void AliPHOSTriggerParameters::Print(Option_t *option) const | |
340 | { | |
341 | // Will Write uppon request (Henrik Qvigstad <henrik.qvigstad@cern.ch>) | |
342 | if(option) | |
343 | Printf("AliPHOSTriggerParameters::Print is not implemented."); | |
344 | } | |
345 | ||
346 | //________________________________________________________________ | |
347 | void AliPHOSTriggerParameters::Reset() | |
348 | { | |
349 | // Resets the values to Null/Ideal | |
350 | ||
351 | for(Int_t mod = 0; mod < kNMods; ++mod) { | |
352 | for(Int_t TRURow = 0; TRURow < kNTRURows; TRURow++) { | |
353 | for(Int_t branch = 0; branch < kNBranches; branch++) { | |
354 | fTRUTriggerBitReadoutOn[mod][TRURow][branch] = 0; | |
355 | fTRUSignalReadoutOn[mod][TRURow][branch] = 0; | |
356 | fTRUSignalTimeBinFrom[mod][TRURow][branch] = 0; | |
357 | fTRUSignalTimeBinTo[mod][TRURow][branch] = kDefaultNTRUTimeBins-1; | |
358 | fTRUThreshold[mod][TRURow][branch] = 0; | |
359 | fTRUMaskChannel[mod][TRURow][branch] = 0; | |
360 | for(Int_t xIdx = 0; xIdx < kNTRUX; xIdx++) { | |
361 | for(Int_t zIdx = 0; zIdx < kNTRUZ; zIdx++) { | |
362 | fTRUPedestals[mod][TRURow][branch][xIdx][zIdx] = kIdealTRUPedestal; | |
363 | } | |
364 | } | |
365 | } | |
366 | } | |
367 | for(Int_t tor = 0; tor < kNTORs; tor++) { | |
368 | fTORMaskArray[mod][tor][0] = 0; | |
369 | fTORMaskArray[mod][tor][1] = 0; | |
370 | fTORMaskArray[mod][tor][2] = 0; | |
371 | fTORReadoutMask[mod][tor][0] = 0; | |
372 | fTORReadoutMask[mod][tor][1] = 0; | |
373 | } | |
374 | } | |
375 | } | |
376 |