31 void putOne(std::vector<GeometricTimingDetExtra>& gde,
45 : fromDDD_(
p.getParameter<
bool>(
"fromDDD")) {
60 auto gde = std::make_unique<std::vector<GeometricTimingDetExtra> >();
74 gde->reserve(
tracker->deepComponents().size());
75 for (
const auto* git :
tracker->components()) {
76 ev.goTo(git->navType());
78 std::vector<const GeometricTimingDet*>
const& inone = git->components();
82 for (
const auto* git2 : inone) {
83 ev.goTo(git2->navType());
85 std::vector<const GeometricTimingDet*>
const& intwo = git2->components();
89 for (
const auto* git3 : intwo) {
90 ev.goTo(git3->navType());
92 std::vector<const GeometricTimingDet*>
const& inthree = git3->components();
96 for (
const auto* git4 : inthree) {
97 ev.goTo(git4->navType());
99 std::vector<const GeometricTimingDet*>
const& infour = git4->components();
103 for (
const auto* git5 : infour) {
104 ev.goTo(git5->navType());
106 std::vector<const GeometricTimingDet*>
const& infive = git5->components();
110 for (
const auto* git6 : infive) {
111 ev.goTo(git6->navType());
113 std::vector<const GeometricTimingDet*>
const& insix = git6->components();
117 edm::LogError(
"GeometricTimingDetExtra") <<
"Hierarchy has exceeded hard-coded level 6 for Tracker ";
133 std::map<uint32_t, const GeometricTimingDet*> helperMap;
135 helperMap[gd.geographicalID()] =
tracker;
136 for (
const auto* git :
tracker->components()) {
137 helperMap[git->geographicalID()] = git;
138 for (
const auto* git2 : git->components()) {
139 helperMap[git2->geographicalID()] = git2;
140 for (
const auto* git3 : git2->components()) {
141 helperMap[git3->geographicalID()] = git3;
142 for (
const auto* git4 : git3->components()) {
143 helperMap[git4->geographicalID()] = git4;
144 for (
const auto* git5 : git4->components()) {
145 helperMap[git5->geographicalID()] = git5;
146 for (
const auto* git6 : git5->components()) {
147 helperMap[git6->geographicalID()] = git6;
148 if (!git6->components().empty()) {
150 <<
"Hierarchy has exceeded hard-coded level of 6 for Tracker ";
159 const std::vector<PGeometricTimingDetExtra::Item>& pgdes = pgde.
pgdes_;
160 gde->reserve(pgdes.size());
161 std::vector<DDExpandedNode> evs;
163 for (
const auto& pgde : pgdes) {
165 pgde.geographicalId_,
189 ((
ev.logicalPart()).solid()).volume(),
190 ((
ev.logicalPart()).material()).
density(),
191 ((
ev.logicalPart()).material()).
density() * (((
ev.logicalPart()).solid()).volume() / 1000.),