source: trunk/MagicSoft/Mars/mcalib/MCalibrationChargePix.h@ 4136

Last change on this file since 4136 was 4130, checked in by gaug, 21 years ago
*** empty log message ***
File size: 6.5 KB
Line 
1#ifndef MARS_MCalibrationChargePix
2#define MARS_MCalibrationChargePix
3
4#ifndef MARS_MCalibrationPix
5#include "MCalibrationPix.h"
6#endif
7
8class MCalibrationChargePix : public MCalibrationPix
9{
10private:
11
12 static const Float_t gkElectronicPedRmsInner; //! Electronic component of ped. RMS (now set to: 1.5)
13 static const Float_t gkElectronicPedRmsOuter; //! Electronic component of ped. RMS (now set to: 1.8)
14 static const Float_t gkElectronicPedRmsErr; //! Error Electr. component ped. RMS (now set to: 0.35)
15 static const Float_t gkFFactor; //! Laboratory F-factor PMTs (now set to: 1.15)
16 static const Float_t gkFFactorErr; //! Laboratory F-factor Error PMTs (now set to: 0.02)
17
18 static const Float_t fgConversionHiLo; //! Default fConversionHiLo (now set to: 10.)
19 static const Float_t fgConversionHiLoErr; //! Default fConversionHiLoVar (now set to: 2.5)
20 static const Float_t fgPheFFactorMethodLimit; //! Default fPheFFactorMethodLimit (now set to: 5.)
21 static const Float_t fgConvFFactorRelErrLimit; //! Default fConvFFactorRelErrLimit (now set to: 0.35)
22
23 Float_t fAbsTimeMean; // Mean Absolute Arrival Time
24 Float_t fAbsTimeRms; // RMS Mean Absolute Arrival Time
25 Byte_t fCalibFlags; // Bit-field for the class-own bits
26 Float_t fConversionHiLo; // Conversion factor betw. Hi Gain and Lo Gain
27 Float_t fConversionHiLoVar; // Variance Conversion factor betw. Hi and Lo Gain
28 Float_t fConvFFactorRelVarLimit; // Limit for acceptance rel. variance Conversion FADC2Phe
29 Float_t fLoGainPedRmsSquare; // Pedestal RMS square of Low Gain
30 Float_t fLoGainPedRmsSquareVar; // Pedestal RMS square Variance of Low Gain
31 Float_t fMeanConvFADC2Phe; // Conversion factor (F-factor method)
32 Float_t fMeanConvFADC2PheVar; // Variance conversion factor (F-factor method)
33 Float_t fMeanFFactorFADC2Phot; // Total mean F-Factor to photons (F-factor method)
34 Float_t fMeanFFactorFADC2PhotVar; // Variance mean F-Factor photons (F-factor method)
35 Float_t fPed; // Pedestal (from MPedestalPix) times number FADC slices
36 Float_t fPedVar; // Variance of pedestal
37 Float_t fPedRms; // Pedestal RMS (from MPedestalPix) times sqrt nr. FADC slices
38 Float_t fPheFFactorMethod; // Number Phe's calculated (F-factor method)
39 Float_t fPheFFactorMethodVar; // Variance number of Phe's (F-factor method)
40 Float_t fPheFFactorMethodLimit; // Min. number Photo-electrons for pix to be accepted.
41 Float_t fRSigmaSquare; // Square of Reduced sigma
42 Float_t fRSigmaSquareVar; // Variance Reduced sigma
43
44 enum { kFFactorMethodValid }; // Possible bits to be set
45
46 const Float_t GetElectronicPedRmsRelVar(const Int_t aidx) const;
47 const Float_t GetConversionHiLoRelVar() const;
48 const Float_t GetFFactorRelVar() const;
49
50public:
51
52 MCalibrationChargePix(const char *name=NULL, const char *title=NULL);
53 ~MCalibrationChargePix() {}
54
55 void Clear(Option_t *o="");
56
57 // Setter
58 void SetAbsTimeMean ( const Float_t f ) { fAbsTimeMean = f; }
59 void SetAbsTimeRms ( const Float_t f ) { fAbsTimeRms = f; }
60 void SetConversionHiLo ( const Float_t c=fgConversionHiLo ) { fConversionHiLo = c; }
61 void SetConversionHiLoErr ( const Float_t e=fgConversionHiLoErr ) { fConversionHiLoVar = e*e; }
62 void SetConvFFactorRelErrLimit ( const Float_t f=fgConvFFactorRelErrLimit) { fConvFFactorRelVarLimit = f*f;}
63 void SetFFactorMethodValid ( const Bool_t b = kTRUE );
64 void SetMeanConvFADC2Phe ( const Float_t f) { fMeanConvFADC2Phe = f; }
65 void SetMeanConvFADC2PheVar ( const Float_t f) { fMeanConvFADC2PheVar = f; }
66 void SetMeanFFactorFADC2Phot ( const Float_t f) { fMeanFFactorFADC2Phot = f; }
67 void SetPedestal ( const Float_t ped, const Float_t pedrms, const Float_t pederr);
68 void SetPheFFactorMethod ( const Float_t f) { fPheFFactorMethod = f; }
69 void SetPheFFactorMethodVar ( const Float_t f) { fPheFFactorMethodVar = f; }
70 void SetPheFFactorMethodLimit ( const Float_t f=fgPheFFactorMethodLimit ) { fPheFFactorMethodLimit = f; }
71
72 // Getters
73 Float_t GetAbsTimeMean () const { return fAbsTimeMean; }
74 Float_t GetAbsTimeRms () const { return fAbsTimeRms; }
75 Float_t GetConversionHiLo () const { return fConversionHiLo; }
76 Float_t GetConversionHiLoErr () const;
77 Float_t GetConvertedLoGainMean () const;
78 Float_t GetConvertedLoGainMeanErr () const;
79 Float_t GetConvertedLoGainSigma () const;
80 Float_t GetConvertedLoGainSigmaErr () const;
81 Float_t GetMeanConvFADC2Phe () const { return fMeanConvFADC2Phe; }
82 Float_t GetMeanConvFADC2PheErr () const;
83 Float_t GetMeanConvFADC2PheVar () const { return fMeanConvFADC2PheVar; }
84 Float_t GetMeanFFactorFADC2Phot () const { return fMeanFFactorFADC2Phot; }
85 Float_t GetMeanFFactorFADC2PhotErr () const;
86 Float_t GetMeanFFactorFADC2PhotVar () const { return fMeanFFactorFADC2PhotVar; }
87 Float_t GetPed () const { return fPed; }
88 Float_t GetPedErr () const;
89 Float_t GetPedRms () const;
90 Float_t GetPedRmsErr () const;
91 Float_t GetPheFFactorMethod () const { return fPheFFactorMethod; }
92 Float_t GetPheFFactorMethodErr () const;
93 Float_t GetPheFFactorMethodVar () const { return fPheFFactorMethodVar; }
94 Float_t GetPheFFactorMethodRelVar () const;
95 Float_t GetRSigma () const;
96 Float_t GetRSigmaErr () const;
97 Float_t GetRSigmaPerCharge () const;
98 Float_t GetRSigmaPerChargeErr () const;
99 Float_t GetRSigmaSquare () const;
100 Float_t GetRSigmaRelVar () const;
101
102 Bool_t IsFFactorMethodValid () const;
103
104 // Calculations
105 void CalcLoGainPedestal ( const Float_t logainsamples, const Int_t aidx );
106 Bool_t CalcReducedSigma ( );
107 Bool_t CalcFFactorMethod ();
108 Bool_t CalcMeanFFactor ( const Float_t nphotons, const Float_t nphotonsrelvar );
109
110 ClassDef(MCalibrationChargePix, 1) // Container Charge Calibration Results Pixel
111};
112
113#endif
114
Note: See TracBrowser for help on using the repository browser.