15 template <
class FilteredView>
17 LogTrace(
"DetConstruction") <<
" CmsTrackerOTLayerBuilder::buildComponent ";
27 theCmsTrackerLadderBuilder.
build(fv, subdet, s);
30 theCmsTrackerOTRingBuilder.
build(fv, subdet, s);
33 edm::LogError(
"CmsTrackerOTLayerBuilder") <<
" ERROR - I was expecting a ladder or a panel, I got a " 39 template <
class FilteredView>
51 for (uint32_t
i = 0;
i < comp.size();
i++) {
54 rods.emplace_back(component);
56 if (component->translation().z() < 0.) {
57 ringsNeg.emplace_back(component);
58 }
else if (component->translation().z() > 0.) {
59 ringsPos.emplace_back(component);
63 <<
"ERROR - wrong SubDet to sort..... " << det->
components().front()->type();
68 if (!ringsNeg.empty()) {
70 uint32_t totalringsNeg = ringsNeg.size();
72 LogTrace(
"DetConstruction") <<
" Neg rings ordered by z: ";
76 ringsNeg[
ring]->setGeographicalID(temp);
77 LogTrace(
"BuildingTrackerDetId") <<
"\t\t\t DetId >> " << temp
78 <<
"(r: " <<
sqrt(ringsNeg[
ring]->translation().Perp2())
79 <<
", phi: " << ringsNeg[
ring]->phi()
80 <<
", z: " << ringsNeg[
ring]->translation().z() <<
")";
87 uint32_t totalrods = rods.size();
89 LogTrace(
"DetConstruction") <<
" Rods ordered by phi: ";
90 for (uint32_t rod = 0; rod < totalrods; rod++) {
91 uint32_t
temp = rod + 1;
93 rods[rod]->setGeographicalID(
DetId(temp));
94 LogTrace(
"BuildingTrackerDetId") <<
"\t\t\t DetId >> " << temp <<
"(r: " <<
sqrt(rods[rod]->translation().Perp2())
95 <<
", phi: " << rods[rod]->phi() <<
", z: " << rods[rod]->translation().z()
101 if (!ringsPos.empty()) {
103 uint32_t totalringsPos = ringsPos.size();
105 LogTrace(
"DetConstruction") <<
" Pos rings ordered by z: ";
109 ringsPos[
ring]->setGeographicalID(temp);
110 LogTrace(
"BuildingTrackerDetId") <<
"\t\t\t DetId >> " << temp
111 <<
"(r: " <<
sqrt(ringsPos[
ring]->translation().Perp2())
112 <<
", phi: " << ringsPos[
ring]->phi()
113 <<
", z: " << ringsPos[
ring]->translation().z() <<
")";
std::vector< GeometricDet * > GeometricDetContainer
static bool isLessZ(const GeometricDet *a, const GeometricDet *b)
void addComponent(GeometricDet *)
void build(FilteredView &, GeometricDet *, const std::string &) override
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e g
ConstGeometricDetContainer & components()
GeometricDet * component(size_t index)
std::vector< GeometricDet const * > ConstGeometricDetContainer
void trackerStablePhiSort(RandomAccessIterator begin, RandomAccessIterator end, const Extractor &extr)
void addComponents(GeometricDetContainer const &cont)
void buildComponent(FilteredView &, GeometricDet *, const std::string &) override
static double getPhi(const GeometricDet *a)
void sortNS(FilteredView &, GeometricDet *) override