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::InDetAmbiScoringTool Class Reference

Concrete implementation of the ITrackScoringTool pABC. More...

#include <InDetAmbiScoringTool.h>

Inheritance diagram for InDet::InDetAmbiScoringTool:
Collaboration diagram for InDet::InDetAmbiScoringTool:

Public Member Functions

 InDetAmbiScoringTool (const std::string &, const std::string &, const IInterface *)
 
virtual ~InDetAmbiScoringTool ()=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
 
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

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
 
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"}
 
bool m_useITkAmbigFcn
 use the ITk scoring tuned to Ambiguity processing or not More...
 
ServiceHandle< IInDetEtaDependentCutsSvcm_etaDependentCutsSvc {this, "InDetEtaDependentCutsSvc", ""}
 ITk eta-dependent cuts. More...
 
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 42 of file InDetAmbiScoringTool.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

◆ InDetAmbiScoringTool()

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

Definition at line 22 of file InDetAmbiScoringTool.cxx.

24  :
25  AthAlgTool(t,n,p),
26  // Initialization of ScoreModifiers variables
27  m_maxDblHoles(-1),
28  m_maxPixHoles(-1),
29  m_maxSCT_Holes(-1),
30  m_maxHits(-1),
31  m_maxSigmaChi2(-1),
32  m_maxTrtRatio(-1),
34  m_maxB_LayerHits(-1),
35  m_maxPixelHits(-1),
36  m_maxPixLay(-1),
37  m_maxGangedFakes(-1),
38  m_selectortool("InDet::InDetTrtDriftCircleCutTool", this),
40  m_extrapolator("Trk::Extrapolator", this)
41 {
42  declareInterface<Trk::ITrackScoringTool>(this);
43 
44  // declare properties
45  declareProperty("minPt", m_minPt = 500.);
46  declareProperty("maxEta", m_maxEta = 2.7);
47  declareProperty("maxRPhiImp", m_maxRPhiImp = 10.);
48  declareProperty("maxZImp", m_maxZImp = 250.);
49 
50  // changed cuts on the selction of tracks
51  declareProperty("minSiClusters", m_minSiClusters = 7);
52  declareProperty("maxDoubleHoles", m_maxDoubleHoles = 2);
53  declareProperty("maxSiHoles", m_maxSiHoles = 5, "max number of Silicon (Pixel+SCT) holes");
54  declareProperty("maxPixelHoles", m_maxPixelHoles = 5, "max number of Pixel holes");
55  declareProperty("maxSCTHoles", m_maxSctHoles = 5, "max number of SCT holes");
56  declareProperty("minTRTonTrk", m_minTRTonTrk = 9);
57  declareProperty("minTRTPrecisionFraction", m_minTRTprecision = 0.5);
58  declareProperty("minPixel", m_minPixel = 0);
59 
60  // which detectors to use
61  declareProperty("usePixel", m_usePixel = true);
62  declareProperty("useSCT", m_useSCT = true);
63 
64  // switches and tools
65  declareProperty("useAmbigFcn", m_useAmbigFcn = true);
66  declareProperty("useTRT_AmbigFcn", m_useTRT_AmbigFcn = false);
67  declareProperty("useSigmaChi2", m_useSigmaChi2 = false);
68 
69  // tools
70  declareProperty("Extrapolator", m_extrapolator);
71  declareProperty("DriftCircleCutTool",m_selectortool );
72 
73  declareProperty("maxRPhiImpEM", m_maxRPhiImpEM = 50. );
74  declareProperty("doEmCaloSeed", m_useEmClusSeed = true );
75  declareProperty("phiWidthEM", m_phiWidthEm = 0.075 );
76  declareProperty("etaWidthEM", m_etaWidthEm = 0.05 );
77 
78  declareProperty("useITkAmbigFcn", m_useITkAmbigFcn = false);
79 
80 
81  //set values for scores
83  m_summaryTypeScore[Trk::numberOfPixelHoles] = -10; // a hole is bad
84  m_summaryTypeScore[Trk::numberOfInnermostPixelLayerHits] = 10; // addition for being b-layer
85  m_summaryTypeScore[Trk::numberOfGangedPixels] = -5; // decrease for being ganged
86  m_summaryTypeScore[Trk::numberOfGangedFlaggedFakes] = -10; // decrease for being ganged fake
87  m_summaryTypeScore[Trk::numberOfSCTHits] = 10; // half of a pixel, since only 1dim
88  m_summaryTypeScore[Trk::numberOfSCTHoles] = -5; // a hole is bad !
89  m_summaryTypeScore[Trk::numberOfSCTDoubleHoles] = -15; // a double hole is even worse !
90  m_summaryTypeScore[Trk::numberOfTRTHits] = 1; // 10 straws ~ 1 SCT
91  m_summaryTypeScore[Trk::numberOfTRTHighThresholdHits] = 0; // addition for being TR
92  m_summaryTypeScore[Trk::numberOfOutliersOnTrack] = -1; // -ME- TRT oulier should not kill 5 TRT on track (was -5)
93 
94  // scoring for Muons not needed
102 
103 }

◆ ~InDetAmbiScoringTool()

virtual InDet::InDetAmbiScoringTool::~InDetAmbiScoringTool ( )
virtualdefault

Member Function Documentation

◆ ambigScore()

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

Definition at line 371 of file InDetAmbiScoringTool.cxx.

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

◆ 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::InDetAmbiScoringTool::initialize ( )
overridevirtual

Definition at line 107 of file InDetAmbiScoringTool.cxx.

108 {
110  if (sc.isFailure()) return sc;
111 
112  sc = m_extrapolator.retrieve();
113  if (sc.isFailure()) {
114  msg(MSG::FATAL) << "Failed to retrieve tool " << m_extrapolator << endmsg;
115  return StatusCode::FAILURE;
116  } else
117  msg(MSG::DEBUG) << "Retrieved tool " << m_extrapolator << endmsg;
118 
119  // Get segment selector tool
120  //
121  ATH_CHECK(m_selectortool.retrieve( DisableTool{m_selectortool.empty()} ) );
122 
124 
126  msg(MSG::FATAL) << "Both on, normal ambi funciton and the one for back tracking, configuration problem, not recoverable" << endmsg;
127  return StatusCode::FAILURE;
128  }
129 
130  // Read handle for AtlasFieldCacheCondObj
132 
133  if (not m_etaDependentCutsSvc.name().empty()) ATH_CHECK(m_etaDependentCutsSvc.retrieve());
134 
136 
138 
139  return StatusCode::SUCCESS;
140 }

◆ 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::InDetAmbiScoringTool::isEmCaloCompatible ( const Trk::Track track,
const EventContext &  ctx 
) const
private

Check if the cluster is compatible with a EM cluster.

Definition at line 882 of file InDetAmbiScoringTool.cxx.

883 {
884  const Trk::TrackParameters * Tp = track.trackParameters()->front();
885 
886  //Switch to the track parameters of the first measurment instead of the perigee parameters
887  ATH_MSG_VERBOSE ("--> Looping over TSOS's");
888  for (const auto *tsos : *track.trackStateOnSurfaces() ) {
889  // get measurment from TSOS
890  const auto *meas = tsos->measurementOnTrack();
891  const auto *tp = tsos->trackParameters();
892  // if we do not have a measurement, we should just mark it
893  if (!meas || !tp) {
894  continue;
895  } else {
896  Tp = tp;
897  break;
898  }
899  }
900 
901  double F = Tp->momentum().phi();
902  double E = Tp->momentum().eta();
903  double R = Tp->position().perp();
904  double Z = Tp->position().z();
906  return calo->hasMatchingROI(F, E, R, Z, m_phiWidthEm, m_etaWidthEm);
907 }

◆ 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::InDetAmbiScoringTool::score ( const Trk::Track track) const
overridevirtual

create a score based on how good the passed track is

Implements Trk::ITrackScoringTool.

Definition at line 144 of file InDetAmbiScoringTool.cxx.

145 {
146  if (!track.trackSummary()) {
147  ATH_MSG_FATAL("Track without a summary");
148  }
149  ATH_MSG_VERBOSE ("Track has TrackSummary "<<*track.trackSummary());
151 
152  ATH_MSG_DEBUG ("Track has Score: "<<score);
153 
154  return score;
155 }

◆ setupScoreModifiers()

void InDet::InDetAmbiScoringTool::setupScoreModifiers ( )
private

Definition at line 592 of file InDetAmbiScoringTool.cxx.

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

◆ simpleScore()

Trk::TrackScore InDet::InDetAmbiScoringTool::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 159 of file InDetAmbiScoringTool.cxx.

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

◆ 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::InDetAmbiScoringTool::m_beamSpotKey { this, "BeamSpotKey", "BeamSpotData", "SG key for beam spot" }
private

Definition at line 80 of file InDetAmbiScoringTool.h.

◆ m_boundsSigmaChi2

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

Definition at line 71 of file InDetAmbiScoringTool.h.

◆ m_boundsTrtFittedRatio

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

Definition at line 72 of file InDetAmbiScoringTool.h.

◆ m_boundsTrtRatio

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

Definition at line 72 of file InDetAmbiScoringTool.h.

◆ m_caloClusterROIKey

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

Definition at line 115 of file InDetAmbiScoringTool.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_etaDependentCutsSvc

ServiceHandle<IInDetEtaDependentCutsSvc> InDet::InDetAmbiScoringTool::m_etaDependentCutsSvc {this, "InDetEtaDependentCutsSvc", ""}
private

ITk eta-dependent cuts.

Definition at line 122 of file InDetAmbiScoringTool.h.

◆ m_etaWidthEm

float InDet::InDetAmbiScoringTool::m_etaWidthEm
private

Definition at line 113 of file InDetAmbiScoringTool.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::InDetAmbiScoringTool::m_extrapolator
private

Definition at line 82 of file InDetAmbiScoringTool.h.

◆ m_factorB_LayerHits

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

Definition at line 70 of file InDetAmbiScoringTool.h.

◆ m_factorDblHoles

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

Definition at line 69 of file InDetAmbiScoringTool.h.

◆ m_factorGangedFakes

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

Definition at line 70 of file InDetAmbiScoringTool.h.

◆ m_factorHits

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

Definition at line 69 of file InDetAmbiScoringTool.h.

◆ m_factorPixelHits

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

Definition at line 70 of file InDetAmbiScoringTool.h.

◆ m_factorPixHoles

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

Definition at line 69 of file InDetAmbiScoringTool.h.

◆ m_factorPixLay

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

Definition at line 70 of file InDetAmbiScoringTool.h.

◆ m_factorSCT_Holes

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

Definition at line 69 of file InDetAmbiScoringTool.h.

◆ m_factorSigmaChi2

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

Definition at line 70 of file InDetAmbiScoringTool.h.

◆ m_factorTrtFittedRatio

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

Definition at line 72 of file InDetAmbiScoringTool.h.

◆ m_factorTrtRatio

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

Definition at line 72 of file InDetAmbiScoringTool.h.

◆ m_fieldCacheCondObjInputKey

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

Definition at line 85 of file InDetAmbiScoringTool.h.

◆ m_maxB_LayerHits

int InDet::InDetAmbiScoringTool::m_maxB_LayerHits
private

Definition at line 68 of file InDetAmbiScoringTool.h.

◆ m_maxDblHoles

int InDet::InDetAmbiScoringTool::m_maxDblHoles
private

Definition at line 67 of file InDetAmbiScoringTool.h.

◆ m_maxDoubleHoles

int InDet::InDetAmbiScoringTool::m_maxDoubleHoles
private

Definition at line 102 of file InDetAmbiScoringTool.h.

◆ m_maxEta

double InDet::InDetAmbiScoringTool::m_maxEta
private

maximal Eta cut

Definition at line 98 of file InDetAmbiScoringTool.h.

◆ m_maxGangedFakes

int InDet::InDetAmbiScoringTool::m_maxGangedFakes
private

Definition at line 68 of file InDetAmbiScoringTool.h.

◆ m_maxHits

int InDet::InDetAmbiScoringTool::m_maxHits
private

Definition at line 67 of file InDetAmbiScoringTool.h.

◆ m_maxPixelHits

int InDet::InDetAmbiScoringTool::m_maxPixelHits
private

Definition at line 68 of file InDetAmbiScoringTool.h.

◆ m_maxPixelHoles

int InDet::InDetAmbiScoringTool::m_maxPixelHoles
private

maximal number of Pixel holes

Definition at line 104 of file InDetAmbiScoringTool.h.

◆ m_maxPixHoles

int InDet::InDetAmbiScoringTool::m_maxPixHoles
private

Definition at line 67 of file InDetAmbiScoringTool.h.

◆ m_maxPixLay

int InDet::InDetAmbiScoringTool::m_maxPixLay
private

Definition at line 68 of file InDetAmbiScoringTool.h.

◆ m_maxRPhiImp

double InDet::InDetAmbiScoringTool::m_maxRPhiImp
private

maximal RPhi impact parameter cut

Definition at line 99 of file InDetAmbiScoringTool.h.

◆ m_maxRPhiImpEM

double InDet::InDetAmbiScoringTool::m_maxRPhiImpEM
private

maximal RPhi impact parameter cut track that match EM clusters

Definition at line 109 of file InDetAmbiScoringTool.h.

◆ m_maxSCT_Holes

int InDet::InDetAmbiScoringTool::m_maxSCT_Holes
private

Definition at line 67 of file InDetAmbiScoringTool.h.

◆ m_maxSctHoles

int InDet::InDetAmbiScoringTool::m_maxSctHoles
private

maximal number of SCT holes

Definition at line 105 of file InDetAmbiScoringTool.h.

◆ m_maxSigmaChi2

int InDet::InDetAmbiScoringTool::m_maxSigmaChi2
private

Definition at line 67 of file InDetAmbiScoringTool.h.

◆ m_maxSiHoles

int InDet::InDetAmbiScoringTool::m_maxSiHoles
private

maximal number of holes (Pixel+SCT)

Definition at line 103 of file InDetAmbiScoringTool.h.

◆ m_maxTrtFittedRatio

int InDet::InDetAmbiScoringTool::m_maxTrtFittedRatio
private

Definition at line 67 of file InDetAmbiScoringTool.h.

◆ m_maxTrtRatio

int InDet::InDetAmbiScoringTool::m_maxTrtRatio
private

Definition at line 67 of file InDetAmbiScoringTool.h.

◆ m_maxZImp

double InDet::InDetAmbiScoringTool::m_maxZImp
private

maximal z impact parameter cut

Definition at line 100 of file InDetAmbiScoringTool.h.

◆ m_minPixel

int InDet::InDetAmbiScoringTool::m_minPixel
private

minimum number of pixel clusters

Definition at line 108 of file InDetAmbiScoringTool.h.

◆ m_minPt

double InDet::InDetAmbiScoringTool::m_minPt
private

cuts for selecting good tracks

minimal Pt cut

Definition at line 97 of file InDetAmbiScoringTool.h.

◆ m_minSiClusters

int InDet::InDetAmbiScoringTool::m_minSiClusters
private

minimal number of Si clusters

Definition at line 101 of file InDetAmbiScoringTool.h.

◆ m_minTRTonTrk

int InDet::InDetAmbiScoringTool::m_minTRTonTrk
private

minimum number of TRT hits

Definition at line 106 of file InDetAmbiScoringTool.h.

◆ m_minTRTprecision

double InDet::InDetAmbiScoringTool::m_minTRTprecision
private

minimum fraction of TRT precision hits

Definition at line 107 of file InDetAmbiScoringTool.h.

◆ m_phiWidthEm

float InDet::InDetAmbiScoringTool::m_phiWidthEm
private

Definition at line 112 of file InDetAmbiScoringTool.h.

◆ m_selectortool

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

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

Definition at line 75 of file InDetAmbiScoringTool.h.

◆ m_summaryTypeScore

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

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

Definition at line 78 of file InDetAmbiScoringTool.h.

◆ m_useAmbigFcn

bool InDet::InDetAmbiScoringTool::m_useAmbigFcn
private

use the scoring tuned to Ambiguity processing or not

Definition at line 89 of file InDetAmbiScoringTool.h.

◆ m_useEmClusSeed

bool InDet::InDetAmbiScoringTool::m_useEmClusSeed
private

Definition at line 111 of file InDetAmbiScoringTool.h.

◆ m_useITkAmbigFcn

bool InDet::InDetAmbiScoringTool::m_useITkAmbigFcn
private

use the ITk scoring tuned to Ambiguity processing or not

Definition at line 119 of file InDetAmbiScoringTool.h.

◆ m_usePixel

bool InDet::InDetAmbiScoringTool::m_usePixel
private

Definition at line 93 of file InDetAmbiScoringTool.h.

◆ m_useSCT

bool InDet::InDetAmbiScoringTool::m_useSCT
private

Definition at line 94 of file InDetAmbiScoringTool.h.

◆ m_useSigmaChi2

bool InDet::InDetAmbiScoringTool::m_useSigmaChi2
private

Definition at line 91 of file InDetAmbiScoringTool.h.

◆ m_useTRT_AmbigFcn

bool InDet::InDetAmbiScoringTool::m_useTRT_AmbigFcn
private

Definition at line 90 of file InDetAmbiScoringTool.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::maxPixelHoles
@ maxPixelHoles
Definition: IInDetEtaDependentCutsSvc.h:16
covarianceTool.ndf
ndf
Definition: covarianceTool.py:678
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
InDet::InDetAmbiScoringTool::m_boundsTrtRatio
std::vector< double > m_boundsTrtRatio
Definition: InDetAmbiScoringTool.h:72
InDet::InDetAmbiScoringTool::m_etaWidthEm
float m_etaWidthEm
Definition: InDetAmbiScoringTool.h:113
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::InDetAmbiScoringTool::isEmCaloCompatible
bool isEmCaloCompatible(const Trk::Track &track, const EventContext &ctx) const
Check if the cluster is compatible with a EM cluster.
Definition: InDetAmbiScoringTool.cxx:882
InDet::InDetAmbiScoringTool::m_minTRTprecision
double m_minTRTprecision
minimum fraction of TRT precision hits
Definition: InDetAmbiScoringTool.h:107
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
Trk::numberOfInnermostPixelLayerHits
@ numberOfInnermostPixelLayerHits
these are the hits in the 1st pixel layer
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:53
InDet::InDetAmbiScoringTool::m_minPixel
int m_minPixel
minimum number of pixel clusters
Definition: InDetAmbiScoringTool.h:108
InDet::InDetAmbiScoringTool::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: InDetAmbiScoringTool.cxx:159
python.Constants.FATAL
int FATAL
Definition: Control/AthenaCommon/python/Constants.py:19
SG::ReadCondHandle
Definition: ReadCondHandle.h:44
IDTPM::R
float R(const U &p)
Definition: TrackParametersHelper.h:101
AtlasFieldCacheCondObj
Definition: AtlasFieldCacheCondObj.h:19
InDet::InDetAmbiScoringTool::m_maxHits
int m_maxHits
Definition: InDetAmbiScoringTool.h:67
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
Trk::ParametersT
Dummy class used to allow special convertors to be called for surfaces owned by a detector element.
Definition: EMErrorDetail.h:25
InDet::InDetAmbiScoringTool::m_etaDependentCutsSvc
ServiceHandle< IInDetEtaDependentCutsSvc > m_etaDependentCutsSvc
ITk eta-dependent cuts.
Definition: InDetAmbiScoringTool.h:122
InDet::InDetAmbiScoringTool::m_factorDblHoles
std::vector< double > m_factorDblHoles
Definition: InDetAmbiScoringTool.h:69
initialize
void initialize()
Definition: run_EoverP.cxx:894
InDet::InDetAmbiScoringTool::m_maxSigmaChi2
int m_maxSigmaChi2
Definition: InDetAmbiScoringTool.h:67
InDet::InDetAmbiScoringTool::m_maxZImp
double m_maxZImp
maximal z impact parameter cut
Definition: InDetAmbiScoringTool.h:100
InDet::InDetAmbiScoringTool::m_useAmbigFcn
bool m_useAmbigFcn
use the scoring tuned to Ambiguity processing or not
Definition: InDetAmbiScoringTool.h:89
InDet::InDetAmbiScoringTool::m_useEmClusSeed
bool m_useEmClusSeed
Definition: InDetAmbiScoringTool.h:111
Trk::numberOfTrackSummaryTypes
@ numberOfTrackSummaryTypes
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:189
test_pyathena.pt
pt
Definition: test_pyathena.py:11
InDet::InDetAmbiScoringTool::m_useTRT_AmbigFcn
bool m_useTRT_AmbigFcn
Definition: InDetAmbiScoringTool.h:90
InDet::InDetAmbiScoringTool::m_factorSCT_Holes
std::vector< double > m_factorSCT_Holes
Definition: InDetAmbiScoringTool.h:69
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
InDet::InDetAmbiScoringTool::m_boundsSigmaChi2
std::vector< double > m_boundsSigmaChi2
Definition: InDetAmbiScoringTool.h:71
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::InDetAmbiScoringTool::m_useSigmaChi2
bool m_useSigmaChi2
Definition: InDetAmbiScoringTool.h:91
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
InDet::InDetAmbiScoringTool::m_minSiClusters
int m_minSiClusters
minimal number of Si clusters
Definition: InDetAmbiScoringTool.h:101
Trk::standardDeviationOfChi2OS
@ standardDeviationOfChi2OS
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:150
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
InDet::InDetAmbiScoringTool::m_factorTrtRatio
std::vector< double > m_factorTrtRatio
Definition: InDetAmbiScoringTool.h:72
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::InDetAmbiScoringTool::m_factorPixLay
std::vector< double > m_factorPixLay
Definition: InDetAmbiScoringTool.h:70
InDet::InDetAmbiScoringTool::m_extrapolator
ToolHandle< Trk::IExtrapolator > m_extrapolator
Definition: InDetAmbiScoringTool.h:82
InDet::InDetAmbiScoringTool::m_maxTrtRatio
int m_maxTrtRatio
Definition: InDetAmbiScoringTool.h:67
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::InDetAmbiScoringTool::m_minPt
double m_minPt
cuts for selecting good tracks
Definition: InDetAmbiScoringTool.h:97
InDet::maxSctHoles
@ maxSctHoles
Definition: IInDetEtaDependentCutsSvc.h:16
InDet::InDetAmbiScoringTool::m_maxDblHoles
int m_maxDblHoles
Definition: InDetAmbiScoringTool.h:67
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
PUfitVar::maxEta
constexpr float maxEta
Definition: GepMETPufitAlg.cxx:13
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
InDet::InDetAmbiScoringTool::m_maxB_LayerHits
int m_maxB_LayerHits
Definition: InDetAmbiScoringTool.h:68
InDet::InDetAmbiScoringTool::m_factorB_LayerHits
std::vector< double > m_factorB_LayerHits
Definition: InDetAmbiScoringTool.h:70
InDet::InDetAmbiScoringTool::m_useITkAmbigFcn
bool m_useITkAmbigFcn
use the ITk scoring tuned to Ambiguity processing or not
Definition: InDetAmbiScoringTool.h:119
InDet::InDetAmbiScoringTool::m_maxSctHoles
int m_maxSctHoles
maximal number of SCT holes
Definition: InDetAmbiScoringTool.h:105
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::InDetAmbiScoringTool::m_factorTrtFittedRatio
std::vector< double > m_factorTrtFittedRatio
Definition: InDetAmbiScoringTool.h:72
lumiFormat.i
int i
Definition: lumiFormat.py:92
Trk::numberOfTRTOutliers
@ numberOfTRTOutliers
number of TRT holes
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:81
beamspotman.n
n
Definition: beamspotman.py:731
InDet::InDetAmbiScoringTool::m_summaryTypeScore
std::vector< Trk::TrackScore > m_summaryTypeScore
holds the scores assigned to each Trk::SummaryType from the track's Trk::TrackSummary
Definition: InDetAmbiScoringTool.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
InDet::InDetAmbiScoringTool::m_caloClusterROIKey
SG::ReadHandleKey< ROIPhiRZContainer > m_caloClusterROIKey
Definition: InDetAmbiScoringTool.h:116
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
InDet::InDetAmbiScoringTool::m_factorPixelHits
std::vector< double > m_factorPixelHits
Definition: InDetAmbiScoringTool.h:70
InDet::InDetAmbiScoringTool::setupScoreModifiers
void setupScoreModifiers()
Definition: InDetAmbiScoringTool.cxx:592
Trk::numberOfPixelDeadSensors
@ numberOfPixelDeadSensors
number of pixel hits with broad errors (width/sqrt(12))
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:65
InDet::InDetAmbiScoringTool::ambigScore
Trk::TrackScore ambigScore(const Trk::Track &track, const Trk::TrackSummary &trackSum) const
Definition: InDetAmbiScoringTool.cxx:371
PlotPulseshapeFromCool.input
input
Definition: PlotPulseshapeFromCool.py:106
chi2
double chi2(TH1 *h0, TH1 *h1)
Definition: comparitor.cxx:522
Trk::TrackScore
float TrackScore
Definition: TrackScore.h:10
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
InDet::InDetAmbiScoringTool::m_factorSigmaChi2
std::vector< double > m_factorSigmaChi2
Definition: InDetAmbiScoringTool.h:70
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
InDet::InDetAmbiScoringTool::m_maxSiHoles
int m_maxSiHoles
maximal number of holes (Pixel+SCT)
Definition: InDetAmbiScoringTool.h:103
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
Trk::numberOfGangedPixels
@ numberOfGangedPixels
number of Ganged Pixels flagged as fakes
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:61
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
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::InDetAmbiScoringTool::m_maxSCT_Holes
int m_maxSCT_Holes
Definition: InDetAmbiScoringTool.h:67
InDet::InDetAmbiScoringTool::m_selectortool
ToolHandle< ITrtDriftCircleCutTool > m_selectortool
Returns minimum number of expected TRT drift circles depending on eta.
Definition: InDetAmbiScoringTool.h:75
InDet::InDetAmbiScoringTool::m_maxDoubleHoles
int m_maxDoubleHoles
Definition: InDetAmbiScoringTool.h:102
SG::CondHandleKey::initialize
StatusCode initialize(bool used=true)
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
InDet::InDetAmbiScoringTool::m_maxEta
double m_maxEta
maximal Eta cut
Definition: InDetAmbiScoringTool.h:98
InDet::InDetAmbiScoringTool::m_factorPixHoles
std::vector< double > m_factorPixHoles
Definition: InDetAmbiScoringTool.h:69
Trk::ParametersBase::momentum
const Amg::Vector3D & momentum() const
Access method for the momentum.
InDet::InDetAmbiScoringTool::m_useSCT
bool m_useSCT
Definition: InDetAmbiScoringTool.h:94
a
TList * a
Definition: liststreamerinfos.cxx:10
InDet::InDetAmbiScoringTool::m_factorHits
std::vector< double > m_factorHits
Definition: InDetAmbiScoringTool.h:69
h
python.compareTCTs.ratio
ratio
Definition: compareTCTs.py:295
InDet::InDetAmbiScoringTool::m_maxRPhiImp
double m_maxRPhiImp
maximal RPhi impact parameter cut
Definition: InDetAmbiScoringTool.h:99
InDet::InDetAmbiScoringTool::m_maxPixHoles
int m_maxPixHoles
Definition: InDetAmbiScoringTool.h:67
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
InDet::InDetAmbiScoringTool::m_usePixel
bool m_usePixel
Definition: InDetAmbiScoringTool.h:93
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::InDetAmbiScoringTool::m_fieldCacheCondObjInputKey
SG::ReadCondHandleKey< AtlasFieldCacheCondObj > m_fieldCacheCondObjInputKey
Definition: InDetAmbiScoringTool.h:85
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:616
InDet::InDetAmbiScoringTool::m_factorGangedFakes
std::vector< double > m_factorGangedFakes
Definition: InDetAmbiScoringTool.h:70
InDet::InDetAmbiScoringTool::m_maxRPhiImpEM
double m_maxRPhiImpEM
maximal RPhi impact parameter cut track that match EM clusters
Definition: InDetAmbiScoringTool.h:109
LArCellBinning.step
step
Definition: LArCellBinning.py:158
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
xAOD::numPixelHoles
@ numPixelHoles
Definition: TrackingPrimitives.h:517
InDet::InDetAmbiScoringTool::m_maxPixelHoles
int m_maxPixelHoles
maximal number of Pixel holes
Definition: InDetAmbiScoringTool.h:104
InDet::InDetAmbiScoringTool::m_minTRTonTrk
int m_minTRTonTrk
minimum number of TRT hits
Definition: InDetAmbiScoringTool.h:106
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
python.Constants.VERBOSE
int VERBOSE
Definition: Control/AthenaCommon/python/Constants.py:14
Trk::numberOfRpcEtaHits
@ numberOfRpcEtaHits
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:110
InDet::InDetAmbiScoringTool::m_boundsTrtFittedRatio
std::vector< double > m_boundsTrtFittedRatio
Definition: InDetAmbiScoringTool.h:72
Trk::numberOfSCTDoubleHoles
@ numberOfSCTDoubleHoles
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:75
InDet::InDetAmbiScoringTool::m_phiWidthEm
float m_phiWidthEm
Definition: InDetAmbiScoringTool.h:112
InDet::InDetAmbiScoringTool::score
virtual Trk::TrackScore score(const Trk::Track &track) const override
create a score based on how good the passed track is
Definition: InDetAmbiScoringTool.cxx:144
InDet::InDetAmbiScoringTool::m_maxGangedFakes
int m_maxGangedFakes
Definition: InDetAmbiScoringTool.h:68
InDet::InDetAmbiScoringTool::m_maxPixelHits
int m_maxPixelHits
Definition: InDetAmbiScoringTool.h:68
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::InDetAmbiScoringTool::m_beamSpotKey
SG::ReadCondHandleKey< InDet::BeamSpotData > m_beamSpotKey
Definition: InDetAmbiScoringTool.h:80
InDet::InDetAmbiScoringTool::m_maxPixLay
int m_maxPixLay
Definition: InDetAmbiScoringTool.h:68
TauGNNUtils::Variables::Track::trackEta
bool trackEta(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
Definition: TauGNNUtils.cxx:475
Trk::numberOfMdtHits
@ numberOfMdtHits
number of mdt hits
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:103
fitman.k
k
Definition: fitman.py:528
InDet::maxDoubleHoles
@ maxDoubleHoles
Definition: IInDetEtaDependentCutsSvc.h:15
InDet::InDetAmbiScoringTool::m_maxTrtFittedRatio
int m_maxTrtFittedRatio
Definition: InDetAmbiScoringTool.h:67
Trk::TrackInfo::Unknown
@ Unknown
Track fitter not defined.
Definition: Tracking/TrkEvent/TrkTrack/TrkTrack/TrackInfo.h:41