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 Trk::TrackScore score (const Trk::Track &track) 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
 
int m_maxPixHoles
 
int m_maxSCT_Holes
 
int m_maxHits
 
int m_maxSigmaChi2
 
int m_maxTrtRatio
 
int m_maxTrtFittedRatio
 
int m_maxB_LayerHits
 
int m_maxPixelHits
 
int m_maxPixLay
 
int m_maxGangedFakes
 
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
 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
 
SG::ReadCondHandleKey< AtlasFieldCacheCondObjm_fieldCacheCondObjInputKey {this, "AtlasFieldCacheCondObj", "fieldCondObj", "Name of the Magnetic Field conditions object key"}
 
bool m_useAmbigFcn
 use the scoring tuned to Ambiguity processing or not More...
 
bool m_useTRT_AmbigFcn
 
bool m_useSigmaChi2
 
std::string m_nnCutConfig
 
double m_nnCutThreshold
 
bool m_usePixel
 
bool m_useSCT
 
double m_minPt
 cuts for selecting good tracks More...
 
double m_maxEta
 maximal Eta cut More...
 
double m_maxRPhiImp
 maximal RPhi impact parameter cut More...
 
double m_maxZImp
 maximal z impact parameter cut More...
 
int m_minSiClusters
 minimal number of Si clusters More...
 
int m_maxDoubleHoles
 
int m_maxSiHoles
 maximal number of holes (Pixel+SCT) More...
 
int m_maxPixelHoles
 maximal number of Pixel holes More...
 
int m_maxSctHoles
 maximal number of SCT holes More...
 
int m_minTRTonTrk
 minimum number of TRT hits More...
 
double m_minTRTprecision
 minimum fraction of TRT precision hits More...
 
int m_minPixel
 minimum number of pixel clusters More...
 
double m_maxRPhiImpEM
 maximal RPhi impact parameter cut track that match EM clusters More...
 
bool m_useEmClusSeed
 
float m_phiWidthEm
 
float m_etaWidthEm
 
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
29  m_maxDblHoles(-1),
30  m_maxPixHoles(-1),
31  m_maxSCT_Holes(-1),
32  m_maxHits(-1),
33  m_maxSigmaChi2(-1),
34  m_maxTrtRatio(-1),
36  m_maxB_LayerHits(-1),
37  m_maxPixelHits(-1),
38  m_maxPixLay(-1),
39  m_maxGangedFakes(-1),
40  m_selectortool("InDet::InDetTrtDriftCircleCutTool", this),
42  m_extrapolator("Trk::Extrapolator", this)
43 {
44  declareInterface<Trk::ITrackScoringTool>(this);
45 
46  // declare properties
47  declareProperty("minPt", m_minPt = 500.);
48  declareProperty("maxEta", m_maxEta = 2.7);
49  declareProperty("maxRPhiImp", m_maxRPhiImp = 10.);
50  declareProperty("maxZImp", m_maxZImp = 250.);
51 
52  // changed cuts on the selction of tracks
53  declareProperty("minSiClusters", m_minSiClusters = 7);
54  declareProperty("maxDoubleHoles", m_maxDoubleHoles = 2);
55  declareProperty("maxSiHoles", m_maxSiHoles = 5, "max number of Silicon (Pixel+SCT) holes");
56  declareProperty("maxPixelHoles", m_maxPixelHoles = 5, "max number of Pixel holes");
57  declareProperty("maxSCTHoles", m_maxSctHoles = 5, "max number of SCT holes");
58  declareProperty("minTRTonTrk", m_minTRTonTrk = 9);
59  declareProperty("minTRTPrecisionFraction", m_minTRTprecision = 0.5);
60  declareProperty("minPixel", m_minPixel = 0);
61  declareProperty("nnCutConfig", m_nnCutConfig = "");
62  declareProperty("nnCutThreshold", m_nnCutThreshold = -0.1);
63 
64  // which detectors to use
65  declareProperty("usePixel", m_usePixel = true);
66  declareProperty("useSCT", m_useSCT = true);
67 
68  // switches and tools
69  declareProperty("useAmbigFcn", m_useAmbigFcn = true);
70  declareProperty("useTRT_AmbigFcn", m_useTRT_AmbigFcn = false);
71  declareProperty("useSigmaChi2", m_useSigmaChi2 = false);
72 
73  // tools
74  declareProperty("Extrapolator", m_extrapolator);
75  declareProperty("DriftCircleCutTool",m_selectortool );
76 
77  declareProperty("maxRPhiImpEM", m_maxRPhiImpEM = 50. );
78  declareProperty("doEmCaloSeed", m_useEmClusSeed = true );
79  declareProperty("phiWidthEM", m_phiWidthEm = 0.075 );
80  declareProperty("etaWidthEM", m_etaWidthEm = 0.05 );
81 
82  //set values for scores
84  m_summaryTypeScore[Trk::numberOfPixelHoles] = -10; // a hole is bad
85  m_summaryTypeScore[Trk::numberOfInnermostPixelLayerHits] = 10; // addition for being b-layer
86  m_summaryTypeScore[Trk::numberOfGangedPixels] = -5; // decrease for being ganged
87  m_summaryTypeScore[Trk::numberOfGangedFlaggedFakes] = -10; // decrease for being ganged fake
88  m_summaryTypeScore[Trk::numberOfSCTHits] = 10; // half of a pixel, since only 1dim
89  m_summaryTypeScore[Trk::numberOfSCTHoles] = -5; // a hole is bad !
90  m_summaryTypeScore[Trk::numberOfSCTDoubleHoles] = -15; // a double hole is even worse !
91  m_summaryTypeScore[Trk::numberOfTRTHits] = 1; // 10 straws ~ 1 SCT
92  m_summaryTypeScore[Trk::numberOfTRTHighThresholdHits] = 0; // addition for being TR
93  m_summaryTypeScore[Trk::numberOfOutliersOnTrack] = -1; // -ME- TRT oulier should not kill 5 TRT on track (was -5)
94 
95  // scoring for Muons not needed
103 
104 }

◆ ~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 375 of file InDetNNScoringTool.cxx.

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

◆ calcNnScore()

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

Definition at line 848 of file InDetNNScoringTool.cxx.

849 {
850  ATH_MSG_DEBUG("Using NN Score Function");
851  // initialize with dummy score
852  double DNNscore(-1.0);
853 
854  // This calculates a variant of the delta-eta variable used in large-d0 seeding
855  double d0 = extrapolatedPerigee->parameters()[Trk::d0];
856  double z0 = extrapolatedPerigee->parameters()[Trk::z0];
857  double deltaEta = std::abs(std::atan2(fabs(d0), z0) - 2 * std::atan(std::exp(-track.trackParameters()->front()->eta())));
858 
859  // Build dictionary of inputs for lwtnn to use
860  // It is ok to fill this with more variables than the model uses
861  // as long as no variables are missing
862  std::map<std::string, double> trackInputs{
863  {"pT", track.trackParameters()->front()->pT()},
864  {"eta", track.trackParameters()->front()->eta()},
865  {"numberOfSCTHoles", (double) trackSummary.get(Trk::numberOfSCTHoles)},
866  {"numberOfSCTHits", (double) trackSummary.get(Trk::numberOfSCTHits)},
867  {"numberDoF", (double) track.fitQuality()->numberDoF()},
868  {"Sihits", (double) (trackSummary.get(Trk::numberOfPixelHits) + trackSummary.get(Trk::numberOfSCTHits))},
869  {"d0", d0},
870  {"z0", z0},
871  {"deltaEta", deltaEta}
872  };
873 
874  // Set up the nodes used for inputs
875  std::map<std::string, std::map<std::string, double> > inputs{
876  {"trackInputs", trackInputs}
877  };
878 
879  // Evaluate the network
880  lwt::ValueMap output = m_graph->compute(inputs);
881 
882  // Obtain the discriminant associated with the single output node
883  DNNscore = output["nnScore"];
884  // Return the discriminant as the score
885  ATH_MSG_DEBUG("DNNscore: " << DNNscore);
886  if (DNNscore < m_nnCutThreshold)
887  ATH_MSG_DEBUG("DNNscore is below threshold of " << m_nnCutThreshold << ", rejecting track. ");
888  if (DNNscore < 0)
889  ATH_MSG_ERROR("DNNscore should be 0 or greater.");
890  return Trk::TrackScore(DNNscore);
891 }

◆ 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 108 of file InDetNNScoringTool.cxx.

109 {
111  if (sc.isFailure()) return sc;
112 
113  sc = m_extrapolator.retrieve();
114  if (sc.isFailure()) {
115  msg(MSG::FATAL) << "Failed to retrieve tool " << m_extrapolator << endmsg;
116  return StatusCode::FAILURE;
117  } else
118  msg(MSG::DEBUG) << "Retrieved tool " << m_extrapolator << endmsg;
119 
120  ATH_CHECK (m_selectortool.retrieve( DisableTool{ m_selectortool.empty() } ));
121  // Get segment selector tool
122  //
123 
125 
127  msg(MSG::FATAL) << "Both on, normal ambi funciton and the one for back tracking, configuration problem, not recoverable" << endmsg;
128  return StatusCode::FAILURE;
129  }
130 
131  // Read handle for AtlasFieldCacheCondObj
133 
135 
136  // lwtnn initialization
137  if (m_nnCutThreshold > 0.0) { // Load NN only if it will be used
138  // Locate configuration file
139  std::string nnCutConfigPath = PathResolverFindCalibFile(m_nnCutConfig); //returns "" if file not found
140  if (nnCutConfigPath.empty()){
141  ATH_MSG_FATAL ( "Failed to find configuration file: " << m_nnCutConfig);
142  return StatusCode::FAILURE;
143  }
144  ATH_MSG_DEBUG ("Loading configuration file:" << nnCutConfigPath);
145  // Load NN weights
146  std::ifstream inFile(nnCutConfigPath);
147  lwt::GraphConfig config(lwt::parse_json_graph(inFile));
148  m_graph = std::make_unique<lwt::LightweightGraph>(config);
149  ATH_MSG_DEBUG ("NN configuration loaded");
150  inFile.close();
151  }
152 
154 
155  return StatusCode::SUCCESS;
156 }

◆ 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 36 of file ITrackScoringTool.h.

37 {
38  return IID_ITrackScoringTool;
39 }

◆ 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 820 of file InDetNNScoringTool.cxx.

821 {
822  const Trk::TrackParameters * Tp = track.trackParameters()->front();
823 
824  //Switch to the track parameters of the first measurment instead of the perigee parameters
825  ATH_MSG_VERBOSE ("--> Looping over TSOS's");
826  for (const auto *tsos : *track.trackStateOnSurfaces() ) {
827  // get measurment from TSOS
828  const auto *meas = tsos->measurementOnTrack();
829  const auto *tp = tsos->trackParameters();
830  // if we do not have a measurement, we should just mark it
831  if (!meas || !tp) {
832  continue;
833  } else {
834  Tp = tp;
835  break;
836  }
837  }
838 
839  double F = Tp->momentum().phi();
840  double E = Tp->momentum().eta();
841  double R = Tp->position().perp();
842  double Z = Tp->position().z();
843 
845  return calo->hasMatchingROI(F, E, R, Z, m_phiWidthEm, m_etaWidthEm);
846 }

◆ 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.

◆ 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) const
overridevirtual

create a score based on how good the passed track is

Implements Trk::ITrackScoringTool.

Definition at line 160 of file InDetNNScoringTool.cxx.

161 {
162  if (!track.trackSummary()) {
163  ATH_MSG_FATAL("Track without a summary");
164  }
165  ATH_MSG_VERBOSE ("Track has TrackSummary "<<*track.trackSummary());
167  ATH_MSG_DEBUG ("Track has Score: "<<score);
168 
169  return score;
170 }

◆ setupScoreModifiers()

void InDet::InDetNNScoringTool::setupScoreModifiers ( )
private

Definition at line 594 of file InDetNNScoringTool.cxx.

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

◆ 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 174 of file InDetNNScoringTool.cxx.

175 {
176  int numPixel = trackSummary.get(Trk::numberOfPixelHits);
177  int numSCT = trackSummary.get(Trk::numberOfSCTHits);
178  int numTRT = trackSummary.get(Trk::numberOfTRTHits);
179  int numTRTTube = trackSummary.get(Trk::numberOfTRTTubeHits);
180  int numPixelHoles = trackSummary.get(Trk::numberOfPixelHoles);
181  int numSCTHoles = trackSummary.get(Trk::numberOfSCTHoles);
182  int numSCTDoubleHoles = trackSummary.get(Trk::numberOfSCTDoubleHoles);
183  int numPixelDead = trackSummary.get(Trk::numberOfPixelDeadSensors);
184  int numSCTDead = trackSummary.get(Trk::numberOfSCTDeadSensors);
185 
186  if (numPixelDead<0) numPixelDead = 0;
187  if (numSCTDead<0) numSCTDead = 0;
188 
189  // is this a track from the pattern or a fitted track ?
190  bool ispatterntrack = (track.info().trackFitter()==Trk::TrackInfo::Unknown);
191  //
192  // --- reject bad tracks
193  //
194  //
195  // --- the following cuts we only apply to fitted tracks
196  //
197  if (ispatterntrack) {
198  ATH_MSG_DEBUG ("==> this is a pattern track, no hit cuts !");
199  } else {
200  ATH_MSG_DEBUG ("==> this is a refitted track, so we can use the chi2 and other stuff ! ");
201 
202  // NdF cut :
203  if (track.fitQuality()) {
204  ATH_MSG_DEBUG ("numberDoF = "<<track.fitQuality()->numberDoF());
205  }
206  // Number of double Holes
207  if (numSCTDoubleHoles>=0) {
208  if (numSCTDoubleHoles > m_maxDoubleHoles ) {
209  ATH_MSG_DEBUG ("Track has "<< numSCTDoubleHoles <<" double holes, reject it!");
210  return Trk::TrackScore(0);
211  }
212  }
213  // Number of Si (Pixel+SCT) Holes
214  if (numSCTHoles>=0 && numPixelHoles>=0) {
216  ATH_MSG_DEBUG ("Track has "<< numPixelHoles <<" Pixel and " << numSCTHoles << " SCT holes, reject it!");
217  return Trk::TrackScore(0);
218  }
219  }
220  // Number of Pixel Holes
221  if ( numPixelHoles>=0 ) {
223  ATH_MSG_DEBUG ("Track has "<< numPixelHoles <<" Pixel holes, reject it!");
224  return Trk::TrackScore(0);
225  }
226  }
227  // Number of SCT Holes
228  if ( numSCTHoles>=0 ) {
229  if ( numSCTHoles > m_maxSctHoles ) {
230  ATH_MSG_DEBUG ("Track has "<< numSCTHoles << " SCT holes, reject it!");
231  return Trk::TrackScore(0);
232  }
233  }
234  // TRT cut
235  if (numTRT > 0 && numTRT < m_minTRTonTrk) {
236  ATH_MSG_DEBUG ("Track has " << numTRT << " TRT hits, reject it");
237  return Trk::TrackScore(0);
238  }
239  // TRT precision hits cut
240  if (numTRT >= 15 && ((double)(numTRT-numTRTTube))/numTRT < m_minTRTprecision) {
241  ATH_MSG_DEBUG ("Track has " << ((double)numTRTTube)/numTRT << " TRT tube hit fraction, reject it");
242  return Trk::TrackScore(0);
243  }
244  // Number of Si Clusters
245  if ( numSCT>=0 && numPixel>=0) {
246  if (numPixel+numSCT+numPixelDead+numSCTDead < m_minSiClusters) {
247  ATH_MSG_DEBUG ("Track has " << numPixel+numSCT << " Si clusters and " << numPixelDead+numSCTDead << " dead sensors, reject it");
248  return Trk::TrackScore(0);
249  }
250  }
251  // Number of pixel clusters
252  if (numPixel>=0 && numPixel < m_minPixel) {
253  ATH_MSG_DEBUG ("Track has " << numPixel << " pixel hits, reject it");
254  return Trk::TrackScore(0);
255  }
256  }
257  //
258  // --- kinematic selection (done as well on input ?)
259  //
260  // --- beam spot position
261  Amg::Vector3D beamSpotPosition(0,0,0);
263  if (beamSpotHandle.isValid()) beamSpotPosition = beamSpotHandle->beamVtx().position();
264  // --- create surface
265  Trk::PerigeeSurface perigeeSurface(beamSpotPosition);
266 
267  const Trk::TrackParameters* input = track.trackParameters()->front();
268 
269  // cuts on parameters
270  const EventContext& ctx = Gaudi::Hive::currentContext();
272  const AtlasFieldCacheCondObj* fieldCondObj{*readHandle};
273  if (fieldCondObj == nullptr) {
274  ATH_MSG_ERROR("simpleScore: Failed to retrieve AtlasFieldCacheCondObj with key " << m_fieldCacheCondObjInputKey.key());
275  return Trk::TrackScore(0);
276  }
277  MagField::AtlasFieldCache fieldCache;
278  fieldCondObj->getInitializedCache (fieldCache);
279 
280  if (fieldCache.solenoidOn()){
281  if (fabs(input->pT()) < m_minPt) {
282  ATH_MSG_DEBUG ("Track pt < "<<m_minPt<<", reject it");
283  return Trk::TrackScore(0);
284  }
285  }
286  if (fabs(input->eta()) > m_maxEta) {
287  ATH_MSG_DEBUG ("Track eta > "<<m_maxEta<<", reject it");
288  return Trk::TrackScore(0);
289  }
290 
291  // uses perigee on track or extrapolates, no material in any case, we cut on impacts
292  // add back extrapolation without errors
293  {
294  std::unique_ptr<const Trk::TrackParameters> parm( m_extrapolator->extrapolateDirectly(ctx, *input, perigeeSurface) );
295 
296  const Trk::Perigee*extrapolatedPerigee = dynamic_cast<const Trk::Perigee*> (parm.get());
297  if (!extrapolatedPerigee) {
298  ATH_MSG_WARNING( "Extrapolation of perigee failed, this should never happen" );
299  return Trk::TrackScore(0);
300  }
301 
302  ATH_MSG_VERBOSE ("extrapolated perigee: "<<*extrapolatedPerigee);
303  if (fabs(extrapolatedPerigee->parameters()[Trk::z0]) > m_maxZImp) {
304  ATH_MSG_DEBUG ("Track Z impact > "<<m_maxZImp<<", reject it");
305  return Trk::TrackScore(0);
306  }
307 
308  double maxD0 = m_maxRPhiImp;
309  if(m_useEmClusSeed) {
310  if (isEmCaloCompatible( track, ctx ) ) {
311  maxD0 = m_maxRPhiImpEM;
312  }
313  }
314  if (fabs(extrapolatedPerigee->parameters()[Trk::d0]) > maxD0) {
315  ATH_MSG_DEBUG ("Track Rphi impact > "<<maxD0<<", reject it");
316  return Trk::TrackScore(0);
317  }
318 
319  if (m_useAmbigFcn) {
320  if (m_nnCutThreshold > 0.0) { // check if nn cut is enabled
321  if (track.fitQuality()) { // check if track has been fitted
322  if (calcNnScore(track, trackSummary, extrapolatedPerigee) < m_nnCutThreshold) {
323  ATH_MSG_DEBUG ("Rejecting track for falling below nn threshold");
324  return Trk::TrackScore(0); // scores of 0 are rejected by ambisolver
325  }
326  }
327  }
328  }
329  }
330 
331  //
332  // --- now start scoring
333  //
334 
336 
337  //
338  // --- use scoring function
339  //
340 
341  return ambigScore(track,trackSummary);
342 
343  } else {
344 
345  //
346  // use classical score
347  //
348  // score of 100 per track
349  Trk::TrackScore score (100);
350  // --- summary score analysis
351  for (int i=0; i<Trk::numberOfTrackSummaryTypes; ++i) {
352  int value = trackSummary.get(static_cast<Trk::SummaryType>(i));
353  //value is -1 if undefined.
354  if (value>0) {
356  ATH_MSG_DEBUG ("\tType ["<<i<<"], value \t= "<<value<<"], score \t="<<score);
357  }
358  }
359  // --- prob(chi2,NDF), protect for chi2 <= 0
360  if (track.fitQuality()!=nullptr && track.fitQuality()->chiSquared()>0 && track.fitQuality()->numberDoF()>0 ) {
361  double p = 1.0-Genfun::CumulativeChiSquare(track.fitQuality()->numberDoF())(track.fitQuality()->chiSquared());
362  if ( p > 0 )
363  score += log10( p );
364  else
365  score -= 50;
366  }
367 
368  return score;
369  }
370 
371 }

◆ 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 89 of file InDetNNScoringTool.h.

◆ m_boundsSigmaChi2

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

Definition at line 80 of file InDetNNScoringTool.h.

◆ m_boundsTrtFittedRatio

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

Definition at line 81 of file InDetNNScoringTool.h.

◆ m_boundsTrtRatio

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

Definition at line 81 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 126 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 69 of file InDetNNScoringTool.h.

◆ m_etaWidthEm

float InDet::InDetNNScoringTool::m_etaWidthEm
private

Definition at line 124 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
private

Definition at line 91 of file InDetNNScoringTool.h.

◆ m_factorB_LayerHits

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

Definition at line 79 of file InDetNNScoringTool.h.

◆ m_factorDblHoles

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

Definition at line 78 of file InDetNNScoringTool.h.

◆ m_factorGangedFakes

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

Definition at line 79 of file InDetNNScoringTool.h.

◆ m_factorHits

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

Definition at line 78 of file InDetNNScoringTool.h.

◆ m_factorPixelHits

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

Definition at line 79 of file InDetNNScoringTool.h.

◆ m_factorPixHoles

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

Definition at line 78 of file InDetNNScoringTool.h.

◆ m_factorPixLay

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

Definition at line 79 of file InDetNNScoringTool.h.

◆ m_factorSCT_Holes

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

Definition at line 78 of file InDetNNScoringTool.h.

◆ m_factorSigmaChi2

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

Definition at line 79 of file InDetNNScoringTool.h.

◆ m_factorTrtFittedRatio

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

Definition at line 81 of file InDetNNScoringTool.h.

◆ m_factorTrtRatio

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

Definition at line 81 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 94 of file InDetNNScoringTool.h.

◆ m_graph

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

Definition at line 68 of file InDetNNScoringTool.h.

◆ m_maxB_LayerHits

int InDet::InDetNNScoringTool::m_maxB_LayerHits
private

Definition at line 77 of file InDetNNScoringTool.h.

◆ m_maxDblHoles

int InDet::InDetNNScoringTool::m_maxDblHoles
private

Definition at line 76 of file InDetNNScoringTool.h.

◆ m_maxDoubleHoles

int InDet::InDetNNScoringTool::m_maxDoubleHoles
private

Definition at line 113 of file InDetNNScoringTool.h.

◆ m_maxEta

double InDet::InDetNNScoringTool::m_maxEta
private

maximal Eta cut

Definition at line 109 of file InDetNNScoringTool.h.

◆ m_maxGangedFakes

int InDet::InDetNNScoringTool::m_maxGangedFakes
private

Definition at line 77 of file InDetNNScoringTool.h.

◆ m_maxHits

int InDet::InDetNNScoringTool::m_maxHits
private

Definition at line 76 of file InDetNNScoringTool.h.

◆ m_maxPixelHits

int InDet::InDetNNScoringTool::m_maxPixelHits
private

Definition at line 77 of file InDetNNScoringTool.h.

◆ m_maxPixelHoles

int InDet::InDetNNScoringTool::m_maxPixelHoles
private

maximal number of Pixel holes

Definition at line 115 of file InDetNNScoringTool.h.

◆ m_maxPixHoles

int InDet::InDetNNScoringTool::m_maxPixHoles
private

Definition at line 76 of file InDetNNScoringTool.h.

◆ m_maxPixLay

int InDet::InDetNNScoringTool::m_maxPixLay
private

Definition at line 77 of file InDetNNScoringTool.h.

◆ m_maxRPhiImp

double InDet::InDetNNScoringTool::m_maxRPhiImp
private

maximal RPhi impact parameter cut

Definition at line 110 of file InDetNNScoringTool.h.

◆ m_maxRPhiImpEM

double InDet::InDetNNScoringTool::m_maxRPhiImpEM
private

maximal RPhi impact parameter cut track that match EM clusters

Definition at line 120 of file InDetNNScoringTool.h.

◆ m_maxSCT_Holes

int InDet::InDetNNScoringTool::m_maxSCT_Holes
private

Definition at line 76 of file InDetNNScoringTool.h.

◆ m_maxSctHoles

int InDet::InDetNNScoringTool::m_maxSctHoles
private

maximal number of SCT holes

Definition at line 116 of file InDetNNScoringTool.h.

◆ m_maxSigmaChi2

int InDet::InDetNNScoringTool::m_maxSigmaChi2
private

Definition at line 76 of file InDetNNScoringTool.h.

◆ m_maxSiHoles

int InDet::InDetNNScoringTool::m_maxSiHoles
private

maximal number of holes (Pixel+SCT)

Definition at line 114 of file InDetNNScoringTool.h.

◆ m_maxTrtFittedRatio

int InDet::InDetNNScoringTool::m_maxTrtFittedRatio
private

Definition at line 76 of file InDetNNScoringTool.h.

◆ m_maxTrtRatio

int InDet::InDetNNScoringTool::m_maxTrtRatio
private

Definition at line 76 of file InDetNNScoringTool.h.

◆ m_maxZImp

double InDet::InDetNNScoringTool::m_maxZImp
private

maximal z impact parameter cut

Definition at line 111 of file InDetNNScoringTool.h.

◆ m_minPixel

int InDet::InDetNNScoringTool::m_minPixel
private

minimum number of pixel clusters

Definition at line 119 of file InDetNNScoringTool.h.

◆ m_minPt

double InDet::InDetNNScoringTool::m_minPt
private

cuts for selecting good tracks

minimal Pt cut

Definition at line 108 of file InDetNNScoringTool.h.

◆ m_minSiClusters

int InDet::InDetNNScoringTool::m_minSiClusters
private

minimal number of Si clusters

Definition at line 112 of file InDetNNScoringTool.h.

◆ m_minTRTonTrk

int InDet::InDetNNScoringTool::m_minTRTonTrk
private

minimum number of TRT hits

Definition at line 117 of file InDetNNScoringTool.h.

◆ m_minTRTprecision

double InDet::InDetNNScoringTool::m_minTRTprecision
private

minimum fraction of TRT precision hits

Definition at line 118 of file InDetNNScoringTool.h.

◆ m_nnCutConfig

std::string InDet::InDetNNScoringTool::m_nnCutConfig
private

Definition at line 101 of file InDetNNScoringTool.h.

◆ m_nnCutThreshold

double InDet::InDetNNScoringTool::m_nnCutThreshold
private

Definition at line 102 of file InDetNNScoringTool.h.

◆ m_phiWidthEm

float InDet::InDetNNScoringTool::m_phiWidthEm
private

Definition at line 123 of file InDetNNScoringTool.h.

◆ m_selectortool

ToolHandle<ITrtDriftCircleCutTool> InDet::InDetNNScoringTool::m_selectortool
private

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

Definition at line 84 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 87 of file InDetNNScoringTool.h.

◆ m_useAmbigFcn

bool InDet::InDetNNScoringTool::m_useAmbigFcn
private

use the scoring tuned to Ambiguity processing or not

Definition at line 98 of file InDetNNScoringTool.h.

◆ m_useEmClusSeed

bool InDet::InDetNNScoringTool::m_useEmClusSeed
private

Definition at line 122 of file InDetNNScoringTool.h.

◆ m_usePixel

bool InDet::InDetNNScoringTool::m_usePixel
private

Definition at line 104 of file InDetNNScoringTool.h.

◆ m_useSCT

bool InDet::InDetNNScoringTool::m_useSCT
private

Definition at line 105 of file InDetNNScoringTool.h.

◆ m_useSigmaChi2

bool InDet::InDetNNScoringTool::m_useSigmaChi2
private

Definition at line 100 of file InDetNNScoringTool.h.

◆ m_useTRT_AmbigFcn

bool InDet::InDetNNScoringTool::m_useTRT_AmbigFcn
private

Definition at line 99 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:77
InDet::InDetNNScoringTool::m_maxPixLay
int m_maxPixLay
Definition: InDetNNScoringTool.h:77
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:848
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_boundsTrtFittedRatio
std::vector< double > m_boundsTrtFittedRatio
Definition: InDetNNScoringTool.h:81
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
InDet::InDetNNScoringTool::m_beamSpotKey
SG::ReadCondHandleKey< InDet::BeamSpotData > m_beamSpotKey
Definition: InDetNNScoringTool.h:89
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:76
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:174
AtlasFieldCacheCondObj
Definition: AtlasFieldCacheCondObj.h:19
InDet::InDetNNScoringTool::m_useEmClusSeed
bool m_useEmClusSeed
Definition: InDetNNScoringTool.h:122
InDet::InDetNNScoringTool::m_maxB_LayerHits
int m_maxB_LayerHits
Definition: InDetNNScoringTool.h:77
InDet::InDetNNScoringTool::m_maxDoubleHoles
int m_maxDoubleHoles
Definition: InDetNNScoringTool.h:113
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< AthCommonMsg< AlgTool > >::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:87
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
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:820
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
ParticleTest.tp
tp
Definition: ParticleTest.py:25
Trk::z0
@ z0
Definition: ParamDefs.h:70
AthCommonMsg< AlgTool >::msgLvl
bool msgLvl(const MSG::Level lvl) const
Definition: AthCommonMsg.h:30
athena.value
value
Definition: athena.py:122
InDet::InDetNNScoringTool::m_maxSiHoles
int m_maxSiHoles
maximal number of holes (Pixel+SCT)
Definition: InDetNNScoringTool.h:114
InDet::InDetNNScoringTool::m_selectortool
ToolHandle< ITrtDriftCircleCutTool > m_selectortool
Returns minimum number of expected TRT drift circles depending on eta.
Definition: InDetNNScoringTool.h:84
InDet::InDetNNScoringTool::m_maxPixelHoles
int m_maxPixelHoles
maximal number of Pixel holes
Definition: InDetNNScoringTool.h:115
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
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
InDet::InDetNNScoringTool::m_etaWidthEm
float m_etaWidthEm
Definition: InDetNNScoringTool.h:124
drawFromPickle.exp
exp
Definition: drawFromPickle.py:36
covarianceTool.prob
prob
Definition: covarianceTool.py:678
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:80
InDet::InDetNNScoringTool::m_factorSigmaChi2
std::vector< double > m_factorSigmaChi2
Definition: InDetNNScoringTool.h:79
InDet::InDetNNScoringTool::m_useTRT_AmbigFcn
bool m_useTRT_AmbigFcn
Definition: InDetNNScoringTool.h:99
postInclude.inputs
inputs
Definition: postInclude.SortInput.py:15
InDet::InDetNNScoringTool::m_useSCT
bool m_useSCT
Definition: InDetNNScoringTool.h:105
config
Definition: PhysicsAnalysis/AnalysisCommon/AssociationUtils/python/config.py:1
InDet::InDetNNScoringTool::m_maxGangedFakes
int m_maxGangedFakes
Definition: InDetNNScoringTool.h:77
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:91
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
InDet::InDetNNScoringTool::m_minPixel
int m_minPixel
minimum number of pixel clusters
Definition: InDetNNScoringTool.h:119
InDet::InDetNNScoringTool::m_phiWidthEm
float m_phiWidthEm
Definition: InDetNNScoringTool.h:123
InDet::InDetNNScoringTool::m_nnCutThreshold
double m_nnCutThreshold
Definition: InDetNNScoringTool.h:102
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
InDet::InDetNNScoringTool::m_minPt
double m_minPt
cuts for selecting good tracks
Definition: InDetNNScoringTool.h:108
P4Helpers::deltaEta
double deltaEta(const I4Momentum &p1, const I4Momentum &p2)
Computes efficiently .
Definition: P4Helpers.h:53
InDet::InDetNNScoringTool::m_boundsTrtRatio
std::vector< double > m_boundsTrtRatio
Definition: InDetNNScoringTool.h:81
lumiFormat.i
int i
Definition: lumiFormat.py:92
InDet::InDetNNScoringTool::m_useSigmaChi2
bool m_useSigmaChi2
Definition: InDetNNScoringTool.h:100
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:79
InDet::InDetNNScoringTool::m_minTRTonTrk
int m_minTRTonTrk
minimum number of TRT hits
Definition: InDetNNScoringTool.h:117
beamspotman.n
n
Definition: beamspotman.py:731
InDet::InDetNNScoringTool::m_factorPixHoles
std::vector< double > m_factorPixHoles
Definition: InDetNNScoringTool.h:78
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
InDet::InDetNNScoringTool::m_minTRTprecision
double m_minTRTprecision
minimum fraction of TRT precision hits
Definition: InDetNNScoringTool.h:118
chi2
double chi2(TH1 *h0, TH1 *h1)
Definition: comparitor.cxx:522
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_graph
std::unique_ptr< lwt::LightweightGraph > m_graph
Definition: InDetNNScoringTool.h:68
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
InDet::InDetNNScoringTool::m_factorSCT_Holes
std::vector< double > m_factorSCT_Holes
Definition: InDetNNScoringTool.h:78
InDet::InDetNNScoringTool::m_factorPixLay
std::vector< double > m_factorPixLay
Definition: InDetNNScoringTool.h:79
InDet::InDetNNScoringTool::m_factorGangedFakes
std::vector< double > m_factorGangedFakes
Definition: InDetNNScoringTool.h:79
AnalysisUtils::Delta::R
double R(const INavigable4Momentum *p1, const double v_eta, const double v_phi)
Definition: AnalysisMisc.h:50
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_usePixel
bool m_usePixel
Definition: InDetNNScoringTool.h:104
InDet::InDetNNScoringTool::m_maxTrtRatio
int m_maxTrtRatio
Definition: InDetNNScoringTool.h:76
InDet::InDetNNScoringTool::m_factorTrtRatio
std::vector< double > m_factorTrtRatio
Definition: InDetNNScoringTool.h:81
InDet::InDetNNScoringTool::ambigScore
Trk::TrackScore ambigScore(const Trk::Track &track, const Trk::TrackSummary &trackSum) const
Definition: InDetNNScoringTool.cxx:375
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:76
merge.output
output
Definition: merge.py:17
InDet::InDetNNScoringTool::m_factorPixelHits
std::vector< double > m_factorPixelHits
Definition: InDetNNScoringTool.h:79
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:78
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:76
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
Trk::d0
@ d0
Definition: ParamDefs.h:69
VP1PartSpect::E
@ E
Definition: VP1PartSpectFlags.h:21
InDet::InDetNNScoringTool::m_caloClusterROIKey
SG::ReadHandleKey< ROIPhiRZContainer > m_caloClusterROIKey
Definition: InDetNNScoringTool.h:127
InDet::InDetNNScoringTool::m_factorHits
std::vector< double > m_factorHits
Definition: InDetNNScoringTool.h:78
SG::CondHandleKey::initialize
StatusCode initialize(bool used=true)
InDet::InDetNNScoringTool::m_maxTrtFittedRatio
int m_maxTrtFittedRatio
Definition: InDetNNScoringTool.h:76
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
InDet::InDetNNScoringTool::m_maxSigmaChi2
int m_maxSigmaChi2
Definition: InDetNNScoringTool.h:76
InDet::InDetNNScoringTool::m_maxSCT_Holes
int m_maxSCT_Holes
Definition: InDetNNScoringTool.h:76
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
InDet::InDetNNScoringTool::m_maxRPhiImp
double m_maxRPhiImp
maximal RPhi impact parameter cut
Definition: InDetNNScoringTool.h:110
h
python.compareTCTs.ratio
ratio
Definition: compareTCTs.py:295
InDet::InDetNNScoringTool::m_maxSctHoles
int m_maxSctHoles
maximal number of SCT holes
Definition: InDetNNScoringTool.h:116
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
InDet::InDetNNScoringTool::m_maxEta
double m_maxEta
maximal Eta cut
Definition: InDetNNScoringTool.h:109
InDet::InDetNNScoringTool::m_maxZImp
double m_maxZImp
maximal z impact parameter cut
Definition: InDetNNScoringTool.h:111
DEBUG
#define DEBUG
Definition: page_access.h:11
F
#define F(x, y, z)
Definition: MD5.cxx:112
InDet::InDetNNScoringTool::score
virtual Trk::TrackScore score(const Trk::Track &track) const override
create a score based on how good the passed track is
Definition: InDetNNScoringTool.cxx:160
config
std::vector< std::string > config
Definition: fbtTestBasics.cxx:72
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:81
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:616
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
xAOD::numPixelHoles
@ numPixelHoles
Definition: TrackingPrimitives.h:517
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:790
xAOD::numSCTHoles
@ numSCTHoles
Definition: TrackingPrimitives.h:518
Trk::numberOfGangedFlaggedFakes
@ numberOfGangedFlaggedFakes
number of dead pixel sensors crossed
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:63
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:594
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_nnCutConfig
std::string m_nnCutConfig
Definition: InDetNNScoringTool.h:101
InDet::InDetNNScoringTool::m_minSiClusters
int m_minSiClusters
minimal number of Si clusters
Definition: InDetNNScoringTool.h:112
InDet::InDetNNScoringTool::m_maxRPhiImpEM
double m_maxRPhiImpEM
maximal RPhi impact parameter cut track that match EM clusters
Definition: InDetNNScoringTool.h:120
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_fieldCacheCondObjInputKey
SG::ReadCondHandleKey< AtlasFieldCacheCondObj > m_fieldCacheCondObjInputKey
Definition: InDetNNScoringTool.h:94
InDet::InDetNNScoringTool::m_useAmbigFcn
bool m_useAmbigFcn
use the scoring tuned to Ambiguity processing or not
Definition: InDetNNScoringTool.h:98
Trk::numberOfMdtHits
@ numberOfMdtHits
number of mdt hits
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:103
fitman.k
k
Definition: fitman.py:528
Trk::TrackInfo::Unknown
@ Unknown
Track fitter not defined.
Definition: Tracking/TrkEvent/TrkTrack/TrkTrack/TrackInfo.h:41