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

Last change on this file since 3678 was 3678, checked in by gaug, 21 years ago
*** empty log message ***
File size: 9.0 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 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
74public:
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
Note: See TracBrowser for help on using the repository browser.