| 1 | #ifndef MARS_MCalibrationChargePix
|
|---|
| 2 | #define MARS_MCalibrationChargePix
|
|---|
| 3 |
|
|---|
| 4 | #ifndef MARS_MCalibrationPix
|
|---|
| 5 | #include "MCalibrationPix.h"
|
|---|
| 6 | #endif
|
|---|
| 7 |
|
|---|
| 8 | class MCalibrationChargePix : public MCalibrationPix
|
|---|
| 9 | {
|
|---|
| 10 | private:
|
|---|
| 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 |
|
|---|
| 51 | public:
|
|---|
| 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 CalcFFactorMethod ();
|
|---|
| 113 | Bool_t CalcMeanFFactor ( const Float_t nphotons, const Float_t nphotonsrelvar );
|
|---|
| 114 |
|
|---|
| 115 | ClassDef(MCalibrationChargePix, 2) // Container Charge Calibration Results Pixel
|
|---|
| 116 | };
|
|---|
| 117 |
|
|---|
| 118 | #endif
|
|---|
| 119 |
|
|---|