Skip to content

Commit 1d35f0c

Browse files
authored
Merge pull request cms-sw#31787 from ghugo83/step_2_dd4hep
DD4hep workflow: Fix issue at step 2
2 parents f9c4e1b + 9397ec3 commit 1d35f0c

File tree

2 files changed

+20
-8
lines changed

2 files changed

+20
-8
lines changed

Geometry/TrackerGeometryBuilder/src/TrackerGeomBuilderFromGeometricDet.cc

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,14 @@ namespace {
4343
TrackerGeometry* TrackerGeomBuilderFromGeometricDet::build(const GeometricDet* gd,
4444
const PTrackerParameters& ptp,
4545
const TrackerTopology* tTopo) {
46-
int BIG_PIX_PER_ROC_X = ptp.vpars[2];
47-
int BIG_PIX_PER_ROC_Y = ptp.vpars[3];
46+
if (ptp.vpars.size() != 6) {
47+
throw cms::Exception("TrackerGeomBuilderFromGeometricDet")
48+
<< "Tracker parameters block from XMLs called vPars is expected to have 6 entries, but has " << ptp.vpars.size()
49+
<< " entrie(s).";
50+
}
51+
52+
const int BIG_PIX_PER_ROC_X = ptp.vpars[2];
53+
const int BIG_PIX_PER_ROC_Y = ptp.vpars[3];
4854

4955
thePixelDetTypeMap.clear();
5056
theStripDetTypeMap.clear();

Geometry/TrackerGeometryBuilder/src/TrackerParametersFromDD.cc

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -39,12 +39,18 @@ bool TrackerParametersFromDD::build(const cms::DDCompactView* cvp, PTrackerParam
3939
}
4040
}
4141

42-
auto it = vmap.find("vPars");
43-
if (it != end(vmap)) {
44-
std::vector<int> tmpVec;
45-
for (const auto& i : it->second)
46-
tmpVec.emplace_back(std::round(i));
47-
ptp.vpars = tmpVec;
42+
// get "vPars" parameter block from XMLs.
43+
const std::string& vPars = "trackerParameters:vPars";
44+
for (auto const& parameterXMLBlock : vmap) {
45+
const std::string& parameterName = parameterXMLBlock.first;
46+
// Look for vPars parameter XML block.
47+
if (dd4hep::dd::compareEqual(vPars, parameterName)) {
48+
const std::vector<double>& parameterValues = parameterXMLBlock.second;
49+
for (const auto& value : parameterValues) {
50+
ptp.vpars.emplace_back(std::round(value));
51+
}
52+
break; // Same logic as old DD: it should be found only once.
53+
}
4854
}
4955

5056
return true;

0 commit comments

Comments
 (0)