source: trunk/MagicSoft/Mars/mcalib/MCalibrateData.h@ 4595

Last change on this file since 4595 was 4595, checked in by gaug, 20 years ago
*** empty log message ***
File size: 4.7 KB
Line 
1#ifndef MARS_MCalibrateData
2#define MARS_MCalibrateData
3
4/////////////////////////////////////////////////////////////////////////////
5// //
6// MCalibrateData //
7// //
8// Integrates the desired ADC time slices of one pixel and apply //
9// calibration constants //
10// //
11// Differences between MCalibrateData and MCalibrate : //
12// in MCalibrateData //
13// - in ReInit the MPedPhot container is filled using //
14// - the pedstals/slice from MPedestalCam //
15// - the number of used FADC slices from MExtractedSignalCam //
16// - the photon/ADC conversion factor from MCalibrationCam //
17// //
18/////////////////////////////////////////////////////////////////////////////
19#ifndef MARS_MTask
20#include "MTask.h"
21#endif
22
23class MGeomCam;
24class MBadPixelsCam;
25class MPedestalCam;
26class MCalibrationChargeCam;
27class MCalibrationQECam;
28class MExtractedSignalCam;
29
30class MPedPhotCam;
31class MCerPhotEvt;
32
33class MCalibrateData : public MTask
34{
35private:
36
37 MGeomCam *fGeomCam; //! Camera geometry container
38 MPedestalCam *fPedestal; //! Pedestals/slice [ADC counts]
39 MPedestalCam *fPedestalFromData; //! Pedestals/slice [ADC counts]
40 MBadPixelsCam *fBadPixels; //! Bad Pixels information
41 MCalibrationChargeCam *fCalibrations; //! Calibration constants
42 MCalibrationQECam *fQEs; //! Quantum efficiencies
43 MExtractedSignalCam *fSignals; //! Integrated charge in FADCs counts
44
45 MPedPhotCam *fPedPhot; // Pedestals/(used slices) [photons]
46 MPedPhotCam *fPedPhotFromData; // Pedestals/(used slices) [photons]
47 MCerPhotEvt *fCerPhotEvt; // Cerenkov Photon Event used for calculation
48
49 UShort_t fCalibrationMode;
50 Float_t fConversionHiLo;
51 Byte_t fPedestalFlag; // Flags defining to calibrate the pedestal each event or each run
52
53 TString fNamePedADCRunContainer; // name of fPedestal
54 TString fNamePedADCEventContainer; // name of fPedestalFromData
55 TString fNamePedPhotRunContainer; // name of fPedPhot
56 TString fNamePedPhotEventContainer; // name of fPedPhotFromData
57
58 Float_t fNumUsedHiGainFADCSlices;
59 Float_t fNumUsedLoGainFADCSlices;
60
61 Bool_t CalibratePedestal ( MPedestalCam *, MPedPhotCam * );
62
63 Bool_t GetConversionFactor(UInt_t,
64 Float_t &, Float_t &, Float_t &,
65 Float_t &, Float_t &);
66
67 Int_t PreProcess( MParList *pList );
68 Bool_t ReInit ( MParList *pList );
69 Int_t Process ( );
70
71public:
72
73 enum CalibrationMode_t { kNone=0,kFlatCharge=1,
74 kBlindPixel,kFfactor,kPinDiode,kCombined, kDummy };
75
76 static const CalibrationMode_t kDefault = kFfactor;
77
78 enum PedestalType_t {
79 kNo = BIT(0),
80 kRun = BIT(1),
81 kEvent = BIT(2)
82 };
83
84 MCalibrateData( CalibrationMode_t calmode=kDefault,
85 const char *name=NULL, const char *title=NULL);
86
87 void DisablePedestalType( PedestalType_t i ) { fPedestalFlag &= ~i; }
88 void EnablePedestalType ( PedestalType_t i ) { fPedestalFlag |= i; }
89 void SetPedestalType ( PedestalType_t i=kRun ) { fPedestalFlag = i; }
90 Bool_t TestFlag ( PedestalType_t i ) const { return fPedestalFlag & i; }
91
92 void SetCalibrationMode ( CalibrationMode_t calmode=kDefault ) { fCalibrationMode=calmode; }
93 void SetConversionHiLo ( Float_t conv ) { fConversionHiLo = conv; }
94
95 void SetNamePedADCRunContainer ( const char *name="MPedestalCam" ) {
96 fNamePedADCRunContainer = name; }
97 void SetNamePedADCEventContainer ( const char *name="MPedestalCamFromData" ) {
98 fNamePedADCEventContainer = name; }
99 void SetNamePedPhotRunContainer ( const char *name="MPedPhotCam" ) {
100 fNamePedPhotRunContainer = name; }
101 void SetNamePedPhotEventContainer( const char *name="MPedPhotCamFromData") {
102 fNamePedPhotEventContainer = name; }
103
104 ClassDef(MCalibrateData, 0) // Task to calibrate FADC counts into Cherenkov photons
105};
106
107#endif /* MCalibrateData */
108
109
110
111
112
113
Note: See TracBrowser for help on using the repository browser.