31 void putOne(std::vector<GeometricTimingDetExtra>& gde,
60 auto gde = std::make_unique<std::vector<GeometricTimingDetExtra> >();
70 putOne((*gde), tracker, ev, 0);
75 for (
const auto* git : tracker->
components()) {
76 ev.
goTo(git->navType());
77 putOne((*gde), git, ev, lev);
78 std::vector<const GeometricTimingDet*>
const& inone = git->components();
82 for (
const auto* git2 : inone) {
83 ev.
goTo(git2->navType());
84 putOne((*gde), git2, ev, lev);
85 std::vector<const GeometricTimingDet*>
const& intwo = git2->components();
89 for (
const auto* git3 : intwo) {
90 ev.
goTo(git3->navType());
91 putOne((*gde), git3, ev, lev);
92 std::vector<const GeometricTimingDet*>
const& inthree = git3->components();
96 for (
const auto* git4 : inthree) {
97 ev.
goTo(git4->navType());
98 putOne((*gde), git4, ev, lev);
99 std::vector<const GeometricTimingDet*>
const& infour = git4->components();
103 for (
const auto* git5 : infour) {
104 ev.
goTo(git5->navType());
105 putOne((*gde), git5, ev, lev);
106 std::vector<const GeometricTimingDet*>
const& infive = git5->components();
110 for (
const auto* git6 : infive) {
111 ev.
goTo(git6->navType());
112 putOne((*gde), git6, ev, lev);
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_,
auto setWhatProduced(T *iThis, const es::Label &iLabel={})
DetId geographicalId() const
ESTransientHandle< ProductT > getTransientHandle(ESGetToken< ProductT, DepRecordT > const &iToken) const
Compact representation of the geometrical detector hierarchy.
const DDGeoHistory & geoHistory() const
The list of ancestors up to the root-node of the current node.
ConstGeometricTimingDetContainer & components()
ProductT const & get(ESGetToken< ProductT, DepRecordT > const &iToken) const
ConstGeometricTimingDetContainer deepComponents() const
nav_type const & navType() const
#define DEFINE_FWK_EVENTSETUP_MODULE(type)
int copyno() const
Copy number associated with the current node.
bool goTo(const nav_type &)
transversed the DDExpandedView according to the given stack of sibling numbers
const DDLogicalPart & logicalPart() const
The logical-part of the current node in the expanded-view.
Provides an exploded view of the detector (tree-view)