From 76eca8f1c7fe741f9f9de83b54ab63e32eabb836 Mon Sep 17 00:00:00 2001 From: jesgum Date: Thu, 3 Jul 2025 13:17:46 +0200 Subject: [PATCH 1/3] Add time dependency study --- Common/Tasks/centralityStudy.cxx | 42 +++++++++++++++++++++++++++++--- 1 file changed, 38 insertions(+), 4 deletions(-) diff --git a/Common/Tasks/centralityStudy.cxx b/Common/Tasks/centralityStudy.cxx index 7df3fa4ffc5..db54b7e17fd 100644 --- a/Common/Tasks/centralityStudy.cxx +++ b/Common/Tasks/centralityStudy.cxx @@ -21,6 +21,8 @@ #include "Common/DataModel/Centrality.h" #include "Common/DataModel/EventSelection.h" #include "Framework/O2DatabasePDGPlugin.h" +#include "CCDB/BasicCCDBManager.h" +#include "DataFormatsParameters/GRPECSObject.h" #include "TH1F.h" #include "TH2F.h" @@ -32,6 +34,7 @@ using BCsWithRun3Matchings = soa::Join ccdb; // Configurables Configurable do2DPlots{"do2DPlots", true, "0 - no, 1 - yes"}; @@ -39,6 +42,7 @@ struct centralityStudy { Configurable doOccupancyStudyVsRawValues2d{"doOccupancyStudyVsRawValues2d", true, "0 - no, 1 - yes"}; Configurable doOccupancyStudyVsCentrality3d{"doOccupancyStudyVsCentrality3d", false, "0 - no, 1 - yes"}; Configurable doOccupancyStudyVsRawValues3d{"doOccupancyStudyVsRawValues3d", false, "0 - no, 1 - yes"}; + Configurable doTimeStudies{"doTimeStudies", false, "0 - no, 1 - yes"}; Configurable doNGlobalTracksVsRawSignals{"doNGlobalTracksVsRawSignals", true, "0 - no, 1 - yes"}; Configurable applySel8{"applySel8", true, "0 - no, 1 - yes"}; Configurable applyVtxZ{"applyVtxZ", true, "0 - no, 1 - yes"}; @@ -113,10 +117,10 @@ struct centralityStudy { ConfigurableAxis axisCentrality{"axisCentrality", {100, 0, 100}, "FT0C percentile"}; ConfigurableAxis axisPVChi2{"axisPVChi2", {300, 0, 30}, "FT0C percentile"}; ConfigurableAxis axisDeltaTime{"axisDeltaTime", {300, 0, 300}, "#Delta time"}; + ConfigurableAxis axisDeltaTimestamp{"axisDeltaTimestamp", {1440, 0, 24}, "#Delta timestamp - sor (hours)"}; // For profile Z ConfigurableAxis axisPVz{"axisPVz", {400, -20.0f, +20.0f}, "PVz (cm)"}; - ConfigurableAxis axisZN{"axisZN", {1100, -50.0f, +500.0f}, "ZN"}; void init(InitContext&) @@ -227,6 +231,21 @@ struct centralityStudy { histos.add("hFT0COccupancyVsNGlobalTracksVsCentrality", "hFT0COccupancyVsNGlobalTracksVsCentrality", kTH3F, {axisFT0COccupancy, axisMultGlobalTracks, axisCentrality}); } } + + if (doTimeStudies) { + ccdb->setURL("http://alice-ccdb.cern.ch"); + ccdb->setCaching(true); + ccdb->setLocalObjectValidityChecking(); + ccdb->setFatalWhenNull(false); + + histos.add("hFT0AvsTime", "hFT0AvsTime", kTH2F, {axisDeltaTimestamp, axisMultFT0A}); + histos.add("hFT0CvsTime", "hFT0CvsTime", kTH2F, {{axisDeltaTimestamp, axisMultFT0C}}); + histos.add("hFT0MvsTime", "hFT0MvsTime", kTH2F, {{axisDeltaTimestamp, axisMultFT0M}}); + histos.add("hFV0AvsTime", "hFV0AvsTime", kTH2F, {{axisDeltaTimestamp, axisMultFV0A}}); + histos.add("hMFTTracksvsTime", "hMFTTracksvsTime", kTH2F, {{axisDeltaTimestamp, axisMultMFTTracks}}); + histos.add("hNGlobalVsTime", "hNGlobalVsTime", kTH2F, {{axisDeltaTimestamp, axisMultGlobalTracks}}); + histos.add("hNTPVContributorsvsTime", "hNTPVContributorsvsTime", kTH2F, {{axisDeltaTimestamp, axisMultPVContributors}}); + } } template @@ -403,19 +422,34 @@ struct centralityStudy { histos.fill(HIST("hFT0COccupancyVsNGlobalTracksVsCentrality"), collision.ft0cOccupancyInTimeRange(), collision.multNTracksGlobal(), collision.centFT0C()); } } + + if (doTimeStudies && collision.has_multBC()) { + auto multbc = collision.template multBC_as(); + uint64_t timestamp_ms = multbc.timestamp(); + o2::parameters::GRPECSObject* grpo = ccdb->getForTimeStamp("GLO/Config/GRPECS", timestamp_ms); + uint64_t timestamp_sor_ms = grpo->getTimeStart(); + float hoursAfterStartOfRun = static_cast(timestamp_ms - timestamp_sor_ms) / 3600000.0; + histos.fill(HIST("hFT0AvsTime"), hoursAfterStartOfRun, collision.multFT0A()); + histos.fill(HIST("hFT0CvsTime"), hoursAfterStartOfRun, collision.multFT0C()); + histos.fill(HIST("hFT0MvsTime"), hoursAfterStartOfRun, collision.multFT0M()); + histos.fill(HIST("hFV0AvsTime"), hoursAfterStartOfRun, collision.multFV0A()); + histos.fill(HIST("hMFTTracksvsTime"), hoursAfterStartOfRun, collision.mftNtracks()); + histos.fill(HIST("hNGlobalVsTime"), hoursAfterStartOfRun, collision.multNTracksGlobal()); + histos.fill(HIST("hNTPVContributorsvsTime"), hoursAfterStartOfRun, collision.multPVTotalContributors()); + } } - void processCollisions(soa::Join::iterator const& collision) + void processCollisions(soa::Join::iterator const& collision, aod::MultBCs const&) { genericProcessCollision(collision); } - void processCollisionsWithCentrality(soa::Join::iterator const& collision) + void processCollisionsWithCentrality(soa::Join::iterator const& collision, aod::MultBCs const&) { genericProcessCollision(collision); } - void processCollisionsWithCentralityWithNeighbours(soa::Join::iterator const& collision) + void processCollisionsWithCentralityWithNeighbours(soa::Join::iterator const& collision, aod::MultBCs const&) { genericProcessCollision(collision); } From 6271c60217a04a945bcd32dfd7a9de82819a2580 Mon Sep 17 00:00:00 2001 From: jesgum Date: Thu, 3 Jul 2025 13:19:59 +0200 Subject: [PATCH 2/3] formatting --- Common/Tasks/centralityStudy.cxx | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/Common/Tasks/centralityStudy.cxx b/Common/Tasks/centralityStudy.cxx index db54b7e17fd..8b3b5399e47 100644 --- a/Common/Tasks/centralityStudy.cxx +++ b/Common/Tasks/centralityStudy.cxx @@ -13,16 +13,18 @@ // Run 3 Pb-Pb centrality selections in 2023 data. It is compatible with // derived data. -#include "Framework/runDataProcessing.h" -#include "Framework/AnalysisTask.h" -#include "Framework/AnalysisDataModel.h" -#include "Common/DataModel/McCollisionExtra.h" -#include "Common/DataModel/Multiplicity.h" #include "Common/DataModel/Centrality.h" #include "Common/DataModel/EventSelection.h" -#include "Framework/O2DatabasePDGPlugin.h" +#include "Common/DataModel/McCollisionExtra.h" +#include "Common/DataModel/Multiplicity.h" + #include "CCDB/BasicCCDBManager.h" #include "DataFormatsParameters/GRPECSObject.h" +#include "Framework/AnalysisDataModel.h" +#include "Framework/AnalysisTask.h" +#include "Framework/O2DatabasePDGPlugin.h" +#include "Framework/runDataProcessing.h" + #include "TH1F.h" #include "TH2F.h" From e0933bdd76d0451b40950cf63f68bdf99e37656e Mon Sep 17 00:00:00 2001 From: jesgum Date: Thu, 3 Jul 2025 13:25:20 +0200 Subject: [PATCH 3/3] Update --- Common/Tasks/centralityStudy.cxx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Common/Tasks/centralityStudy.cxx b/Common/Tasks/centralityStudy.cxx index 8b3b5399e47..6e97af9e8a2 100644 --- a/Common/Tasks/centralityStudy.cxx +++ b/Common/Tasks/centralityStudy.cxx @@ -427,10 +427,10 @@ struct centralityStudy { if (doTimeStudies && collision.has_multBC()) { auto multbc = collision.template multBC_as(); - uint64_t timestamp_ms = multbc.timestamp(); - o2::parameters::GRPECSObject* grpo = ccdb->getForTimeStamp("GLO/Config/GRPECS", timestamp_ms); - uint64_t timestamp_sor_ms = grpo->getTimeStart(); - float hoursAfterStartOfRun = static_cast(timestamp_ms - timestamp_sor_ms) / 3600000.0; + uint64_t bcTimestamp = multbc.timestamp(); + o2::parameters::GRPECSObject* grpo = ccdb->getForTimeStamp("GLO/Config/GRPECS", bcTimestamp); + uint64_t startOfRunTimestamp = grpo->getTimeStart(); + float hoursAfterStartOfRun = static_cast(bcTimestamp - startOfRunTimestamp) / 3600000.0; histos.fill(HIST("hFT0AvsTime"), hoursAfterStartOfRun, collision.multFT0A()); histos.fill(HIST("hFT0CvsTime"), hoursAfterStartOfRun, collision.multFT0C()); histos.fill(HIST("hFT0MvsTime"), hoursAfterStartOfRun, collision.multFT0M());