source: trunk/MagicSoft/Mars/mjobs/MJCalibration.h@ 4179

Last change on this file since 4179 was 4164, checked in by gaug, 21 years ago
*** empty log message ***
File size: 3.9 KB
Line 
1#ifndef MARS_MJCalibration
2#define MARS_MJCalibration
3
4#ifndef MARS_MCalibrationChargeCam
5#include "MCalibrationChargeCam.h"
6#endif
7#ifndef MARS_MCalibrationRelTimeCam
8#include "MCalibrationRelTimeCam.h"
9#endif
10#ifndef MARS_MCalibrationQECam
11#include "MCalibrationQECam.h"
12#endif
13#ifndef MARS_MBadPixelsCam
14#include "MBadPixelsCam.h"
15#endif
16#ifndef MARS_MGCamDisplays
17#include "MGCamDisplays.h"
18#endif
19
20class MRunIter;
21class MParList;
22class MPedestalCam;
23class MExtractor;
24class MExtractTime;
25class MJCalibration : public MParContainer, public MGCamDisplays
26{
27private:
28
29 static const Int_t gkIFAEBoxInaugurationRun; // Run number of first IFAE box calibration
30
31 TString fOutputPath; // Path to the output files
32
33 MRunIter *fRuns; // Calibration files
34 MExtractor *fExtractor; // Signal extractor
35 MExtractTime *fTimeExtractor; // Arrival Time extractor
36
37 MBadPixelsCam fBadPixels; // Bad Pixels cam, can be set from previous runs
38 MCalibrationChargeCam fCalibrationCam; // Calibration conversion factors FADC2Phe
39 MCalibrationQECam fQECam; // Quantum efficiency, can be set from previous runs
40 MCalibrationRelTimeCam fRelTimeCam; // Calibration constants rel. times
41
42 MCalibrationCam::PulserColor_t fColor; // Colour of the pulsed LEDs
43
44 enum Display_t { kFullDisplay, kDataCheckDisplay, kNormalDisplay }; // Possible Display types
45
46 Display_t fDisplayType; // Chosen Display type
47
48 enum Device_t { kUseBlindPixel, kUsePINDiode }; // Possible devices for calibration
49
50 Byte_t fDevices; // Bit-field for used devices for calibration
51
52 Bool_t fRelTimes; // Flag if relative times have to be calibrated
53 Bool_t fDataCheck; // Flag if the data check is run on raw data
54
55 void DisplayResult(MParList &plist);
56 Bool_t WriteResult();
57 Bool_t FindColor();
58
59public:
60
61 MJCalibration(const char *name=NULL, const char *title=NULL);
62 ~MJCalibration() {}
63
64 const char* GetOutputFile() const;
65
66 MCalibrationChargeCam &GetCalibrationCam() { return fCalibrationCam; }
67 MCalibrationRelTimeCam &GetRelTimeCam() { return fRelTimeCam; }
68 MCalibrationQECam &GetQECam() { return fQECam; }
69 MBadPixelsCam &GetBadPixels() { return fBadPixels; }
70
71 Bool_t IsUseBlindPixel() const;
72 Bool_t IsUsePINDiode() const;
73
74 void SetBadPixels(const MBadPixelsCam &bad) { bad.Copy(fBadPixels); }
75 void SetExtractor(MExtractor* ext) { fExtractor = ext; }
76 void SetTimeExtractor(MExtractTime* ext) { fTimeExtractor = ext; }
77 void SetQECam (const MCalibrationQECam &qe) { qe.Copy(fQECam); }
78 void SetColor (const MCalibrationCam::PulserColor_t color) { fColor = color; }
79
80 void SetInput(MRunIter *iter) { fRuns=iter; }
81 void SetOutputPath(const char *path=".");
82
83 // Displays
84 void SetFullDisplay() { fDisplayType = kFullDisplay; }
85 void SetDataCheckDisplay() { fDisplayType = kDataCheckDisplay; }
86 void SetNormalDisplay() { fDisplayType = kNormalDisplay; }
87
88 // Rel. Time
89 void SetRelTimeCalibration(const Bool_t b=kTRUE) { fRelTimes = b; }
90
91 // Data Check
92 void SetDataCheck (const Bool_t b=kTRUE) { fDataCheck = b; SetDataCheckDisplay(); }
93
94 // Devices
95 void SetUseBlindPixel( const Bool_t b=kTRUE );
96 void SetUsePINDiode ( const Bool_t b=kTRUE );
97
98 Bool_t ReadCalibrationCam();
99 Bool_t ProcessFile( MPedestalCam &pedcam );
100 Bool_t Process ( MPedestalCam &pedcam );
101
102 ClassDef(MJCalibration, 0) // Tool to run a calibration per pulser colour and intensity
103};
104
105#endif
Note: See TracBrowser for help on using the repository browser.