]> git.uio.no Git - u/mrichter/AliRoot.git/blame - FMD/AliFMDParameters.h
put the call AliQADataMakerSteer::Increment in synch
[u/mrichter/AliRoot.git] / FMD / AliFMDParameters.h
CommitLineData
1a1fdef7 1#ifndef ALIFMDPARAMETERS_H
2#define ALIFMDPARAMETERS_H
3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights
4 * reserved.
5 *
6 * Latest changes by Christian Holm Christensen <cholm@nbi.dk>
7 *
8 * See cxx source for full Copyright notice
9 */
1a1fdef7 10//____________________________________________________________________
11//
12// Singleton class to handle various parameters (not geometry) of the
13// FMD
088f8e79 14// Should get ata fromm Conditions DB.
1a1fdef7 15//
02a27b50 16/** @file AliFMDParameters.h
17 @author Christian Holm Christensen <cholm@nbi.dk>
18 @date Mon Mar 27 12:44:43 2006
19 @brief Manager of FMD parameters
20*/
1a1fdef7 21#ifndef ROOT_TNamed
22# include <TNamed.h>
23#endif
8f6ee336 24#ifndef ROOT_TArrayI
25# include <TArrayI.h>
26#endif
27#ifndef ALIFMDUSHORTMAP_H
28# include <AliFMDUShortMap.h>
29#endif
30#ifndef ALIFMDBOOLMAP_H
31# include <AliFMDBoolMap.h>
32#endif
33typedef AliFMDUShortMap AliFMDCalibZeroSuppression;
34typedef AliFMDBoolMap AliFMDCalibDeadMap;
35class AliFMDCalibPedestal;
36class AliFMDCalibGain;
37class AliFMDCalibSampleRate;
c2fc1258 38class AliFMDCalibStripRange;
57c3c593 39class AliFMDAltroMapping;
dc02d468 40class AliCDBEntry;
41class AliFMDPreprocessor;
42
02a27b50 43//____________________________________________________________________
44//
45// Singleton class to handle various parameters (not geometry) of the
46// FMD
47// Should get ata fromm Conditions DB.
48//
1a1fdef7 49
c2fc1258 50/** @brief This class is a singleton that handles various parameters
51 of the FMD detectors.
52 This class reads from the Conditions DB to get the various
53 parameters, which code can then request from here. In that way,
54 all code uses the same data, and the interface is consistent.
9f662337 55
56 Some of the parameter managed are
57 - @c fPedestal, @c fPedestalWidth
58 Mean and width of the pedestal. The pedestal is simulated
59 by a Guassian, but derived classes my override MakePedestal
60 to simulate it differently (or pick it up from a database).
61 - @c fVA1MipRange
62 The dymamic MIP range of the VA1_ALICE pre-amplifier chip
63 - @c fAltroChannelSize
64 The largest number plus one that can be stored in one
65 channel in one time step in the ALTRO ADC chip.
66 - @c fSampleRate
67 How many times the ALTRO ADC chip samples the VA1_ALICE
68 pre-amplifier signal. The VA1_ALICE chip is read-out at
69 10MHz, while it's possible to drive the ALTRO chip at
70 25MHz. That means, that the ALTRO chip can have time to
71 sample each VA1_ALICE signal up to 2 times. Although it's
72 not certain this feature will be used in the production,
73 we'd like have the option, and so it should be reflected in
74 the code.
75
76 @ingroup FMD_base
77*/
1a1fdef7 78class AliFMDParameters : public TNamed
79{
80public:
f6449cc0 81 /** Enumeration of things to initialize */
82 enum What {
83 /** Pulser gain */
84 kPulseGain = 0x1, // Pulser gain
85 /** Pedestals and noise */
86 kPedestal = 0x2, // Pedestal and noise
87 /** Dead channel map */
88 kDeadMap = 0x4, // Dead channel map
89 /** Over sampling rate */
90 kSampleRate = 0x8, // Over sampling rate
91 /** Zero suppression parameters */
92 kZeroSuppression = 0x10, // Zero suppression parameters
93 /** ALTRO data map */
6bf06d81 94 kAltroMap = 0x20, // Altro channel map
95 /** Strip Range */
96 kStripRange = 0x40 //Strip range
97
f6449cc0 98 };
99
9f662337 100 /** Singleton access
101 @return single to */
1a1fdef7 102 static AliFMDParameters* Instance();
57c3c593 103
9f662337 104 /** Initialize the manager. This tries to read the parameters from
105 CDB. If that fails, the class uses the hard-coded parameters.
106 */
f6449cc0 107 void Init(Bool_t forceReInit=kFALSE,
108 UInt_t what = (kPulseGain|kPedestal|kDeadMap|kSampleRate|
6bf06d81 109 kZeroSuppression|kAltroMap|kStripRange));
dc02d468 110 /** Initialize the manager. This tries to read the parameters from
111 CDB. If that fails, the class uses the hard-coded parameters.
112 */
113 void Init(AliFMDPreprocessor* pp,
114 Bool_t forceReInit=kFALSE,
115 UInt_t what = (kPulseGain|kPedestal|kDeadMap|kSampleRate|
d2fb6b63 116 kZeroSuppression|kAltroMap|kStripRange));
c2fc1258 117 /** Print all parameters.
118 @param option Option string */
119 void Print(Option_t* option="A") const;
6169f936 120 /** Draw parameters.
121 @param option What to draw. Should be one of
122 - dead Dead channels
123 - threshold Threshold
124 - gain Gain
125 - pedestal Pedestal
126 - noise Noise (or pedestal width)
127 - zero Zero suppression
128 - rate Sampling rate (VA1 clock / ALTRO clock)
129 - min Minimum strip read out
130 - max Maximum strip read out
131 - map hardware address
132 */
133 void Draw(Option_t* option="pedestal");
1a1fdef7 134
9f662337 135 /** @{ */
136 /** @name Set various `Fixed' parameters */
c2fc1258 137 /** @param r How many MIP signals we can fit in the VA1
138 pre-amps. (default and design is 20) */
8f6ee336 139 void SetVA1MipRange(UShort_t r=20) { fVA1MipRange = r; }
c2fc1258 140 /** @param s Maximum number of the ADC (ALTRO). This is a 10 bit
141 ADC so, the maximum number is 1024 */
8f6ee336 142 void SetAltroChannelSize(UShort_t s=1024) { fAltroChannelSize = s;}
c2fc1258 143 /** @param size The number of strips multiplexed into one ALTRO
144 channel. That is, how many strips is connected to one VA1
145 pre-amp. */
8f6ee336 146 void SetChannelsPerAltro(UShort_t size=128) { fChannelsPerAltro = size; }
c2fc1258 147 /** @param f Factor to use for accepting a signal. */
8f6ee336 148 void SetPedestalFactor(Float_t f=3) { fPedestalFactor = f; }
cce354f6 149 /** @param n Number of pre-samples to keep during zero-suppression -
150 only used in simulation. */
151 void SetZSPreSamples(UShort_t n=1) { fZSPre = (n & 0x3); }
152 /** @param n Number of post-samples to keep during zero-suppression -
153 only used in simulation. */
154 void SetZSPostSamples(UShort_t n=1) { fZSPost = (n & 0x3); }
155 /** @param use If true, do pedestal subtraction before zero
156 suppression - only used in simulation */
157 void SetZSPedSubtract(Bool_t use=kTRUE) { fZSPedSubtract = use; }
9f662337 158 /** @} */
8f6ee336 159
9f662337 160 /** @{ */
161 /** @name Set various variable parameter defaults */
c2fc1258 162 /** @param s Zero suppression threshold in ADC counts */
8f6ee336 163 void SetZeroSuppression(UShort_t s=0) { fFixedZeroSuppression = s; }
c2fc1258 164 /** @param r How many times we oversample each strip. */
f743c846 165 void SetSampleRate(UShort_t r=1) { fFixedSampleRate = r ;}//(r>2?2:r);}
6acbd49f 166 void SetSampleRate(AliFMDCalibSampleRate* r) { fSampleRate = r; }
c2fc1258 167 /** @param p Pedestal value in ADC counts */
8f6ee336 168 void SetPedestal(Float_t p=10) { fFixedPedestal = p; }
c2fc1258 169 /** @param w Pedestal width in ADC counts */
8f6ee336 170 void SetPedestalWidth(Float_t w=1) { fFixedPedestalWidth = w; }
c2fc1258 171 /** @param t Threshold used for 1 MIP acceptance. */
8f6ee336 172 void SetThreshold(Float_t t=0) { fFixedThreshold = t; }
c2fc1258 173 /** Range of strips read out
174 @param min Minimum strip number (0-127).
175 @param max Maximum strip number (0-127). */
176 void SetStripRange(UShort_t min=0, UShort_t max=127);
433a88bd 177 void SetStripRange(AliFMDCalibStripRange* r) { fStripRange = r; }
625d7886 178 /** Whether raw data has full common data header (8 32bit words) or
179 the older invalid format (7 32bit words with bogus entries)
180 @param yes if true the raw data has complete data header */
181 void UseCompleteHeader(Bool_t yes=kTRUE) { fHasCompleteHeader = yes; }
9f662337 182 /** @} */
1a1fdef7 183
9f662337 184 /** @{ */
185 /** @name Get `Fixed' various parameters */
c2fc1258 186 /** @return Number of MIP signals that fit inside a VA1 channel */
1a1fdef7 187 UShort_t GetVA1MipRange() const { return fVA1MipRange; }
c2fc1258 188 /** @return The maximum count in the ADC */
1a1fdef7 189 UShort_t GetAltroChannelSize() const { return fAltroChannelSize; }
c2fc1258 190 /** @return Number of strips muliplexed into one ADC channel */
1a1fdef7 191 UShort_t GetChannelsPerAltro() const { return fChannelsPerAltro; }
c2fc1258 192 /** @return The average energy deposited by one MIP */
1a1fdef7 193 Float_t GetEdepMip() const;
c2fc1258 194 /** @return The factor used of signal acceptance */
1a1fdef7 195 Float_t GetPedestalFactor() const { return fPedestalFactor; }
cce354f6 196 /** @param n Number of pre-samples to keep during zero-suppression -
197 only used in simulation. */
198 UShort_t GetZSPreSamples() const { return fZSPre; }
199 /** @param n Number of post-samples to keep during zero-suppression -
200 only used in simulation. */
201 UShort_t GetZSPostSamples() const { return fZSPost; }
202 /** @param use If true, do pedestal subtraction before zero
203 suppression - only used in simulation */
204 Bool_t IsZSPedSubtract() const { return fZSPedSubtract; }
9f662337 205 /** @} */
1a1fdef7 206
9f662337 207 /** @{ */
f38b1653 208 /** @name Various varible conditions */
c2fc1258 209 /** Whether the strip is considered dead
210 @param detector Detector # (1-3)
211 @param ring Ring ID ('I' or 'O')
212 @param sector Sector number (0-39)
213 @param strip Strip number (0-511)
214 @return @c true if the strip is considered dead, @c false if
215 it's OK. */
8f6ee336 216 Bool_t IsDead(UShort_t detector,
217 Char_t ring,
218 UShort_t sector,
219 UShort_t strip) const;
220 Float_t GetThreshold() const;
c2fc1258 221 /** Gain of pre-amp.
222 @param detector Detector # (1-3)
223 @param ring Ring ID ('I' or 'O')
224 @param sector Sector number (0-39)
225 @param strip Strip number (0-511)
226 @return Gain of pre-amp. */
8f6ee336 227 Float_t GetPulseGain(UShort_t detector,
228 Char_t ring,
229 UShort_t sector,
230 UShort_t strip) const;
c2fc1258 231 /** Get mean of pedestal
232 @param detector Detector # (1-3)
233 @param ring Ring ID ('I' or 'O')
234 @param sector Sector number (0-39)
235 @param strip Strip number (0-511)
236 @return Mean of pedestal */
8f6ee336 237 Float_t GetPedestal(UShort_t detector,
238 Char_t ring,
239 UShort_t sector,
240 UShort_t strip) const;
c2fc1258 241 /** Width of pedestal
242 @param detector Detector # (1-3)
243 @param ring Ring ID ('I' or 'O')
244 @param sector Sector number (0-39)
245 @param strip Strip number (0-511)
246 @return Width of pedestal */
8f6ee336 247 Float_t GetPedestalWidth(UShort_t detector,
248 Char_t ring,
249 UShort_t sector,
250 UShort_t strip) const;
c2fc1258 251 /** zero suppression threshold (in ADC counts)
252 @param detector Detector # (1-3)
253 @param ring Ring ID ('I' or 'O')
254 @param sector Sector number (0-39)
255 @param strip Strip number (0-511)
256 @return zero suppression threshold (in ADC counts) */
8f6ee336 257 UShort_t GetZeroSuppression(UShort_t detector,
258 Char_t ring,
259 UShort_t sector,
260 UShort_t strip) const;
c2fc1258 261 /** Get the sampling rate
262 @param detector Detector # (1-3)
263 @param ring Ring ID ('I' or 'O')
264 @param sector Sector number (0-39)
265 @param strip Strip number (0-511)
266 @return The sampling rate */
267 UShort_t GetSampleRate(UShort_t detector,
268 Char_t ring,
269 UShort_t sector,
270 UShort_t strip) const;
271 /** Get the minimum strip in the read-out range
272 @param detector Detector # (1-3)
273 @param ring Ring ID ('I' or 'O')
274 @param sector Sector number (0-39)
275 @param strip Strip number (0-511)
276 @return Minimum strip */
277 UShort_t GetMinStrip(UShort_t detector,
278 Char_t ring,
279 UShort_t sector,
280 UShort_t strip) const;
281 /** Get the maximum strip in the read-out range
282 @param detector Detector # (1-3)
283 @param ring Ring ID ('I' or 'O')
284 @param sector Sector number (0-39)
285 @param strip Strip number (0-511)
286 @return Maximum strip */
287 UShort_t GetMaxStrip(UShort_t detector,
288 Char_t ring,
289 UShort_t sector,
290 UShort_t strip) const;
625d7886 291 /** Get the number of pre-samples in ALTRO channels
292 @param detector Detector # (1-3)
293 @param ring Ring ID ('I' or 'O')
294 @param sector Sector number (0-39)
295 @param strip Strip number (0-511)
296 @return Maximum strip */
297 UShort_t GetPreSamples(UShort_t,
298 Char_t,
299 UShort_t,
300 UShort_t) const { return 14+5; }
f38b1653 301 /** @} */
302
303 /** @{
304 @name Hardware to detector translation (and inverse) */
305 /** Map a hardware address into a detector index.
306 @param ddl Hardware DDL number
307 @param board FEC number
308 @param altro ALTRO number
309 @param channel Channel number
310 @param timebin Timebin
311 @param det On return, the detector #
312 @param ring On return, the ring ID
313 @param sec On return, the sector #
314 @param str On return, the base of strip #
315 @param sam On return, the sample number for this strip
316 @return @c true on success, false otherwise */
b995fc28 317 Bool_t Hardware2Detector(UShort_t ddl, UShort_t board,
318 UShort_t altro, UShort_t chan,
f38b1653 319 UShort_t timebin,
320 UShort_t& det, Char_t& ring,
321 UShort_t& sec, Short_t& str,
322 UShort_t& sam) const;
f38b1653 323 /** Map a hardware address into a detector index.
324 @param ddl Hardware DDL number
325 @param hwaddr Hardware address.
326 @param timebin Timebin
327 @param det On return, the detector #
328 @param ring On return, the ring ID
329 @param sec On return, the sector #
330 @param str On return, the base of strip #
331 @param sam On return, the sample number for this strip
332 @return @c true on success, false otherwise */
b995fc28 333 Bool_t Hardware2Detector(UShort_t ddl, UShort_t hwaddr,
f38b1653 334 UShort_t timebin,
335 UShort_t& det, Char_t& ring,
336 UShort_t& sec, Short_t& str,
337 UShort_t& sam) const;
b995fc28 338#if 0
339 /** Translate hardware address to detector coordinates
340 @param ddl DDL number
341 @param board Board address
342 @param chip Chip #
343 @param channel Channel #
344 @param det On return, Detector # (1-3)
345 @param ring On return, Ring ID ('I' or 'O')
346 @param sec On return, Sector number (0-39)
347 @param str On return, Strip number (0-511)
348 @return @c true on success. */
349 Bool_t Hardware2Detector(UShort_t ddl, UShort_t board,
350 UShort_t chip, UShort_t channel,
351 UShort_t& det, Char_t& ring,
352 UShort_t& sec, Short_t& str) const;
c2fc1258 353 /** Translate hardware address to detector coordinates
354 @param ddl DDL number
355 @param addr Hardware address
356 @param det On return, Detector # (1-3)
357 @param ring On return, Ring ID ('I' or 'O')
358 @param sec On return, Sector number (0-39)
359 @param str On return, Strip number (0-511)
360 @return @c true on success. */
b995fc28 361 Bool_t Hardware2Detector(UShort_t ddl, UShort_t addr, UShort_t& det,
f38b1653 362 Char_t& ring, UShort_t& sec, Short_t& str) const;
b995fc28 363#endif
f6449cc0 364
f38b1653 365 /** Map a detector index into a hardware address.
366 @param det The detector #
367 @param ring The ring ID
368 @param sec The sector #
369 @param str The strip #
370 @param sam The sample number
371 @param ddl On return, hardware DDL number
372 @param board On return, the FEC board address (local to DDL)
373 @param altro On return, the ALTRO number (local to FEC)
374 @param channel On return, the channel number (local to ALTRO)
375 @param timebin On return, the timebin number (local to ALTRO)
376 @return @c true on success, false otherwise */
377 Bool_t Detector2Hardware(UShort_t det, Char_t ring,
378 UShort_t sec, UShort_t str,
379 UShort_t sam,
b995fc28 380 UShort_t& ddl, UShort_t& board,
381 UShort_t& altro, UShort_t& channel,
f38b1653 382 UShort_t& timebin) const;
f38b1653 383 /** Map a detector index into a hardware address.
384 @param det The detector #
385 @param ring The ring ID
386 @param sec The sector #
387 @param str The strip #
388 @param sam The sample number
389 @param ddl On return, hardware DDL number
390 @param hwaddr On return, hardware address.
391 @param timebin On return, the timebin number (local to ALTRO)
392 @return @c true on success, false otherwise */
393 Bool_t Detector2Hardware(UShort_t det, Char_t ring,
394 UShort_t sec, UShort_t str,
395 UShort_t sam,
b995fc28 396 UShort_t& ddl, UShort_t& hwaddr,
f38b1653 397 UShort_t& timebin) const;
b995fc28 398#if 0
399 /** Translate detector coordinates to hardware address
400 @param det Detector # (1-3)
401 @param ring Ring ID ('I' or 'O')
402 @param sec Sector number (0-39)
403 @param str Strip number (0-511)
404 @param ddl On return, DDL number
405 @param board On return, Board address
406 @param chip On return, Chip #
407 @param channel On return, Channel #
408 @return @c true on success. */
409 Bool_t Detector2Hardware(UShort_t det, Char_t ring,
410 UShort_t sec, UShort_t str,
411 UShort_t& ddl, UShort_t& board,
412 UShort_t& chip, UShort_t& channel) const;
c2fc1258 413 /** Translate detector coordinates to hardware address
414 @param det Detector # (1-3)
415 @param ring Ring ID ('I' or 'O')
416 @param sec Sector number (0-39)
417 @param str Strip number (0-511)
418 @param ddl On return, DDL number
419 @param addr On return, Hardware address
420 @return @c true on success. */
bf000c32 421 Bool_t Detector2Hardware(UShort_t det, Char_t ring, UShort_t sec,
b995fc28 422 UShort_t str, UShort_t& ddl, UShort_t& addr) const;
423#endif
c2fc1258 424 /** Get the map that translates hardware to detector coordinates
425 @return Get the map that translates hardware to detector
426 coordinates */
57c3c593 427 AliFMDAltroMapping* GetAltroMap() const;
625d7886 428 /** Whether raw data has full common data header (8 32bit words) or
429 the older invalid format (7 32bit words with bogus entries)
430 @return false if the raw data has incomplete data header */
431 Bool_t HasCompleteHeader() const { return fHasCompleteHeader; }
432
9f662337 433 /** @} */
434
02a27b50 435 static const char* PulseGainPath() { return fgkPulseGain; }
436 static const char* PedestalPath() { return fgkPedestal; }
437 static const char* DeadPath() { return fgkDead; }
438 static const char* SampleRatePath() { return fgkSampleRate; }
439 static const char* AltroMapPath() { return fgkAltroMap; }
440 static const char* ZeroSuppressionPath() { return fgkZeroSuppression; }
441 static const char* StripRangePath() { return fgkStripRange; }
6cd5cd4d 442 static const char* GetPedestalShuttleID() {return fkPedestalShuttleID;}
443 static const char* GetGainShuttleID() {return fkGainShuttleID;}
444 static const char* GetConditionsShuttleID() {return fkConditionsShuttleID;}
497e0e62 445protected:
9f662337 446 /** CTOR */
497e0e62 447 AliFMDParameters();
02a27b50 448 /** CTOR */
449 AliFMDParameters(const AliFMDParameters& o)
b5ee4425 450 : TNamed(o),
451 fIsInit(o.fIsInit),
452 fkSiDeDxMip(o.fkSiDeDxMip),
453 fVA1MipRange(o.fVA1MipRange),
454 fAltroChannelSize(o.fAltroChannelSize),
455 fChannelsPerAltro(o.fChannelsPerAltro),
456 fPedestalFactor(o.fPedestalFactor),
cce354f6 457 fZSPre(o.fZSPre),
458 fZSPost(o.fZSPost),
459 fZSPedSubtract(o.fZSPedSubtract),
b5ee4425 460 fFixedPedestal(o.fFixedPedestal),
461 fFixedPedestalWidth(o.fFixedPedestalWidth),
462 fFixedZeroSuppression(o.fFixedZeroSuppression),
463 fFixedSampleRate(o.fFixedSampleRate),
464 fFixedThreshold(o.fFixedThreshold),
465 fFixedMinStrip(o.fFixedMinStrip),
466 fFixedMaxStrip(o.fFixedMaxStrip),
467 fFixedPulseGain(o.fFixedPulseGain),
468 fEdepMip(o.fEdepMip),
625d7886 469 fHasCompleteHeader(o.fHasCompleteHeader),
b5ee4425 470 fZeroSuppression(o.fZeroSuppression),
471 fSampleRate(o.fSampleRate),
472 fPedestal(o.fPedestal),
473 fPulseGain(o.fPulseGain),
474 fDeadMap(o.fDeadMap),
475 fAltroMap(o.fAltroMap),
476 fStripRange(o.fStripRange)
477 {}
02a27b50 478 /** Assignement operator
479 @return Reference to this */
480 AliFMDParameters& operator=(const AliFMDParameters&) { return *this; }
9f662337 481 /** DTOR */
497e0e62 482 virtual ~AliFMDParameters() {}
9f662337 483 /** Singleton instance */
497e0e62 484 static AliFMDParameters* fgInstance; // Static singleton instance
dc02d468 485 /** Get an entry from either global AliCDBManager or passed
486 AliFMDPreprocessor.
487 @param path Path to CDB object.
488 @param pp AliFMDPreprocessor
489 @param fatal If true, raise a fatal flag if we didn't get the entry.
490 @return AliCDBEntry if found */
491 AliCDBEntry* GetEntry(const char* path, AliFMDPreprocessor* pp,
492 Bool_t fatal=kTRUE) const;
9f662337 493 /** Initialize gains. Try to get them from CDB */
dc02d468 494 void InitPulseGain(AliFMDPreprocessor* pp=0);
9f662337 495 /** Initialize pedestals. Try to get them from CDB */
dc02d468 496 void InitPedestal(AliFMDPreprocessor* pp=0);
9f662337 497 /** Initialize dead map. Try to get it from CDB */
dc02d468 498 void InitDeadMap(AliFMDPreprocessor* pp=0);
9f662337 499 /** Initialize sample rates. Try to get them from CDB */
dc02d468 500 void InitSampleRate(AliFMDPreprocessor* pp=0);
9f662337 501 /** Initialize zero suppression thresholds. Try to get them from CDB */
dc02d468 502 void InitZeroSuppression(AliFMDPreprocessor* pp=0);
9f662337 503 /** Initialize hardware map. Try to get it from CDB */
dc02d468 504 void InitAltroMap(AliFMDPreprocessor* pp=0);
c2fc1258 505 /** Initialize strip range. Try to get it from CDB */
dc02d468 506 void InitStripRange(AliFMDPreprocessor* pp=0);
57c3c593 507
6cd5cd4d 508 Bool_t fIsInit; // Whether we've been initialised
57c3c593 509
6cd5cd4d 510 static const char* fgkPulseGain; // Path to PulseGain calib object
511 static const char* fgkPedestal; // Path to Pedestal calib object
512 static const char* fgkDead; // Path to Dead calib object
513 static const char* fgkSampleRate; // Path to SampleRate calib object
514 static const char* fgkAltroMap; // Path to AltroMap calib object
515 static const char* fgkZeroSuppression; // Path to ZeroSuppression cal object
516 static const char* fgkStripRange; // Path to strip range cal object
517 const Float_t fkSiDeDxMip; // MIP dE/dx in Silicon
518 UShort_t fVA1MipRange; // # MIPs the pre-amp can do
519 UShort_t fAltroChannelSize; // Largest # to store in 1 ADC ch.
520 UShort_t fChannelsPerAltro; // Number of pre-amp. chan/adc chan.
521 Float_t fPedestalFactor; // Number of pedestal widths
cce354f6 522 UShort_t fZSPre; // Number of pre-samples in ZS
523 UShort_t fZSPost; // Number of post-samples in ZS
524 Bool_t fZSPedSubtract; // Pedestal subtraction before ZS
1a1fdef7 525
6cd5cd4d 526 Float_t fFixedPedestal; // Pedestal to subtract
527 Float_t fFixedPedestalWidth; // Width of pedestal
528 UShort_t fFixedZeroSuppression; // Threshold for zero-suppression
529 UShort_t fFixedSampleRate; // Times the ALTRO samples pre-amp.
530 Float_t fFixedThreshold; // Threshold in ADC counts
531 UShort_t fFixedMinStrip; // Minimum strip read-out
532 UShort_t fFixedMaxStrip; // Maximum strip read-out
533 mutable Float_t fFixedPulseGain; //! Gain (cached)
534 mutable Float_t fEdepMip; //! Cache of energy loss for a MIP
6cd5cd4d 535 Bool_t fHasCompleteHeader; // raw data has incomplete data header
536
537 static const char* fkPedestalShuttleID; // Shuttle/preprocessor ID for pedestals
538 static const char* fkGainShuttleID; // Shuttle/preprocessor ID for gains
539 static const char* fkConditionsShuttleID; // Shuttle/preprocessor ID for conditions
8f6ee336 540
541 AliFMDCalibZeroSuppression* fZeroSuppression; // Zero suppression from CDB
542 AliFMDCalibSampleRate* fSampleRate; // Sample rate from CDB
543 AliFMDCalibPedestal* fPedestal; // Pedestals
544 AliFMDCalibGain* fPulseGain; // Pulser gain
545 AliFMDCalibDeadMap* fDeadMap; // Pulser gain
57c3c593 546 AliFMDAltroMapping* fAltroMap; // Map of hardware
c2fc1258 547 AliFMDCalibStripRange* fStripRange; // Strip range
8f6ee336 548
9a090ccd 549 ClassDef(AliFMDParameters,6) // Manager of parameters
1a1fdef7 550};
551
552#endif
553//____________________________________________________________________
554//
555// Local Variables:
556// mode: C++
557// End:
558//
559// EOF
560//
561