19 vector<const DetLayer*> mylayers;
25 TSOS pTsos =
propagator()->propagate(fastFts, firstPixelBarrelLayer()->surface());
27 if (pTsos.isValid()) {
29 firstPixelBarrelLayer()->
position().z() - 0.5 * (firstPixelBarrelLayer()->surface().bounds().length()),
30 firstPixelBarrelLayer()->
position().z() + 0.5 * (firstPixelBarrelLayer()->surface().bounds().length()));
31 Range trajZRange(pTsos.globalPosition().z() -
dz, pTsos.globalPosition().z() +
dz);
34 mylayers.push_back(firstPixelBarrelLayer());
40 for (
auto infwd : firstPosPixelFwdLayer()) {
41 pTsos =
propagator()->propagate(fastFts, infwd->surface());
42 if (pTsos.isValid()) {
43 Range nfwdRRange(infwd->specificSurface().innerRadius(), infwd->specificSurface().outerRadius());
44 Range trajRRange(pTsos.globalPosition().perp() -
dr, pTsos.globalPosition().perp() +
dr);
46 mylayers.push_back(infwd);
52 for (
auto ipfwd : firstPosPixelFwdLayer()) {
53 pTsos =
propagator()->propagate(fastFts, ipfwd->surface());
54 if (pTsos.isValid()) {
55 Range pfwdRRange(ipfwd->specificSurface().innerRadius(), ipfwd->specificSurface().outerRadius());
56 Range trajRRange(pTsos.globalPosition().perp() -
dr, pTsos.globalPosition().perp() +
dr);
58 mylayers.push_back(ipfwd);
67 float dr = 0.,
dz = 0.;
70 return vector<const DetLayer*>();
72 if (aSeed.
nHits() != 2)
73 return vector<const DetLayer*>();
75 TrackingRecHitCollection::const_iterator firstHit = aSeed.
recHits().first;
77 const DetLayer* hit1Layer = theMeasurementTracker->geometricSearchTracker()->detLayer(recHit1->
geographicalId());
79 TrackingRecHitCollection::const_iterator secondHit = aSeed.
recHits().second;
81 const DetLayer* hit2Layer = theMeasurementTracker->geometricSearchTracker()->detLayer(recHit2->
geographicalId());
104 return startingLayers(*fts, dr,
dz);
109 return theFirstPixelBarrelLayer;
114 return theFirstNegPixelFwdLayer;
119 return theFirstPosPixelFwdLayer;
123 if (!thePixelLayersValid) {
124 const GeometricSearchTracker* theGeometricSearchTracker = theMeasurementTracker->geometricSearchTracker();
126 theFirstPixelBarrelLayer = theGeometricSearchTracker->
pixelBarrelLayers().front();
129 thePixelLayersValid =
true;
PropagationDirection direction() const
const GlobalTrajectoryParameters & parameters() const
std::vector< ForwardDetLayer const * > const & posPixelForwardLayers() const
const std::vector< const ForwardDetLayer * > firstPosPixelFwdLayer() const
virtual Location location() const =0
Which part of the detector (barrel, endcap)
const Plane & surface() const
The nominal surface of the GeomDet.
const BarrelDetLayer * firstPixelBarrelLayer() const
std::pair< float, float > Range
std::vector< ForwardDetLayer const * > const & negPixelForwardLayers() const
FreeTrajectoryState const * freeTrajectoryState(bool withErrors=true) const
bool rangesIntersect(const Range &a, const Range &b)
unsigned int detId() const
std::vector< BarrelDetLayer const * > const & pixelBarrelLayers() const
PTrajectoryStateOnDet const & startingState() const
void checkPixelLayers() const
unsigned int nHits() const
static int position[264][3]
std::vector< const DetLayer * > startingLayers(const FTS &aFts, float dr, float dz) const
DetId geographicalId() const
const std::vector< const ForwardDetLayer * > firstNegPixelFwdLayer() const