diff --git a/src/OutputByOrbit.cc b/src/OutputByOrbit.cc index 3230fe9b35b3d5aa12bec96ca124a8bbc7d29006..d154146e0e6f27bb07b9a2d638218171e6228901 100644 --- a/src/OutputByOrbit.cc +++ b/src/OutputByOrbit.cc @@ -21,7 +21,7 @@ void OutputByOrbitStream::MonitorEndOfRun() { // An unhandled run just stopped; wait N seconds in case the pipeline is still processing std::this_thread::sleep_for(std::chrono::seconds(EOR_DELAY_SECS)); // Write EoR file for the most recent run - output_file_handler_.write_EoR_file(); + if (output_file_handler_.isMainPipeline()) output_file_handler_.write_EoR_file(); // Update local EoR tag latest_EoR = current_run_number; } diff --git a/src/OutputFileHandler.cc b/src/OutputFileHandler.cc index 4b0173d3cef47c2d6cc2dee92edec9215e20474f..c925c612c72065e706352214b09d635471f9bf28 100644 --- a/src/OutputFileHandler.cc +++ b/src/OutputFileHandler.cc @@ -184,7 +184,7 @@ void OutputFileHandler::close_and_rename::operator()() const { } if (outputFile.Index() == outputfilehandler_->max_index_per_ls_ && - outputfilehandler_->getCMSSWHeaders()) { // end of lumisection + outputfilehandler_->getCMSSWHeaders() && mainPipeline_) { // end of lumisection outputfilehandler_->write_EoLS_file(outputFile.Lumisection()); } } @@ -222,7 +222,7 @@ void OutputFileHandler::write_EoLS_file(uint32_t ls) { void OutputFileHandler::write_EoR_file() { assert(current_index_ > 0 && nOrbitsPerFile_ > 0); int ls = int(1) + (current_index_ * nOrbitsPerFile_) / constants::N_orbits_per_lumisection; - write_EoLS_file(ls); + if (mainPipeline_) write_EoLS_file(ls); std::stringstream EoR_filename; EoR_filename << run_dir_ << "/" << "run" << std::setfill('0') << std::setw(6) << current_run_number_ diff --git a/src/OutputFileHandler.h b/src/OutputFileHandler.h index 7bea98d22f8ecd09de7caedb1a4e0fccd0f4e004..42fc8aebb2069a1b8f6ec152e28fe53a00e77005 100644 --- a/src/OutputFileHandler.h +++ b/src/OutputFileHandler.h @@ -28,6 +28,7 @@ class OutputFileHandler { close_and_rename_(base_path_, num_orbits_per_file), nOrbitsPerFile_(num_orbits_per_file), cmsswHeaders_(has_cmssw_headers), + mainPipeline_(filename_suffix_==".raw" ? true : false), sourceID_(source_id), t{}, max_index_per_ls_( @@ -70,6 +71,8 @@ class OutputFileHandler { void write_EoR_file(); int NOrbitsPerFile() const { return nOrbitsPerFile_; } + bool isMainPipeline() const { return mainPipeline_; } + class close_and_rename { OutputFileHandler *outputfilehandler_{}; @@ -123,6 +126,7 @@ class OutputFileHandler { close_and_rename close_and_rename_; int nOrbitsPerFile_; const bool cmsswHeaders_; + const bool mainPipeline_; int sourceID_; std::thread t; const uint32_t max_index_per_ls_;