Skip to content

Commit bddef2a

Browse files
committed
DH.firstTForbit configuration for root-file driven reco workflows
All reco. workflows, when reading data from root files, will try to read the config files used for digitization in order to set up correct DataHeader::firstTForbit propagation. The initial value of firstTForbit will correspond to 1st orbit of the TF containing the HBFUtils::orbitFirstSampled (orbit from which interaction sampling started in digitization), in case of mutiple TFs it will be incremented by HBFUtils::nHBFPerTF. The HBFUtils.. setting provided from the command line will override those loaded from the config file. By default the o2simdigitizerworkflow_configuration.ini written during digitization will be loaded, can be overriden by --hbfutils-config <filename>. Reading of config file can be disable by providing option --hbfutils-config none
1 parent c1f297a commit bddef2a

File tree

20 files changed

+286
-130
lines changed

20 files changed

+286
-130
lines changed

Detectors/EMCAL/workflow/src/emc-reco-workflow.cxx

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
#include "Framework/ConfigParamSpec.h"
1818
#include "EMCALWorkflow/RecoWorkflow.h"
1919
#include "Algorithm/RangeTokenizer.h"
20+
#include "DetectorsRaw/HBFUtilsInitializer.h"
2021

2122
#include <string>
2223
#include <stdexcept>
@@ -32,8 +33,12 @@ void customize(std::vector<o2::framework::ConfigParamSpec>& workflowOptions)
3233
{"enable-digits-printer", o2::framework::VariantType::Bool, false, {"enable digits printer component"}},
3334
{"disable-root-input", o2::framework::VariantType::Bool, false, {"do not initialize root files readers"}},
3435
{"disable-root-output", o2::framework::VariantType::Bool, false, {"do not initialize root file writers"}},
36+
{"configKeyValues", o2::framework::VariantType::String, "", {"Semicolon separated key=value strings"}},
3537
{"disable-mc", o2::framework::VariantType::Bool, false, {"disable sending of MC information"}},
3638
};
39+
40+
o2::raw::HBFUtilsInitializer::addConfigOption(options);
41+
3742
std::swap(workflowOptions, options);
3843
}
3944

@@ -54,10 +59,15 @@ void customize(std::vector<o2::framework::ConfigParamSpec>& workflowOptions)
5459
o2::framework::WorkflowSpec defineDataProcessing(o2::framework::ConfigContext const& cfgc)
5560
{
5661
//bla
57-
return o2::emcal::reco_workflow::getWorkflow(not cfgc.options().get<bool>("disable-mc"), //
58-
cfgc.options().get<bool>("enable-digits-printer"), //
59-
cfgc.options().get<std::string>("input-type"), //
60-
cfgc.options().get<std::string>("output-type"), //
61-
cfgc.options().get<bool>("disable-root-input"),
62-
cfgc.options().get<bool>("disable-root-output"));
62+
auto wf = o2::emcal::reco_workflow::getWorkflow(not cfgc.options().get<bool>("disable-mc"), //
63+
cfgc.options().get<bool>("enable-digits-printer"), //
64+
cfgc.options().get<std::string>("input-type"), //
65+
cfgc.options().get<std::string>("output-type"), //
66+
cfgc.options().get<bool>("disable-root-input"),
67+
cfgc.options().get<bool>("disable-root-output"));
68+
69+
// configure dpl timer to inject correct firstTFOrbit: start from the 1st orbit of TF containing 1st sampled orbit
70+
o2::raw::HBFUtilsInitializer hbfIni(cfgc, wf);
71+
72+
return std::move(wf);
6373
}

Detectors/FIT/FDD/workflow/src/fdd-reco-workflow.cxx

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
#include "FDDWorkflow/RecoWorkflow.h"
1212
#include "Framework/ConfigParamRegistry.h"
1313
#include "CommonUtils/ConfigurableParam.h"
14+
#include "DetectorsRaw/HBFUtilsInitializer.h"
1415

1516
using namespace o2::framework;
1617

@@ -20,14 +21,15 @@ using namespace o2::framework;
2021
void customize(std::vector<o2::framework::ConfigParamSpec>& workflowOptions)
2122
{
2223
// option allowing to set parameters
23-
workflowOptions.push_back(ConfigParamSpec{
24-
"disable-mc", o2::framework::VariantType::Bool, false, {"disable MC propagation even if available"}});
25-
workflowOptions.push_back(ConfigParamSpec{
26-
"disable-root-input", o2::framework::VariantType::Bool, false, {"disable root-files input readers"}});
27-
workflowOptions.push_back(ConfigParamSpec{
28-
"disable-root-output", o2::framework::VariantType::Bool, false, {"disable root-files output writers"}});
29-
std::string keyvaluehelp("Semicolon separated key=value strings ...");
30-
workflowOptions.push_back(ConfigParamSpec{"configKeyValues", VariantType::String, "", {keyvaluehelp}});
24+
std::vector<o2::framework::ConfigParamSpec> options{
25+
{"disable-mc", o2::framework::VariantType::Bool, false, {"disable MC propagation even if available"}},
26+
{"disable-root-input", o2::framework::VariantType::Bool, false, {"disable root-files input readers"}},
27+
{"disable-root-output", o2::framework::VariantType::Bool, false, {"disable root-files output writers"}},
28+
{"configKeyValues", VariantType::String, "", {"Semicolon separated key=value strings"}}};
29+
30+
o2::raw::HBFUtilsInitializer::addConfigOption(options);
31+
32+
std::swap(workflowOptions, options);
3133
}
3234

3335
// ------------------------------------------------------------------
@@ -45,5 +47,10 @@ WorkflowSpec defineDataProcessing(ConfigContext const& configcontext)
4547
auto disableRootInp = configcontext.options().get<bool>("disable-root-input");
4648
auto disableRootOut = configcontext.options().get<bool>("disable-root-output");
4749

48-
return std::move(o2::fdd::getRecoWorkflow(useMC, disableRootInp, disableRootOut));
50+
auto wf = o2::fdd::getRecoWorkflow(useMC, disableRootInp, disableRootOut);
51+
52+
// configure dpl timer to inject correct firstTFOrbit: start from the 1st orbit of TF containing 1st sampled orbit
53+
o2::raw::HBFUtilsInitializer hbfIni(configcontext, wf);
54+
55+
return std::move(wf);
4956
}

Detectors/FIT/FT0/workflow/src/ft0-reco-workflow.cxx

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010

1111
#include "FT0Workflow/RecoWorkflow.h"
1212
#include "CommonUtils/ConfigurableParam.h"
13+
#include "DetectorsRaw/HBFUtilsInitializer.h"
1314

1415
using namespace o2::framework;
1516

@@ -19,14 +20,15 @@ using namespace o2::framework;
1920
void customize(std::vector<o2::framework::ConfigParamSpec>& workflowOptions)
2021
{
2122
// option allowing to set parameters
22-
workflowOptions.push_back(ConfigParamSpec{
23-
"disable-mc", o2::framework::VariantType::Bool, false, {"disable MC propagation even if available"}});
24-
workflowOptions.push_back(ConfigParamSpec{
25-
"disable-root-input", o2::framework::VariantType::Bool, false, {"disable root-files input readers"}});
26-
workflowOptions.push_back(ConfigParamSpec{
27-
"disable-root-output", o2::framework::VariantType::Bool, false, {"disable root-files output writers"}});
28-
std::string keyvaluehelp("Semicolon separated key=value strings ...");
29-
workflowOptions.push_back(ConfigParamSpec{"configKeyValues", VariantType::String, "", {keyvaluehelp}});
23+
std::vector<o2::framework::ConfigParamSpec> options{
24+
{"disable-mc", o2::framework::VariantType::Bool, false, {"disable MC propagation even if available"}},
25+
{"disable-root-input", o2::framework::VariantType::Bool, false, {"disable root-files input readers"}},
26+
{"disable-root-output", o2::framework::VariantType::Bool, false, {"disable root-files output writers"}},
27+
{"configKeyValues", VariantType::String, "", {"Semicolon separated key=value strings"}}};
28+
29+
o2::raw::HBFUtilsInitializer::addConfigOption(options);
30+
31+
std::swap(workflowOptions, options);
3032
}
3133

3234
// ------------------------------------------------------------------
@@ -46,5 +48,10 @@ WorkflowSpec defineDataProcessing(ConfigContext const& configcontext)
4648
auto disableRootOut = configcontext.options().get<bool>("disable-root-output");
4749

4850
LOG(INFO) << "WorkflowSpec getRecoWorkflow useMC " << useMC;
49-
return std::move(o2::fit::getRecoWorkflow(useMC, disableRootInp, disableRootOut));
51+
auto wf = o2::fit::getRecoWorkflow(useMC, disableRootInp, disableRootOut);
52+
53+
// configure dpl timer to inject correct firstTFOrbit: start from the 1st orbit of TF containing 1st sampled orbit
54+
o2::raw::HBFUtilsInitializer hbfIni(configcontext, wf);
55+
56+
return std::move(wf);
5057
}

Detectors/GlobalTrackingWorkflow/src/cosmics-match-workflow.cxx

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
#include "GlobalTrackingWorkflow/CosmicsMatchingSpec.h"
2626
#include "GlobalTrackingWorkflow/TrackCosmicsWriterSpec.h"
2727
#include "Algorithm/RangeTokenizer.h"
28+
#include "DetectorsRaw/HBFUtilsInitializer.h"
2829

2930
using namespace o2::framework;
3031
using DetID = o2::detectors::DetID;
@@ -42,6 +43,8 @@ void customize(std::vector<o2::framework::ConfigParamSpec>& workflowOptions)
4243
{"track-sources", VariantType::String, std::string{GID::ALL}, {"comma-separated list of sources to use"}},
4344
{"configKeyValues", VariantType::String, "", {"Semicolon separated key=value strings ..."}}};
4445

46+
o2::raw::HBFUtilsInitializer::addConfigOption(options);
47+
4548
std::swap(workflowOptions, options);
4649
}
4750

@@ -129,5 +132,8 @@ WorkflowSpec defineDataProcessing(ConfigContext const& configcontext)
129132
specs.emplace_back(o2::globaltracking::getTrackCosmicsWriterSpec(useMC));
130133
}
131134

132-
return specs;
135+
// configure dpl timer to inject correct firstTFOrbit: start from the 1st orbit of TF containing 1st sampled orbit
136+
o2::raw::HBFUtilsInitializer hbfIni(configcontext, specs);
137+
138+
return std::move(specs);
133139
}

Detectors/GlobalTrackingWorkflow/src/primary-vertexing-workflow.cxx

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
#include "TOFWorkflowUtils/ClusterReaderSpec.h"
1919
#include "FT0Workflow/RecPointReaderSpec.h"
2020
#include "ReconstructionDataFormats/GlobalTrackID.h"
21+
#include "DetectorsRaw/HBFUtilsInitializer.h"
2122
#include "DetectorsCommonDataFormats/DetID.h"
2223
#include "CommonUtils/ConfigurableParam.h"
2324
#include "Framework/CompletionPolicy.h"
@@ -41,6 +42,8 @@ void customize(std::vector<ConfigParamSpec>& workflowOptions)
4142
{"vetex-track-matching-sources", VariantType::String, std::string{GID::ALL}, {"comma-separated list of sources to use in vertex-track associations or \"none\" to disable matching"}},
4243
{"configKeyValues", VariantType::String, "", {"Semicolon separated key=value strings ..."}}};
4344

45+
o2::raw::HBFUtilsInitializer::addConfigOption(options);
46+
4447
std::swap(workflowOptions, options);
4548
}
4649

@@ -107,5 +110,9 @@ WorkflowSpec defineDataProcessing(ConfigContext const& configcontext)
107110
if (!disableRootOut) {
108111
specs.emplace_back(o2::vertexing::getPrimaryVertexWriterSpec(srcVT.none(), useMC));
109112
}
113+
114+
// configure dpl timer to inject correct firstTFOrbit: start from the 1st orbit of TF containing 1st sampled orbit
115+
o2::raw::HBFUtilsInitializer hbfIni(configcontext, specs);
116+
110117
return std::move(specs);
111118
}

Detectors/GlobalTrackingWorkflow/src/secondary-vertexing-workflow.cxx

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
#include "ReconstructionDataFormats/GlobalTrackID.h"
2020
#include "DetectorsCommonDataFormats/DetID.h"
2121
#include "CommonUtils/ConfigurableParam.h"
22+
#include "DetectorsRaw/HBFUtilsInitializer.h"
2223
#include "Framework/CompletionPolicy.h"
2324
#include "Framework/ConfigParamSpec.h"
2425

@@ -38,6 +39,8 @@ void customize(std::vector<ConfigParamSpec>& workflowOptions)
3839
{"disable-cascade-finder", o2::framework::VariantType::Bool, false, {"do not run cascade finder"}},
3940
{"configKeyValues", VariantType::String, "", {"Semicolon separated key=value strings ..."}}};
4041

42+
o2::raw::HBFUtilsInitializer::addConfigOption(options);
43+
4144
std::swap(workflowOptions, options);
4245
}
4346

@@ -85,5 +88,9 @@ WorkflowSpec defineDataProcessing(ConfigContext const& configcontext)
8588
if (!disableRootOut) {
8689
specs.emplace_back(o2::vertexing::getSecondaryVertexWriterSpec());
8790
}
91+
92+
// configure dpl timer to inject correct firstTFOrbit: start from the 1st orbit of TF containing 1st sampled orbit
93+
o2::raw::HBFUtilsInitializer hbfIni(configcontext, specs);
94+
8895
return std::move(specs);
8996
}

Detectors/GlobalTrackingWorkflow/src/tpcits-match-workflow.cxx

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
#include "CommonUtils/ConfigurableParam.h"
1313
#include "Framework/CompletionPolicy.h"
1414
#include "TPCWorkflow/TPCSectorCompletionPolicy.h"
15+
#include "DetectorsRaw/HBFUtilsInitializer.h"
1516

1617
using namespace o2::framework;
1718

@@ -29,6 +30,8 @@ void customize(std::vector<o2::framework::ConfigParamSpec>& workflowOptions)
2930
{"produce-calibration-data", o2::framework::VariantType::Bool, false, {"produce output for TPC vdrift calibration"}},
3031
{"configKeyValues", VariantType::String, "", {"Semicolon separated key=value strings ..."}}};
3132

33+
o2::raw::HBFUtilsInitializer::addConfigOption(options);
34+
3235
std::swap(workflowOptions, options);
3336
}
3437

@@ -59,5 +62,11 @@ WorkflowSpec defineDataProcessing(ConfigContext const& configcontext)
5962
auto disableRootInp = configcontext.options().get<bool>("disable-root-input");
6063
auto disableRootOut = configcontext.options().get<bool>("disable-root-output");
6164
auto calib = configcontext.options().get<bool>("produce-calibration-data");
62-
return std::move(o2::globaltracking::getMatchTPCITSWorkflow(useFT0, useMC, disableRootInp, disableRootOut, calib));
65+
66+
auto wf = o2::globaltracking::getMatchTPCITSWorkflow(useFT0, useMC, disableRootInp, disableRootOut, calib);
67+
68+
// configure dpl timer to inject correct firstTFOrbit: start from the 1st orbit of TF containing 1st sampled orbit
69+
o2::raw::HBFUtilsInitializer hbfIni(configcontext, wf);
70+
71+
return std::move(wf);
6372
}

Detectors/GlobalTrackingWorkflow/tofworkflow/src/tof-matcher-global.cxx

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
#include "FairLogger.h"
2626
#include "CommonUtils/ConfigurableParam.h"
2727
#include "DetectorsCommonDataFormats/NameConf.h"
28+
#include "DetectorsRaw/HBFUtilsInitializer.h"
2829

2930
// FIT
3031
#include "FT0Workflow/RecPointReaderSpec.h"
@@ -37,17 +38,22 @@
3738
// including Framework/runDataProcessing
3839
void customize(std::vector<o2::framework::ConfigParamSpec>& workflowOptions)
3940
{
40-
workflowOptions.push_back(ConfigParamSpec{"input-type", o2::framework::VariantType::String, "clusters,tracks", {"clusters, tracks, fit"}});
41-
workflowOptions.push_back(ConfigParamSpec{"output-type", o2::framework::VariantType::String, "matching-info,calib-info", {"matching-info, calib-info"}});
42-
workflowOptions.push_back(ConfigParamSpec{"disable-mc", o2::framework::VariantType::Bool, false, {"disable sending of MC information, TBI"}});
43-
workflowOptions.push_back(ConfigParamSpec{"tof-sectors", o2::framework::VariantType::String, "0-17", {"TOF sector range, e.g. 5-7,8,9 ,TBI"}});
44-
workflowOptions.push_back(ConfigParamSpec{"tof-lanes", o2::framework::VariantType::Int, 1, {"number of parallel lanes up to the matcher, TBI"}});
45-
workflowOptions.push_back(ConfigParamSpec{"use-ccdb", o2::framework::VariantType::Bool, false, {"enable access to ccdb tof calibration objects"}});
46-
workflowOptions.push_back(ConfigParamSpec{"use-fit", o2::framework::VariantType::Bool, false, {"enable access to fit info for calibration"}});
47-
workflowOptions.push_back(ConfigParamSpec{"input-desc", o2::framework::VariantType::String, "CRAWDATA", {"Input specs description string"}});
48-
workflowOptions.push_back(ConfigParamSpec{"disable-root-input", o2::framework::VariantType::Bool, false, {"disable root-files input readers"}});
49-
workflowOptions.push_back(ConfigParamSpec{"disable-root-output", o2::framework::VariantType::Bool, false, {"disable root-files output writers"}});
50-
workflowOptions.push_back(ConfigParamSpec{"configKeyValues", o2::framework::VariantType::String, "", {"Semicolon separated key=value strings ..."}});
41+
std::vector<o2::framework::ConfigParamSpec> options{
42+
{"input-type", o2::framework::VariantType::String, "clusters,tracks", {"clusters, tracks, fit"}},
43+
{"output-type", o2::framework::VariantType::String, "matching-info,calib-info", {"matching-info, calib-info"}},
44+
{"disable-mc", o2::framework::VariantType::Bool, false, {"disable sending of MC information, TBI"}},
45+
{"tof-sectors", o2::framework::VariantType::String, "0-17", {"TOF sector range, e.g. 5-7,8,9 ,TBI"}},
46+
{"tof-lanes", o2::framework::VariantType::Int, 1, {"number of parallel lanes up to the matcher, TBI"}},
47+
{"use-ccdb", o2::framework::VariantType::Bool, false, {"enable access to ccdb tof calibration objects"}},
48+
{"use-fit", o2::framework::VariantType::Bool, false, {"enable access to fit info for calibration"}},
49+
{"input-desc", o2::framework::VariantType::String, "CRAWDATA", {"Input specs description string"}},
50+
{"disable-root-input", o2::framework::VariantType::Bool, false, {"disable root-files input readers"}},
51+
{"disable-root-output", o2::framework::VariantType::Bool, false, {"disable root-files output writers"}},
52+
{"configKeyValues", o2::framework::VariantType::String, "", {"Semicolon separated key=value strings ..."}}};
53+
54+
o2::raw::HBFUtilsInitializer::addConfigOption(options);
55+
56+
std::swap(workflowOptions, options);
5157
}
5258

5359
#include "Framework/runDataProcessing.h" // the main driver
@@ -149,5 +155,8 @@ WorkflowSpec defineDataProcessing(ConfigContext const& cfgc)
149155
}
150156
LOG(INFO) << "Number of active devices = " << specs.size();
151157

158+
// configure dpl timer to inject correct firstTFOrbit: start from the 1st orbit of TF containing 1st sampled orbit
159+
o2::raw::HBFUtilsInitializer hbfIni(cfgc, specs);
160+
152161
return std::move(specs);
153162
}

Detectors/GlobalTrackingWorkflow/tofworkflow/src/tof-matcher-tpc.cxx

Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
#include "TPCWorkflow/TrackReaderSpec.h"
2828
#include "TPCWorkflow/PublisherSpec.h"
2929
#include "TPCWorkflow/ClusterSharingMapSpec.h"
30+
#include "DetectorsRaw/HBFUtilsInitializer.h"
3031

3132
// GRP
3233
#include "DataFormatsParameters/GRPObject.h"
@@ -42,18 +43,23 @@
4243
// including Framework/runDataProcessing
4344
void customize(std::vector<o2::framework::ConfigParamSpec>& workflowOptions)
4445
{
45-
workflowOptions.push_back(ConfigParamSpec{"output-type", o2::framework::VariantType::String, "matching-info", {"matching-info, calib-info"}});
46-
workflowOptions.push_back(ConfigParamSpec{"disable-mc", o2::framework::VariantType::Bool, false, {"disable sending of MC information, TBI"}});
47-
workflowOptions.push_back(ConfigParamSpec{"tof-sectors", o2::framework::VariantType::String, "0-17", {"TOF sector range, e.g. 5-7,8,9 ,TBI"}});
48-
workflowOptions.push_back(ConfigParamSpec{"tof-lanes", o2::framework::VariantType::Int, 1, {"number of parallel lanes up to the matcher, TBI"}});
49-
workflowOptions.push_back(ConfigParamSpec{"use-ccdb", o2::framework::VariantType::Bool, false, {"enable access to ccdb tof calibration objects"}});
50-
workflowOptions.push_back(ConfigParamSpec{"use-fit", o2::framework::VariantType::Bool, false, {"enable access to fit info for calibration"}});
51-
workflowOptions.push_back(ConfigParamSpec{"input-desc", o2::framework::VariantType::String, "CRAWDATA", {"Input specs description string"}});
52-
workflowOptions.push_back(ConfigParamSpec{"tpc-refit", o2::framework::VariantType::Bool, false, {"refit matched TPC tracks"}});
53-
workflowOptions.push_back(ConfigParamSpec{"disable-root-input", o2::framework::VariantType::Bool, false, {"disable root-files input readers"}});
54-
workflowOptions.push_back(ConfigParamSpec{"disable-root-output", o2::framework::VariantType::Bool, false, {"disable root-files output writers"}});
55-
workflowOptions.push_back(ConfigParamSpec{"cosmics", o2::framework::VariantType::Bool, false, {"reco for cosmics"}});
56-
workflowOptions.push_back(ConfigParamSpec{"configKeyValues", o2::framework::VariantType::String, "", {"Semicolon separated key=value strings ..."}});
46+
std::vector<o2::framework::ConfigParamSpec> options{
47+
{"output-type", o2::framework::VariantType::String, "matching-info", {"matching-info, calib-info"}},
48+
{"disable-mc", o2::framework::VariantType::Bool, false, {"disable sending of MC information, TBI"}},
49+
{"tof-sectors", o2::framework::VariantType::String, "0-17", {"TOF sector range, e.g. 5-7,8,9 ,TBI"}},
50+
{"tof-lanes", o2::framework::VariantType::Int, 1, {"number of parallel lanes up to the matcher, TBI"}},
51+
{"use-ccdb", o2::framework::VariantType::Bool, false, {"enable access to ccdb tof calibration objects"}},
52+
{"use-fit", o2::framework::VariantType::Bool, false, {"enable access to fit info for calibration"}},
53+
{"input-desc", o2::framework::VariantType::String, "CRAWDATA", {"Input specs description string"}},
54+
{"tpc-refit", o2::framework::VariantType::Bool, false, {"refit matched TPC tracks"}},
55+
{"disable-root-input", o2::framework::VariantType::Bool, false, {"disable root-files input readers"}},
56+
{"disable-root-output", o2::framework::VariantType::Bool, false, {"disable root-files output writers"}},
57+
{"cosmics", o2::framework::VariantType::Bool, false, {"reco for cosmics"}},
58+
{"configKeyValues", o2::framework::VariantType::String, "", {"Semicolon separated key=value strings ..."}}};
59+
60+
o2::raw::HBFUtilsInitializer::addConfigOption(options);
61+
62+
std::swap(workflowOptions, options);
5763
}
5864

5965
#include "Framework/runDataProcessing.h" // the main driver
@@ -163,5 +169,8 @@ WorkflowSpec defineDataProcessing(ConfigContext const& cfgc)
163169

164170
LOG(INFO) << "Number of active devices = " << specs.size();
165171

172+
// configure dpl timer to inject correct firstTFOrbit: start from the 1st orbit of TF containing 1st sampled orbit
173+
o2::raw::HBFUtilsInitializer hbfIni(cfgc, specs);
174+
166175
return std::move(specs);
167176
}

0 commit comments

Comments
 (0)