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 " 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;
104 intneg[
i]->setGeographicalID(
DetId(temp));
107 for (uint32_t
i = 0;
i < extneg.size();
i++) {
108 uint32_t
temp =
i + 1;
111 extneg[
i]->setGeographicalID(
DetId(temp));
114 for (uint32_t
i = 0;
i < intpos.size();
i++) {
115 uint32_t
temp =
i + 1;
118 intpos[
i]->setGeographicalID(
DetId(temp));
121 for (uint32_t
i = 0;
i < extpos.size();
i++) {
122 uint32_t
temp =
i + 1;
125 extpos[
i]->setGeographicalID(
DetId(temp));
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;
155 neg[
i]->setGeographicalID(
DetId(temp));
158 for (uint32_t
i = 0;
i < pos.size();
i++) {
159 uint32_t
temp =
i + 1;
161 pos[
i]->setGeographicalID(
DetId(temp));
171 for (uint32_t
i = 0;
i < comp.size();
i++) {
177 <<
"ERROR - wrong SubDet to sort..... " << det->
components().front()->type();
std::vector< GeometricDet * > GeometricDetContainer
void sortNS(FilteredView &, GeometricDet *) override
void addComponent(GeometricDet *)
void setGeographicalID(DetId id)
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()
std::vector< double > const & params() const
GeometricDet * component(size_t index)
std::vector< GeometricDet const * > ConstGeometricDetContainer
void trackerStablePhiSort(RandomAccessIterator begin, RandomAccessIterator end, const Extractor &extr)
void buildComponent(FilteredView &, GeometricDet *, const std::string &) override
void addComponents(GeometricDetContainer const &cont)
static double getPhi(const GeometricDet *a)