00001 #ifndef ALIFMDCALIBFAKER_H
00002 #define ALIFMDCALIBFAKER_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef ROOT_TTask
00016 # include <TTask.h>
00017 #endif
00018 #include "AliFMDParameters.h"
00019
00030 class AliFMDCalibFaker : public TTask
00031 {
00032 public:
00034 enum EWhat {
00036 kZeroSuppression = 1,
00038 kSampleRate,
00040 kPedestal,
00042 kPulseGain,
00044 kDeadMap,
00046 kAltroMap
00047 };
00048 enum {
00050 kAll = (1<<kZeroSuppression|1<<kSampleRate|1<<kPedestal|
00051 1<<kPulseGain|1<<kDeadMap|1<<kAltroMap)
00052 };
00056 AliFMDCalibFaker(Int_t mask=kAll, const char* loc="local://cdb");
00058 virtual ~AliFMDCalibFaker() {}
00061 void AddCalib(EWhat w) { SETBIT(fMask, w); }
00064 void RemoveCalib(EWhat w) { SETBIT(fMask, w); }
00067 void SetCalib(Int_t mask) { fMask = mask; }
00071 void SetGainSeed(Float_t g) { fGain = g; }
00075 void SetThresholdFactor(Float_t t) { fThresholdFactor = t; }
00080 void SetPedestalRange(Float_t min, Float_t max)
00081 {
00082 fPedestalMin = min;
00083 fPedestalMax = (max < min ? min : max);
00084 }
00088 void SetRunRange(Int_t min, Int_t max)
00089 {
00090 fRunMin = min;
00091 fRunMax = (max < min ? min : max);
00092 }
00095 void SetDeadChance(Float_t chance) { fDeadChance = chance; }
00098 void SetRate(UShort_t rate) { fRate = rate; }
00101 void SetZeroThreshold(UShort_t t) { fZeroThreshold = t; }
00104 void SetDefaultStorage(const char* url) { SetTitle(url); }
00107 void Exec(Option_t* option="");
00108 protected:
00111 virtual AliFMDCalibZeroSuppression* MakeZeroSuppression();
00114 virtual AliFMDCalibSampleRate* MakeSampleRate();
00117 virtual AliFMDCalibPedestal* MakePedestal();
00120 virtual AliFMDCalibGain* MakePulseGain();
00123 virtual AliFMDCalibDeadMap* MakeDeadMap();
00126 virtual AliFMDAltroMapping* MakeAltroMap();
00127
00128 Long_t fMask;
00129 Float_t fGain;
00130 Float_t fThresholdFactor;
00131 Float_t fThreshold;
00132 Float_t fPedestalMin;
00133 Float_t fPedestalMax;
00134 Float_t fDeadChance;
00135 UShort_t fRate;
00136 UShort_t fZeroThreshold;
00137 Int_t fRunMin;
00138 Int_t fRunMax;
00139
00140 ClassDef(AliFMDCalibFaker,0)
00141 };
00142
00143 #endif
00144
00145
00146
00147
00148
00149
00150
00151
00152