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;
const std::vector< const ForwardDetLayer * > firstNegPixelFwdLayer() const
PixelRecoRange< float > Range
std::vector< const DetLayer * > operator()(const FreeTrajectoryState &aFts, float dr, float dz) const
const GlobalTrajectoryParameters & parameters() const
std::vector< ForwardDetLayer const * > const & posPixelForwardLayers() const
const std::vector< const ForwardDetLayer * > firstPosPixelFwdLayer() const
void checkPixelLayers() const
std::vector< ForwardDetLayer const * > const & negPixelForwardLayers() const
std::vector< BarrelDetLayer const * > const & pixelBarrelLayers() const
bool rangesIntersect(const Range &a, const Range &b)
const BarrelDetLayer * firstPixelBarrelLayer() const
static int position[264][3]