#ifndef TBPIXELSVC_H #define TBPIXELSVC_H // Gaudi #include "GaudiKernel/Service.h" #include "GaudiKernel/Bootstrap.h" #include "GaudiKernel/MsgStream.h" // Local #include "TbKernel/ITbDataSvc.h" #include <stdint.h> template <class TYPE> class SvcFactory; /** @class TbDataSvc TbDataSvc.h * * Implementation of the Testbeam data / configuration lookup services * for use with EOS */ class TbDataSvc : public extends1<Service, ITbDataSvc> { public: /// Constructor TbDataSvc(const std::string& name, ISvcLocator* svc); /// Destructor virtual ~TbDataSvc(); virtual StatusCode initialize(); virtual StatusCode finalize(); virtual const std::vector<std::string>& getInputFiles() { return m_inputFiles; } virtual const std::vector<std::string>& getPixelConfig() { return m_pixelFiles; } virtual const std::string& getTimingConfig() { return m_timingFile; } virtual const std::string& getAlignmentFile() { return m_alignmentFile; } virtual const std::vector<std::string>& getEtaConfig() { return m_etaFiles; } private: /// Allow SvcFactory to instantiate the service. friend class SvcFactory<TbDataSvc>; std::vector<std::string> m_inputs; std::vector<std::string> m_inputFiles; std::vector<std::string> m_pixelFiles; std::string m_alignmentFile; std::string m_timingFile; std::vector<std::string> m_etaFiles; /// Pointer to message stream mutable MsgStream* m_msg = nullptr; /// On-demand access to message stream MsgStream& msg() const { if (!m_msg) m_msg = new MsgStream(msgSvc(), name()); return *m_msg; } /// Add the prefix for reading network files. std::string expandPath(const std::string& fname); }; #endif