1515
1616using namespace std ;
1717
18- vector<const DetLayer*> StartingLayerFinder::startingLayers (const FTS& aFts, float dr, float dz) const {
18+ namespace {
19+
20+ typedef std::pair<float , float > Range;
21+
22+ inline bool rangesIntersect (const Range& a, const Range& b) {
23+ if (a.first > b.second || b.first > a.second )
24+ return false ;
25+ else
26+ return true ;
27+ }
28+ }; // namespace
29+
30+ vector<const DetLayer*> StartingLayerFinder::operator ()(const FreeTrajectoryState& aFts, float dr, float dz) const {
1931 vector<const DetLayer*> mylayers;
2032 mylayers.reserve (3 );
2133
22- FTS fastFts (aFts.parameters ());
34+ FreeTrajectoryState fastFts (aFts.parameters ());
2335
2436 // barrel pixel
25- TSOS pTsos = propagator ()-> propagate (fastFts, firstPixelBarrelLayer ()->surface ());
37+ TrajectoryStateOnSurface pTsos = thePropagator. propagate (fastFts, firstPixelBarrelLayer ()->surface ());
2638
2739 if (pTsos.isValid ()) {
2840 Range barrZRange (
@@ -38,7 +50,7 @@ vector<const DetLayer*> StartingLayerFinder::startingLayers(const FTS& aFts, flo
3850 // negative fwd pixel
3951
4052 for (auto infwd : firstPosPixelFwdLayer ()) {
41- pTsos = propagator ()-> propagate (fastFts, infwd->surface ());
53+ pTsos = thePropagator. propagate (fastFts, infwd->surface ());
4254 if (pTsos.isValid ()) {
4355 Range nfwdRRange (infwd->specificSurface ().innerRadius (), infwd->specificSurface ().outerRadius ());
4456 Range trajRRange (pTsos.globalPosition ().perp () - dr, pTsos.globalPosition ().perp () + dr);
@@ -50,7 +62,7 @@ vector<const DetLayer*> StartingLayerFinder::startingLayers(const FTS& aFts, flo
5062
5163 // positive fwd pixel
5264 for (auto ipfwd : firstPosPixelFwdLayer ()) {
53- pTsos = propagator ()-> propagate (fastFts, ipfwd->surface ());
65+ pTsos = thePropagator. propagate (fastFts, ipfwd->surface ());
5466 if (pTsos.isValid ()) {
5567 Range pfwdRRange (ipfwd->specificSurface ().innerRadius (), ipfwd->specificSurface ().outerRadius ());
5668 Range trajRRange (pTsos.globalPosition ().perp () - dr, pTsos.globalPosition ().perp () + dr);
@@ -63,47 +75,6 @@ vector<const DetLayer*> StartingLayerFinder::startingLayers(const FTS& aFts, flo
6375 return mylayers;
6476}
6577
66- vector<const DetLayer*> StartingLayerFinder::startingLayers (const TrajectorySeed& aSeed) const {
67- float dr = 0 ., dz = 0 .;
68-
69- if (propagator ()->propagationDirection () != aSeed.direction ())
70- return vector<const DetLayer*>();
71-
72- if (aSeed.nHits () != 2 )
73- return vector<const DetLayer*>();
74-
75- auto firstHit = aSeed.recHits ().begin ();
76- const TrackingRecHit* recHit1 = &(*firstHit);
77- const DetLayer* hit1Layer = theMeasurementTracker->geometricSearchTracker ()->detLayer (recHit1->geographicalId ());
78-
79- auto secondHit = aSeed.recHits ().end ();
80- const TrackingRecHit* recHit2 = &(*secondHit);
81- const DetLayer* hit2Layer = theMeasurementTracker->geometricSearchTracker ()->detLayer (recHit2->geographicalId ());
82-
83- GeomDetEnumerators::Location p1 = hit1Layer->location ();
84- GeomDetEnumerators::Location p2 = hit2Layer->location ();
85-
86- if (p1 == GeomDetEnumerators::barrel && p2 == GeomDetEnumerators::barrel) {
87- dr = 0.1 ;
88- dz = 5 .;
89- } else if (p1 == GeomDetEnumerators::endcap && p2 == GeomDetEnumerators::endcap) {
90- dr = 5 .;
91- dz = 0.1 ;
92- } else {
93- dr = 0.1 ;
94- dz = 0.1 ;
95- }
96-
97- const GeomDet* gdet = theMeasurementTracker->geomTracker ()->idToDet (DetId (aSeed.startingState ().detId ()));
98-
99- TrajectoryStateOnSurface tsos = trajectoryStateTransform::transientState (
100- aSeed.startingState (), &(gdet->surface ()), thePropagator->magneticField ());
101-
102- const FreeTrajectoryState* fts = tsos.freeTrajectoryState ();
103-
104- return startingLayers (*fts, dr, dz);
105- }
106-
10778const BarrelDetLayer* StartingLayerFinder::firstPixelBarrelLayer () const {
10879 checkPixelLayers ();
10980 return theFirstPixelBarrelLayer;
@@ -121,7 +92,7 @@ const vector<const ForwardDetLayer*> StartingLayerFinder::firstPosPixelFwdLayer(
12192
12293void StartingLayerFinder::checkPixelLayers () const {
12394 if (!thePixelLayersValid) {
124- const GeometricSearchTracker* theGeometricSearchTracker = theMeasurementTracker-> geometricSearchTracker ();
95+ const GeometricSearchTracker* theGeometricSearchTracker = theMeasurementTracker. geometricSearchTracker ();
12596
12697 theFirstPixelBarrelLayer = theGeometricSearchTracker->pixelBarrelLayers ().front ();
12798 theFirstNegPixelFwdLayer = theGeometricSearchTracker->negPixelForwardLayers ();
0 commit comments