| 1 | #ifndef MARS_MHCalibrationChargePINDiode | 
|---|
| 2 | #define MARS_MHCalibrationChargePINDiode | 
|---|
| 3 |  | 
|---|
| 4 |  | 
|---|
| 5 | #ifndef MARS_MHCalibrationChargePix | 
|---|
| 6 | #include "MHCalibrationChargePix.h" | 
|---|
| 7 | #endif | 
|---|
| 8 |  | 
|---|
| 9 | class TH1F; | 
|---|
| 10 | class MExtractedSignalPINDiode; | 
|---|
| 11 | class MCalibrationChargePINDiode; | 
|---|
| 12 | class MHCalibrationChargePINDiode : public MHCalibrationChargePix | 
|---|
| 13 | { | 
|---|
| 14 | private: | 
|---|
| 15 |  | 
|---|
| 16 | static const Axis_t  fgAbsTimeFirst;    //! Default for fAbsTimeFirst    (now set to: -0.5  ) | 
|---|
| 17 | static const Axis_t  fgAbsTimeLast;     //! Default for fAbsTimeLast     (now set to: 29.5  ) | 
|---|
| 18 | static const Int_t   fgAbsTimeNbins;    //! Default for fAbsTimeNBins    (now set to: 30    ) | 
|---|
| 19 | static const Int_t   fgChargeNbins;     //! Default for fNBins           (now set to: 200   ) | 
|---|
| 20 | static const Axis_t  fgChargeFirst;     //! Default for fFirst           (now set to: -0.5  ) | 
|---|
| 21 | static const Axis_t  fgChargeLast;      //! Default for fLast            (now set to: 199.5 ) | 
|---|
| 22 | static const Int_t   fgRmsChargeNbins;  //! Default for fRmsChargeNBins  (now set to: 100   ) | 
|---|
| 23 | static const Axis_t  fgRmsChargeFirst;  //! Default for fRmsChargeFirst  (now set to: 0.    ) | 
|---|
| 24 | static const Axis_t  fgRmsChargeLast;   //! Default for fRmsChargeLast   (now set to: 100.  ) | 
|---|
| 25 | static const Float_t fgTimeLowerLimit;  //! Default for fTimeLowerLimit    (now set to: 1.) | 
|---|
| 26 | static const Float_t fgTimeUpperLimit;  //! Default for fTimeUpperLimit    (now set to: 2.) | 
|---|
| 27 |  | 
|---|
| 28 | static const TString gsHistName;        //! Default Histogram names | 
|---|
| 29 | static const TString gsHistTitle;       //! Default Histogram titles | 
|---|
| 30 | static const TString gsHistXTitle;      //! Default Histogram x-axis titles | 
|---|
| 31 | static const TString gsHistYTitle;      //! Default Histogram y-axis titles | 
|---|
| 32 |  | 
|---|
| 33 | static const TString gsAbsHistName;     //! Default Histogram names abs.times | 
|---|
| 34 | static const TString gsAbsHistTitle;    //! Default Histogram titles abs.times | 
|---|
| 35 | static const TString gsAbsHistXTitle;   //! Default Histogram x-axis titles abs.times | 
|---|
| 36 | static const TString gsAbsHistYTitle;   //! Default Histogram y-axis titles abs.times | 
|---|
| 37 |  | 
|---|
| 38 | TString fHistName;                      // Histogram names | 
|---|
| 39 | TString fHistTitle;                     // Histogram titles | 
|---|
| 40 | TString fHistXTitle;                    // Histogram x-axis titles | 
|---|
| 41 | TString fHistYTitle;                    // Histogram y-axis titles | 
|---|
| 42 |  | 
|---|
| 43 | TString fAbsHistName;                   // Histogram names abs.times | 
|---|
| 44 | TString fAbsHistTitle;                  // Histogram titles abs. times | 
|---|
| 45 | TString fAbsHistXTitle;                 // Histogram x-axis titles abs. times | 
|---|
| 46 | TString fAbsHistYTitle;                 // Histogram y-axis titles abs. times | 
|---|
| 47 |  | 
|---|
| 48 | MCalibrationChargePINDiode *fPINDiode;  //! Storage container of the results | 
|---|
| 49 | MExtractedSignalPINDiode   *fSigPIN;    //! Storage container of extracted signal | 
|---|
| 50 |  | 
|---|
| 51 | TH1F fHRmsCharge;                       //  Histogram containing Variance of summed FADC slices | 
|---|
| 52 |  | 
|---|
| 53 | Axis_t  fRmsChargeFirst;                //  Lower bound bin used for the fHRmsCharge | 
|---|
| 54 | Axis_t  fRmsChargeLast;                 //  Upper bound bin used for the fHRmsCharge | 
|---|
| 55 | Int_t   fRmsChargeNbins;                //  Number of  bins used for the fHRmsCharge | 
|---|
| 56 | Float_t fRmsChargeMean;                 //  Mean of the Gauss fit | 
|---|
| 57 | Float_t fRmsChargeMeanErr;              //  Error of the mean of the Gauss fit | 
|---|
| 58 | Float_t fRmsChargeSigma;                //  Sigma of the Gauss fit | 
|---|
| 59 | Float_t fRmsChargeSigmaErr;             //  Error of the sigma of the Gauss fit | 
|---|
| 60 | Float_t fTimeLowerLimit;                //  Limit dist. to first signal slice (units: FADC slices) | 
|---|
| 61 | Float_t fTimeUpperLimit;                //  Limit dist. to last signal slice  (units: FADC slices) | 
|---|
| 62 |  | 
|---|
| 63 | public: | 
|---|
| 64 |  | 
|---|
| 65 | MHCalibrationChargePINDiode(const char *name=NULL, const char *title=NULL); | 
|---|
| 66 | ~MHCalibrationChargePINDiode(){} | 
|---|
| 67 |  | 
|---|
| 68 | Bool_t SetupFill(const MParList *pList); | 
|---|
| 69 | Bool_t ReInit   (      MParList *pList); | 
|---|
| 70 | Bool_t Fill     (const MParContainer *par, const Stat_t w=1); | 
|---|
| 71 | Bool_t Finalize (); | 
|---|
| 72 |  | 
|---|
| 73 | // Draw | 
|---|
| 74 | void Draw(Option_t *opt=""); | 
|---|
| 75 |  | 
|---|
| 76 | // Getters | 
|---|
| 77 | TH1F *GetHRmsCharge()                  { return &fHRmsCharge;       } | 
|---|
| 78 | const TH1F *GetHRmsCharge()            const { return &fHRmsCharge;       } | 
|---|
| 79 | Float_t     GetRmsChargeMean()         const { return fRmsChargeMean;     } | 
|---|
| 80 | Float_t     GetRmsChargeMeanErr()      const { return fRmsChargeMeanErr;  } | 
|---|
| 81 | Float_t     GetRmsChargeSigma()        const { return fRmsChargeSigma;    } | 
|---|
| 82 | Float_t     GetRmsChargeSigmaErr()     const { return fRmsChargeSigmaErr; } | 
|---|
| 83 |  | 
|---|
| 84 | // Fill histos | 
|---|
| 85 | Bool_t FillRmsCharge(const Float_t q); | 
|---|
| 86 |  | 
|---|
| 87 | // Fits | 
|---|
| 88 | Bool_t FitRmsCharge(Option_t *option="RQ0"); | 
|---|
| 89 |  | 
|---|
| 90 | // Setters | 
|---|
| 91 | void SetAbsTimeNbins   ( const Int_t   bins =fgAbsTimeNbins   ) { fAbsTimeNbins   = bins;  } | 
|---|
| 92 | void SetAbsTimeFirst   ( const Axis_t  first=fgAbsTimeFirst   ) { fAbsTimeFirst   = first; } | 
|---|
| 93 | void SetAbsTimeLast    ( const Axis_t  last =fgAbsTimeLast    ) { fAbsTimeLast    = last;  } | 
|---|
| 94 | void SetRmsChargeNbins ( const Int_t   bins =fgRmsChargeNbins ) { fRmsChargeNbins = bins;  } | 
|---|
| 95 | void SetRmsChargeFirst ( const Axis_t  first=fgRmsChargeFirst ) { fRmsChargeFirst = first; } | 
|---|
| 96 | void SetRmsChargeLast  ( const Axis_t  last =fgRmsChargeLast  ) { fRmsChargeLast  = last;  } | 
|---|
| 97 | void SetTimeLowerLimit ( const Float_t f=fgTimeLowerLimit     ) { fTimeLowerLimit = f;     } | 
|---|
| 98 | void SetTimeUpperLimit ( const Float_t f=fgTimeUpperLimit     ) { fTimeUpperLimit = f;     } | 
|---|
| 99 |  | 
|---|
| 100 | void SetAbsHistName  ( const char *name )  { fAbsHistName  = name;  } | 
|---|
| 101 | void SetAbsHistTitle ( const char *name )  { fAbsHistTitle = name;  } | 
|---|
| 102 | void SetAbsHistXTitle( const char *name )  { fAbsHistXTitle = name; } | 
|---|
| 103 | void SetAbsHistYTitle( const char *name )  { fAbsHistYTitle = name; } | 
|---|
| 104 |  | 
|---|
| 105 | void SetHistName  ( const char *name )  { fHistName  = name;  } | 
|---|
| 106 | void SetHistTitle ( const char *name )  { fHistTitle = name;  } | 
|---|
| 107 | void SetHistXTitle( const char *name )  { fHistXTitle = name; } | 
|---|
| 108 | void SetHistYTitle( const char *name )  { fHistYTitle = name; } | 
|---|
| 109 |  | 
|---|
| 110 | ClassDef(MHCalibrationChargePINDiode, 1)  // Histogram class for Charge PIN Diode Calibration | 
|---|
| 111 | }; | 
|---|
| 112 |  | 
|---|
| 113 | #endif | 
|---|
| 114 |  | 
|---|