diff --git a/Detectors/CPV/workflow/src/cluster-writer-workflow.cxx b/Detectors/CPV/workflow/src/cluster-writer-workflow.cxx index 5db57f8fba6fe..fb46c81561d7a 100644 --- a/Detectors/CPV/workflow/src/cluster-writer-workflow.cxx +++ b/Detectors/CPV/workflow/src/cluster-writer-workflow.cxx @@ -13,6 +13,7 @@ #include #include "Framework/Variant.h" #include "Framework/ConfigParamSpec.h" +#include "Framework/CompletionPolicyHelpers.h" #include "DPLUtils/MakeRootTreeWriterSpec.h" #include "CommonUtils/ConfigurableParam.h" #include "CPVWorkflow/WriterSpec.h" @@ -28,6 +29,12 @@ void customize(std::vector& workflowOptions) workflowOptions.insert(workflowOptions.end(), options.begin(), options.end()); } +void customize(std::vector& policies) +{ + // ordered policies for the writers + policies.push_back(CompletionPolicyHelpers::consumeWhenAllOrdered(".*(?:CPV|cpv).*[W,w]riter.*")); +} + #include "Framework/runDataProcessing.h" WorkflowSpec defineDataProcessing(ConfigContext const& cfgc) diff --git a/Detectors/CPV/workflow/src/cpv-reco-workflow.cxx b/Detectors/CPV/workflow/src/cpv-reco-workflow.cxx index ffded5e6f2e35..4fe3cc81325c9 100644 --- a/Detectors/CPV/workflow/src/cpv-reco-workflow.cxx +++ b/Detectors/CPV/workflow/src/cpv-reco-workflow.cxx @@ -21,16 +21,25 @@ #include "CommonUtils/ConfigurableParam.h" #include "DetectorsRaw/HBFUtilsInitializer.h" #include "Framework/CallbacksPolicy.h" +#include "Framework/CompletionPolicyHelpers.h" #include #include #include +using namespace o2::framework; + void customize(std::vector& policies) { o2::raw::HBFUtilsInitializer::addNewTimeSliceCallback(policies); } +void customize(std::vector& policies) +{ + // ordered policies for the writers + policies.push_back(CompletionPolicyHelpers::consumeWhenAllOrdered(".*(?:CPV|cpv).*[W,w]riter.*")); +} + // add workflow options, note that customization needs to be declared before // including Framework/runDataProcessing void customize(std::vector& workflowOptions) diff --git a/Detectors/CTF/workflow/src/ctf-writer-workflow.cxx b/Detectors/CTF/workflow/src/ctf-writer-workflow.cxx index 6f500ddee79d9..84164dac63d7e 100644 --- a/Detectors/CTF/workflow/src/ctf-writer-workflow.cxx +++ b/Detectors/CTF/workflow/src/ctf-writer-workflow.cxx @@ -14,6 +14,7 @@ #include "Framework/Logger.h" #include "Framework/ControlService.h" #include "Framework/ConfigParamRegistry.h" +#include "Framework/CompletionPolicyHelpers.h" #include "Framework/InputSpec.h" #include "CommonUtils/NameConf.h" #include "CTFWorkflow/CTFWriterSpec.h" @@ -39,6 +40,12 @@ void customize(std::vector& workflowOptions) std::swap(workflowOptions, options); } +void customize(std::vector& policies) +{ + // ordered policies for the writers + policies.push_back(CompletionPolicyHelpers::consumeWhenAllOrdered(".*(?:CTF|ctf).*[W,w]riter.*")); +} + // ------------------------------------------------------------------ #include "Framework/runDataProcessing.h" diff --git a/Detectors/EMCAL/workflow/src/cell-writer-workflow.cxx b/Detectors/EMCAL/workflow/src/cell-writer-workflow.cxx index 1e58fd1331190..234d32ffeccee 100644 --- a/Detectors/EMCAL/workflow/src/cell-writer-workflow.cxx +++ b/Detectors/EMCAL/workflow/src/cell-writer-workflow.cxx @@ -13,6 +13,7 @@ #include #include "Framework/Variant.h" #include "Framework/ConfigParamSpec.h" +#include "Framework/CompletionPolicyHelpers.h" #include "DPLUtils/MakeRootTreeWriterSpec.h" #include "DataFormatsEMCAL/MCLabel.h" #include "SimulationDataFormat/MCTruthContainer.h" @@ -31,6 +32,12 @@ void customize(std::vector& workflowOptions) workflowOptions.insert(workflowOptions.end(), options.begin(), options.end()); } +void customize(std::vector& policies) +{ + // ordered policies for the writers + policies.push_back(CompletionPolicyHelpers::consumeWhenAllOrdered(".*(?:EMC|emc).*[W,w]riter.*")); +} + #include "Framework/runDataProcessing.h" WorkflowSpec defineDataProcessing(ConfigContext const& cfgc) diff --git a/Detectors/EMCAL/workflow/src/emc-reco-workflow.cxx b/Detectors/EMCAL/workflow/src/emc-reco-workflow.cxx index 73a8756ee3048..2cdffa85e1b12 100644 --- a/Detectors/EMCAL/workflow/src/emc-reco-workflow.cxx +++ b/Detectors/EMCAL/workflow/src/emc-reco-workflow.cxx @@ -16,6 +16,7 @@ #include "Framework/WorkflowSpec.h" #include "Framework/ConfigParamSpec.h" +#include "Framework/CompletionPolicyHelpers.h" #include "EMCALWorkflow/RecoWorkflow.h" #include "Algorithm/RangeTokenizer.h" #include "DetectorsRaw/HBFUtilsInitializer.h" @@ -26,11 +27,19 @@ #include #include +using namespace o2::framework; + void customize(std::vector& policies) { o2::raw::HBFUtilsInitializer::addNewTimeSliceCallback(policies); } +void customize(std::vector& policies) +{ + // ordered policies for the writers + policies.push_back(CompletionPolicyHelpers::consumeWhenAllOrdered(".*(?:EMC|emc).*[W,w]riter.*")); +} + // add workflow options, note that customization needs to be declared before // including Framework/runDataProcessing void customize(std::vector& workflowOptions) diff --git a/Detectors/FIT/FDD/workflow/src/digits-writer-workflow.cxx b/Detectors/FIT/FDD/workflow/src/digits-writer-workflow.cxx index 7d3ca960cade9..bac05987f0e5c 100644 --- a/Detectors/FIT/FDD/workflow/src/digits-writer-workflow.cxx +++ b/Detectors/FIT/FDD/workflow/src/digits-writer-workflow.cxx @@ -11,6 +11,7 @@ #include "CommonUtils/ConfigurableParam.h" #include "Framework/ConfigParamSpec.h" +#include "Framework/CompletionPolicyHelpers.h" using namespace o2::framework; @@ -24,6 +25,12 @@ void customize(std::vector& workflowOptions) std::swap(workflowOptions, options); } +void customize(std::vector& policies) +{ + // ordered policies for the writers + policies.push_back(CompletionPolicyHelpers::consumeWhenAllOrdered(".*(?:FDD|fdd).*[W,w]riter.*")); +} + #include "Framework/runDataProcessing.h" #include "Framework/WorkflowSpec.h" #include "FDDWorkflow/DigitWriterSpec.h" diff --git a/Detectors/FIT/FDD/workflow/src/fdd-flp-workflow.cxx b/Detectors/FIT/FDD/workflow/src/fdd-flp-workflow.cxx index efdc59a2bfdeb..a3fec9ee3da7c 100644 --- a/Detectors/FIT/FDD/workflow/src/fdd-flp-workflow.cxx +++ b/Detectors/FIT/FDD/workflow/src/fdd-flp-workflow.cxx @@ -16,10 +16,16 @@ #include "DataFormatsFDD/MCLabel.h" #include "FDDRaw/RawReaderFDDBase.h" #include "SimulationDataFormat/MCTruthContainer.h" +#include "Framework/CompletionPolicyHelpers.h" using namespace o2::framework; // ------------------------------------------------------------------ +void customize(std::vector& policies) +{ + // ordered policies for the writers + policies.push_back(CompletionPolicyHelpers::consumeWhenAllOrdered(".*(?:FDD|fdd).*[W,w]riter.*")); +} // we need to add workflow options before including Framework/runDataProcessing void customize(std::vector& workflowOptions) diff --git a/Detectors/FIT/FDD/workflow/src/fdd-reco-workflow.cxx b/Detectors/FIT/FDD/workflow/src/fdd-reco-workflow.cxx index 44412a78978cc..9fc62e905723e 100644 --- a/Detectors/FIT/FDD/workflow/src/fdd-reco-workflow.cxx +++ b/Detectors/FIT/FDD/workflow/src/fdd-reco-workflow.cxx @@ -14,6 +14,7 @@ #include "CommonUtils/ConfigurableParam.h" #include "DetectorsRaw/HBFUtilsInitializer.h" #include "Framework/CallbacksPolicy.h" +#include "Framework/CompletionPolicyHelpers.h" using namespace o2::framework; @@ -23,6 +24,12 @@ void customize(std::vector& policies) o2::raw::HBFUtilsInitializer::addNewTimeSliceCallback(policies); } +void customize(std::vector& policies) +{ + // ordered policies for the writers + policies.push_back(CompletionPolicyHelpers::consumeWhenAllOrdered(".*(?:FDD|fdd).*[W,w]riter.*")); +} + // we need to add workflow options before including Framework/runDataProcessing void customize(std::vector& workflowOptions) { diff --git a/Detectors/FIT/FT0/calibration/testWorkflow/calib-global-offsets.cxx b/Detectors/FIT/FT0/calibration/testWorkflow/calib-global-offsets.cxx index 8b2e7a0e3803b..1f70538c2880b 100644 --- a/Detectors/FIT/FT0/calibration/testWorkflow/calib-global-offsets.cxx +++ b/Detectors/FIT/FT0/calibration/testWorkflow/calib-global-offsets.cxx @@ -24,10 +24,7 @@ void customize(std::vector& workflowOptions) { // option allowing to set parameters std::vector options{ - {"disable-root-input", o2::framework::VariantType::Bool, false, {"disable root-files input reader"}}, - {"disable-root-output", o2::framework::VariantType::Bool, false, {"disable root-files output writer"}}, {"disable-mc", o2::framework::VariantType::Bool, false, {"disable MC propagation"}}, - {"info-sources", VariantType::String, std::string{GID::ALL}, {"comma-separated list of sources to use"}}, {"configKeyValues", VariantType::String, "", {"Semicolon separated key=value strings ..."}}}; std::swap(workflowOptions, options); diff --git a/Detectors/FIT/FT0/workflow/src/digits-writer-workflow.cxx b/Detectors/FIT/FT0/workflow/src/digits-writer-workflow.cxx index 4236a09bdca02..e75f1e288bae0 100644 --- a/Detectors/FIT/FT0/workflow/src/digits-writer-workflow.cxx +++ b/Detectors/FIT/FT0/workflow/src/digits-writer-workflow.cxx @@ -11,6 +11,7 @@ #include "CommonUtils/ConfigurableParam.h" #include "Framework/ConfigParamSpec.h" +#include "Framework/CompletionPolicyHelpers.h" using namespace o2::framework; @@ -24,6 +25,12 @@ void customize(std::vector& workflowOptions) std::swap(workflowOptions, options); } +void customize(std::vector& policies) +{ + // ordered policies for the writers + policies.push_back(CompletionPolicyHelpers::consumeWhenAllOrdered(".*(?:FT0|ft0).*[W,w]riter.*")); +} + #include "Framework/runDataProcessing.h" #include "Framework/WorkflowSpec.h" #include "FT0Workflow/FT0DigitWriterSpec.h" diff --git a/Detectors/FIT/FT0/workflow/src/ft0-flp-workflow.cxx b/Detectors/FIT/FT0/workflow/src/ft0-flp-workflow.cxx index 9f50ba49caeb6..40640ff2910d8 100644 --- a/Detectors/FIT/FT0/workflow/src/ft0-flp-workflow.cxx +++ b/Detectors/FIT/FT0/workflow/src/ft0-flp-workflow.cxx @@ -16,10 +16,16 @@ #include "DataFormatsFT0/MCLabel.h" #include "FT0Raw/RawReaderFT0Base.h" #include "SimulationDataFormat/MCTruthContainer.h" +#include "Framework/CompletionPolicyHelpers.h" using namespace o2::framework; // ------------------------------------------------------------------ +void customize(std::vector& policies) +{ + // ordered policies for the writers + policies.push_back(CompletionPolicyHelpers::consumeWhenAllOrdered(".*(?:FT0|ft0).*[W,w]riter.*")); +} // we need to add workflow options before including Framework/runDataProcessing void customize(std::vector& workflowOptions) diff --git a/Detectors/FIT/FT0/workflow/src/ft0-reco-workflow.cxx b/Detectors/FIT/FT0/workflow/src/ft0-reco-workflow.cxx index 53c18612c0d94..395f8711e4a9a 100644 --- a/Detectors/FIT/FT0/workflow/src/ft0-reco-workflow.cxx +++ b/Detectors/FIT/FT0/workflow/src/ft0-reco-workflow.cxx @@ -15,6 +15,7 @@ #include "Framework/CallbacksPolicy.h" #include "CommonUtils/NameConf.h" #include +#include "Framework/CompletionPolicyHelpers.h" using namespace o2::framework; @@ -24,6 +25,12 @@ void customize(std::vector& policies) o2::raw::HBFUtilsInitializer::addNewTimeSliceCallback(policies); } +void customize(std::vector& policies) +{ + // ordered policies for the writers + policies.push_back(CompletionPolicyHelpers::consumeWhenAllOrdered(".*(?:FT0|ft0).*[W,w]riter.*")); +} + // we need to add workflow options before including Framework/runDataProcessing void customize(std::vector& workflowOptions) { diff --git a/Detectors/FIT/FV0/workflow/src/digits-writer-workflow.cxx b/Detectors/FIT/FV0/workflow/src/digits-writer-workflow.cxx index 0a1d37017f8a3..27a94d8b2628e 100644 --- a/Detectors/FIT/FV0/workflow/src/digits-writer-workflow.cxx +++ b/Detectors/FIT/FV0/workflow/src/digits-writer-workflow.cxx @@ -11,6 +11,7 @@ #include "CommonUtils/ConfigurableParam.h" #include "Framework/ConfigParamSpec.h" +#include "Framework/CompletionPolicyHelpers.h" using namespace o2::framework; @@ -24,6 +25,12 @@ void customize(std::vector& workflowOptions) std::swap(workflowOptions, options); } +void customize(std::vector& policies) +{ + // ordered policies for the writers + policies.push_back(CompletionPolicyHelpers::consumeWhenAllOrdered(".*(?:FV0|fv0).*[W,w]riter.*")); +} + #include "Framework/runDataProcessing.h" #include "Framework/WorkflowSpec.h" #include "FV0Workflow/FV0DigitWriterSpec.h" diff --git a/Detectors/FIT/FV0/workflow/src/fv0-flp-workflow.cxx b/Detectors/FIT/FV0/workflow/src/fv0-flp-workflow.cxx index e7e06c7537443..4e1d816472f32 100644 --- a/Detectors/FIT/FV0/workflow/src/fv0-flp-workflow.cxx +++ b/Detectors/FIT/FV0/workflow/src/fv0-flp-workflow.cxx @@ -16,10 +16,16 @@ #include "DataFormatsFV0/MCLabel.h" #include "FV0Raw/RawReaderFV0Base.h" #include "SimulationDataFormat/MCTruthContainer.h" +#include "Framework/CompletionPolicyHelpers.h" using namespace o2::framework; // ------------------------------------------------------------------ +void customize(std::vector& policies) +{ + // ordered policies for the writers + policies.push_back(CompletionPolicyHelpers::consumeWhenAllOrdered(".*(?:FV0|fv0).*[W,w]riter.*")); +} // we need to add workflow options before including Framework/runDataProcessing void customize(std::vector& workflowOptions) diff --git a/Detectors/FIT/FV0/workflow/src/fv0-reco-workflow.cxx b/Detectors/FIT/FV0/workflow/src/fv0-reco-workflow.cxx index 9e9e3ac14a2db..f708c41dc0189 100644 --- a/Detectors/FIT/FV0/workflow/src/fv0-reco-workflow.cxx +++ b/Detectors/FIT/FV0/workflow/src/fv0-reco-workflow.cxx @@ -14,6 +14,7 @@ #include "DetectorsRaw/HBFUtilsInitializer.h" #include "Framework/CallbacksPolicy.h" #include "CommonUtils/NameConf.h" +#include "Framework/CompletionPolicyHelpers.h" #include using namespace o2::framework; @@ -24,6 +25,12 @@ void customize(std::vector& policies) o2::raw::HBFUtilsInitializer::addNewTimeSliceCallback(policies); } +void customize(std::vector& policies) +{ + // ordered policies for the writers + policies.push_back(CompletionPolicyHelpers::consumeWhenAllOrdered(".*(?:FV0|fv0).*[W,w]riter.*")); +} + // we need to add workflow options before including Framework/runDataProcessing void customize(std::vector& workflowOptions) { diff --git a/Detectors/Filtering/src/filtered-tf-writer-workflow.cxx b/Detectors/Filtering/src/filtered-tf-writer-workflow.cxx index 45c41dbec904a..fae2a7dcfaac0 100644 --- a/Detectors/Filtering/src/filtered-tf-writer-workflow.cxx +++ b/Detectors/Filtering/src/filtered-tf-writer-workflow.cxx @@ -11,6 +11,7 @@ #include "CommonUtils/ConfigurableParam.h" #include "Framework/ConfigParamSpec.h" +#include "Framework/CompletionPolicyHelpers.h" using namespace o2::framework; @@ -20,6 +21,11 @@ void customize(std::vector& workflowOptions) std::vector options{{"configKeyValues", VariantType::String, "", {"Semicolon separated key=value strings"}}}; std::swap(workflowOptions, options); } +void customize(std::vector& policies) +{ + // ordered policies for the writers + policies.push_back(CompletionPolicyHelpers::consumeWhenAllOrdered(".*filterer-reco-tf-writer.*")); +} #include "Framework/runDataProcessing.h" #include "Framework/WorkflowSpec.h" diff --git a/Detectors/GlobalTrackingWorkflow/src/cosmics-match-workflow.cxx b/Detectors/GlobalTrackingWorkflow/src/cosmics-match-workflow.cxx index 7b22108871128..7ada745d7fff0 100644 --- a/Detectors/GlobalTrackingWorkflow/src/cosmics-match-workflow.cxx +++ b/Detectors/GlobalTrackingWorkflow/src/cosmics-match-workflow.cxx @@ -11,6 +11,7 @@ #include "CommonUtils/ConfigurableParam.h" #include "Framework/CompletionPolicy.h" +#include "Framework/CompletionPolicyHelpers.h" #include "TPCReaderWorkflow/TPCSectorCompletionPolicy.h" #include "ITSWorkflow/TrackReaderSpec.h" #include "ITSMFTWorkflow/ClusterReaderSpec.h" @@ -63,6 +64,7 @@ void customize(std::vector& policies) policies.push_back(o2::tpc::TPCSectorCompletionPolicy("cosmics-matcher", o2::tpc::TPCSectorCompletionPolicy::Config::RequireAll, InputSpec{"cluster", o2::framework::ConcreteDataTypeMatcher{"TPC", "CLUSTERNATIVE"}})()); + policies.push_back(CompletionPolicyHelpers::consumeWhenAllOrdered(".*cosm.*[W,w]riter.*")); } // ------------------------------------------------------------------ diff --git a/Detectors/GlobalTrackingWorkflow/src/globalfwd-matcher-workflow.cxx b/Detectors/GlobalTrackingWorkflow/src/globalfwd-matcher-workflow.cxx index d035b6b144bdb..9376faabec223 100644 --- a/Detectors/GlobalTrackingWorkflow/src/globalfwd-matcher-workflow.cxx +++ b/Detectors/GlobalTrackingWorkflow/src/globalfwd-matcher-workflow.cxx @@ -13,6 +13,7 @@ #include "DetectorsCommonDataFormats/DetID.h" #include "CommonUtils/ConfigurableParam.h" #include "Framework/DataProcessorSpec.h" +#include "Framework/CompletionPolicyHelpers.h" #include "DetectorsRaw/HBFUtilsInitializer.h" #include "Framework/CallbacksPolicy.h" #include "GlobalTrackingWorkflow/GlobalFwdMatchingSpec.h" @@ -29,6 +30,12 @@ void customize(std::vector& policies) o2::raw::HBFUtilsInitializer::addNewTimeSliceCallback(policies); } +void customize(std::vector& policies) +{ + // ordered policies for the writers + policies.push_back(CompletionPolicyHelpers::consumeWhenAllOrdered(".*(?:FWD|fwd).*[W,w]riter.*")); +} + // we need to add workflow options before including Framework/runDataProcessing void customize(std::vector& workflowOptions) { diff --git a/Detectors/GlobalTrackingWorkflow/src/primary-vertexing-workflow.cxx b/Detectors/GlobalTrackingWorkflow/src/primary-vertexing-workflow.cxx index 9287f385c5811..00d5738c2dd4d 100644 --- a/Detectors/GlobalTrackingWorkflow/src/primary-vertexing-workflow.cxx +++ b/Detectors/GlobalTrackingWorkflow/src/primary-vertexing-workflow.cxx @@ -27,6 +27,7 @@ #include "CommonUtils/ConfigurableParam.h" #include "Framework/CompletionPolicy.h" #include "Framework/ConfigParamSpec.h" +#include "Framework/CompletionPolicyHelpers.h" using namespace o2::framework; using GID = o2::dataformats::GlobalTrackID; @@ -37,6 +38,12 @@ void customize(std::vector& policies) o2::raw::HBFUtilsInitializer::addNewTimeSliceCallback(policies); } +void customize(std::vector& policies) +{ + // ordered policies for the writers + policies.push_back(CompletionPolicyHelpers::consumeWhenAllOrdered(".*primary-vertex-writer.*")); +} + // we need to add workflow options before including Framework/runDataProcessing void customize(std::vector& workflowOptions) { diff --git a/Detectors/GlobalTrackingWorkflow/src/secondary-vertexing-workflow.cxx b/Detectors/GlobalTrackingWorkflow/src/secondary-vertexing-workflow.cxx index 4d3295108e8e1..1888cc12a1363 100644 --- a/Detectors/GlobalTrackingWorkflow/src/secondary-vertexing-workflow.cxx +++ b/Detectors/GlobalTrackingWorkflow/src/secondary-vertexing-workflow.cxx @@ -25,6 +25,7 @@ #include "Framework/CallbacksPolicy.h" #include "Framework/CompletionPolicy.h" #include "Framework/ConfigParamSpec.h" +#include "Framework/CompletionPolicyHelpers.h" using namespace o2::framework; using GID = o2::dataformats::GlobalTrackID; @@ -35,6 +36,12 @@ void customize(std::vector& policies) o2::raw::HBFUtilsInitializer::addNewTimeSliceCallback(policies); } +void customize(std::vector& policies) +{ + // ordered policies for the writers + policies.push_back(CompletionPolicyHelpers::consumeWhenAllOrdered(".*secondary-vertex-writer.*")); +} + // we need to add workflow options before including Framework/runDataProcessing void customize(std::vector& workflowOptions) { diff --git a/Detectors/GlobalTrackingWorkflow/src/tfidinfo-writer-workflow.cxx b/Detectors/GlobalTrackingWorkflow/src/tfidinfo-writer-workflow.cxx index 1bdf5449d8150..624e2602fda42 100644 --- a/Detectors/GlobalTrackingWorkflow/src/tfidinfo-writer-workflow.cxx +++ b/Detectors/GlobalTrackingWorkflow/src/tfidinfo-writer-workflow.cxx @@ -12,9 +12,16 @@ #include "CommonUtils/ConfigurableParam.h" #include "Framework/ConfigParamSpec.h" #include "DetectorsBase/TFIDInfoHelper.h" +#include "Framework/CompletionPolicyHelpers.h" using namespace o2::framework; +void customize(std::vector& policies) +{ + // ordered policies for the writers + policies.push_back(CompletionPolicyHelpers::consumeWhenAllOrdered(".*tfid-info-writer.*")); +} + // we need to add workflow options before including Framework/runDataProcessing void customize(std::vector& workflowOptions) { diff --git a/Detectors/GlobalTrackingWorkflow/src/tof-eventtime-checker-workflow.cxx b/Detectors/GlobalTrackingWorkflow/src/tof-eventtime-checker-workflow.cxx index 6345f66ab6744..7be366f42dce7 100644 --- a/Detectors/GlobalTrackingWorkflow/src/tof-eventtime-checker-workflow.cxx +++ b/Detectors/GlobalTrackingWorkflow/src/tof-eventtime-checker-workflow.cxx @@ -44,8 +44,6 @@ void customize(std::vector& workflowOptions) // option allowing to set parameters std::vector options{ {"disable-mc", o2::framework::VariantType::Bool, false, {"disable MC propagation even if available"}}, - {"disable-root-input", o2::framework::VariantType::Bool, false, {"disable root-files input reader"}}, - {"disable-root-output", o2::framework::VariantType::Bool, false, {"disable root-files output writer"}}, {"track-sources", VariantType::String, std::string{GID::ALL}, {"comma-separated list of sources to use: allowed TPC-TOF,ITS-TPC-TOF,TPC-TRD-TOF,ITS-TPC-TRD-TOF (all)"}}, {"event-time-spread", o2::framework::VariantType::Float, 200.0f, {"Event time spread"}}, {"lhc-phase", o2::framework::VariantType::Float, 0.0f, {"LHCp phase"}}, @@ -71,8 +69,6 @@ WorkflowSpec defineDataProcessing(ConfigContext const& configcontext) o2::conf::ConfigurableParam::writeINI("o2eventtime-check-tof-workflow_configuration.ini"); auto useMC = !configcontext.options().get("disable-mc"); - auto disableRootIn = configcontext.options().get("disable-root-input"); - auto disableRootOut = configcontext.options().get("disable-root-output"); auto spread = configcontext.options().get("event-time-spread"); auto phase = configcontext.options().get("lhc-phase"); @@ -118,9 +114,6 @@ WorkflowSpec defineDataProcessing(ConfigContext const& configcontext) LOG(debug) << "TOF EVENTTIME CHECKER WORKFLOW configuration"; LOG(debug) << "TOF track inputs = " << configcontext.options().get("track-sources"); - LOG(debug) << "TOF disable-mc = " << configcontext.options().get("disable-mc"); - LOG(debug) << "TOF disable-root-input = " << disableRootIn; - LOG(debug) << "TOF disable-root-output = " << disableRootOut; GID::mask_t alowedSources = GID::getSourcesMask("ITS-TPC-TOF,TPC-TOF,ITS-TPC-TRD-TOF,TPC-TRD-TOF,ITS-TPC,TPC,ITS-TPC-TRD,TPC-TRD"); diff --git a/Detectors/GlobalTrackingWorkflow/src/tof-match-checker-workflow.cxx b/Detectors/GlobalTrackingWorkflow/src/tof-match-checker-workflow.cxx index 3dc4572cac149..da79d7e629713 100644 --- a/Detectors/GlobalTrackingWorkflow/src/tof-match-checker-workflow.cxx +++ b/Detectors/GlobalTrackingWorkflow/src/tof-match-checker-workflow.cxx @@ -25,6 +25,7 @@ #include "Algorithm/RangeTokenizer.h" #include "DetectorsRaw/HBFUtilsInitializer.h" #include "Framework/CallbacksPolicy.h" +#include "Framework/CompletionPolicyHelpers.h" #include "GlobalTrackingWorkflowHelpers/InputHelper.h" using namespace o2::framework; @@ -36,14 +37,18 @@ void customize(std::vector& policies) o2::raw::HBFUtilsInitializer::addNewTimeSliceCallback(policies); } +void customize(std::vector& policies) +{ + // ordered policies for the writers + policies.push_back(CompletionPolicyHelpers::consumeWhenAllOrdered(".*(?:ITS|its).*[W,w]riter.*")); +} + // we need to add workflow options before including Framework/runDataProcessing void customize(std::vector& workflowOptions) { // option allowing to set parameters std::vector options{ {"disable-mc", o2::framework::VariantType::Bool, false, {"disable MC propagation even if available"}}, - {"disable-root-input", o2::framework::VariantType::Bool, false, {"disable root-files input reader"}}, - {"disable-root-output", o2::framework::VariantType::Bool, false, {"disable root-files output writer"}}, {"track-sources", VariantType::String, std::string{GID::ALL}, {"comma-separated list of sources to use: allowed TPC-TOF,ITS-TPC-TOF,TPC-TRD-TOF,ITS-TPC-TRD-TOF (all)"}}, {"configKeyValues", VariantType::String, "", {"Semicolon separated key=value strings ..."}}}; o2::raw::HBFUtilsInitializer::addConfigOption(options); @@ -64,14 +69,10 @@ WorkflowSpec defineDataProcessing(ConfigContext const& configcontext) o2::conf::ConfigurableParam::writeINI("o2match-check-tof-workflow_configuration.ini"); auto useMC = !configcontext.options().get("disable-mc"); - auto disableRootIn = configcontext.options().get("disable-root-input"); - auto disableRootOut = configcontext.options().get("disable-root-output"); LOG(debug) << "TOF MATCHER WORKFLOW configuration"; LOG(debug) << "TOF track inputs = " << configcontext.options().get("track-sources"); LOG(debug) << "TOF disable-mc = " << configcontext.options().get("disable-mc"); - LOG(debug) << "TOF disable-root-input = " << disableRootIn; - LOG(debug) << "TOF disable-root-output = " << disableRootOut; GID::mask_t alowedSources = GID::getSourcesMask("ITS-TPC-TOF,TPC-TOF,ITS-TPC-TRD-TOF,TPC-TRD-TOF"); diff --git a/Detectors/GlobalTrackingWorkflow/src/tof-matcher-workflow.cxx b/Detectors/GlobalTrackingWorkflow/src/tof-matcher-workflow.cxx index aadc07091c064..45f8b3bbd1260 100644 --- a/Detectors/GlobalTrackingWorkflow/src/tof-matcher-workflow.cxx +++ b/Detectors/GlobalTrackingWorkflow/src/tof-matcher-workflow.cxx @@ -12,6 +12,7 @@ #include "CommonUtils/ConfigurableParam.h" #include "Framework/CompletionPolicy.h" #include "TPCReaderWorkflow/TPCSectorCompletionPolicy.h" +#include "Framework/CompletionPolicyHelpers.h" #include "ITSWorkflow/TrackReaderSpec.h" #include "TPCReaderWorkflow/TrackReaderSpec.h" #include "TOFWorkflowIO/ClusterReaderSpec.h" @@ -39,6 +40,12 @@ void customize(std::vector& policies) o2::raw::HBFUtilsInitializer::addNewTimeSliceCallback(policies); } +void customize(std::vector& policies) +{ + // ordered policies for the writers + policies.push_back(CompletionPolicyHelpers::consumeWhenAllOrdered(".*(?:TOF|tof).*[W,w]riter.*")); +} + // we need to add workflow options before including Framework/runDataProcessing void customize(std::vector& workflowOptions) { diff --git a/Detectors/GlobalTrackingWorkflow/src/tpcits-match-workflow.cxx b/Detectors/GlobalTrackingWorkflow/src/tpcits-match-workflow.cxx index 07b1291ca9e51..ecdf557e64631 100644 --- a/Detectors/GlobalTrackingWorkflow/src/tpcits-match-workflow.cxx +++ b/Detectors/GlobalTrackingWorkflow/src/tpcits-match-workflow.cxx @@ -22,6 +22,7 @@ #include "DetectorsRaw/HBFUtilsInitializer.h" #include "Framework/CallbacksPolicy.h" #include "Framework/ConfigContext.h" +#include "Framework/CompletionPolicyHelpers.h" using namespace o2::framework; using GID = o2::dataformats::GlobalTrackID; @@ -55,6 +56,7 @@ void customize(std::vector& policies) policies.push_back(o2::tpc::TPCSectorCompletionPolicy("itstpc-track-matcher", o2::tpc::TPCSectorCompletionPolicy::Config::RequireAll, o2::framework::InputSpec{"cluster", o2::framework::ConcreteDataTypeMatcher{"TPC", "CLUSTERNATIVE"}})()); + policies.push_back(CompletionPolicyHelpers::consumeWhenAllOrdered(".*itstpc-track-writer.*")); } // ------------------------------------------------------------------ diff --git a/Detectors/GlobalTrackingWorkflow/tofworkflow/src/tof-reco-workflow.cxx b/Detectors/GlobalTrackingWorkflow/tofworkflow/src/tof-reco-workflow.cxx index 55a5ae942fa46..43bc465a59b31 100644 --- a/Detectors/GlobalTrackingWorkflow/tofworkflow/src/tof-reco-workflow.cxx +++ b/Detectors/GlobalTrackingWorkflow/tofworkflow/src/tof-reco-workflow.cxx @@ -31,6 +31,7 @@ #include "CommonUtils/NameConf.h" #include "DetectorsRaw/HBFUtilsInitializer.h" #include "Framework/CallbacksPolicy.h" +#include "Framework/CompletionPolicyHelpers.h" #include #include @@ -41,6 +42,12 @@ void customize(std::vector& policies) o2::raw::HBFUtilsInitializer::addNewTimeSliceCallback(policies); } +void customize(std::vector& policies) +{ + // ordered policies for the writers + policies.push_back(CompletionPolicyHelpers::consumeWhenAllOrdered(".*(?:TOF|tof).*[W,w]riter.*")); +} + // add workflow options, note that customization needs to be declared before // including Framework/runDataProcessing void customize(std::vector& workflowOptions) diff --git a/Detectors/GlobalTrackingWorkflow/tpcinterpolationworkflow/src/tpc-interpolation-workflow.cxx b/Detectors/GlobalTrackingWorkflow/tpcinterpolationworkflow/src/tpc-interpolation-workflow.cxx index 2460e0aa7e83c..2acdcdb674168 100644 --- a/Detectors/GlobalTrackingWorkflow/tpcinterpolationworkflow/src/tpc-interpolation-workflow.cxx +++ b/Detectors/GlobalTrackingWorkflow/tpcinterpolationworkflow/src/tpc-interpolation-workflow.cxx @@ -14,6 +14,7 @@ #include "TPCReaderWorkflow/TPCSectorCompletionPolicy.h" #include "DetectorsRaw/HBFUtilsInitializer.h" #include "Framework/CallbacksPolicy.h" +#include "Framework/CompletionPolicyHelpers.h" #include "ReconstructionDataFormats/GlobalTrackID.h" #include "GlobalTrackingWorkflowHelpers/InputHelper.h" #include "TPCInterpolationWorkflow/TPCInterpolationSpec.h" @@ -53,6 +54,8 @@ void customize(std::vector& policies) policies.push_back(o2::tpc::TPCSectorCompletionPolicy("tpc-track-interpolation", o2::tpc::TPCSectorCompletionPolicy::Config::RequireAll, InputSpec{"cluster", o2::framework::ConcreteDataTypeMatcher{"TPC", "CLUSTERNATIVE"}})()); + // ordered policies for the writers + policies.push_back(CompletionPolicyHelpers::consumeWhenAllOrdered(".*tpc-residuals-writer.*")); } // ------------------------------------------------------------------ diff --git a/Detectors/GlobalTrackingWorkflow/writers/src/irframe-writer-workflow.cxx b/Detectors/GlobalTrackingWorkflow/writers/src/irframe-writer-workflow.cxx index 35ccdd12c3a0f..2a914334b9542 100644 --- a/Detectors/GlobalTrackingWorkflow/writers/src/irframe-writer-workflow.cxx +++ b/Detectors/GlobalTrackingWorkflow/writers/src/irframe-writer-workflow.cxx @@ -10,9 +10,16 @@ // or submit itself to any jurisdiction. #include "Framework/ConfigParamSpec.h" +#include "Framework/CompletionPolicyHelpers.h" using namespace o2::framework; +void customize(std::vector& policies) +{ + // ordered policies for the writers + policies.push_back(CompletionPolicyHelpers::consumeWhenAllOrdered(".*(?:IRFR|irfr).*[W,w]riter.*")); +} + void customize(std::vector& workflowOptions) { workflowOptions.push_back(ConfigParamSpec{"input-spec", o2::framework::VariantType::String, "X:NIL/IRFRAMES/0", {"input spec"}}); diff --git a/Detectors/ITSMFT/ITS/workflow/src/its-cluster-writer-workflow.cxx b/Detectors/ITSMFT/ITS/workflow/src/its-cluster-writer-workflow.cxx index 0b0dfc6ddaa14..ad3d8eea6e636 100644 --- a/Detectors/ITSMFT/ITS/workflow/src/its-cluster-writer-workflow.cxx +++ b/Detectors/ITSMFT/ITS/workflow/src/its-cluster-writer-workflow.cxx @@ -11,9 +11,16 @@ #include "ITSWorkflow/ClusterWriterWorkflow.h" #include "Framework/ConfigParamSpec.h" +#include "Framework/CompletionPolicyHelpers.h" using namespace o2::framework; +void customize(std::vector& policies) +{ + // ordered policies for the writers + policies.push_back(CompletionPolicyHelpers::consumeWhenAllOrdered(".*(?:ITS|its).*[W,w]riter.*")); +} + void customize(std::vector& workflowOptions) { workflowOptions.push_back( diff --git a/Detectors/ITSMFT/ITS/workflow/src/its-reco-workflow.cxx b/Detectors/ITSMFT/ITS/workflow/src/its-reco-workflow.cxx index 303defbb49cb7..16f1b5fddca19 100644 --- a/Detectors/ITSMFT/ITS/workflow/src/its-reco-workflow.cxx +++ b/Detectors/ITSMFT/ITS/workflow/src/its-reco-workflow.cxx @@ -16,6 +16,7 @@ #include "DetectorsRaw/HBFUtilsInitializer.h" #include "Framework/CallbacksPolicy.h" #include "Framework/ConfigContext.h" +#include "Framework/CompletionPolicyHelpers.h" #include "GPUO2Interface.h" #include "GPUReconstruction.h" @@ -29,6 +30,13 @@ void customize(std::vector& policies) o2::raw::HBFUtilsInitializer::addNewTimeSliceCallback(policies); } +void customize(std::vector& policies) +{ + // ordered policies for the writers + policies.push_back(CompletionPolicyHelpers::consumeWhenAllOrdered(".*(?:ITS|its).*[W,w]riter.*")); + policies.push_back(CompletionPolicyHelpers::consumeWhenAllOrdered(".*irframe-writer.*")); +} + void customize(std::vector& workflowOptions) { // option allowing to set parameters diff --git a/Detectors/ITSMFT/MFT/workflow/src/mft-reco-workflow.cxx b/Detectors/ITSMFT/MFT/workflow/src/mft-reco-workflow.cxx index 4fffc83c5f02f..2c77f5cb0301a 100644 --- a/Detectors/ITSMFT/MFT/workflow/src/mft-reco-workflow.cxx +++ b/Detectors/ITSMFT/MFT/workflow/src/mft-reco-workflow.cxx @@ -13,6 +13,7 @@ #include "CommonUtils/ConfigurableParam.h" #include "DetectorsRaw/HBFUtilsInitializer.h" #include "Framework/CallbacksPolicy.h" +#include "Framework/CompletionPolicyHelpers.h" using namespace o2::framework; @@ -21,6 +22,12 @@ void customize(std::vector& policies) o2::raw::HBFUtilsInitializer::addNewTimeSliceCallback(policies); } +void customize(std::vector& policies) +{ + // ordered policies for the writers + policies.push_back(CompletionPolicyHelpers::consumeWhenAllOrdered(".*(?:MFT|mft).*[W,w]riter.*")); +} + // we need to add workflow options before including Framework/runDataProcessing void customize(std::vector& workflowOptions) { diff --git a/Detectors/ITSMFT/common/workflow/src/digit-writer-workflow.cxx b/Detectors/ITSMFT/common/workflow/src/digit-writer-workflow.cxx index 1ec097fa5d7ee..2d4fbea9aef6c 100644 --- a/Detectors/ITSMFT/common/workflow/src/digit-writer-workflow.cxx +++ b/Detectors/ITSMFT/common/workflow/src/digit-writer-workflow.cxx @@ -12,10 +12,16 @@ #include "ITSMFTWorkflow/DigitWriterSpec.h" #include "CommonUtils/ConfigurableParam.h" #include "Framework/ConfigParamSpec.h" +#include "Framework/CompletionPolicyHelpers.h" using namespace o2::framework; // ------------------------------------------------------------------ +void customize(std::vector& policies) +{ + // ordered policies for the writers + policies.push_back(CompletionPolicyHelpers::consumeWhenAllOrdered(".*(?:ITS|its|MFT|mft).*[W,w]riter.*")); +} // we need to add workflow options before including Framework/runDataProcessing void customize(std::vector& workflowOptions) diff --git a/Detectors/MUON/MCH/DevIO/Digits/digits-writer-workflow.cxx b/Detectors/MUON/MCH/DevIO/Digits/digits-writer-workflow.cxx index bbe6a98702601..e1f5e9ccdd434 100644 --- a/Detectors/MUON/MCH/DevIO/Digits/digits-writer-workflow.cxx +++ b/Detectors/MUON/MCH/DevIO/Digits/digits-writer-workflow.cxx @@ -29,6 +29,7 @@ #include "Framework/Output.h" #include "Framework/Task.h" #include "Framework/WorkflowSpec.h" +#include "Framework/CompletionPolicyHelpers.h" #include "MCHRawDecoder/OrbitInfo.h" #include #include @@ -48,6 +49,12 @@ constexpr const char* OPTNAME_BINARY_FORMAT = "binary-file-format"; constexpr const char* OPTNAME_WITHOUT_ORBITS = "without-orbits"; constexpr const char* OPTNAME_MAX_SIZE = "max-size"; +void customize(std::vector& policies) +{ + // ordered policies for the writers + policies.push_back(CompletionPolicyHelpers::consumeWhenAllOrdered(".*(?:MCH|mch).*[W,w]riter.*")); +} + template using BranchDefinition = MakeRootTreeWriterSpec::BranchDefinition; diff --git a/Detectors/MUON/MCH/Workflow/src/clusters-writer-workflow.cxx b/Detectors/MUON/MCH/Workflow/src/clusters-writer-workflow.cxx index feb3c4246acde..a4aa09f2d7ad2 100644 --- a/Detectors/MUON/MCH/Workflow/src/clusters-writer-workflow.cxx +++ b/Detectors/MUON/MCH/Workflow/src/clusters-writer-workflow.cxx @@ -12,9 +12,16 @@ #include #include "Framework/ConfigParamSpec.h" #include "MCHWorkflow/ClusterWriterSpec.h" +#include "Framework/CompletionPolicyHelpers.h" using namespace o2::framework; +void customize(std::vector& policies) +{ + // ordered policies for the writers + policies.push_back(CompletionPolicyHelpers::consumeWhenAllOrdered(".*(?:MCH|mch).*[W,w]riter.*")); +} + // we need to add workflow options before including Framework/runDataProcessing void customize(std::vector& workflowOptions) { diff --git a/Detectors/MUON/MCH/Workflow/src/reco-workflow.cxx b/Detectors/MUON/MCH/Workflow/src/reco-workflow.cxx index e2fb4c24ea70e..6138e8447375d 100644 --- a/Detectors/MUON/MCH/Workflow/src/reco-workflow.cxx +++ b/Detectors/MUON/MCH/Workflow/src/reco-workflow.cxx @@ -15,6 +15,7 @@ #include "DigitFilteringSpec.h" #include "DigitReaderSpec.h" #include "Framework/CallbacksPolicy.h" +#include "Framework/CompletionPolicyHelpers.h" #include "Framework/ConfigContext.h" #include "Framework/Logger.h" #include "Framework/Variant.h" @@ -28,16 +29,19 @@ #include "TrackFitterSpec.h" #include "TrackMCLabelFinderSpec.h" -using o2::framework::ConfigContext; -using o2::framework::ConfigParamSpec; -using o2::framework::VariantType; -using o2::framework::WorkflowSpec; +using namespace o2::framework; void customize(std::vector& policies) { o2::raw::HBFUtilsInitializer::addNewTimeSliceCallback(policies); } +void customize(std::vector& policies) +{ + // ordered policies for the writers + policies.push_back(CompletionPolicyHelpers::consumeWhenAllOrdered(".*(?:MCH|mch).*[W,w]riter.*")); +} + void customize(std::vector& workflowOptions) { std::vector options{ diff --git a/Detectors/MUON/MCH/Workflow/src/tracks-writer-workflow.cxx b/Detectors/MUON/MCH/Workflow/src/tracks-writer-workflow.cxx index aa40da61c398e..52100a98b5eb3 100644 --- a/Detectors/MUON/MCH/Workflow/src/tracks-writer-workflow.cxx +++ b/Detectors/MUON/MCH/Workflow/src/tracks-writer-workflow.cxx @@ -11,10 +11,17 @@ #include #include "Framework/ConfigParamSpec.h" +#include "Framework/CompletionPolicyHelpers.h" #include "MCHWorkflow/TrackWriterSpec.h" using namespace o2::framework; +void customize(std::vector& policies) +{ + // ordered policies for the writers + policies.push_back(CompletionPolicyHelpers::consumeWhenAllOrdered(".*(?:MCH|mch).*[W,w]riter.*")); +} + // we need to add workflow options before including Framework/runDataProcessing void customize(std::vector& workflowOptions) { diff --git a/Detectors/MUON/MID/Workflow/src/decoded-digits-writer-workflow.cxx b/Detectors/MUON/MID/Workflow/src/decoded-digits-writer-workflow.cxx index 87f1589ae051c..015148b571447 100644 --- a/Detectors/MUON/MID/Workflow/src/decoded-digits-writer-workflow.cxx +++ b/Detectors/MUON/MID/Workflow/src/decoded-digits-writer-workflow.cxx @@ -18,6 +18,7 @@ #include #include "Framework/Variant.h" #include "Framework/ConfigParamSpec.h" +#include "Framework/CompletionPolicyHelpers.h" using namespace o2::framework; @@ -30,6 +31,12 @@ void customize(std::vector& workflowOptions) workflowOptions.insert(workflowOptions.end(), options.begin(), options.end()); } +void customize(std::vector& policies) +{ + // ordered policies for the writers + policies.push_back(CompletionPolicyHelpers::consumeWhenAllOrdered(".*(?:MID|mid).*[W,w]riter.*")); +} + #include "Framework/runDataProcessing.h" #include "DPLUtils/MakeRootTreeWriterSpec.h" #include "DataFormatsMID/ColumnData.h" diff --git a/Detectors/MUON/MID/Workflow/src/reco-workflow.cxx b/Detectors/MUON/MID/Workflow/src/reco-workflow.cxx index a57b5bdbb214f..b9ca9f5404f3d 100644 --- a/Detectors/MUON/MID/Workflow/src/reco-workflow.cxx +++ b/Detectors/MUON/MID/Workflow/src/reco-workflow.cxx @@ -19,6 +19,7 @@ #include #include "Framework/Variant.h" #include "Framework/ConfigParamSpec.h" +#include "Framework/CompletionPolicyHelpers.h" #include "DPLUtils/MakeRootTreeWriterSpec.h" #include "SimulationDataFormat/MCCompLabel.h" #include "SimulationDataFormat/MCTruthContainer.h" @@ -33,6 +34,12 @@ using namespace o2::framework; +void customize(std::vector& policies) +{ + // ordered policies for the writers + policies.push_back(CompletionPolicyHelpers::consumeWhenAllOrdered(".*(?:MID|mid).*[W,w]riter.*")); +} + // we need to add workflow options before including Framework/runDataProcessing void customize(std::vector& workflowOptions) { diff --git a/Detectors/MUON/Workflow/src/tracks-writer-workflow.cxx b/Detectors/MUON/Workflow/src/tracks-writer-workflow.cxx index 07c789c88590c..cf60a49fc55f2 100644 --- a/Detectors/MUON/Workflow/src/tracks-writer-workflow.cxx +++ b/Detectors/MUON/Workflow/src/tracks-writer-workflow.cxx @@ -14,10 +14,17 @@ /// /// \author Philippe Pillot, Subatech -#include "Framework/runDataProcessing.h" #include "TrackWriterSpec.h" +#include "Framework/CompletionPolicyHelpers.h" using namespace o2::framework; +void customize(std::vector& policies) +{ + // ordered policies for the writers + policies.push_back(CompletionPolicyHelpers::consumeWhenAllOrdered(".*(?:MCH|mch).*[W,w]riter.*")); +} + +#include "Framework/runDataProcessing.h" WorkflowSpec defineDataProcessing(const ConfigContext&) { diff --git a/Detectors/PHOS/workflow/src/cell-writer-workflow.cxx b/Detectors/PHOS/workflow/src/cell-writer-workflow.cxx index a1cc3fdf74ad0..fc3cd4ac14352 100644 --- a/Detectors/PHOS/workflow/src/cell-writer-workflow.cxx +++ b/Detectors/PHOS/workflow/src/cell-writer-workflow.cxx @@ -16,6 +16,7 @@ #include "DPLUtils/MakeRootTreeWriterSpec.h" #include "CommonUtils/ConfigurableParam.h" #include "PHOSWorkflow/WriterSpec.h" +#include "Framework/CompletionPolicyHelpers.h" using namespace o2::framework; using namespace o2::phos; @@ -28,6 +29,12 @@ void customize(std::vector& workflowOptions) workflowOptions.insert(workflowOptions.end(), options.begin(), options.end()); } +void customize(std::vector& policies) +{ + // ordered policies for the writers + policies.push_back(CompletionPolicyHelpers::consumeWhenAllOrdered(".*(?:PHO?S|pho?s).*[W,w]riter.*")); +} + #include "Framework/runDataProcessing.h" WorkflowSpec defineDataProcessing(ConfigContext const& cfgc) diff --git a/Detectors/PHOS/workflow/src/phos-reco-workflow.cxx b/Detectors/PHOS/workflow/src/phos-reco-workflow.cxx index bda35d79fd371..d6b7aa19c94f3 100644 --- a/Detectors/PHOS/workflow/src/phos-reco-workflow.cxx +++ b/Detectors/PHOS/workflow/src/phos-reco-workflow.cxx @@ -21,16 +21,25 @@ #include "CommonUtils/ConfigurableParam.h" #include "DetectorsRaw/HBFUtilsInitializer.h" #include "Framework/CallbacksPolicy.h" +#include "Framework/CompletionPolicyHelpers.h" #include #include #include +using namespace o2::framework; + void customize(std::vector& policies) { o2::raw::HBFUtilsInitializer::addNewTimeSliceCallback(policies); } +void customize(std::vector& policies) +{ + // ordered policies for the writers + policies.push_back(CompletionPolicyHelpers::consumeWhenAllOrdered(".*(?:PHO?S|pho?s).*[W,w]riter.*")); +} + // add workflow options, note that customization needs to be declared before // including Framework/runDataProcessing void customize(std::vector& workflowOptions) diff --git a/Detectors/TOF/workflow/src/cluster-writer-commissioning.cxx b/Detectors/TOF/workflow/src/cluster-writer-commissioning.cxx index 6a2c4f6210787..2fae1f7890b3d 100644 --- a/Detectors/TOF/workflow/src/cluster-writer-commissioning.cxx +++ b/Detectors/TOF/workflow/src/cluster-writer-commissioning.cxx @@ -12,6 +12,7 @@ #include "TOFWorkflowIO/TOFClusterWriterSplitterSpec.h" #include "CommonUtils/ConfigurableParam.h" #include "Framework/ConfigParamSpec.h" +#include "Framework/CompletionPolicyHelpers.h" using namespace o2::framework; @@ -24,6 +25,11 @@ void customize(std::vector& workflowOptions) workflowOptions.push_back(ConfigParamSpec{"ntf", o2::framework::VariantType::Int, 1, {"number of timeframe written for output file"}}); } +void customize(std::vector& policies) +{ + // ordered policies for the writers + policies.push_back(CompletionPolicyHelpers::consumeWhenAllOrdered(".*(?:TOF|tof).*[W,w]riter.*")); +} // ------------------------------------------------------------------ #include "Framework/runDataProcessing.h" diff --git a/Detectors/TOF/workflow/src/digit-writer-commissioning.cxx b/Detectors/TOF/workflow/src/digit-writer-commissioning.cxx index 5e70f51dcc22b..d13b93cdbd1cf 100644 --- a/Detectors/TOF/workflow/src/digit-writer-commissioning.cxx +++ b/Detectors/TOF/workflow/src/digit-writer-commissioning.cxx @@ -12,10 +12,16 @@ #include "TOFWorkflowIO/TOFDigitWriterSplitterSpec.h" #include "CommonUtils/ConfigurableParam.h" #include "Framework/ConfigParamSpec.h" +#include "Framework/CompletionPolicyHelpers.h" using namespace o2::framework; // ------------------------------------------------------------------ +void customize(std::vector& policies) +{ + // ordered policies for the writers + policies.push_back(CompletionPolicyHelpers::consumeWhenAllOrdered(".*(?:TOF|tof).*[W,w]riter.*")); +} // we need to add workflow options before including Framework/runDataProcessing void customize(std::vector& workflowOptions) diff --git a/Detectors/TPC/workflow/src/tpc-reco-workflow.cxx b/Detectors/TPC/workflow/src/tpc-reco-workflow.cxx index b81698a95d7d3..1f5aa4439d920 100644 --- a/Detectors/TPC/workflow/src/tpc-reco-workflow.cxx +++ b/Detectors/TPC/workflow/src/tpc-reco-workflow.cxx @@ -97,12 +97,7 @@ void customize(std::vector& policies) policies.push_back(CompletionPolicyHelpers::defineByName("tpc-cluster-decoder.*", CompletionPolicy::CompletionOp::Consume)); policies.push_back(CompletionPolicyHelpers::defineByName("tpc-clusterer.*", CompletionPolicy::CompletionOp::Consume)); // ordered policies for the writers - policies.push_back(CompletionPolicyHelpers::consumeWhenAllOrdered("tpc-digits-writer.*")); - policies.push_back(CompletionPolicyHelpers::consumeWhenAllOrdered("tpc-clusterhardware-writer.*")); - policies.push_back(CompletionPolicyHelpers::consumeWhenAllOrdered("tpc-native-cluster-writer.*")); - policies.push_back(CompletionPolicyHelpers::consumeWhenAllOrdered("tpc-track-writer.*")); - policies.push_back(CompletionPolicyHelpers::consumeWhenAllOrdered("tpc-compcluster-writer.*")); - + policies.push_back(CompletionPolicyHelpers::consumeWhenAllOrdered(".*(?:TPC|tpc).*[w,W]riter.*")); // the custom completion policy for the tracker policies.push_back(o2::tpc::TPCSectorCompletionPolicy("tpc-tracker.*", o2::tpc::TPCSectorCompletionPolicy::Config::RequireAll, &gPolicyData, &gTpcSectorMask)()); } diff --git a/Detectors/TRD/workflow/io/src/TRDCalibratedTrackletWriterSpec.cxx b/Detectors/TRD/workflow/io/src/TRDCalibratedTrackletWriterSpec.cxx index 341000929e036..8c9237becd6fd 100644 --- a/Detectors/TRD/workflow/io/src/TRDCalibratedTrackletWriterSpec.cxx +++ b/Detectors/TRD/workflow/io/src/TRDCalibratedTrackletWriterSpec.cxx @@ -30,7 +30,7 @@ o2::framework::DataProcessorSpec getTRDCalibratedTrackletWriterSpec(bool useMC) { using MakeRootTreeWriterSpec = framework::MakeRootTreeWriterSpec; - return MakeRootTreeWriterSpec("calibrated-tracklet-writer", + return MakeRootTreeWriterSpec("trd-calibrated-tracklet-writer", "trdcalibratedtracklets.root", "ctracklets", BranchDefinition>{InputSpec{"ctracklets", "TRD", "CTRACKLETS"}, "CTracklets"}, diff --git a/Detectors/TRD/workflow/io/src/TRDTrackletWriterSpec.cxx b/Detectors/TRD/workflow/io/src/TRDTrackletWriterSpec.cxx index 0b42453997db3..d985001a8a418 100644 --- a/Detectors/TRD/workflow/io/src/TRDTrackletWriterSpec.cxx +++ b/Detectors/TRD/workflow/io/src/TRDTrackletWriterSpec.cxx @@ -45,7 +45,7 @@ o2::framework::DataProcessorSpec getTRDTrackletWriterSpec(bool useMC) output << " 10 " << endl; }*/ //LOG(info) << "before writing out the tracklet size is " << Tracklet->size(); - return MakeRootTreeWriterSpec("TRDTrkltWrt", + return MakeRootTreeWriterSpec("TRD-tracklet-writer", "trdtracklets.root", "o2sim", BranchDefinition>{InputSpec{"tracklets", "TRD", "TRACKLETS"}, "Tracklet"}, diff --git a/Detectors/TRD/workflow/io/src/TRDTrapRawWriterSpec.cxx b/Detectors/TRD/workflow/io/src/TRDTrapRawWriterSpec.cxx index 87c88b5157532..bce80c768a2e5 100644 --- a/Detectors/TRD/workflow/io/src/TRDTrapRawWriterSpec.cxx +++ b/Detectors/TRD/workflow/io/src/TRDTrapRawWriterSpec.cxx @@ -37,7 +37,7 @@ o2::framework::DataProcessorSpec getTRDTrapRawWriterSpec() { // using InputSpec = framework::InputSpec; using MakeRootTreeWriterSpec = framework::MakeRootTreeWriterSpec; - return MakeRootTreeWriterSpec("TRDTrkltRawWrt", + return MakeRootTreeWriterSpec("TRDTrkltRawWriter", "trdtrapraw.root", "o2sim", BranchDefinition>{InputSpec{"trapraw", "TRD", "RAWDATA"}, "TrapRaw"}, diff --git a/Detectors/TRD/workflow/io/src/trd-digittracklet-writer-workflow.cxx b/Detectors/TRD/workflow/io/src/trd-digittracklet-writer-workflow.cxx index a7e8444c9c739..38619ca6f193a 100644 --- a/Detectors/TRD/workflow/io/src/trd-digittracklet-writer-workflow.cxx +++ b/Detectors/TRD/workflow/io/src/trd-digittracklet-writer-workflow.cxx @@ -14,6 +14,7 @@ #include "Framework/ConfigParamSpec.h" #include "TRDWorkflowIO/TRDTrackletWriterSpec.h" #include "TRDWorkflowIO/TRDDigitWriterSpec.h" +#include "Framework/CompletionPolicyHelpers.h" using namespace o2::framework; @@ -31,6 +32,12 @@ void customize(std::vector& workflowOptions) std::swap(workflowOptions, options); } +void customize(std::vector& policies) +{ + // ordered policies for the writers + policies.push_back(CompletionPolicyHelpers::consumeWhenAllOrdered(".*(?:TRD|trd).*[W,w]riter.*")); +} + // ------------------------------------------------------------------ #include "Framework/runDataProcessing.h" diff --git a/Detectors/TRD/workflow/src/TRDTrackletTransformerWorkflow.cxx b/Detectors/TRD/workflow/src/TRDTrackletTransformerWorkflow.cxx index 8667f0a19259f..e405ee2e5ad23 100644 --- a/Detectors/TRD/workflow/src/TRDTrackletTransformerWorkflow.cxx +++ b/Detectors/TRD/workflow/src/TRDTrackletTransformerWorkflow.cxx @@ -16,6 +16,7 @@ #include "DetectorsRaw/HBFUtilsInitializer.h" #include "CommonUtils/ConfigurableParam.h" #include "Framework/CompletionPolicy.h" +#include "Framework/CompletionPolicyHelpers.h" using namespace o2::framework; @@ -24,6 +25,12 @@ void customize(std::vector& policies) o2::raw::HBFUtilsInitializer::addNewTimeSliceCallback(policies); } +void customize(std::vector& policies) +{ + // ordered policies for the writers + policies.push_back(CompletionPolicyHelpers::consumeWhenAllOrdered(".*(?:TRD|trd).*[W,w]riter.*")); +} + void customize(std::vector& workflowOptions) { std::vector options{ diff --git a/Detectors/TRD/workflow/src/TRDTrapSimulatorWorkFlow.cxx b/Detectors/TRD/workflow/src/TRDTrapSimulatorWorkFlow.cxx index af075169fccae..e6a8010d4b991 100644 --- a/Detectors/TRD/workflow/src/TRDTrapSimulatorWorkFlow.cxx +++ b/Detectors/TRD/workflow/src/TRDTrapSimulatorWorkFlow.cxx @@ -17,6 +17,7 @@ #include "Algorithm/RangeTokenizer.h" #include "DetectorsCommonDataFormats/DetID.h" #include "CommonUtils/ConfigurableParam.h" +#include "Framework/CompletionPolicyHelpers.h" // for TRD #include "TRDWorkflow/TRDTrapSimulatorSpec.h" @@ -36,6 +37,11 @@ using namespace o2::framework; // ------------------------------------------------------------------ +void customize(std::vector& policies) +{ + // ordered policies for the writers + policies.push_back(CompletionPolicyHelpers::consumeWhenAllOrdered(".*(?:TRD|trd).*[W,w]riter.*")); +} void customize(std::vector& workflowoptions) { diff --git a/Detectors/TRD/workflow/src/trd-kr-clusterer.cxx b/Detectors/TRD/workflow/src/trd-kr-clusterer.cxx index ee0cd08c1e343..70fa623689a57 100644 --- a/Detectors/TRD/workflow/src/trd-kr-clusterer.cxx +++ b/Detectors/TRD/workflow/src/trd-kr-clusterer.cxx @@ -11,6 +11,7 @@ #include "CommonUtils/ConfigurableParam.h" #include "Framework/CompletionPolicy.h" +#include "Framework/CompletionPolicyHelpers.h" #include "TRDWorkflow/KrClustererSpec.h" #include "TRDWorkflowIO/TRDDigitReaderSpec.h" #include "TRDWorkflowIO/KrClusterWriterSpec.h" @@ -31,6 +32,11 @@ void customize(std::vector& workflowOptions) std::swap(workflowOptions, options); } +void customize(std::vector& policies) +{ + // ordered policies for the writers + policies.push_back(CompletionPolicyHelpers::consumeWhenAllOrdered(".*(?:TRD|trd).*[W,w]riter.*")); +} // ------------------------------------------------------------------ #include "Framework/runDataProcessing.h" diff --git a/Detectors/TRD/workflow/src/trd-tracking-workflow.cxx b/Detectors/TRD/workflow/src/trd-tracking-workflow.cxx index 678730a8248bb..2a9ac5af138a6 100644 --- a/Detectors/TRD/workflow/src/trd-tracking-workflow.cxx +++ b/Detectors/TRD/workflow/src/trd-tracking-workflow.cxx @@ -11,6 +11,7 @@ #include "CommonUtils/ConfigurableParam.h" #include "Framework/CompletionPolicy.h" +#include "Framework/CompletionPolicyHelpers.h" #include "DetectorsRaw/HBFUtilsInitializer.h" #include "Framework/CallbacksPolicy.h" #include "ReconstructionDataFormats/GlobalTrackID.h" @@ -30,6 +31,12 @@ void customize(std::vector& policies) o2::raw::HBFUtilsInitializer::addNewTimeSliceCallback(policies); } +void customize(std::vector& policies) +{ + // ordered policies for the writers + policies.push_back(CompletionPolicyHelpers::consumeWhenAllOrdered(".*(?:TRD|trd).*[W,w]riter.*")); +} + // we need to add workflow options before including Framework/runDataProcessing void customize(std::vector& workflowOptions) { diff --git a/Detectors/Upgrades/IT3/workflow/src/digit-writer-workflow.cxx b/Detectors/Upgrades/IT3/workflow/src/digit-writer-workflow.cxx index 9d6c3c8ecfda8..f37fce71dc2d2 100644 --- a/Detectors/Upgrades/IT3/workflow/src/digit-writer-workflow.cxx +++ b/Detectors/Upgrades/IT3/workflow/src/digit-writer-workflow.cxx @@ -12,10 +12,16 @@ #include "ITS3Workflow/DigitWriterSpec.h" #include "CommonUtils/ConfigurableParam.h" #include "Framework/ConfigParamSpec.h" +#include "Framework/CompletionPolicyHelpers.h" using namespace o2::framework; // ------------------------------------------------------------------ +void customize(std::vector& policies) +{ + // ordered policies for the writers + policies.push_back(CompletionPolicyHelpers::consumeWhenAllOrdered(".*(?:IT|it).*[W,w]riter.*")); +} // we need to add workflow options before including Framework/runDataProcessing void customize(std::vector& workflowOptions) diff --git a/Detectors/Upgrades/IT3/workflow/src/its3-reco-workflow.cxx b/Detectors/Upgrades/IT3/workflow/src/its3-reco-workflow.cxx index cf69b948cff55..1001a889506ff 100644 --- a/Detectors/Upgrades/IT3/workflow/src/its3-reco-workflow.cxx +++ b/Detectors/Upgrades/IT3/workflow/src/its3-reco-workflow.cxx @@ -15,6 +15,7 @@ #include "ITStracking/Configuration.h" #include "DetectorsRaw/HBFUtilsInitializer.h" #include "Framework/CallbacksPolicy.h" +#include "Framework/CompletionPolicyHelpers.h" #include "GPUO2Interface.h" #include "GPUReconstruction.h" @@ -28,6 +29,12 @@ void customize(std::vector& policies) o2::raw::HBFUtilsInitializer::addNewTimeSliceCallback(policies); } +void customize(std::vector& policies) +{ + // ordered policies for the writers + policies.push_back(CompletionPolicyHelpers::consumeWhenAllOrdered(".*(?:ITS|its)3.*[W,w]riter.*")); +} + // we need to add workflow options before including Framework/runDataProcessing void customize(std::vector& workflowOptions) { diff --git a/Detectors/ZDC/workflow/src/o2-zdc-raw2digits.cxx b/Detectors/ZDC/workflow/src/o2-zdc-raw2digits.cxx index fb0e6b00c25c3..9762b07ed072c 100644 --- a/Detectors/ZDC/workflow/src/o2-zdc-raw2digits.cxx +++ b/Detectors/ZDC/workflow/src/o2-zdc-raw2digits.cxx @@ -11,6 +11,7 @@ #include "CommonUtils/ConfigurableParam.h" #include "Framework/ConfigParamSpec.h" +#include "Framework/CompletionPolicyHelpers.h" using namespace o2::framework; @@ -30,6 +31,12 @@ void customize(std::vector& workflowOptions) std::swap(workflowOptions, options); } +void customize(std::vector& policies) +{ + // ordered policies for the writers + policies.push_back(CompletionPolicyHelpers::consumeWhenAllOrdered(".*(?:ZDC|zdc).*[W,w]riter.*")); +} + // ------------------------------------------------------------------ #include "Framework/runDataProcessing.h" #include "ZDCWorkflow/ZDCDataReaderDPLSpec.h" diff --git a/Detectors/ZDC/workflow/src/reco-writer-workflow.cxx b/Detectors/ZDC/workflow/src/reco-writer-workflow.cxx index f58b4cbf7bba8..c05ab908b1ea2 100644 --- a/Detectors/ZDC/workflow/src/reco-writer-workflow.cxx +++ b/Detectors/ZDC/workflow/src/reco-writer-workflow.cxx @@ -11,6 +11,7 @@ #include "ZDCWorkflow/ZDCRecoWriterDPLSpec.h" #include "Framework/ConfigParamSpec.h" +#include "Framework/CompletionPolicyHelpers.h" using namespace o2::framework; @@ -24,6 +25,12 @@ void customize(std::vector& workflowOptions) {"disable MC propagation even if available"}}); } +void customize(std::vector& policies) +{ + // ordered policies for the writers + policies.push_back(CompletionPolicyHelpers::consumeWhenAllOrdered(".*(?:ZDC|zdc).*[W,w]riter.*")); +} + #include "Framework/runDataProcessing.h" #include "Framework/Logger.h" diff --git a/Detectors/ZDC/workflow/src/zdc-reco-workflow.cxx b/Detectors/ZDC/workflow/src/zdc-reco-workflow.cxx index 29a8c1bb6d549..f0d6264176a39 100644 --- a/Detectors/ZDC/workflow/src/zdc-reco-workflow.cxx +++ b/Detectors/ZDC/workflow/src/zdc-reco-workflow.cxx @@ -13,6 +13,7 @@ #include "CommonUtils/ConfigurableParam.h" #include "DetectorsRaw/HBFUtilsInitializer.h" #include "Framework/CallbacksPolicy.h" +#include "Framework/CompletionPolicyHelpers.h" using namespace o2::framework; @@ -22,6 +23,12 @@ void customize(std::vector& policies) o2::raw::HBFUtilsInitializer::addNewTimeSliceCallback(policies); } +void customize(std::vector& policies) +{ + // ordered policies for the writers + policies.push_back(CompletionPolicyHelpers::consumeWhenAllOrdered(".*(?:ZDC|zdc).*[W,w]riter.*")); +} + // we need to add workflow options before including Framework/runDataProcessing void customize(std::vector& workflowOptions) {