20 typedef std::pair<float, float>
Range;
23 if (
a.first >
b.second ||
b.first >
a.second)
31 vector<const DetLayer*> mylayers;
39 if (pTsos.isValid()) {
41 firstPixelBarrelLayer()->
position().z() - 0.5 * (firstPixelBarrelLayer()->surface().bounds().length()),
42 firstPixelBarrelLayer()->
position().z() + 0.5 * (firstPixelBarrelLayer()->surface().bounds().length()));
43 Range trajZRange(pTsos.globalPosition().z() -
dz, pTsos.globalPosition().z() +
dz);
46 mylayers.push_back(firstPixelBarrelLayer());
52 for (
auto infwd : firstPosPixelFwdLayer()) {
53 pTsos = thePropagator.propagate(fastFts, infwd->surface());
54 if (pTsos.isValid()) {
55 Range nfwdRRange(infwd->specificSurface().innerRadius(), infwd->specificSurface().outerRadius());
56 Range trajRRange(pTsos.globalPosition().perp() -
dr, pTsos.globalPosition().perp() +
dr);
58 mylayers.push_back(infwd);
64 for (
auto ipfwd : firstPosPixelFwdLayer()) {
65 pTsos = thePropagator.propagate(fastFts, ipfwd->surface());
66 if (pTsos.isValid()) {
67 Range pfwdRRange(ipfwd->specificSurface().innerRadius(), ipfwd->specificSurface().outerRadius());
68 Range trajRRange(pTsos.globalPosition().perp() -
dr, pTsos.globalPosition().perp() +
dr);
70 mylayers.push_back(ipfwd);
80 return theFirstPixelBarrelLayer;
85 return theFirstNegPixelFwdLayer;
90 return theFirstPosPixelFwdLayer;
94 if (!thePixelLayersValid) {
97 theFirstPixelBarrelLayer = theGeometricSearchTracker->
pixelBarrelLayers().front();
100 thePixelLayersValid =
true;