Skip to content

Commit 851e2d0

Browse files
committed
Option to write only ROFRecord to ITS/MFT clusters file:
With --cluster-rof-branch-only passed to the ITS or MFT reco workflows the cluster writing will be activated (even if --disable-root-output was globally passed to the workflows) and only the ROFRecords branch will be stored. Option to scale the ITS entropy decoding with N_ITSENTDEC or MULTIPLICITY_PROCESS_its_entropy_decoder env. var.
1 parent d87cff5 commit 851e2d0

13 files changed

Lines changed: 51 additions & 21 deletions

File tree

Detectors/ITSMFT/ITS/workflow/include/ITSWorkflow/ClusterWriterWorkflow.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ namespace its
2323

2424
namespace cluster_writer_workflow
2525
{
26-
framework::WorkflowSpec getWorkflow(bool useMC, bool doStag);
26+
framework::WorkflowSpec getWorkflow(bool useMC, bool doStag, bool clusterROFOnly = false);
2727
}
2828

2929
} // namespace its

Detectors/ITSMFT/ITS/workflow/include/ITSWorkflow/RecoWorkflow.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ namespace reco_workflow
2727
{
2828

2929
framework::WorkflowSpec getWorkflow(bool useMC, bool doStag, TrackingMode::Type trmode, const bool overrideBeamPosition = false,
30-
bool upstreamDigits = false, bool upstreamClusters = false, bool disableRootOutput = false, bool useGeom = false, int useTrig = 0,
30+
bool upstreamDigits = false, bool upstreamClusters = false, bool clrofOnly = false, bool disableRootOutput = false, bool useGeom = false, int useTrig = 0,
3131
bool useGPUWF = false, o2::gpu::gpudatatypes::DeviceType dType = o2::gpu::gpudatatypes::DeviceType::CPU);
3232
}
3333

Detectors/ITSMFT/ITS/workflow/src/ClusterWriterWorkflow.cxx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,11 @@ namespace its
2222
namespace cluster_writer_workflow
2323
{
2424

25-
framework::WorkflowSpec getWorkflow(bool useMC, bool doStag)
25+
framework::WorkflowSpec getWorkflow(bool useMC, bool doStag, bool clusterROFOnly)
2626
{
2727
framework::WorkflowSpec specs;
2828

29-
specs.emplace_back(o2::itsmft::getITSClusterWriterSpec(useMC, doStag));
29+
specs.emplace_back(o2::itsmft::getITSClusterWriterSpec(useMC, doStag, clusterROFOnly));
3030

3131
return specs;
3232
}

Detectors/ITSMFT/ITS/workflow/src/RecoWorkflow.cxx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ framework::WorkflowSpec getWorkflow(bool useMC, bool doStag,
3232
const bool overrideBeamPosition,
3333
bool upstreamDigits,
3434
bool upstreamClusters,
35+
bool clrofOnly,
3536
bool disableRootOutput,
3637
bool useGeom,
3738
int useTrig,
@@ -45,8 +46,8 @@ framework::WorkflowSpec getWorkflow(bool useMC, bool doStag,
4546
if (!upstreamClusters) {
4647
specs.emplace_back(o2::itsmft::getITSClustererSpec(useMC, doStag));
4748
}
48-
if (!disableRootOutput) {
49-
specs.emplace_back(o2::itsmft::getITSClusterWriterSpec(useMC, doStag));
49+
if (!disableRootOutput || clrofOnly) {
50+
specs.emplace_back(o2::itsmft::getITSClusterWriterSpec(useMC, doStag, clrofOnly));
5051
}
5152
if ((trmode != TrackingMode::Off) && (TrackerParamConfig::Instance().trackingMode != TrackingMode::Off)) {
5253
if (useGPUWF) {

Detectors/ITSMFT/ITS/workflow/src/its-cluster-writer-workflow.cxx

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,13 @@ void customize(std::vector<o2::framework::ConfigParamSpec>& workflowOptions)
3030
o2::framework::VariantType::Bool,
3131
false,
3232
{"disable MC propagation even if available"}});
33+
workflowOptions.push_back(
34+
ConfigParamSpec{
35+
"cluster-rof-branch-only",
36+
o2::framework::VariantType::Bool,
37+
false,
38+
{"writer will store only ClustersROF brunch"}});
39+
3340
o2::itsmft::DPLAlpideParamInitializer::addITSConfigOption(workflowOptions);
3441
}
3542

@@ -39,5 +46,6 @@ WorkflowSpec defineDataProcessing(ConfigContext const& configcontext)
3946
{
4047
auto useMC = !configcontext.options().get<bool>("disable-mc");
4148
auto doStag = o2::itsmft::DPLAlpideParamInitializer::isITSStaggeringEnabled(configcontext);
42-
return std::move(o2::its::cluster_writer_workflow::getWorkflow(useMC, doStag));
49+
auto clrofOnly = configcontext.options().get<bool>("cluster-rof-branch-only");
50+
return std::move(o2::its::cluster_writer_workflow::getWorkflow(useMC, doStag, clrofOnly));
4351
}

Detectors/ITSMFT/ITS/workflow/src/its-reco-workflow.cxx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,8 @@ void customize(std::vector<o2::framework::ConfigParamSpec>& workflowOptions)
5050
{"configKeyValues", VariantType::String, "", {"Semicolon separated key=value strings"}},
5151
{"use-full-geometry", o2::framework::VariantType::Bool, false, {"use full geometry instead of the light-weight ITS part"}},
5252
{"use-gpu-workflow", o2::framework::VariantType::Bool, false, {"use GPU workflow (default: false)"}},
53-
{"gpu-device", o2::framework::VariantType::Int, 1, {"use gpu device: CPU=1,CUDA=2,HIP=3 (default: CPU)"}}};
53+
{"gpu-device", o2::framework::VariantType::Int, 1, {"use gpu device: CPU=1,CUDA=2,HIP=3 (default: CPU)"}},
54+
{"cluster-rof-branch-only", o2::framework::VariantType::Bool, false, {"writer will store only ClustersROF brunch"}}};
5455
o2::itsmft::DPLAlpideParamInitializer::addITSConfigOption(options);
5556
o2::raw::HBFUtilsInitializer::addConfigOption(options);
5657
std::swap(workflowOptions, options);
@@ -75,6 +76,7 @@ WorkflowSpec defineDataProcessing(ConfigContext const& configcontext)
7576
auto disableRootOutput = configcontext.options().get<bool>("disable-root-output");
7677
auto useGeom = configcontext.options().get<bool>("use-full-geometry");
7778
auto doStag = o2::itsmft::DPLAlpideParamInitializer::isITSStaggeringEnabled(configcontext);
79+
auto clrofOnly = configcontext.options().get<bool>("cluster-rof-branch-only");
7880
if (configcontext.options().get<bool>("disable-tracking")) {
7981
trmode = "off";
8082
}
@@ -97,6 +99,7 @@ WorkflowSpec defineDataProcessing(ConfigContext const& configcontext)
9799
beamPosOVerride,
98100
extDigits,
99101
extClusters,
102+
clrofOnly,
100103
disableRootOutput,
101104
useGeom,
102105
trType,

Detectors/ITSMFT/MFT/workflow/include/MFTWorkflow/RecoWorkflow.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ framework::WorkflowSpec getWorkflow(
2929
bool useGeom,
3030
bool upstreamDigits,
3131
bool upstreamClusters,
32+
bool clrofOnly,
3233
bool disableRootOutput,
3334
bool runAssessment,
3435
bool processGen,

Detectors/ITSMFT/MFT/workflow/src/RecoWorkflow.cxx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ framework::WorkflowSpec getWorkflow(
3636
bool useGeom,
3737
bool upstreamDigits,
3838
bool upstreamClusters,
39+
bool clrofOnly,
3940
bool disableRootOutput,
4041
bool runAssessment,
4142
bool processGen,
@@ -55,8 +56,8 @@ framework::WorkflowSpec getWorkflow(
5556
if (!upstreamClusters) {
5657
specs.emplace_back(o2::itsmft::getMFTClustererSpec(useMC, doStag));
5758
}
58-
if (!disableRootOutput) {
59-
specs.emplace_back(o2::itsmft::getMFTClusterWriterSpec(useMC, doStag));
59+
if (!disableRootOutput || clrofOnly) {
60+
specs.emplace_back(o2::itsmft::getMFTClusterWriterSpec(useMC, doStag, clrofOnly));
6061
}
6162

6263
if (runTracking) {

Detectors/ITSMFT/MFT/workflow/src/mft-cluster-writer-workflow.cxx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@ void customize(std::vector<o2::framework::CompletionPolicy>& policies)
2424

2525
void customize(std::vector<o2::framework::ConfigParamSpec>& workflowOptions)
2626
{
27-
workflowOptions.push_back(
28-
ConfigParamSpec{"disable-mc", o2::framework::VariantType::Bool, false, {"disable MC propagation even if available"}});
27+
workflowOptions.push_back(ConfigParamSpec{"disable-mc", o2::framework::VariantType::Bool, false, {"disable MC propagation even if available"}});
28+
workflowOptions.push_back(ConfigParamSpec{"cluster-rof-branch-only", o2::framework::VariantType::Bool, false, {"writer will store only ClustersROF brunch"}});
2929
o2::itsmft::DPLAlpideParamInitializer::addMFTConfigOption(workflowOptions);
3030
}
3131

@@ -35,7 +35,8 @@ WorkflowSpec defineDataProcessing(ConfigContext const& configcontext)
3535
{
3636
auto useMC = !configcontext.options().get<bool>("disable-mc");
3737
auto doStag = o2::itsmft::DPLAlpideParamInitializer::isMFTStaggeringEnabled(configcontext);
38+
auto clrofOnly = configcontext.options().get<bool>("cluster-rof-branch-only");
3839
WorkflowSpec specs;
39-
specs.emplace_back(o2::itsmft::getMFTClusterWriterSpec(useMC, doStag));
40+
specs.emplace_back(o2::itsmft::getMFTClusterWriterSpec(useMC, doStag, clrofOnly));
4041
return specs;
4142
}

Detectors/ITSMFT/MFT/workflow/src/mft-reco-workflow.cxx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,8 @@ void customize(std::vector<o2::framework::ConfigParamSpec>& workflowOptions)
4444
{"configKeyValues", VariantType::String, "", {"Semicolon separated key=value strings"}},
4545
{"nThreads", VariantType::Int, 1, {"Number of threads"}},
4646
{"use-full-geometry", o2::framework::VariantType::Bool, false, {"use full geometry instead of the light-weight MFT part"}},
47-
{"run-tracks2records", o2::framework::VariantType::Bool, false, {"run MFT alignment tracks to records workflow"}}};
47+
{"run-tracks2records", o2::framework::VariantType::Bool, false, {"run MFT alignment tracks to records workflow"}},
48+
{"cluster-rof-branch-only", o2::framework::VariantType::Bool, false, {"writer will store only ClustersROF brunch"}}};
4849
o2::raw::HBFUtilsInitializer::addConfigOption(options);
4950
o2::itsmft::DPLAlpideParamInitializer::addMFTConfigOption(options);
5051
std::swap(workflowOptions, options);
@@ -70,13 +71,15 @@ WorkflowSpec defineDataProcessing(ConfigContext const& configcontext)
7071
auto runTracks2Records = configcontext.options().get<bool>("run-tracks2records");
7172
auto useGeom = configcontext.options().get<bool>("use-full-geometry");
7273
auto doStag = o2::itsmft::DPLAlpideParamInitializer::isMFTStaggeringEnabled(configcontext);
74+
auto clrofOnly = configcontext.options().get<bool>("cluster-rof-branch-only");
7375

7476
auto wf = o2::mft::reco_workflow::getWorkflow(
7577
useMC,
7678
doStag,
7779
useGeom,
7880
extDigits,
7981
extClusters,
82+
clrofOnly,
8083
disableRootOutput,
8184
runAssessment,
8285
processGen,

0 commit comments

Comments
 (0)