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

Last change on this file since 4875 was 4776, checked in by gaug, 20 years ago
*** empty log message ***
File size: 6.9 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 fPedRmsVar; // Pedestal RMS (from MPedestalPix) times sqrt nr. FADC slices
39 Float_t fPheFFactorMethod; // Number Phe's calculated (F-factor method)
40 Float_t fPheFFactorMethodVar; // Variance number of Phe's (F-factor method)
41 Float_t fPheFFactorMethodLimit; // Min. number Photo-electrons for pix to be accepted.
42 Float_t fRSigmaSquare; // Square of Reduced sigma
43 Float_t fRSigmaSquareVar; // Variance Reduced sigma
44
45 enum { kFFactorMethodValid }; // Possible bits to be set
46
47 const Float_t GetElectronicPedRmsRelVar(const Int_t aidx) const;
48 const Float_t GetConversionHiLoRelVar() const;
49 const Float_t GetFFactorRelVar() const;
50
51public:
52
53 MCalibrationChargePix(const char *name=NULL, const char *title=NULL);
54 ~MCalibrationChargePix() {}
55
56 void Clear(Option_t *o="");
57
58 // Setter
59 void SetAbsTimeMean ( const Float_t f ) { fAbsTimeMean = f; }
60 void SetAbsTimeRms ( const Float_t f ) { fAbsTimeRms = f; }
61 void SetConversionHiLo ( const Float_t c=fgConversionHiLo ) { fConversionHiLo = c; }
62 void SetConversionHiLoErr ( const Float_t e=fgConversionHiLoErr ) { fConversionHiLoVar = e*e; }
63 void SetConvFFactorRelErrLimit ( const Float_t f=fgConvFFactorRelErrLimit) { fConvFFactorRelVarLimit = f*f;}
64 void SetFFactorMethodValid ( const Bool_t b = kTRUE );
65 void SetMeanConvFADC2Phe ( const Float_t f) { fMeanConvFADC2Phe = f; }
66 void SetMeanConvFADC2PheVar ( const Float_t f) { fMeanConvFADC2PheVar = f; }
67 void SetMeanFFactorFADC2Phot ( const Float_t f) { fMeanFFactorFADC2Phot = f; }
68 void SetPedestal ( const Float_t ped, const Float_t pedrms, const Float_t pederr);
69 void SetPed ( const Float_t ped, const Float_t pederr);
70 void SetPedRMS ( const Float_t pedrms, const Float_t pedrmserr);
71 void SetPheFFactorMethod ( const Float_t f) { fPheFFactorMethod = f; }
72 void SetPheFFactorMethodVar ( const Float_t f) { fPheFFactorMethodVar = f; }
73 void SetPheFFactorMethodLimit ( const Float_t f=fgPheFFactorMethodLimit ) { fPheFFactorMethodLimit = f; }
74
75 // Getters
76 Float_t GetAbsTimeMean () const { return fAbsTimeMean; }
77 Float_t GetAbsTimeRms () const { return fAbsTimeRms; }
78 Float_t GetConversionHiLo () const { return fConversionHiLo; }
79 Float_t GetConversionHiLoErr () const;
80 Float_t GetConvertedMean () const;
81 Float_t GetConvertedMeanErr () const;
82 Float_t GetConvertedSigma () const;
83 Float_t GetConvertedSigmaErr () const;
84 Float_t GetConvertedRSigma () const;
85 Float_t GetConvertedRSigmaErr () const;
86 Float_t GetConvertedRSigmaSquare () const;
87 Float_t GetMeanConvFADC2Phe () const { return fMeanConvFADC2Phe; }
88 Float_t GetMeanConvFADC2PheErr () const;
89 Float_t GetMeanConvFADC2PheVar () const { return fMeanConvFADC2PheVar; }
90 Float_t GetMeanFFactorFADC2Phot () const { return fMeanFFactorFADC2Phot; }
91 Float_t GetMeanFFactorFADC2PhotErr () const;
92 Float_t GetMeanFFactorFADC2PhotVar () const { return fMeanFFactorFADC2PhotVar; }
93 Float_t GetPed () const { return fPed; }
94 Float_t GetPedErr () const { return TMath::Sqrt(fPedVar); }
95 Float_t GetPedRms () const;
96 Float_t GetPedRmsErr () const;
97 Float_t GetPheFFactorMethod () const { return fPheFFactorMethod; }
98 Float_t GetPheFFactorMethodErr () const;
99 Float_t GetPheFFactorMethodVar () const { return fPheFFactorMethodVar; }
100 Float_t GetPheFFactorMethodRelVar () const;
101 Float_t GetRSigma () const;
102 Float_t GetRSigmaErr () const;
103 Float_t GetRSigmaRelVar () const;
104 Float_t GetRSigmaPerCharge () const;
105 Float_t GetRSigmaPerChargeErr () const;
106
107 Bool_t IsFFactorMethodValid () const;
108
109 // Calculations
110 void CalcLoGainPedestal ( const Float_t logainsamples, const Int_t aidx );
111 Bool_t CalcReducedSigma ( );
112 Bool_t CalcFFactor ( );
113 Bool_t CalcConvFFactor ( );
114 Bool_t CalcMeanFFactor ( const Float_t nphotons, const Float_t nphotonsrelvar );
115
116 ClassDef(MCalibrationChargePix, 2) // Container Charge Calibration Results Pixel
117};
118
119#endif
120
Note: See TracBrowser for help on using the repository browser.