| 1 | #ifndef MARS_MCalibrationPix | 
|---|
| 2 | #define MARS_MCalibrationPix | 
|---|
| 3 |  | 
|---|
| 4 | #ifndef MARS_MParContainer | 
|---|
| 5 | #include "MParContainer.h" | 
|---|
| 6 | #endif | 
|---|
| 7 |  | 
|---|
| 8 | class MCalibrationPix : public MParContainer | 
|---|
| 9 | { | 
|---|
| 10 | protected: | 
|---|
| 11 |  | 
|---|
| 12 | Int_t   fPixId;             // Software PixId (needed to get Id in calls to Next()) | 
|---|
| 13 | UInt_t  fFlags;             // Flag for the set bits | 
|---|
| 14 | Float_t fHiGainMean;        // Mean from fit to high gain values | 
|---|
| 15 | Float_t fHiGainMeanVar;     // Error of mean from fit to high gain values | 
|---|
| 16 | Float_t fHiGainNumBlackout; // Number blackout events in high-gain | 
|---|
| 17 | Float_t fHiGainNumPickup;   // Number pickup events in high-gain | 
|---|
| 18 | Float_t fHiGainRms;         // Histogram RMS of the high gain values | 
|---|
| 19 | Float_t fHiGainSigma;       // Sigma from fit to high gain values | 
|---|
| 20 | Float_t fHiGainSigmaVar;    // Error of sigma from fit to high gain values | 
|---|
| 21 | Float_t fHiGainProb;        // Probability of fit to high gain values | 
|---|
| 22 | Float_t fLoGainMean;        // Mean from fit to high gain values | 
|---|
| 23 | Float_t fLoGainMeanVar;     // Error of mean from fit to low gain values | 
|---|
| 24 | Float_t fLoGainNumBlackout; // Number blackout events in low-gain | 
|---|
| 25 | Float_t fLoGainNumPickup;   // Number pickup events in low-gain | 
|---|
| 26 | Float_t fLoGainRms;         // Histogram RMS of the low-gain values | 
|---|
| 27 | Float_t fLoGainSigma;       // Sigma of from fit to low gain values | 
|---|
| 28 | Float_t fLoGainSigmaVar;    // Error of sigma from fit to low gain values | 
|---|
| 29 | Float_t fLoGainProb;        // Probability of fit to low gain values | 
|---|
| 30 |  | 
|---|
| 31 | enum { kHiGainSaturation, kExcluded, kValid, kDebug };   // Possible bits to be sets | 
|---|
| 32 |  | 
|---|
| 33 | public: | 
|---|
| 34 |  | 
|---|
| 35 | MCalibrationPix(const char *name=NULL, const char *title=NULL); | 
|---|
| 36 | ~MCalibrationPix() {} | 
|---|
| 37 |  | 
|---|
| 38 | void Clear(Option_t *o=""); | 
|---|
| 39 | void Copy(TObject& object) const; | 
|---|
| 40 |  | 
|---|
| 41 | // Setter | 
|---|
| 42 | void SetPixId( const Int_t i )   { fPixId = i; } | 
|---|
| 43 |  | 
|---|
| 44 | void SetHiGainMean        ( const Float_t f ) { fHiGainMean        = f; } | 
|---|
| 45 | void SetHiGainMeanVar     ( const Float_t f ) { fHiGainMeanVar     = f; } | 
|---|
| 46 | void SetHiGainNumBlackout ( const Float_t f ) { fHiGainNumBlackout = f; } | 
|---|
| 47 | void SetHiGainNumPickup   ( const Float_t f ) { fHiGainNumPickup   = f; } | 
|---|
| 48 | void SetHiGainProb        ( const Float_t f ) { fHiGainProb        = f; } | 
|---|
| 49 | void SetHiGainRms         ( const Float_t f ) { fHiGainRms         = f; } | 
|---|
| 50 | void SetHiGainSigma       ( const Float_t f ) { fHiGainSigma       = f; } | 
|---|
| 51 | void SetHiGainSigmaVar    ( const Float_t f ) { fHiGainSigmaVar    = f; } | 
|---|
| 52 | void SetLoGainMean        ( const Float_t f ) { fLoGainMean        = f; } | 
|---|
| 53 | void SetLoGainMeanVar     ( const Float_t f ) { fLoGainMeanVar     = f; } | 
|---|
| 54 | void SetLoGainNumBlackout ( const Float_t f ) { fLoGainNumBlackout = f; } | 
|---|
| 55 | void SetLoGainNumPickup   ( const Float_t f ) { fLoGainNumPickup   = f; } | 
|---|
| 56 | void SetLoGainProb        ( const Float_t f ) { fLoGainProb        = f; } | 
|---|
| 57 | void SetLoGainRms         ( const Float_t f ) { fLoGainRms         = f; } | 
|---|
| 58 | void SetLoGainSigma       ( const Float_t f ) { fLoGainSigma       = f; } | 
|---|
| 59 | void SetLoGainSigmaVar    ( const Float_t f ) { fLoGainSigmaVar    = f; } | 
|---|
| 60 | void SetMean       ( const Float_t f ) { IsHiGainSaturation() ? fLoGainMean        = f : fHiGainMean        = f      ; } | 
|---|
| 61 | void SetMeanVar    ( const Float_t f ) { IsHiGainSaturation() ? fLoGainMeanVar     = f : fHiGainMeanVar     = f  ;  } | 
|---|
| 62 | void SetNumBlackout( const Float_t f ) { IsHiGainSaturation() ? fLoGainNumBlackout = f : fHiGainNumBlackout = f ; } | 
|---|
| 63 | void SetNumPickup  ( const Float_t f ) { IsHiGainSaturation() ? fLoGainNumPickup   = f : fHiGainNumPickup   = f ; } | 
|---|
| 64 | void SetProb       ( const Float_t f ) { IsHiGainSaturation() ? fLoGainProb        = f : fHiGainProb        = f      ; } | 
|---|
| 65 | void SetSigma      ( const Float_t f ) { IsHiGainSaturation() ? fLoGainSigma       = f : fHiGainSigma       = f     ; } | 
|---|
| 66 | void SetSigmaVar   ( const Float_t f ) { IsHiGainSaturation() ? fLoGainSigmaVar    = f : fHiGainSigmaVar    = f  ; } | 
|---|
| 67 |  | 
|---|
| 68 | void SetDebug           ( const Bool_t  b = kTRUE ); | 
|---|
| 69 | void SetExcluded        ( const Bool_t  b = kTRUE ); | 
|---|
| 70 | void SetHiGainSaturation( const Bool_t  b = kTRUE ); | 
|---|
| 71 | void SetValid           ( const Bool_t  b = kTRUE ); | 
|---|
| 72 |  | 
|---|
| 73 | // Getters | 
|---|
| 74 | Float_t GetHiGainMean       () const { return fHiGainMean   ;     } | 
|---|
| 75 | Float_t GetHiGainMeanErr    () const; | 
|---|
| 76 | Float_t GetHiGainMeanVar    () const { return fHiGainMeanVar;     } | 
|---|
| 77 | Float_t GetHiGainMeanRelVar () const; | 
|---|
| 78 | Float_t GetHiGainProb       () const { return fHiGainProb   ;     } | 
|---|
| 79 | Float_t GetHiGainRms        () const { return fHiGainRms    ;     } | 
|---|
| 80 | Float_t GetHiGainSigma      () const { return fHiGainSigma  ;     } | 
|---|
| 81 | Float_t GetHiGainSigmaErr   () const; | 
|---|
| 82 | Float_t GetHiGainSigmaVar   () const { return fHiGainSigmaVar;    } | 
|---|
| 83 | Float_t GetHiGainNumPickup  () const { return fHiGainNumPickup;   } | 
|---|
| 84 | Float_t GetHiGainNumBlackout() const { return fHiGainNumBlackout; } | 
|---|
| 85 | Float_t GetHiLoMeansDivided         () const; | 
|---|
| 86 | Float_t GetHiLoMeansDividedErr      () const; | 
|---|
| 87 | Float_t GetHiLoSigmasDivided        () const; | 
|---|
| 88 | Float_t GetHiLoSigmasDividedErr     () const; | 
|---|
| 89 |  | 
|---|
| 90 | virtual Float_t GetLoGainMean       () const { return fLoGainMean;        } | 
|---|
| 91 | virtual Float_t GetLoGainMeanErr    () const; | 
|---|
| 92 | virtual Float_t GetLoGainMeanVar    () const { return fLoGainMeanVar;     } | 
|---|
| 93 | virtual Float_t GetLoGainMeanRelVar () const; | 
|---|
| 94 | virtual Float_t GetLoGainProb       () const { return fLoGainProb;        } | 
|---|
| 95 | virtual Float_t GetLoGainRms        () const { return fLoGainRms  ;       } | 
|---|
| 96 | virtual Float_t GetLoGainSigma      () const { return fLoGainSigma;       } | 
|---|
| 97 | virtual Float_t GetLoGainSigmaErr   () const; | 
|---|
| 98 | virtual Float_t GetLoGainSigmaVar   () const { return fLoGainSigmaVar;    } | 
|---|
| 99 | virtual Float_t GetLoGainNumPickup  () const { return fLoGainNumPickup;   } | 
|---|
| 100 | virtual Float_t GetLoGainNumBlackout() const { return fLoGainNumBlackout; } | 
|---|
| 101 |  | 
|---|
| 102 | Float_t GetMean       () const { return IsHiGainSaturation() ? GetLoGainMean()        : GetHiGainMean()     ;   } | 
|---|
| 103 | Float_t GetMeanErr    () const { return IsHiGainSaturation() ? GetLoGainMeanErr()     : GetHiGainMeanErr()  ;   } | 
|---|
| 104 | Float_t GetMeanRelVar () const; | 
|---|
| 105 | Float_t GetMeanSquare () const; | 
|---|
| 106 | Float_t GetRms        () const { return IsHiGainSaturation() ? GetLoGainRms()         : GetHiGainRms()      ;   } | 
|---|
| 107 | Float_t GetProb       () const { return IsHiGainSaturation() ? GetLoGainProb()        : GetHiGainProb()     ;   } | 
|---|
| 108 | Float_t GetSigma      () const { return IsHiGainSaturation() ? GetLoGainSigma()       : GetHiGainSigma()    ;   } | 
|---|
| 109 | Float_t GetSigmaErr   () const { return IsHiGainSaturation() ? GetLoGainSigmaErr()    : GetHiGainSigmaErr() ;   } | 
|---|
| 110 | Float_t GetSigmaRelVar() const; | 
|---|
| 111 | Float_t GetNumPickup  () const { return IsHiGainSaturation() ? GetLoGainNumPickup()   : GetHiGainNumPickup();   } | 
|---|
| 112 | Float_t GetNumBlackout() const { return IsHiGainSaturation() ? GetLoGainNumBlackout() : GetHiGainNumBlackout(); } | 
|---|
| 113 | Int_t   GetPixId      () const { return fPixId ;  } | 
|---|
| 114 |  | 
|---|
| 115 | Bool_t  IsHiGainSaturation() const; | 
|---|
| 116 | Bool_t  IsDebug   ()         const; | 
|---|
| 117 | Bool_t  IsExcluded()         const; | 
|---|
| 118 | Bool_t  IsValid   ()         const; | 
|---|
| 119 |  | 
|---|
| 120 | ClassDef(MCalibrationPix, 2)  // Base Container for Calibration Results Pixel | 
|---|
| 121 | }; | 
|---|
| 122 |  | 
|---|
| 123 | #endif | 
|---|
| 124 |  | 
|---|