Skip to content
Snippets Groups Projects
Commit 0c898bbc authored by zoujh@ihep.ac.cn's avatar zoujh@ihep.ac.cn
Browse files

support reading a file list in LCIODataSvc

parent 9274d3cb
No related branches found
No related tags found
No related merge requests found
......@@ -80,6 +80,8 @@ private:
int m_eventNum{0};
/// Number of events in the file / to process
int m_eventMax{-1};
/// the current file index in the m_filenames vector
int m_fileIndex{0};
SmartIF<IConversionSvc> m_cnvSvc;
......
......@@ -34,11 +34,10 @@ StatusCode LCIODataSvc::initialize() {
}
if (m_filenames.size() > 0) {
if (m_filenames[0] != "") {
m_reader->open(m_filenames);
m_eventMax = m_reader->getNumberOfEvents();
}
m_reader->open(m_filenames[0]);
m_eventMax = m_reader->getNumberOfEvents();
}
return status;
}
/// Service reinitialisation
......@@ -48,6 +47,9 @@ StatusCode LCIODataSvc::reinitialize() {
}
/// Service finalization
StatusCode LCIODataSvc::finalize() {
m_reader->close();
delete m_reader;
m_reader = nullptr;
m_cnvSvc = 0; // release
DataSvc::finalize().ignore();
return StatusCode::SUCCESS;
......@@ -75,10 +77,17 @@ void LCIODataSvc::endOfRead() {
// m_provider.clearCaches();
// m_reader.endOfEvent();
if ( ++m_eventNum >= m_eventMax ) {
info() << "Reached end of file with event " << m_eventMax << endmsg;
IEventProcessor* eventProcessor;
service("ApplicationMgr", eventProcessor);
eventProcessor->stopRun();
if ( ++m_fileIndex < m_filenames.size() ) { // move to next file
m_reader->close();
m_reader->open( m_filenames[m_fileIndex] );
m_eventMax += m_reader->getNumberOfEvents();
}
else { // reach to the end of the file list
info() << "Reached end of file with event " << m_eventMax << endmsg;
IEventProcessor* eventProcessor;
service("ApplicationMgr", eventProcessor);
eventProcessor->stopRun();
}
}
}
evt = nullptr;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment