From 24046af133c817a275cf255dab6221e239b44791 Mon Sep 17 00:00:00 2001 From: swenzel Date: Thu, 10 Oct 2024 14:45:37 +0200 Subject: [PATCH 1/2] Ship GRPECS as part of AggregatedRunInfo; cleanup * provide also the GRPECS as part of the struct * use CTP info only when run number is consistent --- .../DataFormatsParameters/AggregatedRunInfo.h | 3 ++ .../Parameters/src/AggregatedRunInfo.cxx | 33 ++++++++++--------- 2 files changed, 20 insertions(+), 16 deletions(-) diff --git a/DataFormats/Parameters/include/DataFormatsParameters/AggregatedRunInfo.h b/DataFormats/Parameters/include/DataFormatsParameters/AggregatedRunInfo.h index dc93ad46cc167..ddcb6e3c8471d 100644 --- a/DataFormats/Parameters/include/DataFormatsParameters/AggregatedRunInfo.h +++ b/DataFormats/Parameters/include/DataFormatsParameters/AggregatedRunInfo.h @@ -22,6 +22,8 @@ namespace o2::parameters { +class GRPECSObject; + /// Composite struct where one may collect important global properties of data "runs" /// aggregated from various sources (GRPECS, RunInformation CCDB entries, etc.). /// Also offers the authoritative algorithms to collect these information for easy reuse @@ -36,6 +38,7 @@ struct AggregatedRunInfo { int64_t orbitEOR; // orbit when run ends after orbit reset // we may have pointers to actual data source objects GRPECS, ... + o2::parameters::GRPECSObject* grpECS = nullptr; // pointer to GRPECSobject (fetched during struct building) // fills and returns AggregatedRunInfo for a given run number. static AggregatedRunInfo buildAggregatedRunInfo(o2::ccdb::CCDBManagerInstance& ccdb, int runnumber); diff --git a/DataFormats/Parameters/src/AggregatedRunInfo.cxx b/DataFormats/Parameters/src/AggregatedRunInfo.cxx index 9e3d86177ff4a..bc836cd2e394b 100644 --- a/DataFormats/Parameters/src/AggregatedRunInfo.cxx +++ b/DataFormats/Parameters/src/AggregatedRunInfo.cxx @@ -63,24 +63,25 @@ o2::parameters::AggregatedRunInfo AggregatedRunInfo::buildAggregatedRunInfo(o2:: int64_t ctp_run_number = (*ctp_first_run_orbit)[1]; int64_t ctp_orbitSOR = (*ctp_first_run_orbit)[2]; - if (ctp_run_number != runnumber) { - LOG(error) << "AggregatedRunInfo: run number inconsistency found (asked: " << runnumber << " vs CTP found: " << ctp_run_number << ")"; - } - - // overwrite orbitSOR - if (ctp_orbitSOR != orbitSOR) { - LOG(warn) << "The calculated orbitSOR " << orbitSOR << " differs from CTP orbitSOR " << ctp_orbitSOR; - // reasons for this is different unit of time storage in RunInformation (ms) and orbitReset (us), etc. - - // so we need to adjust the SOR timings to be consistent - auto sor_new = (int64_t)((tsOrbitReset + ctp_orbitSOR * o2::constants::lhc::LHCOrbitMUS) / 1000.); - if (sor_new != sor) { - LOG(warn) << "Adjusting SOR from " << sor << " to " << sor_new; - sor = sor_new; + if (ctp_run_number == runnumber) { + // overwrite orbitSOR + if (ctp_orbitSOR != orbitSOR) { + LOG(warn) << "The calculated orbitSOR " << orbitSOR << " differs from CTP orbitSOR " << ctp_orbitSOR; + // reasons for this is different unit of time storage in RunInformation (ms) and orbitReset (us), etc. + + // so we need to adjust the SOR timings to be consistent + auto sor_new = (int64_t)((tsOrbitReset + ctp_orbitSOR * o2::constants::lhc::LHCOrbitMUS) / 1000.); + if (sor_new != sor) { + LOG(warn) << "Adjusting SOR from " << sor << " to " << sor_new; + sor = sor_new; + } } + orbitSOR = ctp_orbitSOR; + } else { + LOG(error) << "AggregatedRunInfo: run number inconsistency found (asked: " << runnumber << " vs CTP found: " << ctp_run_number << ")"; + LOG(error) << " ... not using CTP info"; } - orbitSOR = ctp_orbitSOR; } - return AggregatedRunInfo{runnumber, sor, eor, nOrbitsPerTF, tsOrbitReset, orbitSOR, orbitEOR}; + return AggregatedRunInfo{runnumber, sor, eor, nOrbitsPerTF, tsOrbitReset, orbitSOR, orbitEOR, grpecs}; } From b7e4a0f264852f8e1969a940c9e9980de4da640e Mon Sep 17 00:00:00 2001 From: Sandro Wenzel Date: Thu, 10 Oct 2024 16:50:46 +0200 Subject: [PATCH 2/2] Update AggregatedRunInfo.h --- .../include/DataFormatsParameters/AggregatedRunInfo.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DataFormats/Parameters/include/DataFormatsParameters/AggregatedRunInfo.h b/DataFormats/Parameters/include/DataFormatsParameters/AggregatedRunInfo.h index ddcb6e3c8471d..d4f434db059c5 100644 --- a/DataFormats/Parameters/include/DataFormatsParameters/AggregatedRunInfo.h +++ b/DataFormats/Parameters/include/DataFormatsParameters/AggregatedRunInfo.h @@ -38,7 +38,7 @@ struct AggregatedRunInfo { int64_t orbitEOR; // orbit when run ends after orbit reset // we may have pointers to actual data source objects GRPECS, ... - o2::parameters::GRPECSObject* grpECS = nullptr; // pointer to GRPECSobject (fetched during struct building) + const o2::parameters::GRPECSObject* grpECS = nullptr; // pointer to GRPECSobject (fetched during struct building) // fills and returns AggregatedRunInfo for a given run number. static AggregatedRunInfo buildAggregatedRunInfo(o2::ccdb::CCDBManagerInstance& ccdb, int runnumber);