#ifndef _mevt_ChannelRecData_h_ #define _mevt_ChannelRecData_h_ // For frienship declaration, just forward declare. #include #include namespace mevt { class Channel; /** * \class ChannelRecData ChannelRecData.h "mevt/ChannelRecData.h" * \brief Channel level reconstruction data. * * \author Rodolfo Federico Gamarra * \date 08 Mar 2009 * \ingroup mevt */ class ChannelRecData { typedef std::list PatternMatchBinContainer; public: typedef PatternMatchBinContainer::const_iterator PatternMatchBinIterator; /** * \brief Retrieve the number of pattern matchs that impinged this scintillator. * * Non-modifying accessor. */ unsigned int GetNumberOfPatternMatchs() const; /** * \brief Adds the time of a pattern match detection. */ void AddPatternMatchBin(unsigned int bin); /** * \brief Clears pattern match detection times information. */ void ClearPatternMatchBins(); /** * \brief Begin of the collection of times. */ PatternMatchBinIterator PatternMatchBinsBegin() const; /** * \brief End of the collection of times. */ PatternMatchBinIterator PatternMatchBinsEnd() const; private: ChannelRecData(); ~ChannelRecData(); // Keep the size separately, to avoid linear behaviour. PatternMatchBinContainer::size_type fNPatternMatchBins; PatternMatchBinContainer fPatternMatchBins; /* * Like sevt::StationRecData nothing said about * operator= and copy-construction: let the compiler * generate'em. */ /** * \brief Friendship to allow construction. */ friend class Channel; /** * \brief Frienship to allow destruction. * * Depends on the innards of mevt::Channel. */ friend class utl::ShadowPtr; }; } #endif