source: trunk/MagicSoft/Mars/mcalib/MCalibrationQEPix.h@ 4223

Last change on this file since 4223 was 4223, checked in by gaug, 20 years ago
*** empty log message ***
File size: 10.6 KB
Line 
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
20class MCalibrationQEPix : public MCalibrationPix
21{
22private:
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 gkPMTCollectionEff; //! Default Collection efficiency of the PMTs
33 static const Float_t gkLightGuidesEff; //! Default overall Light guides efficiency
34 static const Float_t gkPMTCollectionEffErr; //! Uncertainty Def. Collection efficiency of the PMTs (0.01)
35 static const Float_t gkLightGuidesEffErr; //! Uncertainty Def.overall Light guides efficiency (0.03)
36
37 TArrayF fQEBlindPixel; // Calibrated QEs (Blind Pixel Method)
38 TArrayF fQEBlindPixelVar; // Variance cal. QEs (Blind Pixel Method)
39 TArrayF fQECombined; // Calibrated QEs (Combined Method)
40 TArrayF fQECombinedVar; // Variance cal. QEs (Combined Method)
41 TArrayF fQEFFactor; // Calibrated QEs (F-Factor Method)
42 TArrayF fQEFFactorVar; // Variance cal. QEs (F-Factor Method)
43 TArrayF fQEPINDiode; // Calibrated QEs (PIN Diode Method)
44 TArrayF fQEPINDiodeVar; // Variance cal. QEs (PIN Diode Method)
45
46 Float_t fAvNormBlindPixel; // Normalization w.r.t. default QE (Blind Pixel Method)
47 Float_t fAvNormBlindPixelVar; // Variance norm. w.r.t. def. QE (Blind Pixel Method)
48 Float_t fAvNormCombined; // Normalization w.r.t. default QE (Combined Method)
49 Float_t fAvNormCombinedVar; // Variance norm. w.r.t. def. QE (Combined Method)
50 Float_t fAvNormFFactor; // Normalization w.r.t. default QE (F-Factor Method)
51 Float_t fAvNormFFactorVar; // Variance norm. w.r.t. def. QE (F-Factor Method)
52 Float_t fAvNormPINDiode; // Normalization w.r.t. default QE (PIN Diode Method)
53 Float_t fAvNormPINDiodeVar; // Variance norm. w.r.t. def. QE (PIN Diode Method)
54 Float_t fAverageQE; // Average QE for Cascade spectrum (default 0.18)
55
56 TArrayC fValidFlags; // Bit-field for valid flags, one array entry for each color
57 Byte_t fAvailableFlags; // Bit-field for available flags
58
59 enum { kBlindPixelMethodValid, kFFactorMethodValid,
60 kPINDiodeMethodValid, kCombinedMethodValid,
61 kAverageQEBlindPixelAvailable, kAverageQEFFactorAvailable,
62 kAverageQEPINDiodeAvailable, kAverageQECombinedAvailable };
63
64 void AddAverageBlindPixelQEs( const MCalibrationCam::PulserColor_t col, Float_t &wav, Float_t &sumw );
65 void AddAverageCombinedQEs ( const MCalibrationCam::PulserColor_t col, Float_t &wav, Float_t &sumw );
66 void AddAverageFFactorQEs ( const MCalibrationCam::PulserColor_t col, Float_t &wav, Float_t &sumw );
67 void AddAveragePINDiodeQEs ( const MCalibrationCam::PulserColor_t col, Float_t &wav, Float_t &sumw );
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
74public:
75
76 static const Float_t gkDefaultAverageQE; //! Default QE folded into Cascade spectrum (now set to: 0.18)
77 static const Float_t gkDefaultAverageQEErr; //! Uncertainty Def. QE Cascade spectrum (now set to: 0.02)
78
79 MCalibrationQEPix(const char *name=NULL, const char *title=NULL);
80 ~MCalibrationQEPix() {}
81
82 void Clear(Option_t *o="");
83
84 // Getters
85
86 const Float_t GetAverageQE ( const Float_t zenith=0. ) const;
87 const Float_t GetAverageQERelVar( const Float_t zenith=0. ) const;
88
89 Float_t GetDefaultQE ( const MCalibrationCam::PulserColor_t col ) const;
90 Float_t GetDefaultQERelVar ( const MCalibrationCam::PulserColor_t col ) const;
91 Float_t GetQEBlindPixel ( const MCalibrationCam::PulserColor_t col ) const;
92 Float_t GetQEBlindPixelErr ( const MCalibrationCam::PulserColor_t col ) const;
93 Float_t GetQEBlindPixelRelVar ( const MCalibrationCam::PulserColor_t col ) const;
94 Float_t GetQECascadesBlindPixel ( const Float_t zenith=0.) const;
95 Float_t GetQECascadesBlindPixelErr ( const Float_t zenith=0.) const;
96 Float_t GetQECascadesBlindPixelVar ( const Float_t zenith=0.) const;
97 Float_t GetQECascadesCombined ( const Float_t zenith=0.) const;
98 Float_t GetQECascadesCombinedErr ( const Float_t zenith=0.) const;
99 Float_t GetQECascadesCombinedVar ( const Float_t zenith=0.) const;
100 Float_t GetQECascadesFFactor ( const Float_t zenith=0.) const;
101 Float_t GetQECascadesFFactorErr ( const Float_t zenith=0 ) const;
102 Float_t GetQECascadesFFactorVar ( const Float_t zenith=0 ) const;
103 Float_t GetQECascadesPINDiode ( const Float_t zenith=0.) const;
104 Float_t GetQECascadesPINDiodeErr ( const Float_t zenith=0.) const;
105 Float_t GetQECascadesPINDiodeVar ( const Float_t zenith=0.) const;
106 Float_t GetQECombined ( const MCalibrationCam::PulserColor_t col ) const;
107 Float_t GetQECombinedErr ( const MCalibrationCam::PulserColor_t col ) const;
108 Float_t GetQECombinedRelVar ( const MCalibrationCam::PulserColor_t col ) const;
109 Float_t GetQEFFactor ( const MCalibrationCam::PulserColor_t col ) const;
110 Float_t GetQEFFactorErr ( const MCalibrationCam::PulserColor_t col ) const;
111 Float_t GetQEFFactorRelVar ( const MCalibrationCam::PulserColor_t col ) const;
112 Float_t GetQEPINDiode ( const MCalibrationCam::PulserColor_t col ) const;
113 Float_t GetQEPINDiodeErr ( const MCalibrationCam::PulserColor_t col ) const;
114 Float_t GetQEPINDiodeRelVar ( const MCalibrationCam::PulserColor_t col ) const;
115
116 Bool_t IsAverageQEBlindPixelAvailable () const;
117 Bool_t IsAverageQECombinedAvailable () const;
118 Bool_t IsAverageQEFFactorAvailable () const;
119 Bool_t IsAverageQEPINDiodeAvailable () const;
120 Bool_t IsBlindPixelMethodValid () const;
121 Bool_t IsBlindPixelMethodValid ( const MCalibrationCam::PulserColor_t col ) const;
122 Bool_t IsCombinedMethodValid () const;
123 Bool_t IsCombinedMethodValid ( const MCalibrationCam::PulserColor_t col ) const;
124 Bool_t IsFFactorMethodValid () const;
125 Bool_t IsFFactorMethodValid ( const MCalibrationCam::PulserColor_t col ) const;
126 Bool_t IsPINDiodeMethodValid () const;
127 Bool_t IsPINDiodeMethodValid ( const MCalibrationCam::PulserColor_t col ) const;
128
129 // Setters
130 void SetAverageQE ( const Float_t f ) { fAverageQE = f; }
131 void SetAvNormBlindPixel ( const Float_t f ) { fAvNormBlindPixel = f; }
132 void SetAvNormBlindPixelVar ( const Float_t f ) { fAvNormBlindPixelVar = f; }
133 void SetAvNormCombined ( const Float_t f ) { fAvNormCombined = f; }
134 void SetAvNormCombinedVar ( const Float_t f ) { fAvNormCombinedVar = f; }
135 void SetAvNormFFactor ( const Float_t f ) { fAvNormFFactor = f; }
136 void SetAvNormFFactorVar ( const Float_t f ) { fAvNormFFactorVar = f; }
137 void SetAvNormPINDiode ( const Float_t f ) { fAvNormPINDiode = f; }
138 void SetAvNormPINDiodeVar ( const Float_t f ) { fAvNormPINDiodeVar = f; }
139 void SetAverageQEBlindPixelAvailable ( const Bool_t b=kTRUE );
140 void SetAverageQECombinedAvailable ( const Bool_t b=kTRUE );
141 void SetAverageQEFFactorAvailable ( const Bool_t b=kTRUE );
142 void SetAverageQEPINDiodeAvailable ( const Bool_t b=kTRUE );
143 void SetBlindPixelMethodValid ( const Bool_t b, const MCalibrationCam::PulserColor_t col);
144 void SetCombinedMethodValid ( const Bool_t b, const MCalibrationCam::PulserColor_t col);
145 void SetFFactorMethodValid ( const Bool_t b, const MCalibrationCam::PulserColor_t col);
146 void SetPINDiodeMethodValid ( const Bool_t b, const MCalibrationCam::PulserColor_t col);
147 void SetQEBlindPixel ( Float_t f, MCalibrationCam::PulserColor_t col) { fQEBlindPixel [col] = f; }
148 void SetQEBlindPixelVar ( Float_t f, MCalibrationCam::PulserColor_t col) { fQEBlindPixelVar[col] = f; }
149 void SetQECombined ( Float_t f, MCalibrationCam::PulserColor_t col) { fQECombined [col] = f; }
150 void SetQECombinedVar ( Float_t f, MCalibrationCam::PulserColor_t col) { fQECombinedVar [col] = f; }
151 void SetQEFFactor ( Float_t f, MCalibrationCam::PulserColor_t col) { fQEFFactor [col] = f; }
152 void SetQEFFactorVar ( Float_t f, MCalibrationCam::PulserColor_t col) { fQEFFactorVar [col] = f; }
153 void SetQEPINDiode ( Float_t f, MCalibrationCam::PulserColor_t col) { fQEPINDiode [col] = f; }
154 void SetQEPINDiodeVar ( Float_t f, MCalibrationCam::PulserColor_t col) { fQEPINDiodeVar [col] = f; }
155
156 // Updates
157 Bool_t UpdateBlindPixelMethod();
158 Bool_t UpdateCombinedMethod ();
159 Bool_t UpdateFFactorMethod ();
160 Bool_t UpdatePINDiodeMethod ();
161
162 ClassDef(MCalibrationQEPix, 2) // Container Quantum Efficieny Calibration Results Pixel
163};
164
165#endif
166
Note: See TracBrowser for help on using the repository browser.