#pragma once #include "GaudiAlg/GaudiAlgorithm.h" // Tb/TbKernel #include "TbKernel/ITbTimingSvc.h" // Local #include "TbUTRawData.h" #include "TbUTAlibavaDataRetreiver.h" #include "TbUTAlbavaFileValidator.h" #include "TbUTRawDataFactory.h" #include "TbUTAlibavaDataReader.h" #include <string> namespace TbUT { class RawDataReaderAlgorithm : public GaudiAlgorithm { public: RawDataReaderAlgorithm(const std::string& name, ISvcLocator* pSvcLocator); virtual StatusCode initialize(); virtual StatusCode execute(); private: void termiateApp(); bool m_isStandalone; bool m_isAType; unsigned int m_eventNumber; unsigned int m_skipEventNumber; std::string m_inputDataOption; std::string m_alibavaInputData; std::string m_outputLocation; int m_sensorNumber; double m_mean; double m_sigma; TbUT::AlibavaDataRetreiver m_alibava; TbUT::AlbavaFileValidator m_fileValidator; TbUT::RawDataFactory::DataReaderPtr m_rawDataReader; TbUT::RawDataFactory m_inputDataFactory; /// Pointer to timing service mutable ITbTimingSvc* m_timingSvc; /// Access timing service on-demand ITbTimingSvc* timingSvc() const { if (!m_timingSvc) m_timingSvc = svc<ITbTimingSvc>("TbTimingSvc", true); return m_timingSvc; } }; }