Skip to content
Snippets Groups Projects
Commit 6b962a2c authored by Nils Erik Krumnack's avatar Nils Erik Krumnack
Browse files

Merge branch 'asglepsel-pixel-sct-hit-counts' into '21.2'

Add Pixel and SCT hit number requirements to AsgLeptonTrackSelectionAlg

See merge request atlas/athena!23770
parents ef436a28 1f0a7ff5
No related branches found
No related tags found
No related merge requests found
......@@ -52,6 +52,10 @@ namespace CP
private:
float m_maxD0Significance {0};
float m_maxDeltaZ0SinTheta {0};
int m_nMinPixelHits{-1};
int m_nMaxPixelHits{-1};
int m_nMinSCTHits{-1};
int m_nMaxSCTHits{-1};
std::string m_selectionDecoration {"trackSelection"};
std::string m_eventInfo {"EventInfo"};
std::string m_primaryVertices {"PrimaryVertices"};
......
......@@ -31,6 +31,10 @@ namespace CP
{
declareProperty ("maxD0Significance", m_maxD0Significance, "maximum d0 significance (or 0 for no cut)");
declareProperty ("maxDeltaZ0SinTheta", m_maxDeltaZ0SinTheta, "maximum Delta z0 sin theta (or 0 for no cut)");
declareProperty ("nMinPixelHits", m_nMinPixelHits, "minimum number of required Pixel hits (or -1 for no cut)");
declareProperty ("nMaxPixelHits", m_nMaxPixelHits, "minimum number of required Pixel hits (or -1 for no cut)");
declareProperty ("nMinSCTHits", m_nMinSCTHits, "minimum number of required SCT hits (or -1 for no cut)");
declareProperty ("nMaxSCTHits", m_nMaxSCTHits, "minimum number of required SCT hits (or -1 for no cut)");
declareProperty ("selectionDecoration", m_selectionDecoration, "the decoration for the asg selection");
declareProperty ("eventInfo", m_eventInfo, "the name of the EventInfo object to retrieve");
declareProperty ("primaryVertices", m_primaryVertices, "the name of the PrimaryVertex container to retrieve");
......@@ -64,6 +68,10 @@ namespace CP
m_accept.addCut ("maxD0Significance", "maximum D0 significance cut");
if (m_maxDeltaZ0SinTheta > 0)
m_accept.addCut ("maxDeltaZ0SinTheta", "maximum Delta z0 sin theta cut");
if (m_nMinPixelHits != -1 || m_nMaxPixelHits != -1)
m_accept.addCut ("numPixelHits", "Minimum and/or maxiumum Pixel hits");
if (m_nMinSCTHits != -1 || m_nMaxSCTHits != -1)
m_accept.addCut ("numSCTHits", "Minimum and/or maxiumum SCT hits");
m_systematicsList.addHandle (m_particlesHandle);
ANA_CHECK (m_systematicsList.initialize());
......@@ -145,6 +153,30 @@ namespace CP
= (track->z0() + track->vz() - vertex_z) * sin (particle->p4().Theta());
m_accept.setCutResult (cutIndex ++, fabs (deltaZ0SinTheta) < m_maxDeltaZ0SinTheta);
}
if (m_nMinPixelHits != -1 || m_nMaxPixelHits != -1) {
uint8_t nPixelHits;
track->summaryValue(nPixelHits, xAOD::numberOfPixelHits);
bool accept = true;
if(m_nMinPixelHits != -1) {
accept &= nPixelHits >= m_nMinPixelHits;
}
if(m_nMaxPixelHits != -1) {
accept &= nPixelHits <= m_nMaxPixelHits;
}
m_accept.setCutResult (cutIndex++, accept);
}
if (m_nMinSCTHits != -1 || m_nMaxSCTHits != -1) {
uint8_t nSCTHits;
track->summaryValue(nSCTHits, xAOD::numberOfSCTHits);
bool accept = true;
if(m_nMinSCTHits != -1) {
accept &= nSCTHits >= m_nMinSCTHits;
}
if(m_nMaxSCTHits != -1) {
accept &= nSCTHits <= m_nMaxSCTHits;
}
m_accept.setCutResult (cutIndex++, accept);
}
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment