| 1 | #ifndef MARS_MJCalibrateSignal
|
|---|
| 2 | #define MARS_MJCalibrateSignal
|
|---|
| 3 |
|
|---|
| 4 | #ifndef MARS_MJob
|
|---|
| 5 | #include "MJob.h"
|
|---|
| 6 | #endif
|
|---|
| 7 |
|
|---|
| 8 | class TEnv;
|
|---|
| 9 | class TList;
|
|---|
| 10 |
|
|---|
| 11 | class MTask;
|
|---|
| 12 | class MParList;
|
|---|
| 13 | class MGeomCam;
|
|---|
| 14 | class MSequence;
|
|---|
| 15 | class MExtractor;
|
|---|
| 16 | class MPedestalCam;
|
|---|
| 17 | class MBadPixelsCam;
|
|---|
| 18 |
|
|---|
| 19 | class MJCalibrateSignal : public MJob
|
|---|
| 20 | {
|
|---|
| 21 | private:
|
|---|
| 22 |
|
|---|
| 23 | enum DataType_t {
|
|---|
| 24 | kIsRawData,
|
|---|
| 25 | kIsRootData,
|
|---|
| 26 | kIsMC
|
|---|
| 27 | };
|
|---|
| 28 |
|
|---|
| 29 | Byte_t fDataFlag; // Bit-field to store the data type
|
|---|
| 30 | Bool_t fIsInterlaced; // Distinguish interlaced from other calibration
|
|---|
| 31 | Bool_t fIsRelTimesUpdate; // Choose to update relative times from interlaced
|
|---|
| 32 | Bool_t fIsHiLoCalibration; // Choose to calibrate the high-gain vs. low-gains
|
|---|
| 33 |
|
|---|
| 34 | Bool_t CheckEnvLocal();
|
|---|
| 35 |
|
|---|
| 36 | void DisplayResult(MParList &plist);
|
|---|
| 37 |
|
|---|
| 38 | Bool_t WriteResult(TObjArray &cont);
|
|---|
| 39 | Bool_t ReadCalibration(TObjArray &o, MBadPixelsCam &bpix,
|
|---|
| 40 | MExtractor* &ext1, MExtractor* &ext2, TString &geom) const;
|
|---|
| 41 |
|
|---|
| 42 | Bool_t IsRawData() const { return TESTBIT(fDataFlag,kIsRawData); }
|
|---|
| 43 | Bool_t IsRootData() const { return TESTBIT(fDataFlag,kIsRootData); }
|
|---|
| 44 | Bool_t IsMC() const { return TESTBIT(fDataFlag,kIsMC); }
|
|---|
| 45 |
|
|---|
| 46 | void SetRawData ( const Bool_t b=kTRUE ) { b ? SETBIT(fDataFlag,kIsRawData) : CLRBIT(fDataFlag,kIsRawData); }
|
|---|
| 47 | void SetRootData( const Bool_t b=kTRUE ) { b ? SETBIT(fDataFlag,kIsRootData) : CLRBIT(fDataFlag,kIsRootData); }
|
|---|
| 48 | void SetMC ( const Bool_t b=kTRUE ) { b ? SETBIT(fDataFlag,kIsMC) : CLRBIT(fDataFlag,kIsMC); }
|
|---|
| 49 |
|
|---|
| 50 | public:
|
|---|
| 51 | MJCalibrateSignal(const char *name=NULL, const char *title=NULL);
|
|---|
| 52 |
|
|---|
| 53 | Bool_t ProcessFile(MPedestalCam &camab, MPedestalCam &cam1, MPedestalCam &cam2);
|
|---|
| 54 |
|
|---|
| 55 | void SetInterlaced ( const Bool_t b=kTRUE ) { fIsInterlaced = b; }
|
|---|
| 56 | void SetRelTimesUpdate ( const Bool_t b=kTRUE ) { fIsRelTimesUpdate = b; }
|
|---|
| 57 | void SetHiLoCalibration( const Bool_t b=kTRUE ) { fIsHiLoCalibration = b; }
|
|---|
| 58 |
|
|---|
| 59 | ClassDef(MJCalibrateSignal, 0) // Tool to create a pedestal file (MPedestalCam)
|
|---|
| 60 | };
|
|---|
| 61 |
|
|---|
| 62 | #endif
|
|---|