From 0a85418818c3d05fc565bf897b1d95c912cdeea6 Mon Sep 17 00:00:00 2001 From: lietava Date: Sat, 5 Apr 2025 16:02:26 +0200 Subject: [PATCH 1/7] dev: finishing orbitsox and orbitreset via zmq --- Detectors/CTP/workflowScalers/CMakeLists.txt | 3 +- .../include/CTPWorkflowScalers/RunManager.h | 4 ++ .../CTP/workflowScalers/src/RunManager.cxx | 48 ++++++++++++++++++- .../workflowScalers/src/ctpCCDBManager.cxx | 5 +- 4 files changed, 55 insertions(+), 5 deletions(-) diff --git a/Detectors/CTP/workflowScalers/CMakeLists.txt b/Detectors/CTP/workflowScalers/CMakeLists.txt index a31774ac66d69..3a80948425374 100644 --- a/Detectors/CTP/workflowScalers/CMakeLists.txt +++ b/Detectors/CTP/workflowScalers/CMakeLists.txt @@ -13,7 +13,8 @@ o2_add_library(CTPWorkflowScalers SOURCES src/RunManager.cxx PUBLIC_LINK_LIBRARIES O2::Framework O2::DataFormatsCTP - AliceO2::BookkeepingApi) + AliceO2::BookkeepingApi + AliceO2::InfoLogger) o2_target_root_dictionary(CTPWorkflowScalers HEADERS include/CTPWorkflowScalers/ctpCCDBManager.h) o2_add_executable( diff --git a/Detectors/CTP/workflowScalers/include/CTPWorkflowScalers/RunManager.h b/Detectors/CTP/workflowScalers/include/CTPWorkflowScalers/RunManager.h index e0b204e6c4ce5..54010b841a89d 100644 --- a/Detectors/CTP/workflowScalers/include/CTPWorkflowScalers/RunManager.h +++ b/Detectors/CTP/workflowScalers/include/CTPWorkflowScalers/RunManager.h @@ -18,6 +18,9 @@ #include "DataFormatsCTP/Configuration.h" #include "BookkeepingApi/BkpClientFactory.h" #include "BookkeepingApi/BkpClient.h" +#include + + using namespace o2::bkp::api; namespace o2 { @@ -71,6 +74,7 @@ class CTPRunManager : public ctpCCDBManager int mEOX = 0; // redundancy check int mNew = 1; // 1 - no CCDB: used for QC int mQCWritePeriod = 3; // Time in 10secs between two writes to QCCD + AliceO2::InfoLogger::InfoLogger mInfoLogger; ClassDefNV(CTPRunManager, 7); }; } // namespace ctp diff --git a/Detectors/CTP/workflowScalers/src/RunManager.cxx b/Detectors/CTP/workflowScalers/src/RunManager.cxx index ac3eda60094e9..52e968c89c3ac 100644 --- a/Detectors/CTP/workflowScalers/src/RunManager.cxx +++ b/Detectors/CTP/workflowScalers/src/RunManager.cxx @@ -18,6 +18,7 @@ #include #include "CommonUtils/StringUtils.h" #include + using namespace o2::ctp; /// /// Active run to keep cfg and saclers of active runs @@ -232,10 +233,53 @@ int CTPRunManager::processMessage(std::string& topic, const std::string& message return 0; } if (topic.find("soxorbit") != std::string::npos) { - return 0; + std::vector tokens = o2::utils::Str::tokenize(message, ' '); + int ret = 0; + if(tokens.size() == 3) { + long timestamp = std::stol(tokens[0]); + uint32_t runnumber = std::stoul(tokens[1]); + uint32_t orbit = std::stoul(tokens[2]); + ret = saveSoxOrbit(timestamp,runnumber,orbit); + LOG(info) << "soxorbit: " << timestamp << " " << runnumber << " " << orbit; + std::string logmessage; + if(ret) { + logmessage = "Failed to update CCDB with SOX orbit."; + } else { + logmessage = "CCDB updated with SOX orbit."; + } + int rlog = mInfoLogger.log(logmessage.c_str()); + if(rlog) { + LOG(warn) << "Writing to infologger failed."; + } + } else { + LOG(error) << "Topic soxorbit dize !=3: " << message << " token size:" << tokens.size(); + ret = 1; + } + return ret; } if (topic.find("orbitreset") != std::string::npos) { - return 0; + std::vector tokens = o2::utils::Str::tokenize(message, ' '); + int ret = 0; + if(tokens.size() == 1) { + long timestamp = std::stol(tokens[0]); + ret = saveOrbitReset(timestamp); + LOG(info) << "orbitreset: " << timestamp; + std::string logmessage; + if(ret) { + logmessage = "Failed to update CCDB with orbitreset."; + return 1; + } else { + logmessage = "CCDB updated with orbitreset."; + } + int rlog = mInfoLogger.log(logmessage.c_str()); + if(rlog) { + LOG(warn) << "Writing to infologger failed."; + } + } else { + LOG(error) << "Topic orbit reset != 2: " << message << " token size:" << tokens.size(); + ret = 1; + } + return ret; } static int nerror = 0; if (topic.find("sox") != std::string::npos) { diff --git a/Detectors/CTP/workflowScalers/src/ctpCCDBManager.cxx b/Detectors/CTP/workflowScalers/src/ctpCCDBManager.cxx index 0d81b896b3e91..90e6c9ea6066d 100644 --- a/Detectors/CTP/workflowScalers/src/ctpCCDBManager.cxx +++ b/Detectors/CTP/workflowScalers/src/ctpCCDBManager.cxx @@ -122,7 +122,7 @@ int ctpCCDBManager::saveSoxOrbit(uint32_t runNumber, uint32_t soxOrbit, long tim vect.push_back(timestamp); vect.push_back((uint64_t)runNumber); vect.push_back((uint64_t)soxOrbit); - long tmin = timestamp; + long tmin = timestamp/1000; long tmax = tmin + 381928219; o2::ccdb::CcdbApi api; map metadata; // can be empty @@ -149,9 +149,10 @@ int ctpCCDBManager::saveOrbitReset(long timeStamp) if (timeStamp == 0) { auto now = std::chrono::system_clock::now(); timeStamp = std::chrono::duration_cast(now.time_since_epoch()).count(); + LOG(warn) << "Received timestamp = 0 , using current time:" << timeStamp; } vect.push_back(timeStamp); - long tmin = timeStamp; + long tmin = timeStamp/1000; long tmax = tmin + 381928219; o2::ccdb::CcdbApi api; map metadata; // can be empty From 0ab975b0d6f62fa947f372138b7f592c8258e4a3 Mon Sep 17 00:00:00 2001 From: lietava Date: Sat, 5 Apr 2025 16:03:05 +0200 Subject: [PATCH 2/7] clang --- .../include/CTPWorkflowScalers/RunManager.h | 1 - Detectors/CTP/workflowScalers/src/RunManager.cxx | 16 ++++++++-------- .../CTP/workflowScalers/src/ctpCCDBManager.cxx | 4 ++-- 3 files changed, 10 insertions(+), 11 deletions(-) diff --git a/Detectors/CTP/workflowScalers/include/CTPWorkflowScalers/RunManager.h b/Detectors/CTP/workflowScalers/include/CTPWorkflowScalers/RunManager.h index 54010b841a89d..d988c09ef9639 100644 --- a/Detectors/CTP/workflowScalers/include/CTPWorkflowScalers/RunManager.h +++ b/Detectors/CTP/workflowScalers/include/CTPWorkflowScalers/RunManager.h @@ -20,7 +20,6 @@ #include "BookkeepingApi/BkpClient.h" #include - using namespace o2::bkp::api; namespace o2 { diff --git a/Detectors/CTP/workflowScalers/src/RunManager.cxx b/Detectors/CTP/workflowScalers/src/RunManager.cxx index 52e968c89c3ac..be82663f0183b 100644 --- a/Detectors/CTP/workflowScalers/src/RunManager.cxx +++ b/Detectors/CTP/workflowScalers/src/RunManager.cxx @@ -235,20 +235,20 @@ int CTPRunManager::processMessage(std::string& topic, const std::string& message if (topic.find("soxorbit") != std::string::npos) { std::vector tokens = o2::utils::Str::tokenize(message, ' '); int ret = 0; - if(tokens.size() == 3) { + if (tokens.size() == 3) { long timestamp = std::stol(tokens[0]); uint32_t runnumber = std::stoul(tokens[1]); uint32_t orbit = std::stoul(tokens[2]); - ret = saveSoxOrbit(timestamp,runnumber,orbit); - LOG(info) << "soxorbit: " << timestamp << " " << runnumber << " " << orbit; + ret = saveSoxOrbit(timestamp, runnumber, orbit); + LOG(info) << "soxorbit: " << timestamp << " " << runnumber << " " << orbit; std::string logmessage; - if(ret) { + if (ret) { logmessage = "Failed to update CCDB with SOX orbit."; } else { logmessage = "CCDB updated with SOX orbit."; } int rlog = mInfoLogger.log(logmessage.c_str()); - if(rlog) { + if (rlog) { LOG(warn) << "Writing to infologger failed."; } } else { @@ -260,19 +260,19 @@ int CTPRunManager::processMessage(std::string& topic, const std::string& message if (topic.find("orbitreset") != std::string::npos) { std::vector tokens = o2::utils::Str::tokenize(message, ' '); int ret = 0; - if(tokens.size() == 1) { + if (tokens.size() == 1) { long timestamp = std::stol(tokens[0]); ret = saveOrbitReset(timestamp); LOG(info) << "orbitreset: " << timestamp; std::string logmessage; - if(ret) { + if (ret) { logmessage = "Failed to update CCDB with orbitreset."; return 1; } else { logmessage = "CCDB updated with orbitreset."; } int rlog = mInfoLogger.log(logmessage.c_str()); - if(rlog) { + if (rlog) { LOG(warn) << "Writing to infologger failed."; } } else { diff --git a/Detectors/CTP/workflowScalers/src/ctpCCDBManager.cxx b/Detectors/CTP/workflowScalers/src/ctpCCDBManager.cxx index 90e6c9ea6066d..cbe8fe5dd675f 100644 --- a/Detectors/CTP/workflowScalers/src/ctpCCDBManager.cxx +++ b/Detectors/CTP/workflowScalers/src/ctpCCDBManager.cxx @@ -122,7 +122,7 @@ int ctpCCDBManager::saveSoxOrbit(uint32_t runNumber, uint32_t soxOrbit, long tim vect.push_back(timestamp); vect.push_back((uint64_t)runNumber); vect.push_back((uint64_t)soxOrbit); - long tmin = timestamp/1000; + long tmin = timestamp / 1000; long tmax = tmin + 381928219; o2::ccdb::CcdbApi api; map metadata; // can be empty @@ -152,7 +152,7 @@ int ctpCCDBManager::saveOrbitReset(long timeStamp) LOG(warn) << "Received timestamp = 0 , using current time:" << timeStamp; } vect.push_back(timeStamp); - long tmin = timeStamp/1000; + long tmin = timeStamp / 1000; long tmax = tmin + 381928219; o2::ccdb::CcdbApi api; map metadata; // can be empty From 904dd80d708fe8123c0e1dbe0cfe098187b8e549 Mon Sep 17 00:00:00 2001 From: lietava Date: Sat, 5 Apr 2025 16:47:57 +0200 Subject: [PATCH 3/7] fix --- Detectors/CTP/workflowScalers/src/RunManager.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Detectors/CTP/workflowScalers/src/RunManager.cxx b/Detectors/CTP/workflowScalers/src/RunManager.cxx index be82663f0183b..dccee7f5b9353 100644 --- a/Detectors/CTP/workflowScalers/src/RunManager.cxx +++ b/Detectors/CTP/workflowScalers/src/RunManager.cxx @@ -239,7 +239,7 @@ int CTPRunManager::processMessage(std::string& topic, const std::string& message long timestamp = std::stol(tokens[0]); uint32_t runnumber = std::stoul(tokens[1]); uint32_t orbit = std::stoul(tokens[2]); - ret = saveSoxOrbit(timestamp, runnumber, orbit); + ret = saveSoxOrbit(runnumber, orbit, timestamp); LOG(info) << "soxorbit: " << timestamp << " " << runnumber << " " << orbit; std::string logmessage; if (ret) { From fa7990737acc81f41abc2f82d36fcf14d07d08d9 Mon Sep 17 00:00:00 2001 From: lietava Date: Mon, 7 Apr 2025 09:54:23 +0200 Subject: [PATCH 4/7] fix --- Detectors/CTP/workflowScalers/src/RunManager.cxx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Detectors/CTP/workflowScalers/src/RunManager.cxx b/Detectors/CTP/workflowScalers/src/RunManager.cxx index dccee7f5b9353..dff6925e9ce2d 100644 --- a/Detectors/CTP/workflowScalers/src/RunManager.cxx +++ b/Detectors/CTP/workflowScalers/src/RunManager.cxx @@ -247,7 +247,7 @@ int CTPRunManager::processMessage(std::string& topic, const std::string& message } else { logmessage = "CCDB updated with SOX orbit."; } - int rlog = mInfoLogger.log(logmessage.c_str()); + int rlog = mInfoLogger.logInfo(logmessage); if (rlog) { LOG(warn) << "Writing to infologger failed."; } @@ -271,7 +271,7 @@ int CTPRunManager::processMessage(std::string& topic, const std::string& message } else { logmessage = "CCDB updated with orbitreset."; } - int rlog = mInfoLogger.log(logmessage.c_str()); + int rlog = mInfoLogger.logInfo(logmessage); if (rlog) { LOG(warn) << "Writing to infologger failed."; } From deb25abda51ff35539c900b850bc196bcacf4a5b Mon Sep 17 00:00:00 2001 From: lietava Date: Thu, 10 Apr 2025 12:43:34 +0200 Subject: [PATCH 5/7] dev: removed infologger and using LOG(important) --- Detectors/CTP/workflowScalers/CMakeLists.txt | 3 +-- .../include/CTPWorkflowScalers/RunManager.h | 2 -- Detectors/CTP/workflowScalers/src/RunManager.cxx | 16 ++++------------ 3 files changed, 5 insertions(+), 16 deletions(-) diff --git a/Detectors/CTP/workflowScalers/CMakeLists.txt b/Detectors/CTP/workflowScalers/CMakeLists.txt index 3a80948425374..a31774ac66d69 100644 --- a/Detectors/CTP/workflowScalers/CMakeLists.txt +++ b/Detectors/CTP/workflowScalers/CMakeLists.txt @@ -13,8 +13,7 @@ o2_add_library(CTPWorkflowScalers SOURCES src/RunManager.cxx PUBLIC_LINK_LIBRARIES O2::Framework O2::DataFormatsCTP - AliceO2::BookkeepingApi - AliceO2::InfoLogger) + AliceO2::BookkeepingApi) o2_target_root_dictionary(CTPWorkflowScalers HEADERS include/CTPWorkflowScalers/ctpCCDBManager.h) o2_add_executable( diff --git a/Detectors/CTP/workflowScalers/include/CTPWorkflowScalers/RunManager.h b/Detectors/CTP/workflowScalers/include/CTPWorkflowScalers/RunManager.h index d988c09ef9639..72fb9c2056367 100644 --- a/Detectors/CTP/workflowScalers/include/CTPWorkflowScalers/RunManager.h +++ b/Detectors/CTP/workflowScalers/include/CTPWorkflowScalers/RunManager.h @@ -18,7 +18,6 @@ #include "DataFormatsCTP/Configuration.h" #include "BookkeepingApi/BkpClientFactory.h" #include "BookkeepingApi/BkpClient.h" -#include using namespace o2::bkp::api; namespace o2 @@ -73,7 +72,6 @@ class CTPRunManager : public ctpCCDBManager int mEOX = 0; // redundancy check int mNew = 1; // 1 - no CCDB: used for QC int mQCWritePeriod = 3; // Time in 10secs between two writes to QCCD - AliceO2::InfoLogger::InfoLogger mInfoLogger; ClassDefNV(CTPRunManager, 7); }; } // namespace ctp diff --git a/Detectors/CTP/workflowScalers/src/RunManager.cxx b/Detectors/CTP/workflowScalers/src/RunManager.cxx index dff6925e9ce2d..459ee99174dad 100644 --- a/Detectors/CTP/workflowScalers/src/RunManager.cxx +++ b/Detectors/CTP/workflowScalers/src/RunManager.cxx @@ -240,17 +240,13 @@ int CTPRunManager::processMessage(std::string& topic, const std::string& message uint32_t runnumber = std::stoul(tokens[1]); uint32_t orbit = std::stoul(tokens[2]); ret = saveSoxOrbit(runnumber, orbit, timestamp); - LOG(info) << "soxorbit: " << timestamp << " " << runnumber << " " << orbit; std::string logmessage; if (ret) { logmessage = "Failed to update CCDB with SOX orbit."; } else { logmessage = "CCDB updated with SOX orbit."; } - int rlog = mInfoLogger.logInfo(logmessage); - if (rlog) { - LOG(warn) << "Writing to infologger failed."; - } + LOG(important) << logmessage << " run:" << runnumber << " sox orbit:" << orbit << " ts:" << timestamp; ; } else { LOG(error) << "Topic soxorbit dize !=3: " << message << " token size:" << tokens.size(); ret = 1; @@ -263,18 +259,14 @@ int CTPRunManager::processMessage(std::string& topic, const std::string& message if (tokens.size() == 1) { long timestamp = std::stol(tokens[0]); ret = saveOrbitReset(timestamp); - LOG(info) << "orbitreset: " << timestamp; std::string logmessage; if (ret) { - logmessage = "Failed to update CCDB with orbitreset."; + logmessage = "Failed to update CCDB with orbitreset. "; return 1; } else { - logmessage = "CCDB updated with orbitreset."; - } - int rlog = mInfoLogger.logInfo(logmessage); - if (rlog) { - LOG(warn) << "Writing to infologger failed."; + logmessage = "CCDB updated with orbitreset. "; } + LOG(important) << logmessage << timestamp; } else { LOG(error) << "Topic orbit reset != 2: " << message << " token size:" << tokens.size(); ret = 1; From 8f4a8623021e0ea580c9a609844825af7183bc52 Mon Sep 17 00:00:00 2001 From: lietava Date: Thu, 10 Apr 2025 12:43:55 +0200 Subject: [PATCH 6/7] clang --- Detectors/CTP/workflowScalers/src/RunManager.cxx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Detectors/CTP/workflowScalers/src/RunManager.cxx b/Detectors/CTP/workflowScalers/src/RunManager.cxx index 459ee99174dad..cbbed20de589d 100644 --- a/Detectors/CTP/workflowScalers/src/RunManager.cxx +++ b/Detectors/CTP/workflowScalers/src/RunManager.cxx @@ -246,7 +246,8 @@ int CTPRunManager::processMessage(std::string& topic, const std::string& message } else { logmessage = "CCDB updated with SOX orbit."; } - LOG(important) << logmessage << " run:" << runnumber << " sox orbit:" << orbit << " ts:" << timestamp; ; + LOG(important) << logmessage << " run:" << runnumber << " sox orbit:" << orbit << " ts:" << timestamp; + ; } else { LOG(error) << "Topic soxorbit dize !=3: " << message << " token size:" << tokens.size(); ret = 1; From de9609df2c9ca4c02b51a520919ec678e3499353 Mon Sep 17 00:00:00 2001 From: lietava Date: Thu, 10 Apr 2025 12:52:14 +0200 Subject: [PATCH 7/7] fix --- Detectors/CTP/workflowScalers/src/RunManager.cxx | 2 -- 1 file changed, 2 deletions(-) diff --git a/Detectors/CTP/workflowScalers/src/RunManager.cxx b/Detectors/CTP/workflowScalers/src/RunManager.cxx index cbbed20de589d..5d0b906e28088 100644 --- a/Detectors/CTP/workflowScalers/src/RunManager.cxx +++ b/Detectors/CTP/workflowScalers/src/RunManager.cxx @@ -247,7 +247,6 @@ int CTPRunManager::processMessage(std::string& topic, const std::string& message logmessage = "CCDB updated with SOX orbit."; } LOG(important) << logmessage << " run:" << runnumber << " sox orbit:" << orbit << " ts:" << timestamp; - ; } else { LOG(error) << "Topic soxorbit dize !=3: " << message << " token size:" << tokens.size(); ret = 1; @@ -263,7 +262,6 @@ int CTPRunManager::processMessage(std::string& topic, const std::string& message std::string logmessage; if (ret) { logmessage = "Failed to update CCDB with orbitreset. "; - return 1; } else { logmessage = "CCDB updated with orbitreset. "; }