From e74cf6708e0a254a4e8b1d6190166bc28e1a78be Mon Sep 17 00:00:00 2001 From: Barthelemy Date: Wed, 29 Nov 2023 15:53:43 +0100 Subject: [PATCH 1/5] [QC-953] mergers can receive labels through config --- Utilities/Mergers/include/Mergers/MergerConfig.h | 3 ++- Utilities/Mergers/src/MergerBuilder.cxx | 5 +---- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/Utilities/Mergers/include/Mergers/MergerConfig.h b/Utilities/Mergers/include/Mergers/MergerConfig.h index 502fc2ec9b499..1f626cd4345c5 100644 --- a/Utilities/Mergers/include/Mergers/MergerConfig.h +++ b/Utilities/Mergers/include/Mergers/MergerConfig.h @@ -20,6 +20,7 @@ #include #include #include +#include "Framework/DataProcessorLabel.h" namespace o2::mergers { @@ -95,7 +96,7 @@ struct MergerConfig { std::string monitoringUrl = "infologger:///debug?qc"; std::string detectorName = "TST"; ConfigEntry parallelismType = {ParallelismType::SplitInputs}; - bool expendable = false; + std::vector labels; }; } // namespace o2::mergers diff --git a/Utilities/Mergers/src/MergerBuilder.cxx b/Utilities/Mergers/src/MergerBuilder.cxx index 44b2a019a9952..d5d7ccf76c362 100644 --- a/Utilities/Mergers/src/MergerBuilder.cxx +++ b/Utilities/Mergers/src/MergerBuilder.cxx @@ -116,10 +116,7 @@ framework::DataProcessorSpec MergerBuilder::buildSpec() merger.inputs.push_back({"timer-publish", "TMR", mergerDataDescription(mName), mergerSubSpec(mLayer, mId), framework::Lifetime::Timer, timerSpecs(timers)}); merger.labels.push_back(mergerLabel()); - if (mConfig.expendable) { - framework::DataProcessorLabel expendableLabel = {"expendable"}; - merger.labels.emplace_back(expendableLabel); - } + merger.labels.insert( mConfig.labels.end(), mConfig.labels.begin(), mConfig.labels.end() ); merger.maxInputTimeslices = mTimePipeline; return std::move(merger); From 4a58882a85b594ac0a4d6d21d4718c02cbb11c08 Mon Sep 17 00:00:00 2001 From: Barthelemy Date: Thu, 30 Nov 2023 11:29:18 +0100 Subject: [PATCH 2/5] fix stupid mistake --- Utilities/Mergers/src/MergerBuilder.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Utilities/Mergers/src/MergerBuilder.cxx b/Utilities/Mergers/src/MergerBuilder.cxx index d5d7ccf76c362..0a7573021bafd 100644 --- a/Utilities/Mergers/src/MergerBuilder.cxx +++ b/Utilities/Mergers/src/MergerBuilder.cxx @@ -116,7 +116,7 @@ framework::DataProcessorSpec MergerBuilder::buildSpec() merger.inputs.push_back({"timer-publish", "TMR", mergerDataDescription(mName), mergerSubSpec(mLayer, mId), framework::Lifetime::Timer, timerSpecs(timers)}); merger.labels.push_back(mergerLabel()); - merger.labels.insert( mConfig.labels.end(), mConfig.labels.begin(), mConfig.labels.end() ); + merger.labels.insert( merger.labels.end(), mConfig.labels.begin(), mConfig.labels.end() ); merger.maxInputTimeslices = mTimePipeline; return std::move(merger); From 86c553bb9e194aaae6ce7b903a15ea9c49dd9dff Mon Sep 17 00:00:00 2001 From: Barthelemy Date: Thu, 30 Nov 2023 16:36:07 +0100 Subject: [PATCH 3/5] format --- Utilities/Mergers/src/MergerBuilder.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Utilities/Mergers/src/MergerBuilder.cxx b/Utilities/Mergers/src/MergerBuilder.cxx index 0a7573021bafd..7977af128692d 100644 --- a/Utilities/Mergers/src/MergerBuilder.cxx +++ b/Utilities/Mergers/src/MergerBuilder.cxx @@ -116,7 +116,7 @@ framework::DataProcessorSpec MergerBuilder::buildSpec() merger.inputs.push_back({"timer-publish", "TMR", mergerDataDescription(mName), mergerSubSpec(mLayer, mId), framework::Lifetime::Timer, timerSpecs(timers)}); merger.labels.push_back(mergerLabel()); - merger.labels.insert( merger.labels.end(), mConfig.labels.begin(), mConfig.labels.end() ); + merger.labels.insert(merger.labels.end(), mConfig.labels.begin(), mConfig.labels.end()); merger.maxInputTimeslices = mTimePipeline; return std::move(merger); From d52453cd835114210f67c50b4db3d3f2f60315d9 Mon Sep 17 00:00:00 2001 From: Barthelemy Date: Tue, 12 Dec 2023 09:36:59 +0100 Subject: [PATCH 4/5] remove potential duplicates --- Utilities/Mergers/src/MergerBuilder.cxx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Utilities/Mergers/src/MergerBuilder.cxx b/Utilities/Mergers/src/MergerBuilder.cxx index 7977af128692d..a82f911c2d785 100644 --- a/Utilities/Mergers/src/MergerBuilder.cxx +++ b/Utilities/Mergers/src/MergerBuilder.cxx @@ -117,6 +117,8 @@ framework::DataProcessorSpec MergerBuilder::buildSpec() merger.inputs.push_back({"timer-publish", "TMR", mergerDataDescription(mName), mergerSubSpec(mLayer, mId), framework::Lifetime::Timer, timerSpecs(timers)}); merger.labels.push_back(mergerLabel()); merger.labels.insert(merger.labels.end(), mConfig.labels.begin(), mConfig.labels.end()); + std::sort(merger.labels.begin(), merger.labels.end()); + merger.labels.erase(std::unique(merger.labels.begin(), merger.labels.end()), merger.labels.end()); merger.maxInputTimeslices = mTimePipeline; return std::move(merger); From 3f62921e4f1d1482c9dad0eefc64f7df4043c592 Mon Sep 17 00:00:00 2001 From: Barthelemy Date: Wed, 13 Dec 2023 08:02:42 +0100 Subject: [PATCH 5/5] add missing operators to DataProcessorLabel --- Framework/Core/include/Framework/DataProcessorLabel.h | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/Framework/Core/include/Framework/DataProcessorLabel.h b/Framework/Core/include/Framework/DataProcessorLabel.h index d8b5f7b78428d..7c78f628d38be 100644 --- a/Framework/Core/include/Framework/DataProcessorLabel.h +++ b/Framework/Core/include/Framework/DataProcessorLabel.h @@ -23,6 +23,16 @@ struct DataProcessorLabel { { return value == rhs.value; } + + bool operator<(const DataProcessorLabel& rhs) const + { + return value < rhs.value; + } + + bool operator>(const DataProcessorLabel& rhs) const + { + return value > rhs.value; + } }; } // namespace o2::framework #endif // O2_FRAMEWORK_DATAPROCESSORLABEL_H_