/** \file declaration of SLTData \author Ralf Ulrich \version $Id: SLTData.h 14717 2009-09-17 20:24:36Z lukas $ \date Mon Oct 16 09:06:32 CEST 2006 */ #ifndef _fevt_SLTData_h_ #define _fevt_SLTData_h_ #include #include static const char CVSId_fevt_SLTData[] = "$Id: SLTData.h 14717 2009-09-17 20:24:36Z lukas $"; namespace fevt { class TelescopTriggerData; /** \class SLTData SLTData.h "fevt/SLTData.h" \brief Description of trigger data for one Telescope This class describes the data of the SLT and multiplicity \author Ralf Ulrich \date Mon Oct 16 09:07:19 CEST 2006 \ingroup fevt */ class SLTData { public: SLTData(const std::vector& sltDataWord); SLTData(const int size); SLTData(); int GetSize() const { return fColSize; } int GetSLTDataWord(unsigned int col) const; int GetSLTPattern(unsigned int col) const { CheckBounds(col); return fSLTPattern[col-1]; } int GetRowMask(unsigned int col) const { CheckBounds(col); return fRowMask[col-1]; } bool HasPixel(const unsigned int id) const; bool HasPixel(unsigned int col, const unsigned int row) const; bool HasParityError(unsigned int col) const { CheckBounds(col); return fParityErrorBit[col-1]; } bool HasTrigger(unsigned int col) const { CheckBounds(col); return fTrigger[col-1]; } bool HasSpare(unsigned int col) const { CheckBounds(col); return fSpare[col-1]; } void SetColumn(unsigned int col, const int row, const int pattern, const bool pe, const bool trigger, const bool spare); void SetSLTDataWord(unsigned int col, const unsigned int sltDataWord); void SetSLTPattern(unsigned int col, const int pattern); void SetRowMask(unsigned int col, const int mask); void SetParityError(unsigned int col, const bool bit); void SetTrigger(unsigned int col, const bool bit); void SetSpare(unsigned int col, const bool bit); private: void CheckBounds(unsigned int col) const; // slt data std::vector fRowMask; // row pixel mask std::vector fSLTPattern; // pattern clas std::vector fParityErrorBit; // FLT parity error bit std::vector fTrigger; // external trigger flag std::vector fSpare; // future use // no data-member mutable unsigned int fColSize; // fast access friend class fevt::TelescopTriggerData; friend class utl::ShadowPtr; }; } #endif // Configure (x)emacs for this file ... // Local Variables: // mode: c++ // End: