Skip to content

Commit 21b5227

Browse files
authored
Merge pull request #54 from shahor02/its_stag
Avoid wildcarded subspecs in Digit/ClusterWriter
2 parents cc0d527 + e714bcf commit 21b5227

File tree

2 files changed

+30
-7
lines changed

2 files changed

+30
-7
lines changed

Detectors/ITSMFT/common/workflow/src/ClusterWriterSpec.cxx

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -69,27 +69,39 @@ DataProcessorSpec getClusterWriterSpec(bool useMC, bool doStag)
6969
};
7070
auto detNameLC = detName;
7171
std::transform(detNameLC.begin(), detNameLC.end(), detNameLC.begin(), [](unsigned char c) { return std::tolower(c); });
72+
std::vector<InputSpec> vecInpSpecClus, vecInpSpecPatt, vecInpSpecROF, vecInpSpecLbl;
73+
vecInpSpecClus.reserve(nLayers);
74+
vecInpSpecPatt.reserve(nLayers);
75+
vecInpSpecROF.reserve(nLayers);
76+
vecInpSpecLbl.reserve(nLayers);
77+
for (int iLayer = 0; iLayer < nLayers; iLayer++) {
78+
vecInpSpecClus.emplace_back(getName("compclus", iLayer), Origin, "COMPCLUSTERS", iLayer);
79+
vecInpSpecPatt.emplace_back(getName("patterns", iLayer), Origin, "PATTERNS", iLayer);
80+
vecInpSpecROF.emplace_back(getName("ROframes", iLayer), Origin, "CLUSTERSROF", iLayer);
81+
vecInpSpecLbl.emplace_back(getName("labels", iLayer), Origin, "CLUSTERSMCTR", iLayer);
82+
}
83+
7284
return MakeRootTreeWriterSpec(std::format("{}-cluster-writer", detNameLC).c_str(),
7385
(o2::detectors::DetID::ITS == N) ? "o2clus_its.root" : "mftclusters.root",
7486
MakeRootTreeWriterSpec::TreeAttributes{.name = "o2sim", .title = std::format("Tree with {} clusters", detName)},
75-
BranchDefinition<CompClusType>{InputSpec{"compclus", ConcreteDataTypeMatcher{Origin, "COMPCLUSTERS"}},
87+
BranchDefinition<CompClusType>{vecInpSpecClus,
7688
(detName + "ClusterComp").c_str(), "compact-cluster-branch",
7789
nLayers,
7890
compClustersSizeGetter,
7991
getIndex,
8092
getName},
81-
BranchDefinition<PatternsType>{InputSpec{"patterns", ConcreteDataTypeMatcher{Origin, "PATTERNS"}},
93+
BranchDefinition<PatternsType>{vecInpSpecPatt,
8294
(detName + "ClusterPatt").c_str(), "cluster-pattern-branch",
8395
nLayers,
8496
getIndex,
8597
getName},
86-
BranchDefinition<ROFrameRType>{InputSpec{"ROframes", ConcreteDataTypeMatcher{Origin, "CLUSTERSROF"}},
98+
BranchDefinition<ROFrameRType>{vecInpSpecROF,
8799
(detName + "ClustersROF").c_str(), "cluster-rof-branch",
88100
nLayers,
89101
logger,
90102
getIndex,
91103
getName},
92-
BranchDefinition<LabelsType>{InputSpec{"labels", ConcreteDataTypeMatcher{Origin, "CLUSTERSMCTR"}},
104+
BranchDefinition<LabelsType>{vecInpSpecLbl,
93105
(detName + "ClusterMCTruth").c_str(), "cluster-label-branch",
94106
(useMC ? nLayers : 0),
95107
getIndex,

Detectors/ITSMFT/common/workflow/src/DigitWriterSpec.cxx

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -108,23 +108,34 @@ DataProcessorSpec getDigitWriterSpec(bool mctruth, bool doStag, bool dec, bool c
108108
}
109109
return base;
110110
};
111+
112+
std::vector<InputSpec> vecInpSpecDig, vecInpSpecROF, vecInpSpecLbl;
113+
vecInpSpecDig.reserve(mLayers);
114+
vecInpSpecROF.reserve(mLayers);
115+
vecInpSpecLbl.reserve(mLayers);
116+
for (int iLayer = 0; iLayer < mLayers; iLayer++) {
117+
vecInpSpecDig.emplace_back(getName(detStr + "digits", iLayer), Origin, "DIGITS", iLayer);
118+
vecInpSpecROF.emplace_back(getName(detStr + "digitsROF", iLayer), Origin, "DIGITSROF", iLayer);
119+
vecInpSpecLbl.emplace_back(getName(detStr + "_digitsMCTR", iLayer), Origin, "DIGITSMCTR", iLayer);
120+
}
121+
111122
return MakeRootTreeWriterSpec((detStr + "DigitWriter" + (dec ? "_dec" : "")).c_str(),
112123
(detStrL + "digits.root").c_str(),
113124
MakeRootTreeWriterSpec::TreeAttributes{.name = "o2sim", .title = detStr + " Digits tree"},
114125
MakeRootTreeWriterSpec::CustomClose(finishWriting),
115-
BranchDefinition<std::vector<itsmft::Digit>>{InputSpec{detStr + "digits", ConcreteDataTypeMatcher{Origin, "DIGITS"}},
126+
BranchDefinition<std::vector<itsmft::Digit>>{vecInpSpecDig,
116127
detStr + "Digit", "digit-branch",
117128
mLayers,
118129
digitSizeGetter,
119130
getIndex,
120131
getName},
121-
BranchDefinition<std::vector<itsmft::ROFRecord>>{InputSpec{detStr + "digitsROF", ConcreteDataTypeMatcher{Origin, "DIGITSROF"}},
132+
BranchDefinition<std::vector<itsmft::ROFRecord>>{vecInpSpecROF,
122133
detStr + "DigitROF", "digit-rof-branch",
123134
mLayers,
124135
rofSizeGetter,
125136
getIndex,
126137
getName},
127-
BranchDefinition<std::vector<char>>{InputSpec{detStr + "_digitsMCTR", ConcreteDataTypeMatcher{Origin, "DIGITSMCTR"}},
138+
BranchDefinition<std::vector<char>>{vecInpSpecLbl,
128139
detStr + "DigitMCTruth", "digit-mctruth-branch",
129140
(mctruth ? mLayers : 0),
130141
fillLabels,

0 commit comments

Comments
 (0)