5#ifndef EFINTERFACESVC_H
6#define EFINTERFACESVC_H
8#include "GaudiKernel/IIncidentListener.h"
9#include "Gaudi/Interfaces/IOptionsSvc.h"
12#include "eformat/eformat.h"
13#include "df_ef_interface/df_ef_interface.h"
14#include <boost/dll.hpp>
15#include <boost/property_tree/ptree.hpp>
42 virtual StatusCode
stop()
override;
43 virtual StatusCode
finalize()
override;
45 virtual void handle(
const Incident& incident)
override;
46 virtual Status getNext(std::unique_ptr<uint32_t[]>& rawEventPtr);
47 void eventDone(std::unique_ptr<uint32_t[]> rawEventPtr);
63 "Name of the EFDF interface shared library to load"};
65 "Timeout for getting the next event (in milliseconds)"};
66 Gaudi::Property<int>
m_stride {
this,
"Stride", 1,
67 "Stride for the event retrieval"};
69 "File offset for the event retrieval"};
71 "Number of events to process"};
73 "Number of events to skip"};
75 "Flag to enable looping over files"};
76 Gaudi::Property<std::string>
m_outputFileName {
this,
"OutputFileName",
"test_output.data",
77 "Name of the output file"};
78 Gaudi::Property<std::vector<std::string>>
m_files {
this,
"Files", {
""},
79 "List of input files"};
81 "Run number for the events processing"};
83 "Trigger type for the events processing"};
88 Gaudi::Property<std::string>
m_detMask {
this,
"DetMask",
"00000000000000000000000000000000",
92 Gaudi::Property<std::string>
m_stream {
this,
"Stream",
"stream",
Define macros for attributes used to control the static checker.
Gaudi::Property< std::string > m_outputFileName
virtual ~EFInterfaceSvc() noexcept override
@ NO_EVENT
no event available
@ STOP
stop transition (no more events)
Gaudi::Property< int > m_getNextTimeout
std::queue< std::future< std::unique_ptr< uint32_t[]> > > m_getNextFuture
EFInterfaceSvc(const std::string &name, ISvcLocator *svc)
virtual StatusCode stop() override
virtual StatusCode initialize ATLAS_NOT_THREAD_SAFE() override
virtual StatusCode finalize() override
Gaudi::Property< int > m_beamType
uint32_t m_acceptedEvents
Gaudi::Property< std::string > m_stream
Gaudi::Property< std::string > m_detMask
Gaudi::Property< int > m_triggerType
Gaudi::Property< int > m_numEvents
void eventDone(std::unique_ptr< uint32_t[]> rawEventPtr)
virtual Status getNext(std::unique_ptr< uint32_t[]> &rawEventPtr)
Gaudi::Property< std::string > m_interface_library_name
Gaudi::Property< bool > m_loopOverFiles
Gaudi::Property< std::vector< std::string > > m_files
Gaudi::Property< int > m_fileOffset
std::unique_ptr< daq::df_ef_interface::EventHandler > m_eventHandler
Gaudi::Property< int > m_runNumber
Gaudi::Property< std::string > m_T0_project_tag
Gaudi::Property< int > m_beamEnergy
boost::dll::shared_library m_efdfinterface_library
Library with the df_ef_interface implementation.
Gaudi::Property< int > m_lumiblock
virtual void handle(const Incident &incident) override
uint32_t m_processedEvents
Gaudi::Property< int > m_stride
std::mutex m_queueMutex
Mutex for future queue.
uint32_t m_rejectedEvents
Gaudi::Property< int > m_skipEvents
boost::property_tree::ptree prepInterfacePTree()