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

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