source: trunk/MagicSoft/Mars/mcalib/MCalibrationChargeCalc.h@ 3991

Last change on this file since 3991 was 3991, checked in by gaug, 21 years ago
*** empty log message ***
File size: 5.9 KB
Line 
1#ifndef MARS_MCalibrationChargeCalc
2#define MARS_MCalibrationChargeCalc
3
4/////////////////////////////////////////////////////////////////////////////
5// //
6// MCalibrationChargeCalc //
7// //
8// Integrates the time slices of the all pixels of a calibration event //
9// and substract the pedestal value //
10// //
11/////////////////////////////////////////////////////////////////////////////
12
13#ifndef MARS_MTask
14#include "MTask.h"
15#endif
16
17#ifndef MARS_MBadPixelsPix
18#include "MBadPixelsPix.h"
19#endif
20
21#ifndef MARS_MCalibrationCam
22#include "MCalibrationCam.h"
23#endif
24
25class MRawEvtData;
26class MRawRunHeader;
27class MPedestalCam;
28class MPedestalPix;
29class MCalibrationChargePINDiode;
30class MCalibrationChargeBlindPix;
31class MCalibrationChargePix;
32class MCalibrationChargeCam;
33class MCalibrationQECam;
34class MGeomCam;
35class MExtractedSignalCam;
36class MExtractedSignalBlindPixel;
37class MExtractedSignalPINDiode;
38class MBadPixelsCam;
39class MBadPixelsPix;
40class MTime;
41class MCalibrationChargeCalc : public MTask
42{
43private:
44
45 static const Float_t fgChargeLimit; //! Default for fChargeLimit (now set to: 3.)
46 static const Float_t fgChargeErrLimit; //! Default for fChargeErrLimit (now set to: 0.)
47 static const Float_t fgChargeRelErrLimit; //! Default for fChargeRelErrLimit (now set to: 1.)
48 static const Float_t fgLambdaCheckLimit; //! Default for fLambdaCheckLimit (now set to: 0.2)
49 static const Float_t fgLambdaErrLimit; //! Default for fLabmdaErrLimit (now set to: 0.2)
50 static const Float_t fgPheErrLimit; //! Default for fPheErrLimit (now set to: 4.)
51 static const Float_t fgFFactorErrLimit; //! Default for fFFactorErrLimit (now set to: 3.)
52
53 // Variables
54 Float_t fChargeLimit; // Limit acceptance mean charge (in units of PedRMS)
55 Float_t fChargeErrLimit; // Limit acceptance charge error (in abs. numbers)
56 Float_t fChargeRelErrLimit; // Limit acceptance rel. error mean (in abs. numbers)
57 Byte_t fFlags; // Bit-field for the flags
58 Float_t fLambdaCheckLimit; // Limit rel. diff. lambda and lambdacheck in Blind Pixel
59 Float_t fLambdaErrLimit; // Limit acceptance lambda error in Blind Pixel
60 Float_t fNumHiGainSamples; // Number High-Gain FADC slices used by extractor
61 Float_t fNumLoGainSamples; // Number Low -Gain FADC slices used by extractor
62 Float_t fPheErrLimit; // Limit acceptance nr. phe's w.r.t. area idx mean (in sigmas)
63 Float_t fFFactorErrLimit; // Limit acceptance F-Factor w.r.t. area idx mean
64 Float_t fSqrtHiGainSamples; // Square root nr. High-Gain FADC slices used by extractor
65 Float_t fSqrtLoGainSamples; // Square root nr. Low -Gain FADC slices used by extractor
66 MCalibrationCam::PulserColor_t fPulserColor; // Calibration LEDs colour
67
68 // Pointers
69 MBadPixelsCam *fBadPixels; // Bad Pixels
70 MCalibrationChargeCam *fCam; // Calibrated Charges of all pixels
71 MCalibrationChargeBlindPix *fBlindPixel; // Calibrated Charges of the Blind Pixel
72 MCalibrationChargePINDiode *fPINDiode; // Calibrated Charges of the PIN Diode
73 MCalibrationQECam *fQECam; // Calibrated Quantum Efficiencies of all pixels
74 MGeomCam *fGeom; //! Camera geometry
75 MPedestalCam *fPedestals; //! Pedestals all pixels (calculated previously from ped.file)
76 MTime *fEvtTime; //! Time of the event
77
78 // enums
79 enum { kHiLoGainCalibration };
80
81 // functions
82 void FinalizePedestals ( const MPedestalPix &ped, MCalibrationChargePix &cal, const Int_t aidx );
83 Bool_t FinalizeCharges ( MCalibrationChargePix &cal, MBadPixelsPix &bad );
84 Bool_t FinalizePINDiode ();
85 Bool_t FinalizeBlindPixel ();
86 Bool_t FinalizeFFactorMethod ();
87 void FinalizeBadPixels ();
88 void FinalizeFFactorQECam ();
89 void FinalizeBlindPixelQECam();
90 void FinalizePINDiodeQECam ();
91 void FinalizeUnsuitablePixels();
92
93 void PrintUncalibrated( MBadPixelsPix::UncalibratedType_t typ, const char *text) const;
94
95 Int_t PreProcess (MParList *pList);
96 Bool_t ReInit (MParList *pList);
97 Int_t Process ();
98 Int_t PostProcess();
99
100public:
101
102 MCalibrationChargeCalc(const char *name=NULL, const char *title=NULL);
103
104 void Clear(const Option_t *o="");
105
106 void SetChargeLimit ( const Float_t f=fgChargeLimit ) { fChargeLimit = f; }
107 void SetChargeErrLimit ( const Float_t f=fgChargeErrLimit ) { fChargeErrLimit = f; }
108 void SetChargeRelErrLimit ( const Float_t f=fgChargeRelErrLimit ) { fChargeRelErrLimit = f; }
109 void SetFFactorErrLimit ( const Float_t f=fgFFactorErrLimit ) { fFFactorErrLimit = f; }
110 void SetLambdaErrLimit ( const Float_t f=fgLambdaErrLimit ) { fLambdaErrLimit = f; }
111 void SetLambdaCheckLimit ( const Float_t f=fgLambdaCheckLimit ) { fLambdaCheckLimit = f; }
112 void SetPheErrLimit ( const Float_t f=fgPheErrLimit ) { fPheErrLimit = f; }
113 void SetPulserColor ( const MCalibrationCam::PulserColor_t col ) { fPulserColor = col; }
114
115 void SkipHiLoGainCalibration ( const Bool_t b=kTRUE )
116 { b ? CLRBIT(fFlags, kHiLoGainCalibration) : SETBIT(fFlags, kHiLoGainCalibration); }
117
118 ClassDef(MCalibrationChargeCalc, 1) // Task calculating Calibration Containers and Quantum Efficiencies
119};
120
121#endif
Note: See TracBrowser for help on using the repository browser.