From 784028a1c1e64eeafe86dd700a9eef87dc6c109c Mon Sep 17 00:00:00 2001 From: Ida Torkjellsdatter Storehaug Date: Fri, 31 Oct 2025 10:36:38 +0100 Subject: [PATCH 1/5] converter implemented to reduced mc event to allow for running on old data --- PWGDQ/DataModel/ReducedInfoTables.h | 10 +++- PWGDQ/Tasks/CMakeLists.txt | 5 ++ PWGDQ/Tasks/ModelConverterReducedMCEvents.cxx | 52 +++++++++++++++++++ 3 files changed, 66 insertions(+), 1 deletion(-) create mode 100644 PWGDQ/Tasks/ModelConverterReducedMCEvents.cxx diff --git a/PWGDQ/DataModel/ReducedInfoTables.h b/PWGDQ/DataModel/ReducedInfoTables.h index 61074b2215e..c49cd5e51fe 100644 --- a/PWGDQ/DataModel/ReducedInfoTables.h +++ b/PWGDQ/DataModel/ReducedInfoTables.h @@ -218,12 +218,20 @@ DECLARE_SOA_TABLE(ReducedEventsInfo, "AOD", "REDUCEVENTINFO", //! Main event i // There is no explicit accounting for MC events which were not reconstructed!!! // However, for analysis which will require these events, a special skimming process function // can be constructed and the same data model could be used -DECLARE_SOA_TABLE(ReducedMCEvents, "AOD", "REDUCEDMCEVENT", //! Event level MC truth information + +DECLARE_SOA_TABLE(ReducedMCEvents_000, "AOD", "REDUCEDMCEVENT", //! Event level MC truth information + o2::soa::Index<>, + mccollision::GeneratorsID, reducedevent::MCPosX, reducedevent::MCPosY, reducedevent::MCPosZ, + mccollision::T, mccollision::Weight, mccollision::ImpactParameter); + +DECLARE_SOA_TABLE_VERSIONED(ReducedMCEvents_001, "AOD", "REDUCEDMCEVENT", 1,//! Event level MC truth information o2::soa::Index<>, mccollision::GeneratorsID, reducedevent::MCPosX, reducedevent::MCPosY, reducedevent::MCPosZ, mccollision::T, mccollision::Weight, mccollision::ImpactParameter, mult::MultMCNParticlesEta05, mult::MultMCNParticlesEta08, mult::MultMCNParticlesEta10); +using ReducedMCEvents = ReducedMCEvents_001; + using ReducedEvent = ReducedEvents::iterator; using StoredReducedEvent = StoredReducedEvents::iterator; using ReducedEventExtended = ReducedEventsExtended::iterator; diff --git a/PWGDQ/Tasks/CMakeLists.txt b/PWGDQ/Tasks/CMakeLists.txt index ba4a3e14870..0b57b90f48f 100644 --- a/PWGDQ/Tasks/CMakeLists.txt +++ b/PWGDQ/Tasks/CMakeLists.txt @@ -124,6 +124,11 @@ o2physics_add_dpl_workflow(model-converter-event-extended PUBLIC_LINK_LIBRARIES O2Physics::AnalysisCore O2Physics::PWGDQCore COMPONENT_NAME Analysis) +o2physics_add_dpl_workflow(model-converter-mc-reduced-event + SOURCES ModelConverterReducedMCEvents.cxx + PUBLIC_LINK_LIBRARIES O2Physics::AnalysisCore O2Physics::PWGDQCore + COMPONENT_NAME Analysis) + o2physics_add_dpl_workflow(tag-and-probe SOURCES TagAndProbe.cxx PUBLIC_LINK_LIBRARIES O2::Framework O2::DetectorsBase O2Physics::AnalysisCore O2Physics::AnalysisCCDB O2Physics::PWGDQCore diff --git a/PWGDQ/Tasks/ModelConverterReducedMCEvents.cxx b/PWGDQ/Tasks/ModelConverterReducedMCEvents.cxx new file mode 100644 index 00000000000..5db93db15e1 --- /dev/null +++ b/PWGDQ/Tasks/ModelConverterReducedMCEvents.cxx @@ -0,0 +1,52 @@ +// Copyright 2019-2020 CERN and copyright holders of ALICE O2. +// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders. +// All rights not expressly granted are reserved. +// +// This software is distributed under the terms of the GNU General Public +// License v3 (GPL Version 3), copied verbatim in the file "COPYING". +// +// In applying this license CERN does not waive the privileges and immunities +// granted to it by virtue of its status as an Intergovernmental Organization +// or submit itself to any jurisdiction. +// +// Contact: iarsene@cern.ch, i.c.arsene@fys.uio.no +// +// Task used to convert the data model from the old format to the new format. To avoid +// the conflict with the old data model. + +// other includes +#include "PWGDQ/DataModel/ReducedInfoTables.h" + +#include "DataFormatsParameters/GRPObject.h" +#include "Framework/ASoAHelpers.h" +#include "Framework/AnalysisDataModel.h" +#include "Framework/AnalysisTask.h" +#include "Framework/runDataProcessing.h" + +#include +#include +#include + +using namespace o2; +using namespace o2::framework; +using namespace o2::framework::expressions; +using namespace o2::aod; + +struct reducedMCeventConverter000_001 { + Produces reducedMCevent_001; + + void process(aod::ReducedMCEvents_000 const& events) + { + for (const auto& event : events) { + reducedMCevent_001(event.generatorsID(), event.mcPosX(), event.mcPosY(), event.mcPosZ(), + event.t(), event.weight(), event.impactParameter(), + -1.0f, -1.0f, -1.0f); + } + } +}; + +WorkflowSpec defineDataProcessing(ConfigContext const& cfgc) +{ + return WorkflowSpec{ + adaptAnalysisTask(cfgc)}; +} \ No newline at end of file From f17b14b679d43a39e8eb98ccc5255932d40958be Mon Sep 17 00:00:00 2001 From: ALICE Action Bot Date: Fri, 31 Oct 2025 09:54:26 +0000 Subject: [PATCH 2/5] Please consider the following formatting changes --- PWGDQ/DataModel/ReducedInfoTables.h | 10 +++++----- PWGDQ/Tasks/ModelConverterReducedMCEvents.cxx | 7 ++++--- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/PWGDQ/DataModel/ReducedInfoTables.h b/PWGDQ/DataModel/ReducedInfoTables.h index c49cd5e51fe..b22f11ca00b 100644 --- a/PWGDQ/DataModel/ReducedInfoTables.h +++ b/PWGDQ/DataModel/ReducedInfoTables.h @@ -224,11 +224,11 @@ DECLARE_SOA_TABLE(ReducedMCEvents_000, "AOD", "REDUCEDMCEVENT", //! Event leve mccollision::GeneratorsID, reducedevent::MCPosX, reducedevent::MCPosY, reducedevent::MCPosZ, mccollision::T, mccollision::Weight, mccollision::ImpactParameter); -DECLARE_SOA_TABLE_VERSIONED(ReducedMCEvents_001, "AOD", "REDUCEDMCEVENT", 1,//! Event level MC truth information - o2::soa::Index<>, - mccollision::GeneratorsID, reducedevent::MCPosX, reducedevent::MCPosY, reducedevent::MCPosZ, - mccollision::T, mccollision::Weight, mccollision::ImpactParameter, - mult::MultMCNParticlesEta05, mult::MultMCNParticlesEta08, mult::MultMCNParticlesEta10); +DECLARE_SOA_TABLE_VERSIONED(ReducedMCEvents_001, "AOD", "REDUCEDMCEVENT", 1, //! Event level MC truth information + o2::soa::Index<>, + mccollision::GeneratorsID, reducedevent::MCPosX, reducedevent::MCPosY, reducedevent::MCPosZ, + mccollision::T, mccollision::Weight, mccollision::ImpactParameter, + mult::MultMCNParticlesEta05, mult::MultMCNParticlesEta08, mult::MultMCNParticlesEta10); using ReducedMCEvents = ReducedMCEvents_001; diff --git a/PWGDQ/Tasks/ModelConverterReducedMCEvents.cxx b/PWGDQ/Tasks/ModelConverterReducedMCEvents.cxx index 5db93db15e1..6c8245e26e8 100644 --- a/PWGDQ/Tasks/ModelConverterReducedMCEvents.cxx +++ b/PWGDQ/Tasks/ModelConverterReducedMCEvents.cxx @@ -39,8 +39,8 @@ struct reducedMCeventConverter000_001 { { for (const auto& event : events) { reducedMCevent_001(event.generatorsID(), event.mcPosX(), event.mcPosY(), event.mcPosZ(), - event.t(), event.weight(), event.impactParameter(), - -1.0f, -1.0f, -1.0f); + event.t(), event.weight(), event.impactParameter(), + -1.0f, -1.0f, -1.0f); } } }; @@ -49,4 +49,5 @@ WorkflowSpec defineDataProcessing(ConfigContext const& cfgc) { return WorkflowSpec{ adaptAnalysisTask(cfgc)}; -} \ No newline at end of file +} + \ No newline at end of file From 60c5126daf7fe207d8c8bc568d796dffe5e47455 Mon Sep 17 00:00:00 2001 From: ALICE Action Bot Date: Fri, 31 Oct 2025 09:57:20 +0000 Subject: [PATCH 3/5] Please consider the following formatting changes --- PWGDQ/Tasks/ModelConverterReducedMCEvents.cxx | 1 - 1 file changed, 1 deletion(-) diff --git a/PWGDQ/Tasks/ModelConverterReducedMCEvents.cxx b/PWGDQ/Tasks/ModelConverterReducedMCEvents.cxx index 6c8245e26e8..895ec8fdbe3 100644 --- a/PWGDQ/Tasks/ModelConverterReducedMCEvents.cxx +++ b/PWGDQ/Tasks/ModelConverterReducedMCEvents.cxx @@ -50,4 +50,3 @@ WorkflowSpec defineDataProcessing(ConfigContext const& cfgc) return WorkflowSpec{ adaptAnalysisTask(cfgc)}; } - \ No newline at end of file From 9ccfb7d90d28916d0969dddc6de6b941e9f0ecd5 Mon Sep 17 00:00:00 2001 From: Ida Torkjellsdatter Storehaug Date: Fri, 31 Oct 2025 11:20:00 +0100 Subject: [PATCH 4/5] added centft0 converter to the mc event converter --- PWGDQ/DataModel/ReducedInfoTables.h | 10 +++++----- PWGDQ/Tasks/ModelConverterReducedMCEvents.cxx | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/PWGDQ/DataModel/ReducedInfoTables.h b/PWGDQ/DataModel/ReducedInfoTables.h index b22f11ca00b..b9cfca46ef3 100644 --- a/PWGDQ/DataModel/ReducedInfoTables.h +++ b/PWGDQ/DataModel/ReducedInfoTables.h @@ -224,11 +224,11 @@ DECLARE_SOA_TABLE(ReducedMCEvents_000, "AOD", "REDUCEDMCEVENT", //! Event leve mccollision::GeneratorsID, reducedevent::MCPosX, reducedevent::MCPosY, reducedevent::MCPosZ, mccollision::T, mccollision::Weight, mccollision::ImpactParameter); -DECLARE_SOA_TABLE_VERSIONED(ReducedMCEvents_001, "AOD", "REDUCEDMCEVENT", 1, //! Event level MC truth information - o2::soa::Index<>, - mccollision::GeneratorsID, reducedevent::MCPosX, reducedevent::MCPosY, reducedevent::MCPosZ, - mccollision::T, mccollision::Weight, mccollision::ImpactParameter, - mult::MultMCNParticlesEta05, mult::MultMCNParticlesEta08, mult::MultMCNParticlesEta10); +DECLARE_SOA_TABLE_VERSIONED(ReducedMCEvents_001, "AOD", "REDUCEDMCEVENT", 1,//! Event level MC truth information + o2::soa::Index<>, + mccollision::GeneratorsID, reducedevent::MCPosX, reducedevent::MCPosY, reducedevent::MCPosZ, + mccollision::T, mccollision::Weight, mccollision::ImpactParameter, cent::CentFT0C, + mult::MultMCNParticlesEta05, mult::MultMCNParticlesEta08, mult::MultMCNParticlesEta10); using ReducedMCEvents = ReducedMCEvents_001; diff --git a/PWGDQ/Tasks/ModelConverterReducedMCEvents.cxx b/PWGDQ/Tasks/ModelConverterReducedMCEvents.cxx index 895ec8fdbe3..f5d2a10cba7 100644 --- a/PWGDQ/Tasks/ModelConverterReducedMCEvents.cxx +++ b/PWGDQ/Tasks/ModelConverterReducedMCEvents.cxx @@ -39,8 +39,8 @@ struct reducedMCeventConverter000_001 { { for (const auto& event : events) { reducedMCevent_001(event.generatorsID(), event.mcPosX(), event.mcPosY(), event.mcPosZ(), - event.t(), event.weight(), event.impactParameter(), - -1.0f, -1.0f, -1.0f); + event.t(), event.weight(), event.impactParameter(), + -1.0f, -1.0f, -1.0f, -1.0f); } } }; From 5ba3f89f03e33f6361cf061642c8b8de3e092eb4 Mon Sep 17 00:00:00 2001 From: ALICE Action Bot Date: Fri, 31 Oct 2025 10:26:34 +0000 Subject: [PATCH 5/5] Please consider the following formatting changes --- PWGDQ/DataModel/ReducedInfoTables.h | 10 +++++----- PWGDQ/Tasks/ModelConverterReducedMCEvents.cxx | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/PWGDQ/DataModel/ReducedInfoTables.h b/PWGDQ/DataModel/ReducedInfoTables.h index b9cfca46ef3..8fc3931d97b 100644 --- a/PWGDQ/DataModel/ReducedInfoTables.h +++ b/PWGDQ/DataModel/ReducedInfoTables.h @@ -224,11 +224,11 @@ DECLARE_SOA_TABLE(ReducedMCEvents_000, "AOD", "REDUCEDMCEVENT", //! Event leve mccollision::GeneratorsID, reducedevent::MCPosX, reducedevent::MCPosY, reducedevent::MCPosZ, mccollision::T, mccollision::Weight, mccollision::ImpactParameter); -DECLARE_SOA_TABLE_VERSIONED(ReducedMCEvents_001, "AOD", "REDUCEDMCEVENT", 1,//! Event level MC truth information - o2::soa::Index<>, - mccollision::GeneratorsID, reducedevent::MCPosX, reducedevent::MCPosY, reducedevent::MCPosZ, - mccollision::T, mccollision::Weight, mccollision::ImpactParameter, cent::CentFT0C, - mult::MultMCNParticlesEta05, mult::MultMCNParticlesEta08, mult::MultMCNParticlesEta10); +DECLARE_SOA_TABLE_VERSIONED(ReducedMCEvents_001, "AOD", "REDUCEDMCEVENT", 1, //! Event level MC truth information + o2::soa::Index<>, + mccollision::GeneratorsID, reducedevent::MCPosX, reducedevent::MCPosY, reducedevent::MCPosZ, + mccollision::T, mccollision::Weight, mccollision::ImpactParameter, cent::CentFT0C, + mult::MultMCNParticlesEta05, mult::MultMCNParticlesEta08, mult::MultMCNParticlesEta10); using ReducedMCEvents = ReducedMCEvents_001; diff --git a/PWGDQ/Tasks/ModelConverterReducedMCEvents.cxx b/PWGDQ/Tasks/ModelConverterReducedMCEvents.cxx index f5d2a10cba7..f4e28daee31 100644 --- a/PWGDQ/Tasks/ModelConverterReducedMCEvents.cxx +++ b/PWGDQ/Tasks/ModelConverterReducedMCEvents.cxx @@ -39,8 +39,8 @@ struct reducedMCeventConverter000_001 { { for (const auto& event : events) { reducedMCevent_001(event.generatorsID(), event.mcPosX(), event.mcPosY(), event.mcPosZ(), - event.t(), event.weight(), event.impactParameter(), - -1.0f, -1.0f, -1.0f, -1.0f); + event.t(), event.weight(), event.impactParameter(), + -1.0f, -1.0f, -1.0f, -1.0f); } } };