/* * ProfilerPlaneV.hh * * Virtual base class from which the concrete templated classes for * X and Y planes will be derived from. * Created on: Sep 29, 2015 * Author: Hovanes Egiyan */ #ifndef PROFILERPLANEV_HH_ #define PROFILERPLANEV_HH_ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "ProfilerPlaneDataFitter.hh" #include "ProfilerDetComponent.hh" #include "ProfilerPVs.hh" class ProfilerDetector; class ProfilerPlaneV: public ProfilerDetComponent, public ProfilerPlaneDataFitter { protected: // Sleep time static unsigned ppvSleepTime; // Map of flags std::map > ppvFlag; // Flag to indicate if this is a simulation or not bool ppvIsSimulation; public: ProfilerPlaneV( ProfilerDetector* det, bool reversedAxis = false ); ProfilerPlaneV( const ProfilerPlaneV& p ); virtual ~ProfilerPlaneV(); virtual ProfilerPlaneV& operator =( const ProfilerPlaneV& p ); inline virtual std::map > getFlags() { MtxLock objLock( mcMutex ); return ppvFlag; } inline virtual std::map > setFlags( const std::map >& f ) { MtxLock objLock( mcMutex ); return (ppvFlag = f); } inline virtual unsigned getSleepTime() const { return ppvSleepTime; } inline virtual unsigned setSleepTime( const unsigned time ) { return (ppvSleepTime = time); } inline bool isSimulation() const { return ppvIsSimulation; } inline bool setSimulation( bool ppvIsSimulation ) { return (this->ppvIsSimulation = ppvIsSimulation); } virtual ProfilerPVs* setPVs( ProfilerPVs* pv ); virtual void notifyInputFlagWatchers() = 0; virtual void transferFIFO() = 0; virtual void eraseAndStartScalers() = 0; virtual void registerFlag( const SS_ID ssID, const EV_ID flagID, const std::string flagName ); }; #endif /* PROFILERPLANEV_HH_ */