#ifndef MARS_MCalibrationCam #define MARS_MCalibrationCam #ifndef MARS_MParContainer #include "MParContainer.h" #endif #ifndef MARS_MCamEvent #include "MCamEvent.h" #endif #ifndef ROOT_TArrayI #include "TArrayI.h" #endif #ifndef ROOT_TArrayF #include "TArrayF.h" #endif class TClonesArray; class MCalibrationPix; class MBadPixelsPix; class MBadPixelsCam; class MGeomCam; class MCalibrationCam : public MParContainer, public MCamEvent { public: enum PulserColor_t { kCT1=0, kGREEN=1, kBLUE=2, kUV=3, kNONE=4 }; // Possible Pulser colours static const Int_t gkNumPulserColors; // Number of Pulser colours (now set to: 4) protected: TArrayI fNumUnsuitable; // Number uncalibrated Pixels per area index TArrayI fNumUnreliable; // Number unreliable Pixels per area index TArrayF fNumHiGainFADCSlices; // Number High-Gain FADC slices used by extractor TArrayF fNumLoGainFADCSlices; // Number Low -Gain FADC slices used by extractor PulserColor_t fPulserColor; // Colour of the pulsed LEDs TClonesArray *fPixels; //-> Array of MCalibrationPix, one per pixel TClonesArray *fAverageAreas; //-> Array of MCalibrationPix, one per pixel area TClonesArray *fAverageSectors; //-> Array of MCalibrationPix, one per camera sector TClonesArray *fAverageBadAreas; //-> Array of MBadPixelsPix, one per pixel area TClonesArray *fAverageBadSectors; //-> Array of MBadPixelsPix, one per camera sector public: MCalibrationCam(const char *name=NULL, const char *title=NULL); virtual ~MCalibrationCam(); virtual void Clear ( Option_t *o=""); virtual void DrawPixelContent( Int_t num) const; virtual void Copy(TObject& object) const; // Getters const Int_t GetAverageAreas () const; MCalibrationPix &GetAverageArea ( UInt_t i ); const MCalibrationPix &GetAverageArea ( UInt_t i ) const; MBadPixelsPix &GetAverageBadArea ( UInt_t i ); const MBadPixelsPix &GetAverageBadArea ( UInt_t i ) const; MBadPixelsPix &GetAverageBadSector ( UInt_t i ); const MBadPixelsPix &GetAverageBadSector ( UInt_t i ) const; MCalibrationPix &GetAverageSector ( UInt_t i ); const Int_t GetAverageSectors () const; const MCalibrationPix &GetAverageSector ( UInt_t i ) const; const Float_t GetNumHiGainFADCSlices ( Int_t aidx=0 ) const; const Float_t GetNumLoGainFADCSlices ( Int_t aidx=0 ) const; const Int_t GetNumUnsuitable ( Int_t aidx ) const; const Int_t GetNumUnreliable ( Int_t aidx ) const; virtual Bool_t GetPixelContent ( Double_t &val, Int_t idx, const MGeomCam &cam, Int_t type=0) const; const PulserColor_t GetPulserColor() const { return fPulserColor; } const Int_t GetSize() const; MCalibrationPix &operator[] ( UInt_t i ); const MCalibrationPix &operator[] ( UInt_t i ) const; // Inits virtual void Init ( const MGeomCam &geom ); void InitSize ( const UInt_t i ); void InitAverageAreas ( const UInt_t i ); void InitAverageSectors ( const UInt_t i ); // Setters void SetNumHiGainFADCSlices ( const Float_t f, const Int_t aidx=0 ); void SetNumLoGainFADCSlices ( const Float_t f, const Int_t aidx=0 ); void SetNumUnsuitable ( const UInt_t i, const Int_t aidx ); void SetNumUnreliable ( const UInt_t i, const Int_t aidx ); void SetPulserColor ( const PulserColor_t col=kCT1 ) { fPulserColor = col; } ClassDef(MCalibrationCam, 2) // Base class Container for Calibration Results Camera }; #endif