24 #ifndef DD4HEP_DDG4_LCIOFILEREADER_H
25 #define DD4HEP_DDG4_LCIOFILEREADER_H
34 using namespace lcio ;
37 namespace IO {
class LCReader; }
46 template <
class T=EVENT::LCParameters>
void EventParameters::ingestParameters(T
const& source) {
47 EVENT::StringVec intKeys;
48 EVENT::StringVec floatKeys;
49 EVENT::StringVec stringKeys;
50 source.getIntKeys(intKeys);
51 source.getFloatKeys(floatKeys);
52 source.getStringKeys(stringKeys);
53 for(
auto const&
key: intKeys) {
55 source.getIntVals(
key,intVec);
56 m_intValues[
key] = std::move(intVec);
58 for(
auto const&
key: floatKeys) {
59 EVENT::FloatVec floatVec;
60 source.getFloatVals(
key,floatVec);
61 m_fltValues[
key] = std::move(floatVec);
63 for(
auto const&
key: stringKeys) {
64 EVENT::StringVec stringVec;
65 source.getStringVals(
key,stringVec);
66 m_strValues[
key] = std::move(stringVec);
90 virtual EventReaderStatus readParticleCollection(
int event_number, EVENT::LCCollection** particles);
93 virtual EventReaderStatus setParameters(std::map< std::string, std::string >& parameters);
97 #endif // DD4HEP_DDG4_LCIOFILEREADER_H
101 #include <UTIL/ILDConf.h>
111 , m_collectionName(LCIO::MCPARTICLE)
113 m_reader = ::lcio::LCFactory::getInstance()->createLCReader(LCReader::directAccess);
114 printout(INFO,
"LCIOFileReader",
"Created file reader. Try to open input %s",nam.c_str());
121 dd4hep::detail::deletePtr(
m_reader);
130 if( m_currEvent == 0 && event_number != 0 ) {
131 m_reader->skipNEvents( event_number ) ;
132 printout(INFO,
"LCIOFileReader::moveToEvent",
"Skipping the first %d events ", event_number );
133 printout(INFO,
"LCIOFileReader::moveToEvent",
"Event number before skipping: %d", m_currEvent );
134 m_currEvent = event_number;
135 printout(INFO,
"LCIOFileReader::moveToEvent",
"Event number after skipping: %d", m_currEvent );
137 return EVENT_READER_OK;
144 ::lcio::LCEvent* evt =
m_reader->readNextEvent();
148 *particles = evt->getCollection(m_collectionName);
150 printout(INFO,
"LCIOFileReader",
"read collection %s from event %d in run %d ",
151 m_collectionName.c_str(), evt->getEventNumber(), evt->getRunNumber());
165 return EVENT_READER_OK;
168 return EVENT_READER_EOF;
175 _getParameterValue( parameters,
"MCParticleCollectionName", m_collectionName, std::string(LCIO::MCPARTICLE));
176 return EVENT_READER_OK;