16 template <
class FilteredView>
28 theCmsTrackerStringBuilder.
build(fv, subdet,
s);
31 theCmsTrackerRodBuilder.
build(fv, subdet,
s);
34 theCmsTrackerLadderBuilder.
build(fv, subdet,
s);
37 edm::LogError(
"CmsTrackerLayerBuilder") <<
" ERROR - I was expecting a String, Rod or Ladder, I got a "
40 g->addComponent(subdet);
43 template <
class FilteredView>
53 float layerRadius = (det->
params()[2] + det->
params()[1]) / 2.;
68 for (
size_t i = 0;
i <
comp.size(); ++
i) {
70 if (component->translation().z() < 0.) {
71 neg.emplace_back(component);
73 pos.emplace_back(component);
78 double rPos =
i->translation().Rho();
79 if (rPos > layerRadius) {
80 extneg.emplace_back(
i);
82 intneg.emplace_back(
i);
86 for (
auto& po :
pos) {
87 double rPos = po->translation().Rho();
88 if (rPos > layerRadius) {
89 extpos.emplace_back(po);
91 intpos.emplace_back(po);
100 for (uint32_t
i = 0;
i < intneg.size();
i++) {
101 uint32_t
temp =
i + 1;
107 for (uint32_t
i = 0;
i < extneg.size();
i++) {
108 uint32_t
temp =
i + 1;
114 for (uint32_t
i = 0;
i < intpos.size();
i++) {
115 uint32_t
temp =
i + 1;
121 for (uint32_t
i = 0;
i < extpos.size();
i++) {
122 uint32_t
temp =
i + 1;
140 for (
size_t i = 0;
i <
comp.size(); ++
i) {
142 if (component->translation().z() < 0.) {
143 neg.emplace_back(component);
145 pos.emplace_back(component);
152 for (uint32_t
i = 0;
i < neg.size();
i++) {
153 uint32_t
temp =
i + 1;
158 for (uint32_t
i = 0;
i <
pos.size();
i++) {
159 uint32_t
temp =
i + 1;
171 for (uint32_t
i = 0;
i <
comp.size();
i++) {
177 <<
"ERROR - wrong SubDet to sort..... " << det->
components().front()->type();