From 3267caaa9ea402eca264e041097cdb059f7ddd5d Mon Sep 17 00:00:00 2001 From: Giovanna Lazzari Miotto <giovanna.lazzari.miotto@cern.ch> Date: Wed, 24 Apr 2024 17:55:40 +0200 Subject: [PATCH] Use control's run number to trigger EoR --- src/OutputByOrbit.cc | 6 ++++-- src/OutputFileHandler.cc | 1 + src/OutputFileHandler.h | 39 +++++++++++++++++++++------------------ 3 files changed, 26 insertions(+), 20 deletions(-) diff --git a/src/OutputByOrbit.cc b/src/OutputByOrbit.cc index 9db8618e..581a94a7 100644 --- a/src/OutputByOrbit.cc +++ b/src/OutputByOrbit.cc @@ -12,14 +12,16 @@ #include "tools.h" void OutputByOrbitStream::MonitorEndOfRun() { - int latest_EoR = -1; + int latest_EoR = 0; while (true) { - int current_run_number = output_file_handler_.GetCurrentRunNumber(); + // int current_run_number = output_file_handler_.GetCurrentRunNumber(); + int current_run_number = control_.run_number; if (!control_.running && latest_EoR != current_run_number) { // An unhandled run just stopped; wait N seconds in case the pipeline is still processing // Write EoR file for the most recent run if (output_file_handler_.isMainPipeline()) { output_file_handler_.write_EoR_file(); + output_file_handler_.setCurrentRunNumber(control_.run_number); } // Update local EoR tag latest_EoR = current_run_number; diff --git a/src/OutputFileHandler.cc b/src/OutputFileHandler.cc index fdc95dac..25fd465e 100644 --- a/src/OutputFileHandler.cc +++ b/src/OutputFileHandler.cc @@ -250,6 +250,7 @@ void OutputFileHandler::write_EoR_file() { EoR_file.close(); run_NOrbits_ = 0; run_NFiles_ = 0; + current_index_ = 0; } void OutputFileHandler::check_if_all_raw_written() { diff --git a/src/OutputFileHandler.h b/src/OutputFileHandler.h index 14043011..1929cc23 100644 --- a/src/OutputFileHandler.h +++ b/src/OutputFileHandler.h @@ -95,6 +95,26 @@ class OutputFileHandler { int nOrbitsPerFile_; }; + public: + size_t getLumisectionFileSize() { return ls_file_size_; } + uint32_t getLumisectionNOrbits() { return ls_NOrbits_; } + uint32_t getLumisectionNFiles() { return ls_NFiles_; } + uint32_t getRunNOrbits() { return run_NOrbits_; } + + void updateLumisectionFileSize(size_t file_size) { ls_file_size_ += file_size; } + void updateLumisectionNOrbits(uint32_t NOrbits) { ls_NOrbits_ += NOrbits; } + void updateLumisectionNFiles(uint32_t NFiles) { ls_NFiles_ += NFiles; } + void updateRunNOrbits(uint32_t NOrbits) { run_NOrbits_ += NOrbits; } + void updateRunNFiles(uint32_t NFiles) { run_NFiles_ += NFiles; } + + void setLumisectionFileSize(size_t file_size) { ls_file_size_ = file_size; } + void setLumisectionNOrbits(uint32_t NOrbits) { ls_NOrbits_ = NOrbits; } + void setLumisectionNFiles(uint32_t NFiles) { ls_NFiles_ = NFiles; } + void setRunNOrbits(uint32_t NOrbits) { run_NOrbits_ = NOrbits; } + void setRunNFiles(uint32_t NFiles) { run_NFiles_ = NFiles; } + + void setCurrentRunNumber(int n) { current_run_number_ = n; } + private: void create_output_directory_maybe(std::string &output_directory); @@ -121,23 +141,6 @@ class OutputFileHandler { static std::atomic<bool> file_handler_running_; - size_t getLumisectionFileSize() { return ls_file_size_; } - uint32_t getLumisectionNOrbits() { return ls_NOrbits_; } - uint32_t getLumisectionNFiles() { return ls_NFiles_; } - uint32_t getRunNOrbits() { return run_NOrbits_; } - - void updateLumisectionFileSize(size_t file_size) { ls_file_size_ += file_size; } - void updateLumisectionNOrbits(uint32_t NOrbits) { ls_NOrbits_ += NOrbits; } - void updateLumisectionNFiles(uint32_t NFiles) { ls_NFiles_ += NFiles; } - void updateRunNOrbits(uint32_t NOrbits) { run_NOrbits_ += NOrbits; } - void updateRunNFiles(uint32_t NFiles) { run_NFiles_ += NFiles; } - - void setLumisectionFileSize(size_t file_size) { ls_file_size_ = file_size; } - void setLumisectionNOrbits(uint32_t NOrbits) { ls_NOrbits_ = NOrbits; } - void setLumisectionNFiles(uint32_t NFiles) { ls_NFiles_ = NFiles; } - void setRunNOrbits(uint32_t NOrbits) { run_NOrbits_ = NOrbits; } - void setRunNFiles(uint32_t NFiles) { run_NFiles_ = NFiles; } - std::string base_path_; std::string run_dir_; std::string filename_prefix_; @@ -154,7 +157,7 @@ class OutputFileHandler { int numPipelines_; std::thread t; const uint32_t max_index_per_ls_; - size_t ls_file_size_; + size_t ls_file_size_{}; size_t file_size_{}; uint32_t NOrbits_{}; uint32_t ls_NOrbits_{}; -- GitLab