29 std::vector< GetTrackTrajInfo::Result >
results;
61 bool posSide = track.
eta() > 0;
75 LogDebug(
"GTTI")<<
" hit in subdet="<<subDet<<
" layer="<<layer;
80 detLayer = tracker->
tibLayers()[layer - 1];
82 detLayer = tracker->
tobLayers()[layer - 1];
98 std::pair<bool, TrajectoryStateOnSurface> layCross = detLayer->
compatible(initTSOS, propagator, estimator);
100 LogDebug(
"GTTI")<<
"crossed layer at "<<
" x="<<layCross.second.globalPosition().x()<<
" y="<<layCross.second.globalPosition().y()<<
" z="<<layCross.second.globalPosition().z();
106 std::vector< GeometricSearchDet::DetWithState > detWithState = detLayer->
compatibleDets(initTSOS, propagator, estimator);
108 if(!detWithState.empty()) {
112 result.
detTSOS = detWithState.front().second;
113 LogDebug(
"GTTI")<<
" Det in this layer compatible with TSOS: subdet="<<subDet<<
" layer="<<layer;
120 result.
detTSOS = layCross.second;
121 LogDebug(
"GTTI")<<
" WARNING: TSOS not compatible with any det in this layer, despite having a hit in it !";
126 result.
valid =
false;
127 LogDebug(
"GTTI")<<
" WARNING: track failed to cross layer, despite having a hit in hit !";
130 results.push_back(result);
virtual void setPropagationDirection(PropagationDirection dir)
static uint32_t getLayer(uint16_t pattern)
std::vector< ForwardDetLayer const * > const & posPixelForwardLayers() const
reco::TransientTrack build(const reco::Track *p) const
GlobalPoint globalPosition() const
std::vector< BarrelDetLayer const * > const & tobLayers() const
virtual std::vector< DetWithState > compatibleDets(const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est) const
std::vector< ForwardDetLayer const * > const & negPixelForwardLayers() const
static bool validHitFilter(uint16_t pattern)
double eta() const
pseudorapidity of momentum vector
const DetLayer * detLayer
int numberOfAllHits(HitCategory category) const
edm::ESHandle< TransientTrackBuilder > trkTool_
TrajectoryStateOnSurface detTSOS
std::vector< BarrelDetLayer const * > const & pixelBarrelLayers() const
virtual std::pair< bool, TrajectoryStateOnSurface > compatible(const TrajectoryStateOnSurface &ts, const Propagator &, const MeasurementEstimator &) const =0
static uint32_t getSubStructure(uint16_t pattern)
std::vector< Result > analyze(const edm::EventSetup &iSetup, const reco::Track &track)
static bool trackerHitFilter(uint16_t pattern)
std::vector< BarrelDetLayer const * > const & tibLayers() const
const HitPattern & hitPattern() const
Access the hit pattern, indicating in which Tracker layers the track has hits.
std::vector< ForwardDetLayer const * > const & posTecLayers() const
std::vector< ForwardDetLayer const * > const & negTidLayers() const
std::vector< ForwardDetLayer const * > const & posTidLayers() const
TrajectoryStateOnSurface impactPointState() const
uint16_t getHitPattern(HitCategory category, int position) const
std::vector< ForwardDetLayer const * > const & negTecLayers() const