64 vector<GetTrackTrajInfo::Result> trkTrajInfo = getTrackTrajInfo.
analyze(iSetup, track);
65 unsigned int nValidHits = trkTrajInfo.size();
71 enum InnerOuter {INNER = 1, OUTER=2};
72 for (
unsigned int inOut = INNER; inOut <= OUTER; inOut++) {
75 unsigned int ihit = (inOut == INNER) ? 0 : nValidHits - 1;
78 if (trkTrajInfo[ihit].valid) {
79 const DetLayer* detLayer = trkTrajInfo[ihit].detLayer;
93 vector<const DetLayer*> compLayers = detLayer->compatibleLayers(*detFTS, direc);
94 LogDebug(
"FTHP")<<
"Number of inner/outer "<<inOut<<
" layers intercepted by track = "<<compLayers.size()<<endl;
99 for(vector<const DetLayer *>::const_iterator it=compLayers.begin(); it!=compLayers.end();
101 if ((*it)->basicComponents().empty()) {
103 edm::LogWarning(
"FixTrackHitPattern")<<
"a detlayer with no components: I can not figure out a DetId from this layer. please investigate.";
109 propagator.setPropagationDirection(direc);
110 vector< GeometricSearchDet::DetWithState > detWithState = (*it)->compatibleDets(detTSOS, propagator, estimator);
112 if(detWithState.size() > 0) {
114 DetId id = detWithState.front().first->geographicalId();
129 if (inOut == INNER) {
136 LogDebug(
"FTHP")<<
"Number of missing hits "<<newHitPattern.
numberOfHits(HitPattern::ALL_HITS)<<
"/"<<counter<<endl;
140 uint32_t layer = newHitPattern.
getLayer(hp);
142 LogDebug(
"FTHP")<<
" layer with no matched hit at counter="<<
j<<
" subdet="<<subDet<<
" layer="<<layer<<
" status="<<status<<endl;
146 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)
Result analyze(const edm::EventSetup &iSetup, const reco::Track &track)
static uint32_t getHitType(uint16_t pattern)
FreeTrajectoryState const * freeTrajectoryState(bool withErrors=true) const
reco::HitPattern outerHitPattern
bool appendHit(const TrackingRecHit &hit, const TrackerTopology &ttopo)
static uint32_t getSubStructure(uint16_t pattern)
std::vector< Result > analyze(const edm::EventSetup &iSetup, const reco::Track &track)
reco::HitPattern innerHitPattern
virtual bool isActive(const MeasurementTrackerEvent &data) const =0
static std::atomic< unsigned int > counter
uint16_t getHitPattern(HitCategory category, int position) const
tuple AnalyticalPropagator
int numberOfHits(HitCategory category) const