Skip to content

Commit f04afd0

Browse files
committed
DPL: use a better criterion for injected workflows
1 parent 23fa9c3 commit f04afd0

File tree

2 files changed

+13
-5
lines changed

2 files changed

+13
-5
lines changed

Framework/Core/src/ArrowSupport.cxx

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -680,8 +680,12 @@ o2::framework::ServiceSpec ArrowSupport::arrowBackendSpec()
680680
workflow.erase(reader);
681681
} else {
682682
// load reader algorithm before deployment
683-
auto mctracks2aod = std::find_if(workflow.begin(), workflow.end(), [](auto const& x) { return x.name == "mctracks-to-aod"; });
684-
if (mctracks2aod == workflow.end()) { // add normal reader algorithm only if no on-the-fly generator is injected
683+
auto tfnsource = std::ranges::find_if(workflow, [](DataProcessorSpec const& spec){
684+
return std::ranges::any_of(spec.outputs, [](OutputSpec const& output){
685+
return DataSpecUtils::match(output, "TFN", "TFNumber", 0);
686+
});
687+
});
688+
if (tfnsource == workflow.end()) { // add normal reader algorithm only if no on-the-fly generator is injected
685689
reader->algorithm = CommonDataProcessors::wrapWithTimesliceConsumption(PluginManager::loadAlgorithmFromPlugin("O2FrameworkAnalysisSupport", "ROOTFileReader", ctx));
686690
} // otherwise the algorithm was set in injectServiceDevices
687691
}

Framework/Core/src/WorkflowHelpers.cxx

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -411,13 +411,17 @@ void WorkflowHelpers::injectServiceDevices(WorkflowSpec& workflow, ConfigContext
411411

412412
// add the reader
413413
if (aodReader.outputs.empty() == false) {
414-
auto mctracks2aod = std::ranges::find_if(workflow, [](auto const& x) { return x.name == "mctracks-to-aod"; });
415-
if (mctracks2aod == workflow.end()) {
414+
auto tfnsource = std::ranges::find_if(workflow, [](DataProcessorSpec const& spec){
415+
return std::ranges::any_of(spec.outputs, [](OutputSpec const& output){
416+
return DataSpecUtils::match(output, "TFN", "TFNumber", 0);
417+
});
418+
});
419+
if (tfnsource == workflow.end()) {
416420
// add normal reader
417421
aodReader.outputs.emplace_back(OutputSpec{"TFN", "TFNumber"});
418422
aodReader.outputs.emplace_back(OutputSpec{"TFF", "TFFilename"});
419423
} else {
420-
// AODs are being injected on-the-fly, add error-handler reader
424+
// AODs are being injected the tfnsource is the entry point, add error-handler reader
421425
aodReader.algorithm = AlgorithmSpec{
422426
adaptStateful(
423427
[](DeviceSpec const& spec) {

0 commit comments

Comments
 (0)