66 vector<GetTrackTrajInfo::Result> trkTrajInfo = getTrackTrajInfo.
analyze(iSetup, track);
67 unsigned int nValidHits = trkTrajInfo.size();
73 enum InnerOuter {INNER = 1, OUTER=2};
74 for (
unsigned int inOut = INNER; inOut <= OUTER; inOut++) {
77 unsigned int ihit = (inOut == INNER) ? 0 : nValidHits - 1;
80 if (trkTrajInfo[ihit].
valid) {
81 const DetLayer* detLayer = trkTrajInfo[ihit].detLayer;
95 vector<const DetLayer*> compLayers = detLayer->compatibleLayers(*detFTS, direc);
96 LogDebug(
"FTHP")<<
"Number of inner/outer "<<inOut<<
" layers intercepted by track = "<<compLayers.size()<<endl;
101 for(vector<const DetLayer *>::const_iterator it=compLayers.begin(); it!=compLayers.end();
103 if ((*it)->basicComponents().empty()) {
105 edm::LogWarning(
"FixTrackHitPattern")<<
"a detlayer with no components: I can not figure out a DetId from this layer. please investigate.";
112 vector< GeometricSearchDet::DetWithState > detWithState = (*it)->compatibleDets(detTSOS,
propagator,
estimator);
114 if(detWithState.size() > 0) {
116 DetId id = detWithState.front().first->geographicalId();
131 if (inOut == INNER) {
132 result.innerHitPattern = newHitPattern;
134 result.outerHitPattern = newHitPattern;
138 LogDebug(
"FTHP")<<
"Number of missing hits "<<newHitPattern.
numberOfHits(HitPattern::ALL_HITS)<<
"/"<<counter<<endl;
142 uint32_t layer = newHitPattern.
getLayer(hp);
144 LogDebug(
"FTHP")<<
" layer with no matched hit at counter="<<
j<<
" subdet="<<subDet<<
" layer="<<layer<<
" status="<<status<<endl;
148 LogDebug(
"FTHP")<<
"WARNING: could not calculate inner/outer hit pattern as trajectory info for inner/out hit missing"<<endl;
static uint32_t getLayer(uint16_t pattern)
static uint32_t getHitType(uint16_t pattern)
FreeTrajectoryState const * freeTrajectoryState(bool withErrors=true) const
static uint32_t getSubStructure(uint16_t pattern)
std::vector< Result > analyze(const edm::EventSetup &iSetup, const reco::Track &track)
virtual bool isActive(const MeasurementTrackerEvent &data) const =0
static std::atomic< unsigned int > counter
bool appendHit(const TrackingRecHit &hit)
uint16_t getHitPattern(HitCategory category, int position) const
tuple AnalyticalPropagator
int numberOfHits(HitCategory category) const