ATLAS Offline Software
Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
InDet::InDetNNScoringTool Class Reference

Concrete implementation of the ITrackScoringTool pABC. More...

#include <InDetNNScoringTool.h>

Inheritance diagram for InDet::InDetNNScoringTool:
Collaboration diagram for InDet::InDetNNScoringTool:

Public Member Functions

 InDetNNScoringTool (const std::string &, const std::string &, const IInterface *)
 
virtual ~InDetNNScoringTool ()=default
 
virtual StatusCode initialize () override
 
virtual bool passBasicSelections (const Trk::Track &track) const override
 check track selections independent from TrackSummary More...
 
virtual Trk::TrackScore score (const Trk::Track &track, bool checkBasicSel) const override
 create a score based on how good the passed track is More...
 
virtual Trk::TrackScore simpleScore (const Trk::Track &track, const Trk::TrackSummary &trackSum) const override
 create a score based on how good the passed TrackSummary is More...
 
Trk::TrackScore ambigScore (const Trk::Track &track, const Trk::TrackSummary &trackSum) const
 
Trk::TrackScore calcNnScore (const Trk::Track &track, const Trk::TrackSummary &trackSum, const Trk::Perigee *extrapolatedPerigee) const
 
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & evtStore () const
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc. More...
 
virtual StatusCode sysInitialize () override
 Perform system initialization for an algorithm. More...
 
virtual StatusCode sysStart () override
 Handle START transition. More...
 
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles. More...
 
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles. More...
 
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T > &t)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc="none")
 Declare a new Gaudi property. More...
 
void updateVHKA (Gaudi::Details::PropertyBase &)
 
MsgStream & msg () const
 
MsgStream & msg (const MSG::Level lvl) const
 
bool msgLvl (const MSG::Level lvl) const
 

Static Public Member Functions

static const InterfaceID & interfaceID ()
 

Protected Member Functions

void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution More...
 
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce (T &h)
 
void extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps)
 Add StoreName to extra input/output deps as needed. More...
 

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t
 

Private Member Functions

void setupScoreModifiers ()
 
bool isEmCaloCompatible (const Trk::Track &track, const EventContext &ctx) const
 Check if the cluster is compatible with a EM cluster. More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyArrayType &)
 specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleType &)
 specialization for handling Gaudi::Property<SG::VarHandleBase> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &t, const SG::NotHandleType &)
 specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
 

Private Attributes

std::unique_ptr< lwt::LightweightGraph > m_graph
 
std::map< std::string, double > m_DNN_inputValues
 
int m_maxDblHoles = -1
 
int m_maxPixHoles = -1
 
int m_maxSCT_Holes = -1
 
int m_maxHits = -1
 
int m_maxSigmaChi2 = -1
 
int m_maxTrtRatio = -1
 
int m_maxTrtFittedRatio = -1
 
int m_maxB_LayerHits = -1
 
int m_maxPixelHits = -1
 
int m_maxPixLay = -1
 
int m_maxGangedFakes = -1
 
std::vector< double > m_factorDblHoles
 
std::vector< double > m_factorPixHoles
 
std::vector< double > m_factorSCT_Holes
 
std::vector< double > m_factorHits
 
std::vector< double > m_factorSigmaChi2
 
std::vector< double > m_factorB_LayerHits
 
std::vector< double > m_factorPixelHits
 
std::vector< double > m_factorPixLay
 
std::vector< double > m_factorGangedFakes
 
std::vector< double > m_boundsSigmaChi2
 
std::vector< double > m_boundsTrtRatio
 
std::vector< double > m_factorTrtRatio
 
std::vector< double > m_boundsTrtFittedRatio
 
std::vector< double > m_factorTrtFittedRatio
 
ToolHandle< ITrtDriftCircleCutToolm_selectortool {this, "DriftCircleCutTool", "InDet::InDetTrtDriftCircleCutTool"}
 Returns minimum number of expected TRT drift circles depending on eta. More...
 
std::vector< Trk::TrackScorem_summaryTypeScore
 holds the scores assigned to each Trk::SummaryType from the track's Trk::TrackSummary More...
 
SG::ReadCondHandleKey< InDet::BeamSpotDatam_beamSpotKey { this, "BeamSpotKey", "BeamSpotData", "SG key for beam spot" }
 
ToolHandle< Trk::IExtrapolatorm_extrapolator {this, "Extrapolator", "Trk::Extrapolator"}
 
SG::ReadCondHandleKey< AtlasFieldCacheCondObjm_fieldCacheCondObjInputKey {this, "AtlasFieldCacheCondObj", "fieldCondObj", "Name of the Magnetic Field conditions object key"}
 
BooleanProperty m_useAmbigFcn {this, "useAmbigFcn", true}
 use the scoring tuned to Ambiguity processing or not More...
 
BooleanProperty m_useTRT_AmbigFcn {this, "useTRT_AmbigFcn", false}
 
BooleanProperty m_useSigmaChi2 {this, "useSigmaChi2", false}
 
StringProperty m_nnCutConfig {this, "nnCutConfig", ""}
 
DoubleProperty m_nnCutThreshold {this, "nnCutThreshold", -0.1}
 
BooleanProperty m_usePixel {this, "usePixel", true}
 
BooleanProperty m_useSCT {this, "useSCT", true}
 
DoubleProperty m_minPt {this, "minPt", 500., "minimal Pt cut"}
 cuts for selecting good tracks More...
 
DoubleProperty m_maxEta {this, "maxEta", 2.7, "maximal Eta cut"}
 
DoubleProperty m_maxRPhiImp {this, "maxRPhiImp", 10., "maximal RPhi impact parameter cut"}
 
DoubleProperty m_maxZImp {this, "maxZImp", 250., "maximal z impact parameter cut"}
 
IntegerProperty m_minSiClusters {this, "minSiClusters", 7, "minimal number of Si clusters"}
 
IntegerProperty m_maxDoubleHoles {this, "maxDoubleHoles", 2, "maximum number of SCT double holes"}
 
IntegerProperty m_maxSiHoles {this, "maxSiHoles", 5, "max number of Silicon (Pixel+SCT) holes"}
 
IntegerProperty m_maxPixelHoles {this, "maxPixelHoles", 5, "max number of Pixel holes"}
 
IntegerProperty m_maxSctHoles {this, "maxSCTHoles", 5, "max number of SCT holes"}
 
IntegerProperty m_minTRTonTrk {this, "minTRTonTrk", 9, "minimum number of TRT hits"}
 
DoubleProperty m_minTRTprecision {this, "minTRTPrecisionFraction", 0.5, "minimum fraction of TRT precision hits"}
 
IntegerProperty m_minPixel {this, "minPixel", 0, "minimum number of pixel clusters"}
 
DoubleProperty m_maxRPhiImpEM {this, "maxRPhiImpEM", 50., "maximal RPhi impact parameter cut track that match EM clusters"}
 
BooleanProperty m_useEmClusSeed {this, "doEmCaloSeed", true}
 
FloatProperty m_phiWidthEm {this, "phiWidthEM", 0.075}
 
FloatProperty m_etaWidthEm {this, "etaWidthEM", 0.05}
 
SG::ReadHandleKey< ROIPhiRZContainerm_caloClusterROIKey {this, "EMROIPhiRZContainer", "", "Name of the calo cluster ROIs in Phi,R,Z parameterization"}
 
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default) More...
 
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default) More...
 
std::vector< SG::VarHandleKeyArray * > m_vhka
 
bool m_varHandleArraysDeclared
 

Detailed Description

Concrete implementation of the ITrackScoringTool pABC.

Definition at line 47 of file InDetNNScoringTool.h.

Member Typedef Documentation

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< AlgTool > >::StoreGateSvc_t
privateinherited

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ InDetNNScoringTool()

InDet::InDetNNScoringTool::InDetNNScoringTool ( const std::string &  t,
const std::string &  n,
const IInterface *  p 
)

Definition at line 24 of file InDetNNScoringTool.cxx.

26  :
27  AthAlgTool(t,n,p),
28  // Initialization of ScoreModifiers variables
30 {
31  declareInterface<Trk::ITrackScoringTool>(this);
32 
33  //set values for scores
35  m_summaryTypeScore[Trk::numberOfPixelHoles] = -10; // a hole is bad
36  m_summaryTypeScore[Trk::numberOfInnermostPixelLayerHits] = 10; // addition for being b-layer
37  m_summaryTypeScore[Trk::numberOfGangedPixels] = -5; // decrease for being ganged
38  m_summaryTypeScore[Trk::numberOfGangedFlaggedFakes] = -10; // decrease for being ganged fake
39  m_summaryTypeScore[Trk::numberOfSCTHits] = 10; // half of a pixel, since only 1dim
40  m_summaryTypeScore[Trk::numberOfSCTHoles] = -5; // a hole is bad !
41  m_summaryTypeScore[Trk::numberOfSCTDoubleHoles] = -15; // a double hole is even worse !
42  m_summaryTypeScore[Trk::numberOfTRTHits] = 1; // 10 straws ~ 1 SCT
43  m_summaryTypeScore[Trk::numberOfTRTHighThresholdHits] = 0; // addition for being TR
44  m_summaryTypeScore[Trk::numberOfOutliersOnTrack] = -1; // -ME- TRT oulier should not kill 5 TRT on track (was -5)
45 
46  // scoring for Muons not needed
54 }

◆ ~InDetNNScoringTool()

virtual InDet::InDetNNScoringTool::~InDetNNScoringTool ( )
virtualdefault

Member Function Documentation

◆ ambigScore()

Trk::TrackScore InDet::InDetNNScoringTool::ambigScore ( const Trk::Track track,
const Trk::TrackSummary trackSum 
) const

Definition at line 342 of file InDetNNScoringTool.cxx.

343 {
344  //
345  // --- start with bonus for high pt tracks
346  //
347  // double prob = 1.;
348  double pt = std::abs(track.trackParameters()->front()->pT());
349  double prob = log10( pt ) - 1.; // 100 MeV is min and gets score 1
350  ATH_MSG_DEBUG ("Modifier for pt = " << pt / 1000. << " GeV is: "<< prob);
351 
352  //
353  // --- prob and cuts on holes
354  //
355  if (m_usePixel) {
356  // --- Pixel holes
357  int iPixHoles = trackSummary.get(Trk::numberOfPixelHoles);
358  if ( iPixHoles > -1 && m_maxPixHoles > 0) {
359  if (iPixHoles > m_maxPixHoles) {
360  prob /= (iPixHoles - m_maxPixHoles + 1); // holes are bad !
361  iPixHoles = m_maxPixHoles;
362  }
363  prob *= m_factorPixHoles[iPixHoles];
364  ATH_MSG_DEBUG ("Modifier for " << iPixHoles << " Pixel holes: "<<m_factorPixHoles[iPixHoles]
365  << " New score now: " << prob);
366  }
367  }
368 
369  if (m_useSCT) {
370  // --- SCT holes
371  int iSCT_Holes = trackSummary.get(Trk::numberOfSCTHoles);
372  if (iSCT_Holes > -1 && m_maxSCT_Holes > 0) {
373  if (iSCT_Holes > m_maxSCT_Holes) {
374  prob /= (iSCT_Holes - m_maxSCT_Holes + 1); // holes are bad !
375  iSCT_Holes = m_maxSCT_Holes;
376  }
377  prob *= m_factorSCT_Holes[iSCT_Holes];
378  ATH_MSG_DEBUG ("Modifier for " << iSCT_Holes << " SCT holes: "<<m_factorSCT_Holes[iSCT_Holes]
379  << " New score now: " << prob);
380  }
381  // --- SCT double holes
382  int iDblHoles = trackSummary.get(Trk::numberOfSCTDoubleHoles);
383  if (iDblHoles > -1 && m_maxDblHoles > 0) {
384  if (iDblHoles > m_maxDblHoles) {
385  prob /= (iDblHoles - m_maxDblHoles + 1); // holes are bad !
386  iDblHoles = m_maxDblHoles;
387  }
388  prob *= m_factorDblHoles[iDblHoles];
389  ATH_MSG_DEBUG ("Modifier for " << iDblHoles << " double holes: "<<m_factorDblHoles[iDblHoles]
390  << " New score now: " << prob);
391  }
392  }
393  //
394  // --- prob for other counters
395  //
396  if (m_usePixel) {
397 
398  // ME: this if statement needs to be removed...
399  // --- count layers only if holes are not searched for
400  // if (trackSummary.get(Trk::numberOfPixelHoles) == -1) {
401 
402  // --- Pixel layers
403  int iPixLay = trackSummary.get(Trk::numberOfContribPixelLayers);
404  if (iPixLay > -1 && m_maxPixLay > 0) {
405  if (iPixLay > m_maxPixLay) {
406  prob *= (iPixLay - m_maxPixLay + 1); // layers are good !
407  iPixLay = m_maxPixLay;
408  }
409  prob *= m_factorPixLay[iPixLay];
410  ATH_MSG_DEBUG ("Modifier for " << iPixLay << " Pixel layers: "<<m_factorPixLay[iPixLay]
411  << " New score now: " << prob);
412  }
413 
414  // --- Pixel hits
415  int pixelHits = trackSummary.get(Trk::numberOfPixelHits);
416  if (pixelHits > -1 && m_maxPixelHits > 0) {
417  if (pixelHits > m_maxPixelHits) {
418  prob *= (pixelHits - m_maxPixelHits + 1); // hits are good !
419  pixelHits = m_maxPixelHits;
420  }
421  prob *= m_factorPixelHits[pixelHits];
422  ATH_MSG_DEBUG ("Modifier for " << pixelHits << " Pixel hits: "<<m_factorPixelHits[pixelHits]
423  << " New score now: " << prob);
424  }
425  // --- Pixel blayer hits
426  int bLayerHits = trackSummary.get(Trk::numberOfInnermostPixelLayerHits);
427  if (bLayerHits > -1 && m_maxB_LayerHits > 0) {
428  if (bLayerHits > m_maxB_LayerHits) {
429  prob *= (bLayerHits - m_maxB_LayerHits + 1); // hits are good !
430  bLayerHits = m_maxB_LayerHits;
431  }
432  prob *= m_factorB_LayerHits[bLayerHits];
433  ATH_MSG_DEBUG ("Modifier for " << bLayerHits << " b-layer hits: "<<m_factorB_LayerHits[bLayerHits]
434  << " New score now: " << prob);
435  }
436  // --- Pixel Ganged fakes
437  int pixelGangedFakes = trackSummary.get(Trk::numberOfGangedFlaggedFakes);
438  if (pixelGangedFakes > -1 && m_maxGangedFakes > 0) {
439  if (pixelGangedFakes > m_maxGangedFakes) {
440  prob /= (pixelGangedFakes - m_maxGangedFakes + 1); // ganged are bad !
441  pixelGangedFakes = m_maxGangedFakes;
442  }
443  prob *= m_factorGangedFakes[pixelGangedFakes];
444  ATH_MSG_DEBUG ("Modifier for " << pixelGangedFakes << " ganged fakes hits: "<<m_factorGangedFakes[pixelGangedFakes]
445  << " New score now: " << prob);
446  }
447  }
448 
449  int iHits = 0;
450  iHits += m_usePixel ? trackSummary.get(Trk::numberOfPixelHits) : 3; // if Pixel off, do not count as inefficient
451  iHits += m_useSCT ? trackSummary.get(Trk::numberOfSCTHits) : 8; // if SCT off, do not count as inefficient
452  if (iHits > -1 && m_maxHits > 0) {
453  if (iHits > m_maxHits) {
454  prob *= (iHits - m_maxHits + 1); // hits are good !
455  iHits = m_maxHits;
456  }
457  prob *= m_factorHits[iHits];
458  ATH_MSG_DEBUG ("Modifier for " << iHits << " Sihits: "<<m_factorHits[iHits]
459  << " New score now: " << prob);
460  }
461 
462  //
463  // --- special treatment for TRT hits
464  //
465  int iTRT_Hits = trackSummary.get(Trk::numberOfTRTHits);
466  int iTRT_Outliers = trackSummary.get(Trk::numberOfTRTOutliers);
467  //
468  if ( iTRT_Hits > 0 && m_maxTrtRatio > 0) {
469  // get expected number of TRT hits
470  double nTrtExpected = 30.;
471  assert( m_selectortool.isEnabled() );
472  nTrtExpected = m_selectortool->minNumberDCs(track.trackParameters()->front());
473  ATH_MSG_DEBUG ("Expected number of TRT hits: " << nTrtExpected << " for eta: "
474  << std::abs(track.trackParameters()->front()->eta()));
475  double ratio = (nTrtExpected != 0) ? iTRT_Hits / nTrtExpected : 0;
477  for (int i=0; i<m_maxTrtRatio; ++i) {
478  if ( m_boundsTrtRatio[i] < ratio && ratio <= m_boundsTrtRatio[i+1]) {
480  ATH_MSG_DEBUG ("Modifier for " << iTRT_Hits << " TRT hits (ratio " << ratio
481  << ") is : "<< m_factorTrtRatio[i] << " New score now: " << prob);
482  break;
483  }
484  }
485  }
486  //
487  if ( iTRT_Hits > 0 && iTRT_Outliers >= 0 && m_maxTrtFittedRatio > 0) {
488  double fitted = double(iTRT_Hits) / double(iTRT_Hits + iTRT_Outliers);
490  for (int i=0; i<m_maxTrtFittedRatio; ++i) {
491  if (fitted <= m_boundsTrtFittedRatio[i+1]) {
493  ATH_MSG_DEBUG ("Modifier for TRT fitted ratio of " << fitted
494  << " is : "<< m_factorTrtFittedRatio[i] << " New score now: " << prob);
495  break;
496  }
497  }
498  }
499 
500  // is this a track from the pattern or a fitted track ?
501  bool ispatterntrack = (track.info().trackFitter()==Trk::TrackInfo::Unknown);
502 
503  //
504  // --- non binned Chi2
505  //
506  if (!ispatterntrack) {
507  if (track.fitQuality()!=nullptr && track.fitQuality()->chiSquared()>0 && track.fitQuality()->numberDoF()>0 ) {
508  int indf = track.fitQuality()->numberDoF();
509  double chi2 = track.fitQuality()->chiSquared();
510  double fac = 1. / log10 (10. + 10. * chi2 / indf); // very soft chi2
511  prob *= fac;
512  ATH_MSG_DEBUG ("Modifier for chi2 = " << chi2 << " and NDF = " << indf
513  << " is : "<< fac << " New score now: " << prob);
514 
515  }
516  }
517  //
518  // --- fit quality prob
519  //
520  if ( !ispatterntrack && (m_useSigmaChi2) && track.fitQuality() ) {
521 
522  int ndf = track.fitQuality()->numberDoF();
523  double chi2 = track.fitQuality()->chiSquared();
524  if (ndf > 0) {
525  //
526  // --- special variable for bad chi2 distribution
527  //
528  if (m_useSigmaChi2) {
529  int sigmaChi2times100 = trackSummary.get(Trk::standardDeviationOfChi2OS);
530  if (sigmaChi2times100 > 0) {
531  double testvar = double(sigmaChi2times100)/100. - sqrt(2.*chi2/ndf);
532  if (msgLvl(MSG::VERBOSE)) msg(MSG::VERBOSE) << "sigma chi2 = " << testvar << endmsg;
533  if ( testvar< m_boundsSigmaChi2[0] ) {
534  prob *= m_factorSigmaChi2[0];
535  ATH_MSG_DEBUG ("Modifier for " << testvar << " sigma chi2: "<< m_factorSigmaChi2[0]
536  << " New score now: " << prob);
537  } else if (m_boundsSigmaChi2[m_maxSigmaChi2] <= testvar) {
539  ATH_MSG_DEBUG ("Modifier for " << testvar << " sigma chi2: "<< m_factorSigmaChi2[m_maxSigmaChi2-1]
540  << " New score now: " << prob);
541  } else {
542  for (int i = 0 ; i<m_maxSigmaChi2 ; ++i ) {
543  if ( m_boundsSigmaChi2[i]<=testvar && testvar<m_boundsSigmaChi2[i+1] ) {
545  ATH_MSG_DEBUG ("Modifier for " << testvar << " sigma chi2: "<< m_factorSigmaChi2[i]
546  << " New score now: " << prob);
547  break;
548  }
549  }
550  }
551  }
552  }
553  }
554  }
555 
556  return Trk::TrackScore(prob);
557 }

◆ calcNnScore()

Trk::TrackScore InDet::InDetNNScoringTool::calcNnScore ( const Trk::Track track,
const Trk::TrackSummary trackSum,
const Trk::Perigee extrapolatedPerigee 
) const

Definition at line 815 of file InDetNNScoringTool.cxx.

816 {
817  ATH_MSG_DEBUG("Using NN Score Function");
818  // initialize with dummy score
819  double DNNscore(-1.0);
820 
821  // This calculates a variant of the delta-eta variable used in large-d0 seeding
822  double d0 = extrapolatedPerigee->parameters()[Trk::d0];
823  double z0 = extrapolatedPerigee->parameters()[Trk::z0];
824  double deltaEta = std::abs(std::atan2(std::abs(d0), z0) - 2 * std::atan(std::exp(-track.trackParameters()->front()->eta())));
825 
826  // Build dictionary of inputs for lwtnn to use
827  // It is ok to fill this with more variables than the model uses
828  // as long as no variables are missing
829  std::map<std::string, double> trackInputs{
830  {"pT", track.trackParameters()->front()->pT()},
831  {"eta", track.trackParameters()->front()->eta()},
832  {"numberOfSCTHoles", (double) trackSummary.get(Trk::numberOfSCTHoles)},
833  {"numberOfSCTHits", (double) trackSummary.get(Trk::numberOfSCTHits)},
834  {"numberDoF", (double) track.fitQuality()->numberDoF()},
835  {"Sihits", (double) (trackSummary.get(Trk::numberOfPixelHits) + trackSummary.get(Trk::numberOfSCTHits))},
836  {"d0", d0},
837  {"z0", z0},
838  {"deltaEta", deltaEta}
839  };
840 
841  // Set up the nodes used for inputs
842  std::map<std::string, std::map<std::string, double> > inputs{
843  {"trackInputs", trackInputs}
844  };
845 
846  // Evaluate the network
847  lwt::ValueMap output = m_graph->compute(inputs);
848 
849  // Obtain the discriminant associated with the single output node
850  DNNscore = output["nnScore"];
851  // Return the discriminant as the score
852  ATH_MSG_DEBUG("DNNscore: " << DNNscore);
853  if (DNNscore < m_nnCutThreshold)
854  ATH_MSG_DEBUG("DNNscore is below threshold of " << m_nnCutThreshold << ", rejecting track. ");
855  if (DNNscore < 0)
856  ATH_MSG_ERROR("DNNscore should be 0 or greater.");
857  return Trk::TrackScore(DNNscore);
858 }

◆ declareGaudiProperty() [1/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleKeyArrayType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKeyArray>

Definition at line 170 of file AthCommonDataStore.h.

172  {
173  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
174  hndl.value(),
175  hndl.documentation());
176 
177  }

◆ declareGaudiProperty() [2/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleKeyType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKey>

Definition at line 156 of file AthCommonDataStore.h.

158  {
159  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
160  hndl.value(),
161  hndl.documentation());
162 
163  }

◆ declareGaudiProperty() [3/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleBase>

Definition at line 184 of file AthCommonDataStore.h.

186  {
187  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
188  hndl.value(),
189  hndl.documentation());
190  }

◆ declareGaudiProperty() [4/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  t,
const SG::NotHandleType  
)
inlineprivateinherited

specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray>

Definition at line 199 of file AthCommonDataStore.h.

200  {
201  return PBASE::declareProperty(t);
202  }

◆ declareProperty() [1/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleBase hndl,
const std::string &  doc,
const SG::VarHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation string for the property.

This is the version for types that derive from SG::VarHandleBase. The property value object is put on the input and output lists as appropriate; then we forward to the base class.

Definition at line 245 of file AthCommonDataStore.h.

249  {
250  this->declare(hndl.vhKey());
251  hndl.vhKey().setOwner(this);
252 
253  return PBASE::declareProperty(name,hndl,doc);
254  }

◆ declareProperty() [2/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleKey hndl,
const std::string &  doc,
const SG::VarHandleKeyType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation string for the property.

This is the version for types that derive from SG::VarHandleKey. The property value object is put on the input and output lists as appropriate; then we forward to the base class.

Definition at line 221 of file AthCommonDataStore.h.

225  {
226  this->declare(hndl);
227  hndl.setOwner(this);
228 
229  return PBASE::declareProperty(name,hndl,doc);
230  }

◆ declareProperty() [3/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleKeyArray hndArr,
const std::string &  doc,
const SG::VarHandleKeyArrayType  
)
inlineinherited

Definition at line 259 of file AthCommonDataStore.h.

263  {
264 
265  // std::ostringstream ost;
266  // ost << Algorithm::name() << " VHKA declareProp: " << name
267  // << " size: " << hndArr.keys().size()
268  // << " mode: " << hndArr.mode()
269  // << " vhka size: " << m_vhka.size()
270  // << "\n";
271  // debug() << ost.str() << endmsg;
272 
273  hndArr.setOwner(this);
274  m_vhka.push_back(&hndArr);
275 
276  Gaudi::Details::PropertyBase* p = PBASE::declareProperty(name, hndArr, doc);
277  if (p != 0) {
278  p->declareUpdateHandler(&AthCommonDataStore<PBASE>::updateVHKA, this);
279  } else {
280  ATH_MSG_ERROR("unable to call declareProperty on VarHandleKeyArray "
281  << name);
282  }
283 
284  return p;
285 
286  }

◆ declareProperty() [4/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc,
const SG::NotHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation string for the property.

This is the generic version, for types that do not derive from SG::VarHandleKey. It just forwards to the base class version of declareProperty.

Definition at line 333 of file AthCommonDataStore.h.

337  {
338  return PBASE::declareProperty(name, property, doc);
339  }

◆ declareProperty() [5/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc = "none" 
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation string for the property.

This dispatches to either the generic declareProperty or the one for VarHandle/Key/KeyArray.

Definition at line 352 of file AthCommonDataStore.h.

355  {
356  typedef typename SG::HandleClassifier<T>::type htype;
357  return declareProperty (name, property, doc, htype());
358  }

◆ declareProperty() [6/6]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( Gaudi::Property< T > &  t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145  {
146  typedef typename SG::HandleClassifier<T>::type htype;
148  }

◆ detStore()

const ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< AlgTool > >::detStore ( ) const
inlineinherited

The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 95 of file AthCommonDataStore.h.

95 { return m_detStore; }

◆ evtStore() [1/2]

ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore ( )
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 85 of file AthCommonDataStore.h.

85 { return m_evtStore; }

◆ evtStore() [2/2]

const ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore ( ) const
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 90 of file AthCommonDataStore.h.

90 { return m_evtStore; }

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::extraDeps_update_handler ( Gaudi::Details::PropertyBase &  ExtraDeps)
protectedinherited

Add StoreName to extra input/output deps as needed.

use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given

◆ initialize()

StatusCode InDet::InDetNNScoringTool::initialize ( )
overridevirtual

Definition at line 58 of file InDetNNScoringTool.cxx.

59 {
61  if (sc.isFailure()) return sc;
62 
63  sc = m_extrapolator.retrieve();
64  if (sc.isFailure()) {
65  msg(MSG::FATAL) << "Failed to retrieve tool " << m_extrapolator << endmsg;
66  return StatusCode::FAILURE;
67  } else
68  msg(MSG::DEBUG) << "Retrieved tool " << m_extrapolator << endmsg;
69 
70  ATH_CHECK (m_selectortool.retrieve( DisableTool{ m_selectortool.empty() } ));
71  // Get segment selector tool
72  //
73 
75 
77  msg(MSG::FATAL) << "Both on, normal ambi funciton and the one for back tracking, configuration problem, not recoverable" << endmsg;
78  return StatusCode::FAILURE;
79  }
80 
81  // Read handle for AtlasFieldCacheCondObj
83 
85 
86  // lwtnn initialization
87  if (m_nnCutThreshold > 0.0) { // Load NN only if it will be used
88  // Locate configuration file
89  std::string nnCutConfigPath = PathResolverFindCalibFile(m_nnCutConfig); //returns "" if file not found
90  if (nnCutConfigPath.empty()){
91  ATH_MSG_FATAL ( "Failed to find configuration file: " << m_nnCutConfig);
92  return StatusCode::FAILURE;
93  }
94  ATH_MSG_DEBUG ("Loading configuration file:" << nnCutConfigPath);
95  // Load NN weights
96  std::ifstream inFile(nnCutConfigPath);
97  lwt::GraphConfig config(lwt::parse_json_graph(inFile));
98  m_graph = std::make_unique<lwt::LightweightGraph>(config);
99  ATH_MSG_DEBUG ("NN configuration loaded");
100  inFile.close();
101  }
102 
104 
105  return StatusCode::SUCCESS;
106 }

◆ inputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< AlgTool > >::inputHandles ( ) const
overridevirtualinherited

Return this algorithm's input handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ interfaceID()

const InterfaceID & Trk::ITrackScoringTool::interfaceID ( )
inlinestaticinherited

Definition at line 37 of file ITrackScoringTool.h.

38 {
39  return IID_ITrackScoringTool;
40 }

◆ isEmCaloCompatible()

bool InDet::InDetNNScoringTool::isEmCaloCompatible ( const Trk::Track track,
const EventContext &  ctx 
) const
private

Check if the cluster is compatible with a EM cluster.

Definition at line 787 of file InDetNNScoringTool.cxx.

788 {
789  const Trk::TrackParameters * Tp = track.trackParameters()->front();
790 
791  //Switch to the track parameters of the first measurment instead of the perigee parameters
792  ATH_MSG_VERBOSE ("--> Looping over TSOS's");
793  for (const auto *tsos : *track.trackStateOnSurfaces() ) {
794  // get measurment from TSOS
795  const auto *meas = tsos->measurementOnTrack();
796  const auto *tp = tsos->trackParameters();
797  // if we do not have a measurement, we should just mark it
798  if (!meas || !tp) {
799  continue;
800  } else {
801  Tp = tp;
802  break;
803  }
804  }
805 
806  double F = Tp->momentum().phi();
807  double E = Tp->momentum().eta();
808  double R = Tp->position().perp();
809  double Z = Tp->position().z();
810 
812  return calo->hasMatchingROI(F, E, R, Z, m_phiWidthEm, m_etaWidthEm);
813 }

◆ msg() [1/2]

MsgStream& AthCommonMsg< AlgTool >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

24  {
25  return this->msgStream();
26  }

◆ msg() [2/2]

MsgStream& AthCommonMsg< AlgTool >::msg ( const MSG::Level  lvl) const
inlineinherited

Definition at line 27 of file AthCommonMsg.h.

27  {
28  return this->msgStream(lvl);
29  }

◆ msgLvl()

bool AthCommonMsg< AlgTool >::msgLvl ( const MSG::Level  lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

30  {
31  return this->msgLevel(lvl);
32  }

◆ outputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< AlgTool > >::outputHandles ( ) const
overridevirtualinherited

Return this algorithm's output handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ passBasicSelections()

bool InDet::InDetNNScoringTool::passBasicSelections ( const Trk::Track track) const
overridevirtual

check track selections independent from TrackSummary

Implements Trk::ITrackScoringTool.

Definition at line 109 of file InDetNNScoringTool.cxx.

110 {
111  //
112  // --- kinematic selection (done as well on input ?)
113  //
114  // --- beam spot position
115  Amg::Vector3D beamSpotPosition(0,0,0);
117  if (beamSpotHandle.isValid()) beamSpotPosition = beamSpotHandle->beamVtx().position();
118  // --- create surface
119  Trk::PerigeeSurface perigeeSurface(beamSpotPosition);
120 
121  const Trk::TrackParameters* input = track.trackParameters()->front();
122 
123  // cuts on parameters
124  const EventContext& ctx = Gaudi::Hive::currentContext();
126  const AtlasFieldCacheCondObj* fieldCondObj{*readHandle};
127  if (fieldCondObj == nullptr) {
128  ATH_MSG_ERROR("simpleScore: Failed to retrieve AtlasFieldCacheCondObj with key " << m_fieldCacheCondObjInputKey.key());
129  return false;
130  }
131  MagField::AtlasFieldCache fieldCache;
132  fieldCondObj->getInitializedCache (fieldCache);
133 
134  if (fieldCache.solenoidOn()){
135  if (std::abs(input->pT()) < m_minPt) {
136  ATH_MSG_DEBUG ("Track pt < "<<m_minPt<<", reject it");
137  return false;
138  }
139  }
140  if (std::abs(input->eta()) > m_maxEta) {
141  ATH_MSG_DEBUG ("Track eta > "<<m_maxEta<<", reject it");
142  return false;
143  }
144 
145  // uses perigee on track or extrapolates, no material in any case, we cut on impacts
146  // add back extrapolation without errors
147  std::unique_ptr<const Trk::TrackParameters> parm( m_extrapolator->extrapolateDirectly(ctx, *input, perigeeSurface) );
148 
149  if (!parm || parm->surfaceType()!=Trk::SurfaceType::Perigee) {
150  ATH_MSG_WARNING( "Extrapolation of perigee failed, this should never happen" );
151  return false;
152  }
153 
154  ATH_MSG_VERBOSE ("extrapolated perigee: "<<*parm);
155  if (std::abs(parm->parameters()[Trk::z0]) > m_maxZImp) {
156  ATH_MSG_DEBUG ("Track Z impact > "<<m_maxZImp<<", reject it");
157  return false;
158  }
159 
160  double maxD0 = m_maxRPhiImp;
161  if(m_useEmClusSeed) {
162  if (isEmCaloCompatible( track, ctx ) ) {
163  maxD0 = m_maxRPhiImpEM;
164  }
165  }
166  if (std::abs(parm->parameters()[Trk::d0]) > maxD0) {
167  ATH_MSG_DEBUG ("Track Rphi impact > "<<maxD0<<", reject it");
168  return false;
169  }
170 
171  return true;
172 }

◆ renounce()

std::enable_if_t<std::is_void_v<std::result_of_t<decltype(&T::renounce)(T)> > && !std::is_base_of_v<SG::VarHandleKeyArray, T> && std::is_base_of_v<Gaudi::DataHandle, T>, void> AthCommonDataStore< AthCommonMsg< AlgTool > >::renounce ( T &  h)
inlineprotectedinherited

Definition at line 380 of file AthCommonDataStore.h.

381  {
382  h.renounce();
383  PBASE::renounce (h);
384  }

◆ renounceArray()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::renounceArray ( SG::VarHandleKeyArray handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364  {
365  handlesArray.renounce();
366  }

◆ score()

Trk::TrackScore InDet::InDetNNScoringTool::score ( const Trk::Track track,
bool  checkBasicSel 
) const
overridevirtual

create a score based on how good the passed track is

Implements Trk::ITrackScoringTool.

Definition at line 176 of file InDetNNScoringTool.cxx.

177 {
178  if(checkBasicSel && !passBasicSelections(track)){
179  ATH_MSG_VERBOSE ("Track fail basic selections");
180  return Trk::TrackScore(0);
181  }
182  if (!track.trackSummary()) {
183  ATH_MSG_FATAL("Track without a summary");
184  }
185  ATH_MSG_VERBOSE ("Track has TrackSummary "<<*track.trackSummary());
187  ATH_MSG_DEBUG ("Track has Score: "<<score);
188  return score;
189 }

◆ setupScoreModifiers()

void InDet::InDetNNScoringTool::setupScoreModifiers ( )
private

Definition at line 561 of file InDetNNScoringTool.cxx.

562 {
563  //
564  // --- number of Pixel holes
565  //
566  // --- NewTracking and BackTracking
567  const int maxPixHoles = 2; // there is an explicit cut
568  const double goodPixHoles[maxPixHoles+1] = {1.0 , 0.04 , 0.004 };
569  const double fakePixHoles[maxPixHoles+1] = {1.0 , 0.30 , 0.200 };
570  // put it into the private members
571  m_maxPixHoles = maxPixHoles;
572  for (int i=0; i<=m_maxPixHoles; ++i) m_factorPixHoles.push_back(goodPixHoles[i]/fakePixHoles[i]);
573 
574  //
575  // --- number of SCT holes
576  //
577  if (!m_useTRT_AmbigFcn) {
578  // --- NewTracking
579  const int maxSCT_Holes = 5; // moved from 3 -> 5 , there is an explicit cut anyway
580  const double goodSCT_Holes[maxSCT_Holes+1] = { 1.0 , 0.06 , 0.010 , 0.0007, 0.0005, 0.0003 };
581  const double fakeSCT_Holes[maxSCT_Holes+1] = { 1.0 , 0.15 , 0.100 , 0.0100, 0.0100, 0.0100 };
582  // put it into the private members
583  m_maxSCT_Holes = maxSCT_Holes;
584  for (int i=0; i<=m_maxSCT_Holes; ++i) m_factorSCT_Holes.push_back(goodSCT_Holes[i]/fakeSCT_Holes[i]);
585  } else {
586  // --- BackTracking
587  const int maxSCT_Holes = 6;
588  const double goodSCT_Holes[maxSCT_Holes+1] = {0.910, 0.074, 0.014, 0.001, 0.001, 0.00001, 0.00001};
589  const double fakeSCT_Holes[maxSCT_Holes+1] = {0.910, 0.192, 0.229, 0.061, 0.065, 0.016 , 0.025};
590  // put it into the private members
591  m_maxSCT_Holes = maxSCT_Holes;
592  for (int i=0; i<=m_maxSCT_Holes; ++i) m_factorSCT_Holes.push_back(goodSCT_Holes[i]/fakeSCT_Holes[i]);
593  }
594 
595  //
596  // --- number of SCT double holes
597  //
598  // --- NewTracking and BackTracking
599  const int maxDblHoles = 3; // there is a cut on this anyway !
600  const double goodDblHoles[maxDblHoles+1] = { 1. , 0.03 , 0.007 , 0.0003 };
601  const double fakeDblHoles[maxDblHoles+1] = { 1. , 0.09 , 0.09 , 0.008 };
602  // put it into the private members
603  m_maxDblHoles = maxDblHoles;
604  for (int i=0; i<=m_maxDblHoles; ++i) m_factorDblHoles.push_back(goodDblHoles[i]/fakeDblHoles[i]);
605 
606  //
607  // --- number of Blayer hits
608  //
609  if (!m_useTRT_AmbigFcn) {
610  // --- NewTracking
611  const int maxB_LayerHits = 3;
612  const double goodB_LayerHits[maxB_LayerHits+1] = {0.203, 0.732, 0.081, 0.010};
613  const double fakeB_LayerHits[maxB_LayerHits+1] = {0.808, 0.174, 0.018, 0.002};
614  // put it into the private members
615  m_maxB_LayerHits = maxB_LayerHits;
616  for (int i=0; i<=m_maxB_LayerHits; ++i) m_factorB_LayerHits.push_back(goodB_LayerHits[i]/fakeB_LayerHits[i]);
617  } else {
618  // --- BackTracking
619  const int maxB_LayerHits = 3;
620  const double goodB_LayerHits[maxB_LayerHits+1] = {0.605, 0.349, 0.044, 0.010};
621  const double fakeB_LayerHits[maxB_LayerHits+1] = {0.865, 0.124, 0.011, 0.002};
622  // put it into the private members
623  m_maxB_LayerHits = maxB_LayerHits;
624  for (int i=0; i<=m_maxB_LayerHits; ++i) m_factorB_LayerHits.push_back(goodB_LayerHits[i]/fakeB_LayerHits[i]);
625  }
626 
627  //
628  // --- number of Pixel hits without Blayer
629  //
630  if (!m_useTRT_AmbigFcn) {
631  // --- NewTracking
632  const int maxPixelHits = 8; // we see up to 8 with IBL (was 6)
633  const double goodPixelHits[maxPixelHits+1] = {0.095, 0.031, 0.118, 0.615, 0.137, 0.011, 0.01 , 0.011, 0.012};
634  const double fakePixelHits[maxPixelHits+1] = {0.658, 0.100, 0.091, 0.124, 0.026, 0.002, 0.001 , 0.001, 0.001};
635  m_maxPixelHits = maxPixelHits;
636  for (int i=0; i<=m_maxPixelHits; ++i) m_factorPixelHits.push_back(goodPixelHits[i]/fakePixelHits[i]);
637  } else {
638  // --- BackTracking
639  const int maxPixelHits = 8; // we see up to 8 with IBL (was 6)
640  const double goodPixelHits[maxPixelHits+1] = {0.401, 0.079, 0.140, 0.291, 0.011, 0.078, 0.01 , 0.011, 0.012};
641  const double fakePixelHits[maxPixelHits+1] = {0.673, 0.138, 0.113, 0.057, 0.002, 0.011, 0.001 , 0.001, 0.001};
642  m_maxPixelHits = maxPixelHits;
643  for (int i=0; i<=m_maxPixelHits; ++i) m_factorPixelHits.push_back(goodPixelHits[i]/fakePixelHits[i]);
644  }
645 
646  //
647  // --- number of Pixel layers
648  //
649  if (!m_useTRT_AmbigFcn) {
650  // --- NewTracking
651  const int maxPixLay = 7; // 3 barrel, 3 endcap, IBL, in practice one should see maybe 5 (was 3)
652  const double goodPixLay[maxPixLay+1] = {0.095, 0.033, 0.131, 0.740, 0.840, 0.940, 1.040,1.140};
653  const double fakePixLay[maxPixLay+1] = {0.658, 0.106, 0.092, 0.144, 0.144, 0.144, 0.144,0.144};
654  // put it into the private members
655  m_maxPixLay = maxPixLay;
656  for (int i=0; i<=m_maxPixLay; ++i) m_factorPixLay.push_back(goodPixLay[i]/fakePixLay[i]);
657  } else {
658  // --- BackTracking
659  const int maxPixLay = 7; // 3 barrel, 3 endcap, IBL, in practice one should see maybe 5 (was 5)
660  const double goodPixLay[maxPixLay+1] = {0.401, 0.088, 0.152, 0.355, 0.405, 0.455, 0.505, 0.555};
661  const double fakePixLay[maxPixLay+1] = {0.673, 0.146, 0.115, 0.065, 0.065, 0.065, 0.065, 0.065};
662  // put it into the private members
663  m_maxPixLay = maxPixLay;
664  for (int i=0; i<=m_maxPixLay; ++i) m_factorPixLay.push_back(goodPixLay[i]/fakePixLay[i]);
665  }
666 
667  //
668  // --- number of Pixel Ganged Fakes
669  //
670  // --- NewTracking and BackTracking
671  const int maxGangedFakes = 2; // there is an explicit cut
672  const double goodGangedFakes[maxGangedFakes+1] = {0.62 , 0.23 , 0.15 };
673  const double fakeGangedFakes[maxGangedFakes+1] = {0.12 , 0.41 , 0.47 };
674  // put it into the private members
675  m_maxGangedFakes = maxGangedFakes;
676  for (int i=0; i<=m_maxGangedFakes; ++i) m_factorGangedFakes.push_back(goodGangedFakes[i]/fakeGangedFakes[i]);
677 
678  //
679  // --- total number of SCT+Pixel hits
680  //
681  // --- NewTracking and BackTracking
682  const int maxHits = 19; // there is a min cut on this anyway !
683  const double goodSiHits[maxHits+1] = { 0.001 , 0.002 , 0.003 , 0.004 , 0.01 , 0.01 , 0.01 ,
684  0.015 , 0.02 , 0.06 , 0.1 , 0.3 , 0.2 , 0.50 , 0.055,
685  0.03 , 0.015 , 0.010 , 0.002 , 0.0005 };
686  const double fakeSiHits[maxHits+1] = { 1.0 , 1.0 , 1.0 , 1.0 , 0.5 , 0.25 , 0.15 ,
687  0.20 , 0.1 , 0.2 , 0.08 , 0.07 , 0.035 , 0.08 , 0.008,
688  0.004 , 0.0015 , 0.0008 , 0.0001 , 0.00001 };
689  // put it into the private members
690  m_maxHits = maxHits;
691  for (int i=0; i<=m_maxHits; ++i) m_factorHits.push_back(goodSiHits[i]/fakeSiHits[i]);
692 
693  //
694  // --- ratio of TRT hits over expected
695  //
696  // --- NewTracking and BackTracking
697  const int maxTrtRatio = 7 ;
698  const double TrtRatioBounds[maxTrtRatio+1] = { 0, 0.2, 0.4, 0.6, 0.8, 1.0, 1.2, 2.4};
699  // this needs tuning !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
700  const double goodTrtRatio[maxTrtRatio] = { 0.05, 0.11, 0.12, 0.15, 0.20, 0.16, 0.17};
701  const double fakeTrtRatio[maxTrtRatio] = { 0.6 , 0.08, 0.06, 0.05, 0.04, 0.03, 0.03};
702  // put it into the private members
703  m_maxTrtRatio = m_selectortool.isEnabled() ? maxTrtRatio : 0;
704  for (int i=0; i<m_maxTrtRatio; ++i) m_factorTrtRatio.push_back(goodTrtRatio[i]/fakeTrtRatio[i]);
705  for (int i=0; i<=m_maxTrtRatio; ++i) m_boundsTrtRatio.push_back(TrtRatioBounds[i]);
706 
707  //
708  // --- ratio of TRT fitted to (fitted+outliers)
709  //
710  // --- NewTracking and BackTracking
711  const int maxTrtFittedRatio = 4;
712  const double TrtFittedRatioBounds[maxTrtFittedRatio+1] = { 0, 0.3, 0.6, 0.9, 1.0};
713  // this needs tuning !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
714  const double goodTrtFittedRatio[maxTrtFittedRatio] = { 0.1, 0.2, 0.3, 0.5};
715  const double fakeTrtFittedRatio[maxTrtFittedRatio] = { 0.6, 0.1, 0.1, 0.1};
716  // put it into the private members
717  m_maxTrtFittedRatio = maxTrtFittedRatio;
718  for (int i=0; i<m_maxTrtFittedRatio; ++i) m_factorTrtFittedRatio.push_back(goodTrtFittedRatio[i]/fakeTrtFittedRatio[i]);
719  for (int i=0; i<=m_maxTrtFittedRatio; ++i) m_boundsTrtFittedRatio.push_back(TrtFittedRatioBounds[i]);
720 
721 
722  //
723  // --- sigma chi2
724  //
725  if (!m_useSigmaChi2) {
726  m_maxSigmaChi2 = -1 ;
727  } else {
728  // --- NewTracking and BackTracking
729  const int maxSigmaChi2 = 13 ;
730  const double SigmaChi2Bounds[maxSigmaChi2+1] = { -5.,-4.,-3.,-2.,-1.,0.,1.,2.,3.,4.,5.,6.,7.,8.};
731  const double goodSigmaChi2[maxSigmaChi2] = {0.00004, 0.0004, 0.002, 0.15, 0.8, 0.015, 0.01 , 0.009, 0.008, 0.0007 , 0.0006 , 0.0005, 0.00004};
732  const double fakeSigmaChi2[maxSigmaChi2] = {0.0008 , 0.005 , 0.02 , 0.2 , 0.3, 0.1 , 0.1 , 0.1 , 0.1 , 0.01 , 0.01 , 0.01 , 0.001};
733  // put it into the private members
734  m_maxSigmaChi2 = maxSigmaChi2;
735  for (int i=0; i<m_maxSigmaChi2; ++i) m_factorSigmaChi2.push_back(goodSigmaChi2[i]/fakeSigmaChi2[i]);
736  for (int i=0; i<=m_maxSigmaChi2; ++i) m_boundsSigmaChi2.push_back(SigmaChi2Bounds[i]);
737  }
738 
739  //
740  // --- debug output
741  //
742  if (msgLvl(MSG::VERBOSE)) {
743 
744  for (int i=0; i<=m_maxPixHoles; ++i)
745  msg(MSG::VERBOSE) << "Modifier for " << i << " Pixel holes: " << m_factorPixHoles[i] <<endmsg;
746 
747  for (int i=0; i<=m_maxSCT_Holes; ++i)
748  msg(MSG::VERBOSE) << "Modifier for " << i << " SCT holes: " << m_factorSCT_Holes[i] <<endmsg;
749 
750  for (int i=0; i<=m_maxDblHoles; ++i)
751  msg(MSG::VERBOSE) << "Modifier for " << i << " double SCT holes: " << m_factorDblHoles[i] <<endmsg;
752 
753  for (int i=0; i<=m_maxPixLay; ++i)
754  msg(MSG::VERBOSE) << "Modifier for " << i << " Pixel layers: " << m_factorPixLay[i] <<endmsg;
755 
756  for (int i=0; i<=m_maxB_LayerHits; ++i)
757  msg(MSG::VERBOSE) << "Modifier for " << i << " b-layer hits: " << m_factorB_LayerHits[i] <<endmsg;
758 
759  for (int i=0; i<=m_maxPixelHits; ++i)
760  msg(MSG::VERBOSE) << "Modifier for " << i << " Pixel hits: " << m_factorPixelHits[i] <<endmsg;
761 
762  for (int i=0; i<=m_maxGangedFakes; ++i)
763  msg(MSG::VERBOSE) << "Modifier for " << i << " ganged fakes: " << m_factorGangedFakes[i] <<endmsg;
764 
765  for (int i=0; i<=m_maxHits; ++i)
766  msg(MSG::VERBOSE) << "Modifier for " << i << " Si hits: " << m_factorHits[i] <<endmsg;
767 
768  if (m_selectortool.isEnabled()) {
769  for (int i=0; i<m_maxTrtRatio; ++i)
770  msg(MSG::VERBOSE) << "Modifier for " << m_boundsTrtRatio[i] << " < TRT ratio < "
771  << m_boundsTrtRatio[i+1] <<" : " <<m_factorTrtRatio[i] <<endmsg;
772  }
773 
774  for (int i=0; i<m_maxTrtFittedRatio; ++i)
775  msg(MSG::VERBOSE) << "Modifier for " << m_boundsTrtFittedRatio[i] << " < TRT fitted ratio < "
777 
778 
779  // only if used
780  for (int i=0; i<m_maxSigmaChi2; ++i)
781  msg(MSG::VERBOSE) << "Modifier for " << m_boundsSigmaChi2[i] << " < sigma(chi2) - sqrt(2chi2) < " << m_boundsSigmaChi2[i+1]
782  <<" : " <<m_factorSigmaChi2[i] <<endmsg;
783  }
784 
785 }

◆ simpleScore()

Trk::TrackScore InDet::InDetNNScoringTool::simpleScore ( const Trk::Track track,
const Trk::TrackSummary trackSum 
) const
overridevirtual

create a score based on how good the passed TrackSummary is

Implements Trk::ITrackScoringTool.

Definition at line 193 of file InDetNNScoringTool.cxx.

194 {
195  int numPixel = trackSummary.get(Trk::numberOfPixelHits);
196  int numSCT = trackSummary.get(Trk::numberOfSCTHits);
197  int numTRT = trackSummary.get(Trk::numberOfTRTHits);
198  int numTRTTube = trackSummary.get(Trk::numberOfTRTTubeHits);
199  int numPixelHoles = trackSummary.get(Trk::numberOfPixelHoles);
200  int numSCTHoles = trackSummary.get(Trk::numberOfSCTHoles);
201  int numSCTDoubleHoles = trackSummary.get(Trk::numberOfSCTDoubleHoles);
202  int numPixelDead = trackSummary.get(Trk::numberOfPixelDeadSensors);
203  int numSCTDead = trackSummary.get(Trk::numberOfSCTDeadSensors);
204 
205  if (numPixelDead<0) numPixelDead = 0;
206  if (numSCTDead<0) numSCTDead = 0;
207 
208  // is this a track from the pattern or a fitted track ?
209  bool ispatterntrack = (track.info().trackFitter()==Trk::TrackInfo::Unknown);
210  //
211  // --- reject bad tracks
212  //
213  //
214  // --- the following cuts we only apply to fitted tracks
215  //
216  if (ispatterntrack) {
217  ATH_MSG_DEBUG ("==> this is a pattern track, no hit cuts !");
218  } else {
219  ATH_MSG_DEBUG ("==> this is a refitted track, so we can use the chi2 and other stuff ! ");
220 
221  // NdF cut :
222  if (track.fitQuality()) {
223  ATH_MSG_DEBUG ("numberDoF = "<<track.fitQuality()->numberDoF());
224  }
225  // Number of double Holes
226  if (numSCTDoubleHoles>=0) {
227  if (numSCTDoubleHoles > m_maxDoubleHoles ) {
228  ATH_MSG_DEBUG ("Track has "<< numSCTDoubleHoles <<" double holes, reject it!");
229  return Trk::TrackScore(0);
230  }
231  }
232  // Number of Si (Pixel+SCT) Holes
233  if (numSCTHoles>=0 && numPixelHoles>=0) {
235  ATH_MSG_DEBUG ("Track has "<< numPixelHoles <<" Pixel and " << numSCTHoles << " SCT holes, reject it!");
236  return Trk::TrackScore(0);
237  }
238  }
239  // Number of Pixel Holes
240  if ( numPixelHoles>=0 ) {
242  ATH_MSG_DEBUG ("Track has "<< numPixelHoles <<" Pixel holes, reject it!");
243  return Trk::TrackScore(0);
244  }
245  }
246  // Number of SCT Holes
247  if ( numSCTHoles>=0 ) {
248  if ( numSCTHoles > m_maxSctHoles ) {
249  ATH_MSG_DEBUG ("Track has "<< numSCTHoles << " SCT holes, reject it!");
250  return Trk::TrackScore(0);
251  }
252  }
253  // TRT cut
254  if (numTRT > 0 && numTRT < m_minTRTonTrk) {
255  ATH_MSG_DEBUG ("Track has " << numTRT << " TRT hits, reject it");
256  return Trk::TrackScore(0);
257  }
258  // TRT precision hits cut
259  if (numTRT >= 15 && ((double)(numTRT-numTRTTube))/numTRT < m_minTRTprecision) {
260  ATH_MSG_DEBUG ("Track has " << ((double)numTRTTube)/numTRT << " TRT tube hit fraction, reject it");
261  return Trk::TrackScore(0);
262  }
263  // Number of Si Clusters
264  if ( numSCT>=0 && numPixel>=0) {
265  if (numPixel+numSCT+numPixelDead+numSCTDead < m_minSiClusters) {
266  ATH_MSG_DEBUG ("Track has " << numPixel+numSCT << " Si clusters and " << numPixelDead+numSCTDead << " dead sensors, reject it");
267  return Trk::TrackScore(0);
268  }
269  }
270  // Number of pixel clusters
271  if (numPixel>=0 && numPixel < m_minPixel) {
272  ATH_MSG_DEBUG ("Track has " << numPixel << " pixel hits, reject it");
273  return Trk::TrackScore(0);
274  }
275  }
276 
277  // check if nn cut is enabled
278  if (m_useAmbigFcn && m_nnCutThreshold > 0.0) {
279  if (track.fitQuality()) { // check if track has been fitted
280  Amg::Vector3D beamSpotPosition(0,0,0);
282  if (beamSpotHandle.isValid()) beamSpotPosition = beamSpotHandle->beamVtx().position();
283  // --- create surface
284  Trk::PerigeeSurface perigeeSurface(beamSpotPosition);
285 
286  const Trk::TrackParameters* input = track.trackParameters()->front();
287  const EventContext& ctx = Gaudi::Hive::currentContext();
288  std::unique_ptr<const Trk::TrackParameters> parm( m_extrapolator->extrapolateDirectly(ctx, *input, perigeeSurface) );
289  const Trk::Perigee* extrapolatedPerigee = dynamic_cast<const Trk::Perigee*> (parm.get());
290 
291  if (calcNnScore(track, trackSummary, extrapolatedPerigee) < m_nnCutThreshold) {
292  ATH_MSG_DEBUG ("Rejecting track for falling below nn threshold");
293  return Trk::TrackScore(0); // scores of 0 are rejected by ambisolver
294  }
295  }
296  }
297 
298  //
299  // --- now start scoring
300  //
301 
303 
304  //
305  // --- use scoring function
306  //
307 
308  return ambigScore(track,trackSummary);
309 
310  } else {
311 
312  //
313  // use classical score
314  //
315  // score of 100 per track
316  Trk::TrackScore score (100);
317  // --- summary score analysis
318  for (int i=0; i<Trk::numberOfTrackSummaryTypes; ++i) {
319  int value = trackSummary.get(static_cast<Trk::SummaryType>(i));
320  //value is -1 if undefined.
321  if (value>0) {
323  ATH_MSG_DEBUG ("\tType ["<<i<<"], value \t= "<<value<<"], score \t="<<score);
324  }
325  }
326  // --- prob(chi2,NDF), protect for chi2 <= 0
327  if (track.fitQuality()!=nullptr && track.fitQuality()->chiSquared()>0 && track.fitQuality()->numberDoF()>0 ) {
328  double p = 1.0-Genfun::CumulativeChiSquare(track.fitQuality()->numberDoF())(track.fitQuality()->chiSquared());
329  if ( p > 0 )
330  score += log10( p );
331  else
332  score -= 50;
333  }
334 
335  return score;
336  }
337 
338 }

◆ sysInitialize()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysInitialize ( )
overridevirtualinherited

Perform system initialization for an algorithm.

We override this to declare all the elements of handle key arrays at the end of initialization. See comments on updateVHKA.

Reimplemented in DerivationFramework::CfAthAlgTool, AthCheckedComponent< AthAlgTool >, AthCheckedComponent<::AthAlgTool >, and asg::AsgMetadataTool.

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysStart ( )
overridevirtualinherited

Handle START transition.

We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::updateVHKA ( Gaudi::Details::PropertyBase &  )
inlineinherited

Definition at line 308 of file AthCommonDataStore.h.

308  {
309  // debug() << "updateVHKA for property " << p.name() << " " << p.toString()
310  // << " size: " << m_vhka.size() << endmsg;
311  for (auto &a : m_vhka) {
312  std::vector<SG::VarHandleKey*> keys = a->keys();
313  for (auto k : keys) {
314  k->setOwner(this);
315  }
316  }
317  }

Member Data Documentation

◆ m_beamSpotKey

SG::ReadCondHandleKey<InDet::BeamSpotData> InDet::InDetNNScoringTool::m_beamSpotKey { this, "BeamSpotKey", "BeamSpotData", "SG key for beam spot" }
private

Definition at line 95 of file InDetNNScoringTool.h.

◆ m_boundsSigmaChi2

std::vector<double> InDet::InDetNNScoringTool::m_boundsSigmaChi2
private

Definition at line 85 of file InDetNNScoringTool.h.

◆ m_boundsTrtFittedRatio

std::vector<double> InDet::InDetNNScoringTool::m_boundsTrtFittedRatio
private

Definition at line 86 of file InDetNNScoringTool.h.

◆ m_boundsTrtRatio

std::vector<double> InDet::InDetNNScoringTool::m_boundsTrtRatio
private

Definition at line 86 of file InDetNNScoringTool.h.

◆ m_caloClusterROIKey

SG::ReadHandleKey<ROIPhiRZContainer> InDet::InDetNNScoringTool::m_caloClusterROIKey {this, "EMROIPhiRZContainer", "", "Name of the calo cluster ROIs in Phi,R,Z parameterization"}
private

Definition at line 146 of file InDetNNScoringTool.h.

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_DNN_inputValues

std::map<std::string, double> InDet::InDetNNScoringTool::m_DNN_inputValues
private

Definition at line 72 of file InDetNNScoringTool.h.

◆ m_etaWidthEm

FloatProperty InDet::InDetNNScoringTool::m_etaWidthEm {this, "etaWidthEM", 0.05}
private

Definition at line 144 of file InDetNNScoringTool.h.

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_extrapolator

ToolHandle<Trk::IExtrapolator> InDet::InDetNNScoringTool::m_extrapolator {this, "Extrapolator", "Trk::Extrapolator"}
private

Definition at line 97 of file InDetNNScoringTool.h.

◆ m_factorB_LayerHits

std::vector<double> InDet::InDetNNScoringTool::m_factorB_LayerHits
private

Definition at line 84 of file InDetNNScoringTool.h.

◆ m_factorDblHoles

std::vector<double> InDet::InDetNNScoringTool::m_factorDblHoles
private

Definition at line 83 of file InDetNNScoringTool.h.

◆ m_factorGangedFakes

std::vector<double> InDet::InDetNNScoringTool::m_factorGangedFakes
private

Definition at line 84 of file InDetNNScoringTool.h.

◆ m_factorHits

std::vector<double> InDet::InDetNNScoringTool::m_factorHits
private

Definition at line 83 of file InDetNNScoringTool.h.

◆ m_factorPixelHits

std::vector<double> InDet::InDetNNScoringTool::m_factorPixelHits
private

Definition at line 84 of file InDetNNScoringTool.h.

◆ m_factorPixHoles

std::vector<double> InDet::InDetNNScoringTool::m_factorPixHoles
private

Definition at line 83 of file InDetNNScoringTool.h.

◆ m_factorPixLay

std::vector<double> InDet::InDetNNScoringTool::m_factorPixLay
private

Definition at line 84 of file InDetNNScoringTool.h.

◆ m_factorSCT_Holes

std::vector<double> InDet::InDetNNScoringTool::m_factorSCT_Holes
private

Definition at line 83 of file InDetNNScoringTool.h.

◆ m_factorSigmaChi2

std::vector<double> InDet::InDetNNScoringTool::m_factorSigmaChi2
private

Definition at line 84 of file InDetNNScoringTool.h.

◆ m_factorTrtFittedRatio

std::vector<double> InDet::InDetNNScoringTool::m_factorTrtFittedRatio
private

Definition at line 86 of file InDetNNScoringTool.h.

◆ m_factorTrtRatio

std::vector<double> InDet::InDetNNScoringTool::m_factorTrtRatio
private

Definition at line 86 of file InDetNNScoringTool.h.

◆ m_fieldCacheCondObjInputKey

SG::ReadCondHandleKey<AtlasFieldCacheCondObj> InDet::InDetNNScoringTool::m_fieldCacheCondObjInputKey {this, "AtlasFieldCacheCondObj", "fieldCondObj", "Name of the Magnetic Field conditions object key"}
private

Definition at line 101 of file InDetNNScoringTool.h.

◆ m_graph

std::unique_ptr<lwt::LightweightGraph> InDet::InDetNNScoringTool::m_graph
private

Definition at line 71 of file InDetNNScoringTool.h.

◆ m_maxB_LayerHits

int InDet::InDetNNScoringTool::m_maxB_LayerHits = -1
private

Definition at line 81 of file InDetNNScoringTool.h.

◆ m_maxDblHoles

int InDet::InDetNNScoringTool::m_maxDblHoles = -1
private

Definition at line 79 of file InDetNNScoringTool.h.

◆ m_maxDoubleHoles

IntegerProperty InDet::InDetNNScoringTool::m_maxDoubleHoles {this, "maxDoubleHoles", 2, "maximum number of SCT double holes"}
private

Definition at line 125 of file InDetNNScoringTool.h.

◆ m_maxEta

DoubleProperty InDet::InDetNNScoringTool::m_maxEta {this, "maxEta", 2.7, "maximal Eta cut"}
private

Definition at line 117 of file InDetNNScoringTool.h.

◆ m_maxGangedFakes

int InDet::InDetNNScoringTool::m_maxGangedFakes = -1
private

Definition at line 82 of file InDetNNScoringTool.h.

◆ m_maxHits

int InDet::InDetNNScoringTool::m_maxHits = -1
private

Definition at line 80 of file InDetNNScoringTool.h.

◆ m_maxPixelHits

int InDet::InDetNNScoringTool::m_maxPixelHits = -1
private

Definition at line 81 of file InDetNNScoringTool.h.

◆ m_maxPixelHoles

IntegerProperty InDet::InDetNNScoringTool::m_maxPixelHoles {this, "maxPixelHoles", 5, "max number of Pixel holes"}
private

Definition at line 129 of file InDetNNScoringTool.h.

◆ m_maxPixHoles

int InDet::InDetNNScoringTool::m_maxPixHoles = -1
private

Definition at line 79 of file InDetNNScoringTool.h.

◆ m_maxPixLay

int InDet::InDetNNScoringTool::m_maxPixLay = -1
private

Definition at line 82 of file InDetNNScoringTool.h.

◆ m_maxRPhiImp

DoubleProperty InDet::InDetNNScoringTool::m_maxRPhiImp {this, "maxRPhiImp", 10., "maximal RPhi impact parameter cut"}
private

Definition at line 118 of file InDetNNScoringTool.h.

◆ m_maxRPhiImpEM

DoubleProperty InDet::InDetNNScoringTool::m_maxRPhiImpEM {this, "maxRPhiImpEM", 50., "maximal RPhi impact parameter cut track that match EM clusters"}
private

Definition at line 140 of file InDetNNScoringTool.h.

◆ m_maxSCT_Holes

int InDet::InDetNNScoringTool::m_maxSCT_Holes = -1
private

Definition at line 79 of file InDetNNScoringTool.h.

◆ m_maxSctHoles

IntegerProperty InDet::InDetNNScoringTool::m_maxSctHoles {this, "maxSCTHoles", 5, "max number of SCT holes"}
private

Definition at line 131 of file InDetNNScoringTool.h.

◆ m_maxSigmaChi2

int InDet::InDetNNScoringTool::m_maxSigmaChi2 = -1
private

Definition at line 80 of file InDetNNScoringTool.h.

◆ m_maxSiHoles

IntegerProperty InDet::InDetNNScoringTool::m_maxSiHoles {this, "maxSiHoles", 5, "max number of Silicon (Pixel+SCT) holes"}
private

Definition at line 127 of file InDetNNScoringTool.h.

◆ m_maxTrtFittedRatio

int InDet::InDetNNScoringTool::m_maxTrtFittedRatio = -1
private

Definition at line 81 of file InDetNNScoringTool.h.

◆ m_maxTrtRatio

int InDet::InDetNNScoringTool::m_maxTrtRatio = -1
private

Definition at line 80 of file InDetNNScoringTool.h.

◆ m_maxZImp

DoubleProperty InDet::InDetNNScoringTool::m_maxZImp {this, "maxZImp", 250., "maximal z impact parameter cut"}
private

Definition at line 120 of file InDetNNScoringTool.h.

◆ m_minPixel

IntegerProperty InDet::InDetNNScoringTool::m_minPixel {this, "minPixel", 0, "minimum number of pixel clusters"}
private

Definition at line 137 of file InDetNNScoringTool.h.

◆ m_minPt

DoubleProperty InDet::InDetNNScoringTool::m_minPt {this, "minPt", 500., "minimal Pt cut"}
private

cuts for selecting good tracks

Definition at line 116 of file InDetNNScoringTool.h.

◆ m_minSiClusters

IntegerProperty InDet::InDetNNScoringTool::m_minSiClusters {this, "minSiClusters", 7, "minimal number of Si clusters"}
private

Definition at line 123 of file InDetNNScoringTool.h.

◆ m_minTRTonTrk

IntegerProperty InDet::InDetNNScoringTool::m_minTRTonTrk {this, "minTRTonTrk", 9, "minimum number of TRT hits"}
private

Definition at line 133 of file InDetNNScoringTool.h.

◆ m_minTRTprecision

DoubleProperty InDet::InDetNNScoringTool::m_minTRTprecision {this, "minTRTPrecisionFraction", 0.5, "minimum fraction of TRT precision hits"}
private

Definition at line 135 of file InDetNNScoringTool.h.

◆ m_nnCutConfig

StringProperty InDet::InDetNNScoringTool::m_nnCutConfig {this, "nnCutConfig", ""}
private

Definition at line 109 of file InDetNNScoringTool.h.

◆ m_nnCutThreshold

DoubleProperty InDet::InDetNNScoringTool::m_nnCutThreshold {this, "nnCutThreshold", -0.1}
private

Definition at line 110 of file InDetNNScoringTool.h.

◆ m_phiWidthEm

FloatProperty InDet::InDetNNScoringTool::m_phiWidthEm {this, "phiWidthEM", 0.075}
private

Definition at line 143 of file InDetNNScoringTool.h.

◆ m_selectortool

ToolHandle<ITrtDriftCircleCutTool> InDet::InDetNNScoringTool::m_selectortool {this, "DriftCircleCutTool", "InDet::InDetTrtDriftCircleCutTool"}
private

Returns minimum number of expected TRT drift circles depending on eta.

Definition at line 89 of file InDetNNScoringTool.h.

◆ m_summaryTypeScore

std::vector<Trk::TrackScore> InDet::InDetNNScoringTool::m_summaryTypeScore
private

holds the scores assigned to each Trk::SummaryType from the track's Trk::TrackSummary

Definition at line 93 of file InDetNNScoringTool.h.

◆ m_useAmbigFcn

BooleanProperty InDet::InDetNNScoringTool::m_useAmbigFcn {this, "useAmbigFcn", true}
private

use the scoring tuned to Ambiguity processing or not

Definition at line 105 of file InDetNNScoringTool.h.

◆ m_useEmClusSeed

BooleanProperty InDet::InDetNNScoringTool::m_useEmClusSeed {this, "doEmCaloSeed", true}
private

Definition at line 142 of file InDetNNScoringTool.h.

◆ m_usePixel

BooleanProperty InDet::InDetNNScoringTool::m_usePixel {this, "usePixel", true}
private

Definition at line 112 of file InDetNNScoringTool.h.

◆ m_useSCT

BooleanProperty InDet::InDetNNScoringTool::m_useSCT {this, "useSCT", true}
private

Definition at line 113 of file InDetNNScoringTool.h.

◆ m_useSigmaChi2

BooleanProperty InDet::InDetNNScoringTool::m_useSigmaChi2 {this, "useSigmaChi2", false}
private

Definition at line 107 of file InDetNNScoringTool.h.

◆ m_useTRT_AmbigFcn

BooleanProperty InDet::InDetNNScoringTool::m_useTRT_AmbigFcn {this, "useTRT_AmbigFcn", false}
private

Definition at line 106 of file InDetNNScoringTool.h.

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< AlgTool > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

std::vector<SG::VarHandleKeyArray*> AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
privateinherited

Definition at line 398 of file AthCommonDataStore.h.


The documentation for this class was generated from the following files:
InDet::InDetNNScoringTool::m_maxPixelHits
int m_maxPixelHits
Definition: InDetNNScoringTool.h:81
InDet::InDetNNScoringTool::m_maxPixLay
int m_maxPixLay
Definition: InDetNNScoringTool.h:82
InDet::InDetNNScoringTool::m_minPt
DoubleProperty m_minPt
cuts for selecting good tracks
Definition: InDetNNScoringTool.h:116
covarianceTool.ndf
ndf
Definition: covarianceTool.py:678
InDet::InDetNNScoringTool::calcNnScore
Trk::TrackScore calcNnScore(const Trk::Track &track, const Trk::TrackSummary &trackSum, const Trk::Perigee *extrapolatedPerigee) const
Definition: InDetNNScoringTool.cxx:815
Trk::numberOfPixelHits
@ numberOfPixelHits
number of pixel layers on track with absence of hits
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:57
Trk::numberOfContribPixelLayers
@ numberOfContribPixelLayers
number of contributing layers of the pixel detector
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:49
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
Trk::numberOfTRTHighThresholdHits
@ numberOfTRTHighThresholdHits
total number of TRT hits which pass the high threshold
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:87
InDet::InDetNNScoringTool::m_minTRTprecision
DoubleProperty m_minTRTprecision
Definition: InDetNNScoringTool.h:136
InDet::InDetNNScoringTool::passBasicSelections
virtual bool passBasicSelections(const Trk::Track &track) const override
check track selections independent from TrackSummary
Definition: InDetNNScoringTool.cxx:109
InDet::InDetNNScoringTool::m_boundsTrtFittedRatio
std::vector< double > m_boundsTrtFittedRatio
Definition: InDetNNScoringTool.h:86
InDet::InDetNNScoringTool::m_etaWidthEm
FloatProperty m_etaWidthEm
Definition: InDetNNScoringTool.h:144
InDet::InDetNNScoringTool::m_beamSpotKey
SG::ReadCondHandleKey< InDet::BeamSpotData > m_beamSpotKey
Definition: InDetNNScoringTool.h:95
Trk::numberOfInnermostPixelLayerHits
@ numberOfInnermostPixelLayerHits
these are the hits in the 1st pixel layer
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:53
InDet::InDetNNScoringTool::m_maxHits
int m_maxHits
Definition: InDetNNScoringTool.h:80
python.Constants.FATAL
int FATAL
Definition: Control/AthenaCommon/python/Constants.py:19
SG::ReadCondHandle
Definition: ReadCondHandle.h:44
InDet::InDetNNScoringTool::simpleScore
virtual Trk::TrackScore simpleScore(const Trk::Track &track, const Trk::TrackSummary &trackSum) const override
create a score based on how good the passed TrackSummary is
Definition: InDetNNScoringTool.cxx:193
AtlasFieldCacheCondObj
Definition: AtlasFieldCacheCondObj.h:19
InDet::InDetNNScoringTool::m_maxB_LayerHits
int m_maxB_LayerHits
Definition: InDetNNScoringTool.h:81
Trk::numberOfCscEtaHits
@ numberOfCscEtaHits
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:108
Trk::PerigeeSurface
Definition: PerigeeSurface.h:43
Trk::ParametersBase::position
const Amg::Vector3D & position() const
Access method for the position.
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
AthCommonDataStore::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
Trk::numberOfSCTDeadSensors
@ numberOfSCTDeadSensors
number of TRT hits
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:76
Monitored::Z
@ Z
Definition: HistogramFillerUtils.h:24
InDet::InDetNNScoringTool::m_summaryTypeScore
std::vector< Trk::TrackScore > m_summaryTypeScore
holds the scores assigned to each Trk::SummaryType from the track's Trk::TrackSummary
Definition: InDetNNScoringTool.h:93
Trk::ParametersT
Dummy class used to allow special convertors to be called for surfaces owned by a detector element.
Definition: EMErrorDetail.h:25
initialize
void initialize()
Definition: run_EoverP.cxx:894
makeTOC.inFile
string inFile
Definition: makeTOC.py:5
python.base_data.config
config
Definition: base_data.py:21
InDet::InDetNNScoringTool::m_maxDoubleHoles
IntegerProperty m_maxDoubleHoles
Definition: InDetNNScoringTool.h:126
InDet::InDetNNScoringTool::m_nnCutConfig
StringProperty m_nnCutConfig
Definition: InDetNNScoringTool.h:109
Trk::numberOfTrackSummaryTypes
@ numberOfTrackSummaryTypes
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:189
InDet::InDetNNScoringTool::isEmCaloCompatible
bool isEmCaloCompatible(const Trk::Track &track, const EventContext &ctx) const
Check if the cluster is compatible with a EM cluster.
Definition: InDetNNScoringTool.cxx:787
test_pyathena.pt
pt
Definition: test_pyathena.py:11
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Definition: AthCommonDataStore.h:390
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
std::vector< SG::VarHandleKeyArray * > m_vhka
Definition: AthCommonDataStore.h:398
InDet::InDetNNScoringTool::m_maxSctHoles
IntegerProperty m_maxSctHoles
Definition: InDetNNScoringTool.h:132
ParticleTest.tp
tp
Definition: ParticleTest.py:25
Trk::z0
@ z0
Definition: ParamDefs.h:64
AthCommonMsg< AlgTool >::msgLvl
bool msgLvl(const MSG::Level lvl) const
Definition: AthCommonMsg.h:30
athena.value
value
Definition: athena.py:124
InDet::InDetNNScoringTool::m_selectortool
ToolHandle< ITrtDriftCircleCutTool > m_selectortool
Returns minimum number of expected TRT drift circles depending on eta.
Definition: InDetNNScoringTool.h:90
Trk::numberOfOutliersOnTrack
@ numberOfOutliersOnTrack
100 times the standard deviation of the chi2 from the surfaces
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:148
Trk::numberOfTgcPhiHits
@ numberOfTgcPhiHits
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:105
Trk::standardDeviationOfChi2OS
@ standardDeviationOfChi2OS
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:150
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
InDet::InDetNNScoringTool::m_maxRPhiImp
DoubleProperty m_maxRPhiImp
Definition: InDetNNScoringTool.h:119
InDet::InDetNNScoringTool::m_useAmbigFcn
BooleanProperty m_useAmbigFcn
use the scoring tuned to Ambiguity processing or not
Definition: InDetNNScoringTool.h:105
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
SG::VarHandleKey::key
const std::string & key() const
Return the StoreGate ID for the referenced object.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:141
drawFromPickle.exp
exp
Definition: drawFromPickle.py:36
covarianceTool.prob
prob
Definition: covarianceTool.py:678
InDet::InDetNNScoringTool::m_usePixel
BooleanProperty m_usePixel
Definition: InDetNNScoringTool.h:112
Trk::numberOfSCTHoles
@ numberOfSCTHoles
number of Holes in both sides of a SCT module
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:73
InDet::InDetNNScoringTool::m_boundsSigmaChi2
std::vector< double > m_boundsSigmaChi2
Definition: InDetNNScoringTool.h:85
InDet::InDetNNScoringTool::m_factorSigmaChi2
std::vector< double > m_factorSigmaChi2
Definition: InDetNNScoringTool.h:84
postInclude.inputs
inputs
Definition: postInclude.SortInput.py:15
InDet::InDetNNScoringTool::m_useEmClusSeed
BooleanProperty m_useEmClusSeed
Definition: InDetNNScoringTool.h:142
config
Definition: PhysicsAnalysis/AnalysisCommon/AssociationUtils/python/config.py:1
InDet::InDetNNScoringTool::m_maxGangedFakes
int m_maxGangedFakes
Definition: InDetNNScoringTool.h:82
drawFromPickle.atan
atan
Definition: drawFromPickle.py:36
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
InDet::InDetNNScoringTool::m_extrapolator
ToolHandle< Trk::IExtrapolator > m_extrapolator
Definition: InDetNNScoringTool.h:98
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
IDTPMcnv.htype
htype
Definition: IDTPMcnv.py:29
InDet::InDetNNScoringTool::m_phiWidthEm
FloatProperty m_phiWidthEm
Definition: InDetNNScoringTool.h:143
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
AthCommonDataStore
Definition: AthCommonDataStore.h:52
Trk::numberOfTRTTubeHits
@ numberOfTRTTubeHits
number of TRT hits on track in straws with xenon
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:97
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
P4Helpers::deltaEta
double deltaEta(const I4Momentum &p1, const I4Momentum &p2)
Computes efficiently .
Definition: P4Helpers.h:66
InDet::InDetNNScoringTool::m_boundsTrtRatio
std::vector< double > m_boundsTrtRatio
Definition: InDetNNScoringTool.h:86
lumiFormat.i
int i
Definition: lumiFormat.py:85
Trk::numberOfTRTOutliers
@ numberOfTRTOutliers
number of TRT holes
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:81
InDet::InDetNNScoringTool::m_factorB_LayerHits
std::vector< double > m_factorB_LayerHits
Definition: InDetNNScoringTool.h:84
beamspotman.n
n
Definition: beamspotman.py:731
InDet::InDetNNScoringTool::m_factorPixHoles
std::vector< double > m_factorPixHoles
Definition: InDetNNScoringTool.h:83
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
Trk::numberOfSCTHits
@ numberOfSCTHits
number of SCT holes
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:71
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
Trk::numberOfPixelDeadSensors
@ numberOfPixelDeadSensors
number of pixel hits with broad errors (width/sqrt(12))
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:65
PlotPulseshapeFromCool.input
input
Definition: PlotPulseshapeFromCool.py:106
chi2
double chi2(TH1 *h0, TH1 *h1)
Definition: comparitor.cxx:523
TRT::Track::d0
@ d0
Definition: InnerDetector/InDetCalibEvent/TRT_CalibData/TRT_CalibData/TrackInfo.h:62
Trk::TrackScore
float TrackScore
Definition: TrackScore.h:10
InDet::InDetNNScoringTool::m_maxSiHoles
IntegerProperty m_maxSiHoles
Definition: InDetNNScoringTool.h:128
InDet::InDetNNScoringTool::m_graph
std::unique_ptr< lwt::LightweightGraph > m_graph
Definition: InDetNNScoringTool.h:71
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
InDet::InDetNNScoringTool::m_factorSCT_Holes
std::vector< double > m_factorSCT_Holes
Definition: InDetNNScoringTool.h:83
InDet::InDetNNScoringTool::m_factorPixLay
std::vector< double > m_factorPixLay
Definition: InDetNNScoringTool.h:84
InDet::InDetNNScoringTool::m_factorGangedFakes
std::vector< double > m_factorGangedFakes
Definition: InDetNNScoringTool.h:84
AnalysisUtils::Delta::R
double R(const INavigable4Momentum *p1, const double v_eta, const double v_phi)
Definition: AnalysisMisc.h:49
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
Trk::ParametersBase
Definition: ParametersBase.h:55
SG::VarHandleKey::initialize
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:103
xAOD::double
double
Definition: CompositeParticle_v1.cxx:159
TRT::Track::z0
@ z0
Definition: InnerDetector/InDetCalibEvent/TRT_CalibData/TRT_CalibData/TrackInfo.h:63
InDet::InDetNNScoringTool::m_maxTrtRatio
int m_maxTrtRatio
Definition: InDetNNScoringTool.h:80
InDet::InDetNNScoringTool::m_factorTrtRatio
std::vector< double > m_factorTrtRatio
Definition: InDetNNScoringTool.h:86
InDet::InDetNNScoringTool::m_useSigmaChi2
BooleanProperty m_useSigmaChi2
Definition: InDetNNScoringTool.h:107
InDet::InDetNNScoringTool::ambigScore
Trk::TrackScore ambigScore(const Trk::Track &track, const Trk::TrackSummary &trackSum) const
Definition: InDetNNScoringTool.cxx:342
InDet::InDetNNScoringTool::m_maxPixelHoles
IntegerProperty m_maxPixelHoles
Definition: InDetNNScoringTool.h:130
InDet::InDetNNScoringTool::m_maxRPhiImpEM
DoubleProperty m_maxRPhiImpEM
Definition: InDetNNScoringTool.h:141
MagField::AtlasFieldCache::solenoidOn
bool solenoidOn() const
status of the magnets
AthAlgTool::AthAlgTool
AthAlgTool()
Default constructor:
Trk::numberOfTgcEtaHits
@ numberOfTgcEtaHits
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:106
Trk::numberOfPixelHoles
@ numberOfPixelHoles
number of pixels which have a ganged ambiguity.
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:59
SG::VarHandleKeyArray::renounce
virtual void renounce()=0
SG::HandleClassifier::type
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Definition: HandleClassifier.h:54
InDet::InDetNNScoringTool::m_maxDblHoles
int m_maxDblHoles
Definition: InDetNNScoringTool.h:79
merge.output
output
Definition: merge.py:17
InDet::InDetNNScoringTool::m_factorPixelHits
std::vector< double > m_factorPixelHits
Definition: InDetNNScoringTool.h:84
Trk::numberOfGangedPixels
@ numberOfGangedPixels
number of Ganged Pixels flagged as fakes
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:61
InDet::InDetNNScoringTool::m_factorDblHoles
std::vector< double > m_factorDblHoles
Definition: InDetNNScoringTool.h:83
Trk::numberOfTRTHits
@ numberOfTRTHits
number of TRT outliers
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:79
Trk::numberOfRpcPhiHits
@ numberOfRpcPhiHits
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:109
InDet::InDetNNScoringTool::m_maxPixHoles
int m_maxPixHoles
Definition: InDetNNScoringTool.h:79
Trk::SurfaceType::Perigee
@ Perigee
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
Trk::d0
@ d0
Definition: ParamDefs.h:63
VP1PartSpect::E
@ E
Definition: VP1PartSpectFlags.h:21
InDet::InDetNNScoringTool::m_caloClusterROIKey
SG::ReadHandleKey< ROIPhiRZContainer > m_caloClusterROIKey
Definition: InDetNNScoringTool.h:147
InDet::InDetNNScoringTool::m_factorHits
std::vector< double > m_factorHits
Definition: InDetNNScoringTool.h:83
SG::CondHandleKey::initialize
StatusCode initialize(bool used=true)
InDet::InDetNNScoringTool::m_maxTrtFittedRatio
int m_maxTrtFittedRatio
Definition: InDetNNScoringTool.h:81
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
InDet::InDetNNScoringTool::m_useTRT_AmbigFcn
BooleanProperty m_useTRT_AmbigFcn
Definition: InDetNNScoringTool.h:106
InDet::InDetNNScoringTool::m_maxSigmaChi2
int m_maxSigmaChi2
Definition: InDetNNScoringTool.h:80
InDet::InDetNNScoringTool::m_maxSCT_Holes
int m_maxSCT_Holes
Definition: InDetNNScoringTool.h:79
PathResolverFindCalibFile
std::string PathResolverFindCalibFile(const std::string &logical_file_name)
Definition: PathResolver.cxx:431
lwtDev::parse_json_graph
GraphConfig parse_json_graph(std::istream &json)
Definition: parse_json.cxx:71
Trk::ParametersBase::momentum
const Amg::Vector3D & momentum() const
Access method for the momentum.
a
TList * a
Definition: liststreamerinfos.cxx:10
h
python.compareTCTs.ratio
ratio
Definition: compareTCTs.py:295
InDet::InDetNNScoringTool::m_maxZImp
DoubleProperty m_maxZImp
Definition: InDetNNScoringTool.h:121
InDet::InDetNNScoringTool::score
virtual Trk::TrackScore score(const Trk::Track &track, bool checkBasicSel) const override
create a score based on how good the passed track is
Definition: InDetNNScoringTool.cxx:176
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
DEBUG
#define DEBUG
Definition: page_access.h:11
F
#define F(x, y, z)
Definition: MD5.cxx:112
AthCommonMsg< AlgTool >::msg
MsgStream & msg() const
Definition: AthCommonMsg.h:24
MagField::AtlasFieldCache
Local cache for magnetic field (based on MagFieldServices/AtlasFieldSvcTLS.h)
Definition: AtlasFieldCache.h:43
InDet::InDetNNScoringTool::m_factorTrtFittedRatio
std::vector< double > m_factorTrtFittedRatio
Definition: InDetNNScoringTool.h:86
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:623
xAOD::numPixelHoles
@ numPixelHoles
Definition: TrackingPrimitives.h:517
InDet::InDetNNScoringTool::m_maxEta
DoubleProperty m_maxEta
Definition: InDetNNScoringTool.h:117
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:798
xAOD::numSCTHoles
@ numSCTHoles
Definition: TrackingPrimitives.h:518
Trk::numberOfGangedFlaggedFakes
@ numberOfGangedFlaggedFakes
number of dead pixel sensors crossed
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:63
InDet::InDetNNScoringTool::m_useSCT
BooleanProperty m_useSCT
Definition: InDetNNScoringTool.h:113
Trk::SummaryType
SummaryType
enumerates the different types of information stored in Summary.
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:45
xAOD::track
@ track
Definition: TrackingPrimitives.h:512
InDet::InDetNNScoringTool::setupScoreModifiers
void setupScoreModifiers()
Definition: InDetNNScoringTool.cxx:561
python.Constants.VERBOSE
int VERBOSE
Definition: Control/AthenaCommon/python/Constants.py:14
Trk::numberOfRpcEtaHits
@ numberOfRpcEtaHits
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:110
InDet::InDetNNScoringTool::m_minPixel
IntegerProperty m_minPixel
Definition: InDetNNScoringTool.h:138
Trk::numberOfSCTDoubleHoles
@ numberOfSCTDoubleHoles
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:75
ValueMap
std::map< std::string, double > ValueMap
Definition: TauDecayModeNNClassifier.cxx:22
Trk::numberOfCscPhiHits
@ numberOfCscPhiHits
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:107
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
InDet::InDetNNScoringTool::m_minTRTonTrk
IntegerProperty m_minTRTonTrk
Definition: InDetNNScoringTool.h:134
InDet::InDetNNScoringTool::m_fieldCacheCondObjInputKey
SG::ReadCondHandleKey< AtlasFieldCacheCondObj > m_fieldCacheCondObjInputKey
Definition: InDetNNScoringTool.h:101
InDet::InDetNNScoringTool::m_nnCutThreshold
DoubleProperty m_nnCutThreshold
Definition: InDetNNScoringTool.h:110
Trk::numberOfMdtHits
@ numberOfMdtHits
number of mdt hits
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:103
fitman.k
k
Definition: fitman.py:528
InDet::InDetNNScoringTool::m_minSiClusters
IntegerProperty m_minSiClusters
Definition: InDetNNScoringTool.h:124
Trk::TrackInfo::Unknown
@ Unknown
Track fitter not defined.
Definition: Tracking/TrkEvent/TrkTrack/TrkTrack/TrackInfo.h:41