]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - FMD/AliFMDCalibFaker.h
Adding TOF calib task for calibration of problematic channels
[u/mrichter/AliRoot.git] / FMD / AliFMDCalibFaker.h
... / ...
CommitLineData
1#ifndef ALIFMDCALIBFAKER_H
2#define ALIFMDCALIBFAKER_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 */
10/** @file AliFMDCalibFaker.h
11 @author Christian Holm Christensen <cholm@nbi.dk>
12 @date Sun Mar 26 18:29:36 2006
13 @brief Make fake calibration data
14 @ingroup FMD_util
15*/
16//____________________________________________________________________
17//
18// Class to make fake calibration parameters
19// Used for populating inital data base
20// Utility class
21//
22#ifndef ROOT_TTask
23# include <TTask.h>
24#endif
25class AliFMDParameters;
26#include "AliFMDCalibFwd.h"
27
28/** @class AliFMDCalibFaker
29 @brief Class to make fake calibration parameters.
30 @code
31 AliFMDCalibFaker f(0);
32 f.AddCalib(kPedestal);
33 f.AddCalib(kGain);
34 f.Exec();
35 @endcode
36 @ingroup FMD_util
37 */
38class AliFMDCalibFaker : public TTask
39{
40public:
41 /** What to make */
42 enum EWhat {
43 /** Zero suppressio threshold */
44 kZeroSuppression = 1,
45 /** Sample rate */
46 kSampleRate,
47 /** Pedestals */
48 kPedestal,
49 /** Gain */
50 kPulseGain,
51 /** Dead map */
52 kDeadMap,
53 /** Hardware map */
54 kAltroMap,
55 /** Strip range */
56 kStripRange
57 };
58 enum {
59 /** All parameters */
60 kAll = (1<<kZeroSuppression|1<<kSampleRate|1<<kPedestal|
61 1<<kPulseGain|1<<kDeadMap|1<<kAltroMap|1<<kStripRange)
62 };
63 /** Constructor
64 @param mask Bit mask of what to make
65 @param loc Where to store the results */
66 AliFMDCalibFaker(Int_t mask=kAll, const char* loc="local://cdb");
67 /** Destructor */
68 virtual ~AliFMDCalibFaker() {}
69 /** Add a parameter to output
70 @param w Bit of parameter */
71 void AddCalib(EWhat w) { SETBIT(fMask, w); }
72 /** Remove a parameter from output
73 @param w Bit of parameter */
74 void RemoveCalib(EWhat w) { SETBIT(fMask, w); }
75 /** Set the bit mask of what to make
76 @param mask bit mask */
77 void SetCalib(Int_t mask) { fMask = mask; }
78 /** Set seed for random gain. The gain is distributed flatly from
79 90 to 110 percent of the seed.
80 @param g Seed for gain */
81 void SetGainSeed(Float_t g) { fGain = g; }
82 /** Set the threshold factor. The actual threshold is the gain seed
83 times the factor
84 @param t Factor */
85 void SetThresholdFactor(Float_t t) { fThresholdFactor = t; }
86 /** Set the limits for the random pedestal. The pedestal values are
87 randomly distributed in the range
88 @param min Minimum of range
89 @param max Maximum of range */
90 void SetPedestalRange(Float_t min, Float_t max)
91 {
92 fPedestalMin = min;
93 fPedestalMax = (max < min ? min : max);
94 }
95 /** Set run validty range
96 @param min Minimum run number
97 @param max Maximum run number */
98 void SetRunRange(Int_t min, Int_t max)
99 {
100 fRunMin = min;
101 fRunMax = (max < min ? min : max);
102 }
103 /** Set the likelyness that a strip is dead.
104 @param chance Chance of dead channel. */
105 void SetDeadChance(Float_t chance) { fDeadChance = chance; }
106 /** Set Sample rate
107 @param rate Rate */
108 void SetRate(UShort_t rate) { fRate = rate; }
109 /** Set the zero suppression threshold
110 @param t Threshold (in ADC counts) */
111 void SetZeroThreshold(UShort_t t) { fZeroThreshold = t; }
112 /** Set strip validty range
113 @param min Minimum strip number
114 @param max Maximum strip number */
115 void SetStripRange(UShort_t min, UShort_t max)
116 {
117 fStripMin = min;
118 fStripMax = (max < min ? min : max);
119 }
120 /** Set the default output storage. It must be a CDB URL.
121 @param url CDB URL. */
122 void SetDefaultStorage(const char* url) { SetTitle(url); }
123 /** Make the fake calibration parameters
124 @param option Not used */
125 void Exec(Option_t* option="");
126protected:
127 /** Make zero suppression parameters
128 @return Map of zero suppression */
129 virtual AliFMDCalibZeroSuppression* MakeZeroSuppression() const;
130 /** Make sample rate parameters
131 @return Map of sample rate */
132 virtual AliFMDCalibSampleRate* MakeSampleRate() const;
133 /** Make pedestal parameters
134 @return Map of pedestal */
135 virtual AliFMDCalibPedestal* MakePedestal() const;
136 /** Make gain parameters
137 @return Map of gain */
138 virtual AliFMDCalibGain* MakePulseGain() const;
139 /** Make dead channel parameters
140 @return Map of dead channel */
141 virtual AliFMDCalibDeadMap* MakeDeadMap() const;
142 /** Make a hardware map
143 @return hardware map */
144 virtual AliFMDAltroMapping* MakeAltroMap() const;
145 /** Make a strip range
146 @return strip range map */
147 virtual AliFMDCalibStripRange* MakeStripRange() const;
148 virtual Float_t MakeNoise(Char_t ring, UShort_t str) const;
149
150 Long_t fMask; // What to write
151 Float_t fGain; // Gain
152 Float_t fThresholdFactor; // Threshold factor
153 Float_t fThreshold; // Threshold
154 Float_t fPedestalMin; // Min pedestal
155 Float_t fPedestalMax; // Max pedestal
156 Float_t fDeadChance; // Chance of dead channel
157 UShort_t fRate; // Sample rate
158 UShort_t fZeroThreshold; // Zero suppression threshold
159 Int_t fRunMin; // Min run number
160 Int_t fRunMax; // Max run number
161 UShort_t fStripMin; // Min strip read out
162 UShort_t fStripMax; // Max strip read out
163
164 ClassDef(AliFMDCalibFaker,0)
165};
166
167#endif
168//____________________________________________________________________
169//
170// Local Variables:
171// mode: C++
172// End:
173//
174// EOF
175//
176