70 vector<GetTrackTrajInfo::Result> trkTrajInfo = getTrackTrajInfo.
analyze(iSetup, track);
71 unsigned int nValidHits = trkTrajInfo.size();
77 enum InnerOuter {INNER = 1, OUTER=2};
78 for (
unsigned int inOut = INNER; inOut <= OUTER; inOut++) {
81 unsigned int ihit = (inOut == INNER) ? 0 : nValidHits - 1;
84 if (trkTrajInfo[ihit].
valid) {
85 const DetLayer* detLayer = trkTrajInfo[ihit].detLayer;
99 vector<const DetLayer*> compLayers = detLayer->
compatibleLayers(*detFTS, direc);
100 LogDebug(
"FTHP")<<
"Number of inner/outer "<<inOut<<
" layers intercepted by track = "<<compLayers.size()<<endl;
105 for(vector<const DetLayer *>::const_iterator it=compLayers.begin(); it!=compLayers.end();
107 if ((*it)->basicComponents().empty()) {
109 edm::LogWarning(
"FixTrackHitPattern")<<
"a detlayer with no components: I can not figure out a DetId from this layer. please investigate.";
116 vector< GeometricSearchDet::DetWithState > detWithState = (*it)->compatibleDets(detTSOS, propagator, estimator);
118 if(detWithState.size() > 0) {
120 DetId id = detWithState.front().first->geographicalId();
126 newHitPattern.
set(tmpHit, counter);
135 if (inOut == INNER) {
146 uint32_t layer = newHitPattern.
getLayer(hp);
148 LogDebug(
"FTHP")<<
" layer with no matched hit at counter="<<
j<<
" subdet="<<subDet<<
" layer="<<layer<<
" status="<<status<<endl;
152 LogDebug(
"FTHP")<<
"WARNING: could not calculate inner/outer hit pattern as trajectory info for inner/out hit missing"<<endl;
static uint32_t getLayer(uint32_t pattern)
FreeTrajectoryState * freeTrajectoryState(bool withErrors=true) const
virtual bool isActive() const =0
static uint32_t getHitType(uint32_t pattern)
void set(const I &begin, const I &end)
Result analyze(const edm::EventSetup &iSetup, const reco::Track &track)
const T & max(const T &a, const T &b)
reco::HitPattern outerHitPattern
static uint32_t getSubStructure(uint32_t pattern)
std::vector< Result > analyze(const edm::EventSetup &iSetup, const reco::Track &track)
reco::HitPattern innerHitPattern
std::vector< const DetLayer * > compatibleLayers(NavigationDirection direction) const
virtual void setPropagationDirection(PropagationDirection dir) const
uint32_t getHitPattern(int position) const