1 | #ifndef MARS_MCalibrationQEPix
|
---|
2 | #define MARS_MCalibrationQEPix
|
---|
3 |
|
---|
4 | #ifndef MARS_MCalibrationPix
|
---|
5 | #include "MCalibrationPix.h"
|
---|
6 | #endif
|
---|
7 |
|
---|
8 | #ifndef ROOT_TArrayF
|
---|
9 | #include "TArrayF.h"
|
---|
10 | #endif
|
---|
11 |
|
---|
12 | #ifndef ROOT_TArrayC
|
---|
13 | #include "TArrayC.h"
|
---|
14 | #endif
|
---|
15 |
|
---|
16 | #ifndef MARS_MCalibrationCam
|
---|
17 | #include "MCalibrationCam.h"
|
---|
18 | #endif
|
---|
19 |
|
---|
20 | class MCalibrationQEPix : public MCalibrationPix
|
---|
21 | {
|
---|
22 | private:
|
---|
23 |
|
---|
24 | static const Float_t gkDefaultQEGreen; //! Default QE at 520 nm (now set to: 0.192)
|
---|
25 | static const Float_t gkDefaultQEBlue; //! Default QE at 460 nm (now set to: 0.27 )
|
---|
26 | static const Float_t gkDefaultQEUV; //! Default QE at 370 nm (now set to: 0.285)
|
---|
27 | static const Float_t gkDefaultQECT1; //! Default QE at 370 nm (now set to: 0.285)
|
---|
28 | static const Float_t gkDefaultQEGreenErr; //! Uncertainty Def. QE at 520 nm (now set to: 0.05)
|
---|
29 | static const Float_t gkDefaultQEBlueErr; //! Uncertainty Def. QE at 460 nm (now set to: 0.07)
|
---|
30 | static const Float_t gkDefaultQEUVErr; //! Uncertainty Def. QE at 370 nm (now set to: 0.07)
|
---|
31 | static const Float_t gkDefaultQECT1Err; //! Uncertainty Def. QE at 370 nm (now set to: 0.07)
|
---|
32 | static const Float_t gkDefaultAverageQE; //! Default QE folded into Cascade spectrum (now set to: 0.18)
|
---|
33 | static const Float_t gkDefaultAverageQEErr; //! Uncertainty Def. QE Cascade spectrum (now set to: 0.02)
|
---|
34 |
|
---|
35 | TArrayF fQEBlindPixel; // Calibrated QEs (Blind Pixel Method)
|
---|
36 | TArrayF fQEBlindPixelVar; // Variance cal. QEs (Blind Pixel Method)
|
---|
37 | TArrayF fQECombined; // Calibrated QEs (Combined Method)
|
---|
38 | TArrayF fQECombinedVar; // Variance cal. QEs (Combined Method)
|
---|
39 | TArrayF fQEFFactor; // Calibrated QEs (F-Factor Method)
|
---|
40 | TArrayF fQEFFactorVar; // Variance cal. QEs (F-Factor Method)
|
---|
41 | TArrayF fQEPINDiode; // Calibrated QEs (PIN Diode Method)
|
---|
42 | TArrayF fQEPINDiodeVar; // Variance cal. QEs (PIN Diode Method)
|
---|
43 |
|
---|
44 | Float_t fAvNormBlindPixel; // Normalization w.r.t. default QE (Blind Pixel Method)
|
---|
45 | Float_t fAvNormBlindPixelVar; // Variance norm. w.r.t. def. QE (Blind Pixel Method)
|
---|
46 | Float_t fAvNormCombined; // Normalization w.r.t. default QE (Combined Method)
|
---|
47 | Float_t fAvNormCombinedVar; // Variance norm. w.r.t. def. QE (Combined Method)
|
---|
48 | Float_t fAvNormFFactor; // Normalization w.r.t. default QE (F-Factor Method)
|
---|
49 | Float_t fAvNormFFactorVar; // Variance norm. w.r.t. def. QE (F-Factor Method)
|
---|
50 | Float_t fAvNormPINDiode; // Normalization w.r.t. default QE (PIN Diode Method)
|
---|
51 | Float_t fAvNormPINDiodeVar; // Variance norm. w.r.t. def. QE (PIN Diode Method)
|
---|
52 |
|
---|
53 | TArrayC fValidFlags; // Bit-field for valid flags, one array entry for each color
|
---|
54 | Byte_t fAvailableFlags; // Bit-field for available flags
|
---|
55 |
|
---|
56 | enum { kBlindPixelMethodValid, kFFactorMethodValid,
|
---|
57 | kPINDiodeMethodValid, kCombinedMethodValid,
|
---|
58 | kAverageQEBlindPixelAvailable, kAverageQEFFactorAvailable,
|
---|
59 | kAverageQEPINDiodeAvailable, kAverageQECombinedAvailable };
|
---|
60 |
|
---|
61 | void AddAverageBlindPixelQEs( const MCalibrationCam::PulserColor_t col, Float_t &wav, Float_t &sumw );
|
---|
62 | void AddAverageCombinedQEs ( const MCalibrationCam::PulserColor_t col, Float_t &wav, Float_t &sumw );
|
---|
63 | void AddAverageFFactorQEs ( const MCalibrationCam::PulserColor_t col, Float_t &wav, Float_t &sumw );
|
---|
64 | void AddAveragePINDiodeQEs ( const MCalibrationCam::PulserColor_t col, Float_t &wav, Float_t &sumw );
|
---|
65 |
|
---|
66 | const Float_t GetAverageQE ( const Float_t zenith=0. ) const;
|
---|
67 | const Float_t GetAverageQERelVar( const Float_t zenith=0. ) const;
|
---|
68 |
|
---|
69 | const Float_t GetAvNormBlindPixelRelVar() const;
|
---|
70 | const Float_t GetAvNormCombinedRelVar() const;
|
---|
71 | const Float_t GetAvNormFFactorRelVar() const;
|
---|
72 | const Float_t GetAvNormPINDiodeRelVar() const;
|
---|
73 |
|
---|
74 | public:
|
---|
75 |
|
---|
76 | MCalibrationQEPix(const char *name=NULL, const char *title=NULL);
|
---|
77 | ~MCalibrationQEPix() {}
|
---|
78 |
|
---|
79 | void Clear(Option_t *o="");
|
---|
80 |
|
---|
81 | // Getters
|
---|
82 | Float_t GetDefaultQE ( const MCalibrationCam::PulserColor_t col ) const;
|
---|
83 | Float_t GetDefaultQERelVar ( const MCalibrationCam::PulserColor_t col ) const;
|
---|
84 | Float_t GetQEBlindPixel ( const MCalibrationCam::PulserColor_t col ) const;
|
---|
85 | Float_t GetQEBlindPixelErr ( const MCalibrationCam::PulserColor_t col ) const;
|
---|
86 | Float_t GetQEBlindPixelRelVar ( const MCalibrationCam::PulserColor_t col ) const;
|
---|
87 | Float_t GetQECascadesBlindPixel ( const Float_t zenith=0.) const;
|
---|
88 | Float_t GetQECascadesBlindPixelVar ( const Float_t zenith=0.) const;
|
---|
89 | Float_t GetQECascadesCombined ( const Float_t zenith=0.) const;
|
---|
90 | Float_t GetQECascadesCombinedVar ( const Float_t zenith=0.) const;
|
---|
91 | Float_t GetQECascadesFFactor ( const Float_t zenith=0.) const;
|
---|
92 | Float_t GetQECascadesFFactorVar ( const Float_t zenith=0 ) const;
|
---|
93 | Float_t GetQECascadesPINDiode ( const Float_t zenith=0.) const;
|
---|
94 | Float_t GetQECascadesPINDiodeVar ( const Float_t zenith=0.) const;
|
---|
95 | Float_t GetQECombined ( const MCalibrationCam::PulserColor_t col ) const;
|
---|
96 | Float_t GetQECombinedErr ( const MCalibrationCam::PulserColor_t col ) const;
|
---|
97 | Float_t GetQECombinedRelVar ( const MCalibrationCam::PulserColor_t col ) const;
|
---|
98 | Float_t GetQEFFactor ( const MCalibrationCam::PulserColor_t col ) const;
|
---|
99 | Float_t GetQEFFactorErr ( const MCalibrationCam::PulserColor_t col ) const;
|
---|
100 | Float_t GetQEFFactorRelVar ( const MCalibrationCam::PulserColor_t col ) const;
|
---|
101 | Float_t GetQEPINDiode ( const MCalibrationCam::PulserColor_t col ) const;
|
---|
102 | Float_t GetQEPINDiodeErr ( const MCalibrationCam::PulserColor_t col ) const;
|
---|
103 | Float_t GetQEPINDiodeRelVar ( const MCalibrationCam::PulserColor_t col ) const;
|
---|
104 |
|
---|
105 | Bool_t IsAverageQEBlindPixelAvailable () const;
|
---|
106 | Bool_t IsAverageQECombinedAvailable () const;
|
---|
107 | Bool_t IsAverageQEFFactorAvailable () const;
|
---|
108 | Bool_t IsAverageQEPINDiodeAvailable () const;
|
---|
109 | Bool_t IsBlindPixelMethodValid () const;
|
---|
110 | Bool_t IsBlindPixelMethodValid ( const MCalibrationCam::PulserColor_t col ) const;
|
---|
111 | Bool_t IsCombinedMethodValid () const;
|
---|
112 | Bool_t IsCombinedMethodValid ( const MCalibrationCam::PulserColor_t col ) const;
|
---|
113 | Bool_t IsFFactorMethodValid () const;
|
---|
114 | Bool_t IsFFactorMethodValid ( const MCalibrationCam::PulserColor_t col ) const;
|
---|
115 | Bool_t IsPINDiodeMethodValid () const;
|
---|
116 | Bool_t IsPINDiodeMethodValid ( const MCalibrationCam::PulserColor_t col ) const;
|
---|
117 |
|
---|
118 | // Setters
|
---|
119 | void SetAverageQEBlindPixelAvailable ( const Bool_t b );
|
---|
120 | void SetAverageQECombinedAvailable ( const Bool_t b );
|
---|
121 | void SetAverageQEFFactorAvailable ( const Bool_t b );
|
---|
122 | void SetAverageQEPINDiodeAvailable ( const Bool_t b );
|
---|
123 | void SetBlindPixelMethodValid ( const Bool_t b, const MCalibrationCam::PulserColor_t col);
|
---|
124 | void SetCombinedMethodValid ( const Bool_t b, const MCalibrationCam::PulserColor_t col);
|
---|
125 | void SetFFactorMethodValid ( const Bool_t b, const MCalibrationCam::PulserColor_t col);
|
---|
126 | void SetPINDiodeMethodValid ( const Bool_t b, const MCalibrationCam::PulserColor_t col);
|
---|
127 | void SetQEBlindPixel ( Float_t f, MCalibrationCam::PulserColor_t col) { fQEBlindPixel [col] = f; }
|
---|
128 | void SetQEBlindPixelVar ( Float_t f, MCalibrationCam::PulserColor_t col) { fQEBlindPixelVar[col] = f; }
|
---|
129 | void SetQECombined ( Float_t f, MCalibrationCam::PulserColor_t col) { fQECombined [col] = f; }
|
---|
130 | void SetQECombinedVar ( Float_t f, MCalibrationCam::PulserColor_t col) { fQECombinedVar [col] = f; }
|
---|
131 | void SetQEFFactor ( Float_t f, MCalibrationCam::PulserColor_t col) { fQEFFactor [col] = f; }
|
---|
132 | void SetQEFFactorVar ( Float_t f, MCalibrationCam::PulserColor_t col) { fQEFFactorVar [col] = f; }
|
---|
133 | void SetQEPINDiode ( Float_t f, MCalibrationCam::PulserColor_t col) { fQEPINDiode [col] = f; }
|
---|
134 | void SetQEPINDiodeVar ( Float_t f, MCalibrationCam::PulserColor_t col) { fQEPINDiodeVar [col] = f; }
|
---|
135 |
|
---|
136 | // Updates
|
---|
137 | Bool_t UpdateBlindPixelMethod();
|
---|
138 | Bool_t UpdateCombinedMethod ();
|
---|
139 | Bool_t UpdateFFactorMethod ();
|
---|
140 | Bool_t UpdatePINDiodeMethod ();
|
---|
141 |
|
---|
142 | ClassDef(MCalibrationQEPix, 1) // Container Quantum Efficieny Calibration Results Pixel
|
---|
143 | };
|
---|
144 |
|
---|
145 | #endif
|
---|
146 |
|
---|