Skip to content
Snippets Groups Projects
Commit 61a489ef authored by lintao@ihep.ac.cn's avatar lintao@ihep.ac.cn
Browse files

Merge branch 'master' into 'master'

support reading a file list in LCIODataSvc

See merge request cepc-prototype/CEPCSW!11
parents 9274d3cb 0c898bbc
No related branches found
No related tags found
No related merge requests found
...@@ -80,6 +80,8 @@ private: ...@@ -80,6 +80,8 @@ private:
int m_eventNum{0}; int m_eventNum{0};
/// Number of events in the file / to process /// Number of events in the file / to process
int m_eventMax{-1}; int m_eventMax{-1};
/// the current file index in the m_filenames vector
int m_fileIndex{0};
SmartIF<IConversionSvc> m_cnvSvc; SmartIF<IConversionSvc> m_cnvSvc;
......
...@@ -34,11 +34,10 @@ StatusCode LCIODataSvc::initialize() { ...@@ -34,11 +34,10 @@ StatusCode LCIODataSvc::initialize() {
} }
if (m_filenames.size() > 0) { if (m_filenames.size() > 0) {
if (m_filenames[0] != "") { m_reader->open(m_filenames[0]);
m_reader->open(m_filenames); m_eventMax = m_reader->getNumberOfEvents();
m_eventMax = m_reader->getNumberOfEvents();
}
} }
return status; return status;
} }
/// Service reinitialisation /// Service reinitialisation
...@@ -48,6 +47,9 @@ StatusCode LCIODataSvc::reinitialize() { ...@@ -48,6 +47,9 @@ StatusCode LCIODataSvc::reinitialize() {
} }
/// Service finalization /// Service finalization
StatusCode LCIODataSvc::finalize() { StatusCode LCIODataSvc::finalize() {
m_reader->close();
delete m_reader;
m_reader = nullptr;
m_cnvSvc = 0; // release m_cnvSvc = 0; // release
DataSvc::finalize().ignore(); DataSvc::finalize().ignore();
return StatusCode::SUCCESS; return StatusCode::SUCCESS;
...@@ -75,10 +77,17 @@ void LCIODataSvc::endOfRead() { ...@@ -75,10 +77,17 @@ void LCIODataSvc::endOfRead() {
// m_provider.clearCaches(); // m_provider.clearCaches();
// m_reader.endOfEvent(); // m_reader.endOfEvent();
if ( ++m_eventNum >= m_eventMax ) { if ( ++m_eventNum >= m_eventMax ) {
info() << "Reached end of file with event " << m_eventMax << endmsg; if ( ++m_fileIndex < m_filenames.size() ) { // move to next file
IEventProcessor* eventProcessor; m_reader->close();
service("ApplicationMgr", eventProcessor); m_reader->open( m_filenames[m_fileIndex] );
eventProcessor->stopRun(); 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; 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