20 : TTRHbuilder(nullptr),
21 trackerGeometry(nullptr),
24 theMiddleLayer(middle),
25 theInnerLayer(
inner) {
39 float radius1 = dynamic_cast<const BarrelDetLayer *>(
theInnerLayer->
layer())->specificSurface().radius();
40 float radius2 = dynamic_cast<const BarrelDetLayer *>(
theMiddleLayer->
layer())->specificSurface().radius();
41 float radius3 = dynamic_cast<const BarrelDetLayer *>(
theOuterLayer->
layer())->specificSurface().radius();
42 bool seedfromoverlaps = ((
std::abs(radius1 - radius2) < 0.1) || (
std::abs(radius3 - radius2) < 0.1)) ?
true :
false;
43 std::vector<const TrackingRecHit *>::const_iterator ohh;
44 std::vector<const TrackingRecHit *>::const_iterator mhh;
45 std::vector<const TrackingRecHit *>::const_iterator ihh;
51 if (!seedfromoverlaps) {
56 float z_diff = mh->globalPosition().z() - oh->globalPosition().z();
57 float midy = mh->globalPosition().y();
58 float outy = oh->globalPosition().y();
59 float midx = mh->globalPosition().x();
60 float outx = oh->globalPosition().x();
61 float dxdy =
std::abs((outx - midx) / (outy - midy));
62 if ((
std::abs(z_diff) < 30) && (outy * midy > 0) && (dxdy < 2)) {
65 float z_diff = mh->globalPosition().z() - ih->globalPosition().z();
66 float inny = ih->globalPosition().y();
67 float innx = ih->globalPosition().x();
68 float dxdy =
std::abs((innx - midx) / (inny - midy));
69 if ((
std::abs(z_diff) < 30) && (inny * midy > 0) && (dxdy < 2) && (!seedfromoverlaps)) {
81 float z_diff = mh->globalPosition().z() - oh->globalPosition().z();
82 float midy = mh->globalPosition().y();
83 float outy = oh->globalPosition().y();
84 float midx = mh->globalPosition().x();
85 float outx = oh->globalPosition().x();
86 float dxdy =
std::abs((outx - midx) / (outy - midy));
87 float DeltaR = oh->globalPosition().perp() - mh->globalPosition().perp();
88 if ((
std::abs(z_diff) < 18) && (
std::abs(oh->globalPosition().phi() - mh->globalPosition().phi()) < 0.05) &&
89 (
DeltaR < 0) && (dxdy < 2)) {
92 float z_diff = mh->globalPosition().z() - ih->globalPosition().z();
93 float inny = ih->globalPosition().y();
94 float innx = ih->globalPosition().x();
95 float dxdy =
std::abs((innx - midx) / (inny - midy));
96 if ((
std::abs(z_diff) < 30) && (inny * midy > 0) && (dxdy < 2)) {