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