55 filter.veto(
"SupportPlate");
57 filter.veto(
"ThermalScreen");
58 filter.veto(
"Aluminium_Disc");
59 filter.veto(
"MIC6_Aluminium_Disc");
64 filter.veto(
"SensorModule");
66 filter.veto(
"LGAD_Substrate");
73 if (check_root != GeometricTimingDet::MTD) {
76 if (check_child != GeometricTimingDet::MTD) {
77 throw cms::Exception(
"Configuration") <<
" The first child of the DDFilteredView is not what is expected \n"
84 edm::LogInfo(
"MTDNumbering") <<
"Top level node = " << fv.name();
87 auto mtd = std::make_unique<GeometricTimingDet>(&fv, GeometricTimingDet::MTD);
91 std::vector<GeometricTimingDet*> subdet;
92 std::vector<GeometricTimingDet*>
layer;
98 size_t num = fv.geoHistory().size();
101 edm::LogVerbatim(
"MTDNumbering") <<
"Module = " << fv.name() <<
" fullNode = " << fullNode
102 <<
" thisNode = " << thisNode;
105 if (fullNode == GeometricTimingDet::BTL || fullNode == GeometricTimingDet::ETL) {
110 subdet.emplace_back(theCmsMTDConstruction.
buildSubdet(fv));
112 if (fullNode == GeometricTimingDet::BTLLayer || fullNode == GeometricTimingDet::ETLDisc) {
121 if ((thisNode == GeometricTimingDet::BTLModule) &&
limit == 0) {
127 else if ((thisNode == GeometricTimingDet::ETLModule) &&
limit == 0) {
128 if (theCmsMTDConstruction.
isETLtdr(fv)) {
137 if (thisNode == GeometricTimingDet::BTLModule) {
139 edm::LogVerbatim(
"MTDNumbering") <<
"Registered in GeometricTimingDet as type " << thisNode;
143 }
else if (thisNode == GeometricTimingDet::ETLModule) {
145 edm::LogVerbatim(
"MTDNumbering") <<
"Registered in GeometricTimingDet as type " << thisNode;
155 auto comp =
mtd->deepComponents();
157 for (
const auto& it :
comp) {
158 before <<
"ORDER1 " << it->geographicalId().rawId() <<
" " << it->type() <<
" " << it->translation().z() <<
"\n";
160 edm::LogVerbatim(
"MTDNumbering") <<
"GeometricTimingDet order before sorting \n" << before.str();
175 subdet[0]->addComponent(
layer[0]);
180 subdet[1]->addComponent(
layer[1]);
181 subdet[2]->addComponent(
layer[2]);
183 subdet[1]->addComponent(
layer[1]);
184 subdet[1]->addComponent(
layer[2]);
185 subdet[2]->addComponent(
layer[3]);
186 subdet[2]->addComponent(
layer[4]);
193 mtd.get()->addComponents(subdet);
199 for (
const auto& it :
comp) {
200 after <<
"ORDER2 " << it->geographicalId().rawId() <<
" " << it->type() <<
" " << it->translation().z() <<
"\n";
202 edm::LogVerbatim(
"MTDNumbering") <<
"GeometricTimingDet order after sorting \n" << after.str();