source: trunk/MagicSoft/Mars/mcalib/MCalibrationChargePINDiode.h@ 5954

Last change on this file since 5954 was 5422, checked in by gaug, 20 years ago
*** empty log message ***
File size: 5.9 KB
Line 
1#ifndef MARS_MCalibrationChargePINDiode
2#define MARS_MCalibrationChargePINDiode
3
4#ifndef MARS_MCalibrationCam
5#include "MCalibrationCam.h"
6#endif
7
8#ifndef MARS_MCalibrationPix
9#include "MCalibrationPix.h"
10#endif
11
12class MCalibrationChargePINDiode : public MCalibrationPix
13{
14private:
15
16 static const Float_t fgChargeToPhotons; //! Default for fChargeToPhotons
17 static const Float_t fgChargeToPhotonsErr; //! Default for fChargeToPhotonsVar
18 static const Float_t gkPINDiodeQEGreen; //! Quantum Efficiency at 520 nm
19 static const Float_t gkPINDiodeQEBlue; //! Quantum Efficiency at 460 nm
20 static const Float_t gkPINDiodeQEUV; //! Quantum Efficiency at 370 nm
21 static const Float_t gkPINDiodeQECT1; //! Quantum Efficiency at 370 nm
22 static const Float_t gkPINDiodeQEGreenErr; //! Uncertainty QE at 520 nm
23 static const Float_t gkPINDiodeQEBlueErr; //! Uncertainty QE at 460 nm
24 static const Float_t gkPINDiodeQEUVErr; //! Uncertainty QE at 370 nm
25 static const Float_t gkPINDiodeQECT1Err; //! Uncertainty QE at 370 nmu
26 static const Float_t gkAbsorptionWindow; //! Absorption of the protection window (incl. EMS-wires)
27 static const Float_t gkSolidAngleRatio; //! Solid angles ratio PIN Diode - inner pixel
28 static const Float_t gkSolidAngleRatioErr; //! Error solid angle ratio PIN Diode - inn. pix.
29
30 Float_t fAbsTimeMean; // Mean Absolute Arrival Time
31 Float_t fAbsTimeRms; // RMS Mean Absolute Arrival Time
32 Byte_t fCalibFlags; // Bit-field for the class-own bits
33 Float_t fChargeLimit; // Limit (in units of PedRMS) for acceptance fitted mean charge
34 Float_t fChargeErrLimit; // Limit (in units of PedRMS) for acceptance fitted charge sigma
35 Float_t fChargeRelErrLimit; // Limit (in units of Error of fitted charge) for acceptance fitted mean
36 Float_t fChargeToPhotons; // Mean conv. PIN Diode charge to number of incident photons
37 Float_t fChargeToPhotonsVar; // Variance of mean conv. PIN Diode charge to nr. incident photons
38 Float_t fNumPhotons; // Number photons incidident on PIN Diode
39 Float_t fNumPhotonsVar; // Variance nr. photons incid. on PIN Diode
40 Float_t fFluxOutsidePlexiglass; // Mean number photons in INNER PIXEL outside plexiglass
41 Float_t fFluxOutsidePlexiglassVar; // Error on nr. photons in INNER PIXEL outside plexiglass
42 Float_t fPed; // Mean pedestal (from MPedestalPix)
43 Float_t fPedRms; // Pedestal RMS (from MPedestalPix)
44 Float_t fRmsChargeMean; // Mean of RMS of summed FADC slices distribution
45 Float_t fRmsChargeMeanErr; // Error on Mean RMS summed FADC slices distribution
46 Float_t fRmsChargeSigma; // Sigma of RMS of summed FADC slices distribution
47 Float_t fRmsChargeSigmaErr; // Error on Sigma RMS summed FADC slices distribution
48 MCalibrationCam::PulserColor_t fColor; // Colour of the pulsed LEDs
49
50 enum { kOscillating,
51 kChargeFitValid, kTimeFitValid,
52 kFluxOutsidePlexiglassAvailable }; // Possible bits to be set
53
54 const Float_t GetPINDiodeQEGreenRelVar() const;
55 const Float_t GetPINDiodeQEBlueRelVar () const;
56 const Float_t GetPINDiodeQEUVRelVar () const;
57 const Float_t GetPINDiodeQECT1RelVar () const;
58 const Float_t GetSolidAngleRatioRelVar() const;
59
60 public:
61
62 MCalibrationChargePINDiode(const char *name=NULL, const char *title=NULL);
63 ~MCalibrationChargePINDiode() {}
64
65 void Clear(Option_t *o="");
66 Bool_t CalcFluxOutsidePlexiglass();
67
68 // Getters
69 Float_t GetAbsTimeMean () const { return fAbsTimeMean; }
70 Float_t GetAbsTimeRms () const { return fAbsTimeRms; }
71 MCalibrationCam::PulserColor_t GetColor () const { return fColor; }
72 Float_t GetFluxOutsidePlexiglass () const { return fFluxOutsidePlexiglass; }
73 Float_t GetFluxOutsidePlexiglassErr () const;
74 Float_t GetFluxOutsidePlexiglassRelVar () const;
75 Float_t GetNumPhotons () const { return fNumPhotons; }
76 Float_t GetNumPhotonsErr () const;
77 Float_t GetNumPhotonsRelVar () const;
78 Float_t GetPed () const { return fPed; }
79 Float_t GetPedRms () const { return fPedRms; }
80
81 Bool_t IsChargeFitValid () const;
82 Bool_t IsTimeFitValid () const;
83 Bool_t IsOscillating () const;
84 Bool_t IsFluxOutsidePlexiglassAvailable() const;
85
86 // Setters
87 void SetAbsTimeMean ( const Float_t f ) { fAbsTimeMean = f; }
88 void SetAbsTimeRms ( const Float_t f ) { fAbsTimeRms = f; }
89 void SetChargeToPhotons ( const Float_t f=fgChargeToPhotons ) { fChargeToPhotons = f; }
90 void SetChargeToPhotonsErr ( const Float_t f=fgChargeToPhotonsErr ) { fChargeToPhotonsVar = f*f; }
91 void SetColor ( const MCalibrationCam::PulserColor_t color) { fColor = color; }
92 void SetPedestal ( Float_t ped, Float_t pedrms );
93 void SetRmsChargeMean ( const Float_t f ) { fRmsChargeMean = f; }
94 void SetRmsChargeMeanErr ( const Float_t f ) { fRmsChargeMeanErr = f; }
95 void SetRmsChargeSigma ( const Float_t f ) { fRmsChargeSigma = f; }
96 void SetRmsChargeSigmaErr ( const Float_t f ) { fRmsChargeSigmaErr = f; }
97 void SetOscillating ( const Bool_t b=kTRUE );
98 void SetChargeFitValid ( const Bool_t b=kTRUE );
99 void SetTimeFitValid ( const Bool_t b=kTRUE );
100 void SetFluxOutsidePlexiglassAvailable ( const Bool_t b = kTRUE );
101
102 ClassDef(MCalibrationChargePINDiode, 1) // Container Charge Calibration Results PIN Diode
103};
104
105#endif /* MARS_MCalibrationChargePINDiode */
106
107
108
109
110
111
112
113
114
Note: See TracBrowser for help on using the repository browser.