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

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