#ifndef _fevt_Channel_h_ #define _fevt_Channel_h_ #include #include #include namespace fevt { class ChannelSimData; class ChannelRecData; /** \brief Fluorescence Detector Channel Event * * Describes the event as seen by an electronics channel * * \author Stefano Argiro' * \date Jan 29, 2003 * \version $Id$ * \ingroup fevt **/ class Channel { public: /// Possible (electronic) channel status enum Status { eUnknown=0, eExists, eInDAQ, eDeSelected, eNoise, eVeto, eHasData }; public: unsigned int GetId() const { return fId; } unsigned int GetTelescopeId() const { return fTelescopeId; } unsigned int GetEyeId() const { return fEyeId; } ChannelSimData& GetSimData() { return *fSimData; } const ChannelSimData& GetSimData() const { return *fSimData; } void MakeSimData(); bool HasSimData() const { return fSimData; } ChannelRecData& GetRecData() { return *fRecData; } const ChannelRecData& GetRecData() const { return *fRecData; } void MakeRecData(); bool HasRecData() const { return fRecData; } void SetStatus(Status status) {fStatus=status;} Status GetStatus() const {return fStatus;} private: Channel(const unsigned int eyeId, const unsigned int telescopeId, const unsigned int channelId, Status status=eHasData) : fId(channelId), fTelescopeId(telescopeId), fEyeId(eyeId), fStatus(status) { } ~Channel() { } void SetTelescopeId(const unsigned int id) { fTelescopeId = id; } void SetEyeId(const unsigned int id) { fEyeId = id; } private: unsigned int fId; unsigned int fTelescopeId; unsigned int fEyeId; utl::ShadowPtr fSimData; utl::ShadowPtr fRecData; Status fStatus; friend class Telescope; }; } #endif // Configure (x)emacs for this file ... // Local Variables: // mode: c++ // compile-command: "make -C .. FEvent/Channel.o -k" // End: