Skip to content

Commit

Permalink
Merge pull request #14027 from dildick/second-third-pixel-layer-hits-81X
Browse files Browse the repository at this point in the history
More general form of valid hit in pixel function (81X)
  • Loading branch information
davidlange6 committed Apr 28, 2016
2 parents 956465e + db43178 commit 6f220f2
Show file tree
Hide file tree
Showing 9 changed files with 22 additions and 31 deletions.
4 changes: 2 additions & 2 deletions DQM/TrackingMonitor/src/PackedCandidateTrackValidator.cc
Expand Up @@ -822,7 +822,7 @@ void PackedCandidateTrackValidator::analyze(const edm::Event& iEvent, const edm:
int diffHitPatternHasValidHitInFirstPixelBarrel = 0;
if(track.hitPattern().numberOfLostHits(reco::HitPattern::MISSING_INNER_HITS) == 0) {
h_selectionFlow->Fill(sf_NoMissingInnerHits);
diffHitPatternHasValidHitInFirstPixelBarrel = static_cast<int>(trackPc.hitPattern().hasValidHitInFirstPixelBarrel()) - static_cast<int>(track.hitPattern().hasValidHitInFirstPixelBarrel());
diffHitPatternHasValidHitInFirstPixelBarrel = static_cast<int>(trackPc.hitPattern().hasValidHitInPixelLayer(PixelSubdetector::SubDetector::PixelBarrel, 1)) - static_cast<int>(track.hitPattern().hasValidHitInPixelLayer(PixelSubdetector::SubDetector::PixelBarrel, 1));
fillNoFlow(h_diffHitPatternHasValidHitInFirstPixelBarrel, diffHitPatternHasValidHitInFirstPixelBarrel);
}

Expand Down Expand Up @@ -876,7 +876,7 @@ void PackedCandidateTrackValidator::analyze(const edm::Event& iEvent, const edm:
<< "\n "
<< " hitPattern.numberOfValidPixelHits " << diffHitPatternNumberOfValidPixelHits << " " << trackPc.hitPattern().numberOfValidPixelHits() << " " << track.hitPattern().numberOfValidPixelHits()
<< " hitPattern.numberOfValidHits " << diffHitPatternNumberOfValidHits << " " << trackPc.hitPattern().numberOfValidHits() << " " << track.hitPattern().numberOfValidHits()
<< " hitPattern.hasValidHitInFirstPixelBarrel " << diffHitPatternHasValidHitInFirstPixelBarrel << " " << trackPc.hitPattern().hasValidHitInFirstPixelBarrel() << " " << track.hitPattern().hasValidHitInFirstPixelBarrel()
<< " hitPattern.hasValidHitInFirstPixelBarrel " << diffHitPatternHasValidHitInFirstPixelBarrel << " " << trackPc.hitPattern().hasValidHitInPixelLayer(PixelSubdetector::SubDetector::PixelBarrel, 1) << " " << track.hitPattern().hasValidHitInPixelLayer(PixelSubdetector::SubDetector::PixelBarrel, 1)
<< "\n "
<< " lostInnerHits " << diffLostInnerHits << " " << pcRef->lostInnerHits() << " #"
<< " phi (5e-4) " << diffPhi << " " << trackPc.phi() << " " << track.phi()
Expand Down
6 changes: 3 additions & 3 deletions DataFormats/TrackReco/interface/HitPattern.h
Expand Up @@ -262,9 +262,9 @@ class HitPattern
void printHitPattern(HitCategory category, int position, std::ostream &stream) const;
void print(HitCategory category, std::ostream &stream = std::cout) const;

bool hasValidHitInFirstPixelBarrel() const; // has valid hit in PXB layer 1
bool hasValidHitInFirstPixelEndcap() const; // has valid hit in PXF layer 1

// has valid hit in PXB/PXF layer x
bool hasValidHitInPixelLayer(enum PixelSubdetector::SubDetector, uint16_t layer) const;
int numberOfHits(HitCategory category) const; // not-null
int numberOfValidHits() const; // not-null, valid

Expand Down
29 changes: 10 additions & 19 deletions DataFormats/TrackReco/src/HitPattern.cc
Expand Up @@ -323,30 +323,21 @@ uint16_t HitPattern::getHitPatternByAbsoluteIndex(int position) const
}
}

bool HitPattern::hasValidHitInFirstPixelBarrel() const
{
for (int i = beginTrackHits; i < endTrackHits; ++i) {
uint16_t pattern = getHitPatternByAbsoluteIndex(i);
if (pixelBarrelHitFilter(pattern) && (getLayer(pattern) == 1)
&& validHitFilter(pattern)) {
return true;
}
}
return false;
}

bool HitPattern::hasValidHitInFirstPixelEndcap() const
bool HitPattern::hasValidHitInPixelLayer(enum PixelSubdetector::SubDetector det, uint16_t layer) const
{
for (int i = beginTrackHits; i < endTrackHits; ++i) {
uint16_t pattern = getHitPatternByAbsoluteIndex(i);
if (pixelEndcapHitFilter(pattern) && (getLayer(pattern) == 1)
&& validHitFilter(pattern)) {
return true;
}
for (int i = beginTrackHits; i < endTrackHits; ++i) {
uint16_t pattern = getHitPatternByAbsoluteIndex(i);
bool pixelHitFilter = ( (det==1 && pixelBarrelHitFilter(pattern)) ||
(det==2 && pixelEndcapHitFilter(pattern)) );
if (pixelHitFilter && (getLayer(pattern) == layer) && validHitFilter(pattern)) {
return true;
}
return false;
}
return false;
}


int HitPattern::numberOfValidStripLayersWithMonoAndStereo(uint16_t stripdet, uint16_t layer) const
{
bool hasMono[SubstrMask + 1][LayerMask + 1];
Expand Down
4 changes: 2 additions & 2 deletions ElectroWeakAnalysis/ZEE/src/ZeeCandidateFilter.cc
Expand Up @@ -821,7 +821,7 @@ Bool_t ZeeCandidateFilter::filter(edm::Event& iEvent, const edm::EventSetup& iSe

if ( useValidFirstPXBHit1_ || calculateValidFirstPXBHit1_ ) {

Bool_t fail = !maxETelec1.gsfTrack()->hitPattern().hasValidHitInFirstPixelBarrel();
Bool_t fail = !maxETelec1.gsfTrack()->hitPattern().hasValidHitInPixelLayer(PixelSubdetector::SubDetector::PixelBarrel, 1);

if ( useValidFirstPXBHit1_ && fail ) { std::cout << "Filter: there is no valid hit for electron #1 in 1st layer PXB" << std::endl;
delete [] sorted;
Expand All @@ -846,7 +846,7 @@ Bool_t ZeeCandidateFilter::filter(edm::Event& iEvent, const edm::EventSetup& iSe

if ( useValidFirstPXBHit2_ || calculateValidFirstPXBHit2_ ) {

Bool_t fail = !maxETelec2.gsfTrack()->hitPattern().hasValidHitInFirstPixelBarrel();
Bool_t fail = !maxETelec2.gsfTrack()->hitPattern().hasValidHitInPixelLayer(PixelSubdetector::SubDetector::PixelBarrel, 1);

if ( useValidFirstPXBHit2_ && fail ) { std::cout << "Filter: there is no valid hit for electron #1 in 1st layer PXB" << std::endl;
delete [] sorted;
Expand Down
Expand Up @@ -213,7 +213,7 @@ void pat::PATPackedCandidateProducer::produce(edm::StreamID, edm::Event& iEvent,
phiAtVtx = ctrack->phi();
int nlost = ctrack->hitPattern().numberOfLostHits(reco::HitPattern::MISSING_INNER_HITS);
if (nlost == 0) {
if (ctrack->hitPattern().hasValidHitInFirstPixelBarrel()) {
if (ctrack->hitPattern().hasValidHitInPixelLayer(PixelSubdetector::SubDetector::PixelBarrel, 1)) {
lostHits = pat::PackedCandidate::validHitInFirstPixelBarrelLayer;
}
} else {
Expand Down
2 changes: 1 addition & 1 deletion RecoBTag/TrackProbability/src/TrackClassFilter.cc
Expand Up @@ -17,7 +17,7 @@ const TrackProbabilityCategoryData & d = category.category;
double eta=track.eta();
double nhit=track.numberOfValidHits();
double npix=track.hitPattern().numberOfValidPixelHits();
bool firstPixel=track.hitPattern().hasValidHitInFirstPixelBarrel();
bool firstPixel=track.hitPattern().hasValidHitInPixelLayer(PixelSubdetector::SubDetector::PixelBarrel, 1);
double chi=track.normalizedChi2();


Expand Down
Expand Up @@ -557,7 +557,7 @@ double CutBasedElectronID::robustSelection(const reco::GsfElectron* electron ,
if (mishits > cut[22]) // expected missing hits
return result;
// positive cut[23] means to demand a valid hit in 1st layer PXB
if (cut[23] > 0 && !electron->gsfTrack()->hitPattern().hasValidHitInFirstPixelBarrel())
if (cut[23] > 0 && !electron->gsfTrack()->hitPattern().hasValidHitInPixelLayer(PixelSubdetector::SubDetector::PixelBarrel, 1))
return result;

// cut[24]: Dist cut[25]: dcot
Expand Down
2 changes: 1 addition & 1 deletion RecoVertex/PrimaryVertexProducer/src/DAClusterizerInZ.cc
Expand Up @@ -524,7 +524,7 @@ void DAClusterizerInZ::dump(const double beta, const vector<vertex_t> & y, const
cout << setw (3)<< i << ")" << setw (8) << fixed << setprecision(4)<< tz << " +/-" << setw (6)<< sqrt(tks[i].dz2);

if(tks[i].tt->track().quality(reco::TrackBase::highPurity)){ cout << " *";}else{cout <<" ";}
if(tks[i].tt->track().hitPattern().hasValidHitInFirstPixelBarrel()){ cout <<"+"; }else{ cout << "-"; }
if(tks[i].tt->track().hitPattern().hasValidHitInPixelLayer(PixelSubdetector::SubDetector::PixelBarrel, 1)){ cout <<"+"; }else{ cout << "-"; }
cout << setw(1) << tks[i].tt->track().hitPattern().pixelBarrelLayersWithMeasurement(); // see DataFormats/TrackReco/interface/HitPattern.h
cout << setw(1) << tks[i].tt->track().hitPattern().pixelEndcapLayersWithMeasurement();
cout << setw(1) << hex << tks[i].tt->track().hitPattern().trackerLayersWithMeasurement() -
Expand Down
Expand Up @@ -745,7 +745,7 @@ void DAClusterizerInZ_vect::dump(const double beta, const vertex_t & y,
} else {
LogDebug("DAClusterizerinZ_vectorized") << " ";
}
if (tks.tt[i]->track().hitPattern().hasValidHitInFirstPixelBarrel()) {
if (tks.tt[i]->track().hitPattern().hasValidHitInPixelLayer(PixelSubdetector::SubDetector::PixelBarrel, 1)) {
LogDebug("DAClusterizerinZ_vectorized") << "+";
} else {
LogDebug("DAClusterizerinZ_vectorized") << "-";
Expand Down

0 comments on commit 6f220f2

Please sign in to comment.