#ifndef _mevt_Scintillator_h_ #define _mevt_Scintillator_h_ #include #include #include #include namespace mevt { /** * \class Scintillator Scintillator.h "mevt/Scintillator.h" * \brief Scintillator level event data. * * \author Rodolfo Federico Gamarra * \date 08 Mar 2009 * \ingroup mevt */ class Scintillator { public: // Rely on implicit ones. //Scintillator(const Scintillator& scint); //Scintillator& operator=(const Scintillator& scint); /** * \name Scintillator simulation data. */ //@{ ScintillatorSimData& GetSimData() { return *fSimData; } const ScintillatorSimData& GetSimData() const { return *fSimData; } void MakeSimData(); bool HasSimData() const { return fSimData; } //@} /** * \name Scintillator reconstruction data. */ //@{ ScintillatorRecData& GetRecData() { return *fRecData; } const ScintillatorRecData& GetRecData() const { return *fRecData; } void MakeRecData(); bool HasRecData() const { return fRecData; } //@ int GetId() const { return fId; } private: Scintillator(); ~Scintillator(); /** * \brief Constructs the Scintillator with the given identificator. */ Scintillator(int sId) : fId(sId) { } /** * \brief Friendship to allow creation. */ friend class evt::ComponentGroup; /** * \brief Friendship for destruction. * * Depends on evt::ComponentGroup innards. */ template friend void boost::checked_delete(T*); int fId; utl::ShadowPtr fSimData; utl::ShadowPtr fRecData; }; } // namespace mevt #endif