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 bool passBasicSelections (const Trk::Track &track) const override
 check track selections independent from TrackSummary More...
 
virtual Trk::TrackScore score (const Trk::Track &track, bool checkBasicSel) const override
 create a score based on how good the passed track is More...
 
virtual Trk::TrackScore simpleScore (const Trk::Track &track, const Trk::TrackSummary &trackSum) const override
 create a score based on how good the passed TrackSummary is More...
 
Trk::TrackScore ambigScore (const Trk::Track &track, const Trk::TrackSummary &trackSum) const
 
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 = -1
 
int m_maxPixHoles = -1
 
int m_maxSCT_Holes = -1
 
int m_maxHits = -1
 
int m_maxSigmaChi2 = -1
 
int m_maxTrtRatio = -1
 
int m_maxTrtFittedRatio = -1
 
int m_maxB_LayerHits = -1
 
int m_maxPixelHits = -1
 
int m_maxPixLay = -1
 
int m_maxGangedFakes = -1
 
std::vector< double > m_factorDblHoles
 
std::vector< double > m_factorPixHoles
 
std::vector< double > m_factorSCT_Holes
 
std::vector< double > m_factorHits
 
std::vector< double > m_factorSigmaChi2
 
std::vector< double > m_factorB_LayerHits
 
std::vector< double > m_factorPixelHits
 
std::vector< double > m_factorPixLay
 
std::vector< double > m_factorGangedFakes
 
std::vector< double > m_boundsSigmaChi2
 
std::vector< double > m_boundsTrtRatio
 
std::vector< double > m_factorTrtRatio
 
std::vector< double > m_boundsTrtFittedRatio
 
std::vector< double > m_factorTrtFittedRatio
 
ToolHandle< ITrtDriftCircleCutToolm_selectortool {this, "DriftCircleCutTool", "InDet::InDetTrtDriftCircleCutTool"}
 Returns minimum number of expected TRT drift circles depending on eta. More...
 
std::vector< Trk::TrackScorem_summaryTypeScore
 holds the scores assigned to each Trk::SummaryType from the track's Trk::TrackSummary More...
 
SG::ReadCondHandleKey< InDet::BeamSpotDatam_beamSpotKey { this, "BeamSpotKey", "BeamSpotData", "SG key for beam spot" }
 
ToolHandle< Trk::IExtrapolatorm_extrapolator {this, "Extrapolator", "Trk::Extrapolator"}
 
SG::ReadCondHandleKey< AtlasFieldCacheCondObjm_fieldCacheCondObjInputKey {this, "AtlasFieldCacheCondObj", "fieldCondObj", "Name of the Magnetic Field conditions object key"}
 
BooleanProperty m_useAmbigFcn {this, "useAmbigFcn", true}
 use the scoring tuned to Ambiguity processing or not More...
 
BooleanProperty m_useTRT_AmbigFcn {this, "useTRT_AmbigFcn", false}
 
BooleanProperty m_useSigmaChi2 {this, "useSigmaChi2", false}
 
BooleanProperty m_usePixel {this, "usePixel", true}
 
BooleanProperty m_useSCT {this, "useSCT", true}
 
DoubleProperty m_minPt {this, "minPt", 500., "minimal Pt cut"}
 cuts for selecting good tracks More...
 
DoubleProperty m_maxEta {this, "maxEta", 2.7, "maximal Eta cut"}
 
DoubleProperty m_maxRPhiImp {this, "maxRPhiImp", 10., "maximal RPhi impact parameter cut"}
 
DoubleProperty m_maxZImp {this, "maxZImp", 250., "maximal z impact parameter cut"}
 
IntegerProperty m_minSiClusters {this, "minSiClusters", 7, "minimal number of Si clusters"}
 
IntegerProperty m_maxDoubleHoles {this, "maxDoubleHoles", 2, "maximum number of SCT double holes"}
 
IntegerProperty m_maxSiHoles {this, "maxSiHoles", 5, "max number of Silicon (Pixel+SCT) holes"}
 
IntegerProperty m_maxPixelHoles {this, "maxPixelHoles", 5, "max number of Pixel holes"}
 
IntegerProperty m_maxSctHoles {this, "maxSCTHoles", 5, "max number of SCT holes"}
 
IntegerProperty m_minTRTonTrk {this, "minTRTonTrk", 9, "minimum number of TRT hits"}
 
DoubleProperty m_minTRTprecision {this, "minTRTPrecisionFraction", 0.5, "minimum fraction of TRT precision hits"}
 
IntegerProperty m_minPixel {this, "minPixel", 0, "minimum number of pixel clusters"}
 
DoubleProperty m_maxRPhiImpEM {this, "maxRPhiImpEM", 50., "maximal RPhi impact parameter cut track that match EM clusters"}
 
BooleanProperty m_useEmClusSeed {this, "doEmCaloSeed", true}
 
FloatProperty m_phiWidthEm {this, "phiWidthEM", 0.075}
 
FloatProperty m_etaWidthEm {this, "etaWidthEM", 0.05}
 
SG::ReadHandleKey< ROIPhiRZContainerm_caloClusterROIKey {this, "EMROIPhiRZContainer", "", "Name of the calo cluster ROIs in Phi,R,Z parameterization"}
 
BooleanProperty m_useITkAmbigFcn {this, "useITkAmbigFcn", false}
 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),
27 {
28  declareInterface<Trk::ITrackScoringTool>(this);
29 
30  //set values for scores
32  m_summaryTypeScore[Trk::numberOfPixelHoles] = -10; // a hole is bad
33  m_summaryTypeScore[Trk::numberOfInnermostPixelLayerHits] = 10; // addition for being b-layer
34  m_summaryTypeScore[Trk::numberOfGangedPixels] = -5; // decrease for being ganged
35  m_summaryTypeScore[Trk::numberOfGangedFlaggedFakes] = -10; // decrease for being ganged fake
36  m_summaryTypeScore[Trk::numberOfSCTHits] = 10; // half of a pixel, since only 1dim
37  m_summaryTypeScore[Trk::numberOfSCTHoles] = -5; // a hole is bad !
38  m_summaryTypeScore[Trk::numberOfSCTDoubleHoles] = -15; // a double hole is even worse !
39  m_summaryTypeScore[Trk::numberOfTRTHits] = 1; // 10 straws ~ 1 SCT
40  m_summaryTypeScore[Trk::numberOfTRTHighThresholdHits] = 0; // addition for being TR
41  m_summaryTypeScore[Trk::numberOfOutliersOnTrack] = -1; // -ME- TRT oulier should not kill 5 TRT on track (was -5)
42 
43  // scoring for Muons not needed
51 
52 }

◆ ~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 331 of file InDetAmbiScoringTool.cxx.

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

◆ 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 56 of file InDetAmbiScoringTool.cxx.

57 {
59  if (sc.isFailure()) return sc;
60 
61  sc = m_extrapolator.retrieve();
62  if (sc.isFailure()) {
63  msg(MSG::FATAL) << "Failed to retrieve tool " << m_extrapolator << endmsg;
64  return StatusCode::FAILURE;
65  } else
66  msg(MSG::DEBUG) << "Retrieved tool " << m_extrapolator << endmsg;
67 
68  // Get segment selector tool
69  //
70  ATH_CHECK(m_selectortool.retrieve( DisableTool{m_selectortool.empty()} ) );
71 
73 
75  msg(MSG::FATAL) << "Both on, normal ambi funciton and the one for back tracking, configuration problem, not recoverable" << endmsg;
76  return StatusCode::FAILURE;
77  }
78 
79  // Read handle for AtlasFieldCacheCondObj
81 
82  if (not m_etaDependentCutsSvc.name().empty()) ATH_CHECK(m_etaDependentCutsSvc.retrieve());
83 
85 
87 
88  return StatusCode::SUCCESS;
89 }

◆ inputHandles()

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

Return this algorithm's input handles.

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

◆ interfaceID()

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

Definition at line 37 of file ITrackScoringTool.h.

38 {
39  return IID_ITrackScoringTool;
40 }

◆ isEmCaloCompatible()

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

Check if the cluster is compatible with a EM cluster.

Definition at line 842 of file InDetAmbiScoringTool.cxx.

843 {
844  const Trk::TrackParameters * Tp = track.trackParameters()->front();
845 
846  //Switch to the track parameters of the first measurment instead of the perigee parameters
847  ATH_MSG_VERBOSE ("--> Looping over TSOS's");
848  for (const auto *tsos : *track.trackStateOnSurfaces() ) {
849  // get measurment from TSOS
850  const auto *meas = tsos->measurementOnTrack();
851  const auto *tp = tsos->trackParameters();
852  // if we do not have a measurement, we should just mark it
853  if (!meas || !tp) {
854  continue;
855  } else {
856  Tp = tp;
857  break;
858  }
859  }
860 
861  double F = Tp->momentum().phi();
862  double E = Tp->momentum().eta();
863  double R = Tp->position().perp();
864  double Z = Tp->position().z();
866  return calo->hasMatchingROI(F, E, R, Z, m_phiWidthEm, m_etaWidthEm);
867 }

◆ msg() [1/2]

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

Definition at line 24 of file AthCommonMsg.h.

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

◆ msg() [2/2]

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

Definition at line 27 of file AthCommonMsg.h.

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

◆ msgLvl()

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

Definition at line 30 of file AthCommonMsg.h.

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

◆ outputHandles()

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

Return this algorithm's output handles.

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

◆ passBasicSelections()

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

check track selections independent from TrackSummary

Implements Trk::ITrackScoringTool.

Definition at line 92 of file InDetAmbiScoringTool.cxx.

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

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

create a score based on how good the passed track is

Implements Trk::ITrackScoringTool.

Definition at line 168 of file InDetAmbiScoringTool.cxx.

169 {
170  if(checkBasicSel && !passBasicSelections(track)){
171  ATH_MSG_VERBOSE ("Track fail basic selections");
172  return Trk::TrackScore(0);
173  }
174  if (!track.trackSummary()) {
175  ATH_MSG_FATAL("Track without a summary");
176  }
177  ATH_MSG_VERBOSE ("Track has TrackSummary "<<*track.trackSummary());
179 
180  ATH_MSG_DEBUG ("Track has Score: "<<score);
181 
182  return score;
183 }

◆ setupScoreModifiers()

void InDet::InDetAmbiScoringTool::setupScoreModifiers ( )
private

Definition at line 552 of file InDetAmbiScoringTool.cxx.

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

◆ 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 187 of file InDetAmbiScoringTool.cxx.

188 {
189  int numPixel = trackSummary.get(Trk::numberOfPixelHits);
190  int numSCT = trackSummary.get(Trk::numberOfSCTHits);
191  int numTRT = trackSummary.get(Trk::numberOfTRTHits);
192  int numTRTTube = trackSummary.get(Trk::numberOfTRTTubeHits);
193  int numPixelHoles = trackSummary.get(Trk::numberOfPixelHoles);
194  int numSCTHoles = trackSummary.get(Trk::numberOfSCTHoles);
195  int numSCTDoubleHoles = trackSummary.get(Trk::numberOfSCTDoubleHoles);
196  int numPixelDead = trackSummary.get(Trk::numberOfPixelDeadSensors);
197  int numSCTDead = trackSummary.get(Trk::numberOfSCTDeadSensors);
198 
199  if (numPixelDead<0) numPixelDead = 0;
200  if (numSCTDead<0) numSCTDead = 0;
201 
202  // is this a track from the pattern or a fitted track ?
203  bool ispatterntrack = (track.info().trackFitter()==Trk::TrackInfo::Unknown);
204  //
205  // --- reject bad tracks
206  //
207  //
208  // --- the following cuts we only apply to fitted tracks
209  //
210  if (ispatterntrack) {
211  ATH_MSG_DEBUG ("==> this is a pattern track, no hit cuts !");
212  } else {
213  ATH_MSG_DEBUG ("==> this is a refitted track, so we can use the chi2 and other stuff ! ");
214 
215  double trackEta = track.trackParameters()->front()->eta();
216 
217  // NdF cut :
218  if (track.fitQuality()) {
219  ATH_MSG_DEBUG ("numberDoF = "<<track.fitQuality()->numberDoF());
220  }
221  // Number of double Holes
222  if (numSCTDoubleHoles>=0) {
223  int maxDoubleHoles = m_etaDependentCutsSvc.name().empty() ?
224  m_maxDoubleHoles.value() : m_etaDependentCutsSvc->getMaxDoubleHolesAtEta(trackEta);
225  if (numSCTDoubleHoles > maxDoubleHoles ) {
226  ATH_MSG_DEBUG ("Track has "<< numSCTDoubleHoles <<" double holes, reject it!");
227  return Trk::TrackScore(0);
228  }
229  }
230  // Number of Si (Pixel+SCT) Holes
231  if (numSCTHoles>=0 && numPixelHoles>=0) {
232  int maxSiHoles = m_etaDependentCutsSvc.name().empty() ?
233  m_maxSiHoles.value() : m_etaDependentCutsSvc->getMaxSiHolesAtEta(trackEta);
234  if (numPixelHoles+numSCTHoles > maxSiHoles ) {
235  ATH_MSG_DEBUG ("Track has "<< numPixelHoles <<" Pixel and " << numSCTHoles << " SCT holes, reject it!");
236  return Trk::TrackScore(0);
237  }
238  }
239  // Number of Pixel Holes
240  if ( numPixelHoles>=0 ) {
241  int maxPixelHoles = m_etaDependentCutsSvc.name().empty() ?
242  m_maxPixelHoles.value() : m_etaDependentCutsSvc->getMaxPixelHolesAtEta(trackEta);
243  if (numPixelHoles > maxPixelHoles ) {
244  ATH_MSG_DEBUG ("Track has "<< numPixelHoles <<" Pixel holes, reject it!");
245  return Trk::TrackScore(0);
246  }
247  }
248  // Number of SCT Holes
249  if ( numSCTHoles>=0 ) {
250  int maxSctHoles = m_etaDependentCutsSvc.name().empty() ?
251  m_maxSctHoles.value() : m_etaDependentCutsSvc->getMaxSctHolesAtEta(trackEta);
252  if ( numSCTHoles > maxSctHoles ) {
253  ATH_MSG_DEBUG ("Track has "<< numSCTHoles << " SCT holes, reject it!");
254  return Trk::TrackScore(0);
255  }
256  }
257  // TRT cut
258  if (!m_useITkAmbigFcn && numTRT > 0 && numTRT < m_minTRTonTrk) {
259  ATH_MSG_DEBUG ("Track has " << numTRT << " TRT hits, reject it");
260  return Trk::TrackScore(0);
261  }
262  // TRT precision hits cut
263  if (!m_useITkAmbigFcn && numTRT >= 15 && ((double)(numTRT-numTRTTube))/numTRT < m_minTRTprecision) {
264  ATH_MSG_DEBUG ("Track has " << ((double)numTRTTube)/numTRT << " TRT tube hit fraction, reject it");
265  return Trk::TrackScore(0);
266  }
267  // Number of Si Clusters
268  if ( numSCT>=0 && numPixel>=0) {
269  int minSiClusters = m_etaDependentCutsSvc.name().empty() ?
270  m_minSiClusters.value() : m_etaDependentCutsSvc->getMinSiHitsAtEta(trackEta);
271  if (numPixel+numSCT+numPixelDead+numSCTDead < minSiClusters) {
272  ATH_MSG_DEBUG ("Track has " << numPixel+numSCT << " Si clusters and " << numPixelDead+numSCTDead << " dead sensors, reject it");
273  return Trk::TrackScore(0);
274  }
275  }
276  // Number of pixel clusters
277  if (numPixel>=0) {
278  int minPixel = m_etaDependentCutsSvc.name().empty() ?
279  m_minPixel.value() : m_etaDependentCutsSvc->getMinPixelHitsAtEta(trackEta);
280  if(numPixel < minPixel) {
281  ATH_MSG_DEBUG ("Track has " << numPixel << " pixel hits, reject it");
282  return Trk::TrackScore(0);
283  }
284  }
285  }
286 
287  //
288  // --- now start scoring
289  //
290 
292 
293  //
294  // --- use scoring function
295  //
296 
297  return ambigScore(track,trackSummary);
298 
299  } else {
300 
301  //
302  // use classical score
303  //
304  // score of 100 per track
305  Trk::TrackScore score (100);
306  // --- summary score analysis
307  for (int i=0; i<Trk::numberOfTrackSummaryTypes; ++i) {
308  int value = trackSummary.get(static_cast<Trk::SummaryType>(i));
309  //value is -1 if undefined.
310  if (value>0) {
312  ATH_MSG_DEBUG ("\tType ["<<i<<"], value \t= "<<value<<"], score \t="<<score);
313  }
314  }
315  // --- prob(chi2,NDF), protect for chi2 <= 0
316  if (track.fitQuality()!=nullptr && track.fitQuality()->chiSquared()>0 && track.fitQuality()->numberDoF()>0 ) {
317  double p = 1.0-Genfun::CumulativeChiSquare(track.fitQuality()->numberDoF())(track.fitQuality()->chiSquared());
318  if ( p > 0 )
319  score += log10( p );
320  else
321  score -= 50;
322  }
323 
324  return score;
325  }
326 
327 }

◆ 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 86 of file InDetAmbiScoringTool.h.

◆ m_boundsSigmaChi2

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

Definition at line 76 of file InDetAmbiScoringTool.h.

◆ m_boundsTrtFittedRatio

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

Definition at line 77 of file InDetAmbiScoringTool.h.

◆ m_boundsTrtRatio

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

Definition at line 77 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 134 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 141 of file InDetAmbiScoringTool.h.

◆ m_etaWidthEm

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

Definition at line 132 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 {this, "Extrapolator", "Trk::Extrapolator"}
private

Definition at line 88 of file InDetAmbiScoringTool.h.

◆ m_factorB_LayerHits

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

Definition at line 75 of file InDetAmbiScoringTool.h.

◆ m_factorDblHoles

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

Definition at line 74 of file InDetAmbiScoringTool.h.

◆ m_factorGangedFakes

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

Definition at line 75 of file InDetAmbiScoringTool.h.

◆ m_factorHits

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

Definition at line 74 of file InDetAmbiScoringTool.h.

◆ m_factorPixelHits

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

Definition at line 75 of file InDetAmbiScoringTool.h.

◆ m_factorPixHoles

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

Definition at line 74 of file InDetAmbiScoringTool.h.

◆ m_factorPixLay

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

Definition at line 75 of file InDetAmbiScoringTool.h.

◆ m_factorSCT_Holes

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

Definition at line 74 of file InDetAmbiScoringTool.h.

◆ m_factorSigmaChi2

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

Definition at line 75 of file InDetAmbiScoringTool.h.

◆ m_factorTrtFittedRatio

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

Definition at line 77 of file InDetAmbiScoringTool.h.

◆ m_factorTrtRatio

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

Definition at line 77 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 92 of file InDetAmbiScoringTool.h.

◆ m_maxB_LayerHits

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

Definition at line 72 of file InDetAmbiScoringTool.h.

◆ m_maxDblHoles

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

Definition at line 70 of file InDetAmbiScoringTool.h.

◆ m_maxDoubleHoles

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

Definition at line 113 of file InDetAmbiScoringTool.h.

◆ m_maxEta

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

Definition at line 105 of file InDetAmbiScoringTool.h.

◆ m_maxGangedFakes

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

Definition at line 73 of file InDetAmbiScoringTool.h.

◆ m_maxHits

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

Definition at line 71 of file InDetAmbiScoringTool.h.

◆ m_maxPixelHits

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

Definition at line 72 of file InDetAmbiScoringTool.h.

◆ m_maxPixelHoles

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

Definition at line 117 of file InDetAmbiScoringTool.h.

◆ m_maxPixHoles

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

Definition at line 70 of file InDetAmbiScoringTool.h.

◆ m_maxPixLay

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

Definition at line 73 of file InDetAmbiScoringTool.h.

◆ m_maxRPhiImp

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

Definition at line 106 of file InDetAmbiScoringTool.h.

◆ m_maxRPhiImpEM

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

Definition at line 128 of file InDetAmbiScoringTool.h.

◆ m_maxSCT_Holes

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

Definition at line 70 of file InDetAmbiScoringTool.h.

◆ m_maxSctHoles

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

Definition at line 119 of file InDetAmbiScoringTool.h.

◆ m_maxSigmaChi2

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

Definition at line 71 of file InDetAmbiScoringTool.h.

◆ m_maxSiHoles

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

Definition at line 115 of file InDetAmbiScoringTool.h.

◆ m_maxTrtFittedRatio

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

Definition at line 72 of file InDetAmbiScoringTool.h.

◆ m_maxTrtRatio

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

Definition at line 71 of file InDetAmbiScoringTool.h.

◆ m_maxZImp

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

Definition at line 108 of file InDetAmbiScoringTool.h.

◆ m_minPixel

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

Definition at line 125 of file InDetAmbiScoringTool.h.

◆ m_minPt

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

cuts for selecting good tracks

Definition at line 104 of file InDetAmbiScoringTool.h.

◆ m_minSiClusters

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

Definition at line 111 of file InDetAmbiScoringTool.h.

◆ m_minTRTonTrk

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

Definition at line 121 of file InDetAmbiScoringTool.h.

◆ m_minTRTprecision

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

Definition at line 123 of file InDetAmbiScoringTool.h.

◆ m_phiWidthEm

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

Definition at line 131 of file InDetAmbiScoringTool.h.

◆ m_selectortool

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

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

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

◆ m_useAmbigFcn

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

use the scoring tuned to Ambiguity processing or not

Definition at line 96 of file InDetAmbiScoringTool.h.

◆ m_useEmClusSeed

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

Definition at line 130 of file InDetAmbiScoringTool.h.

◆ m_useITkAmbigFcn

BooleanProperty InDet::InDetAmbiScoringTool::m_useITkAmbigFcn {this, "useITkAmbigFcn", false}
private

use the ITk scoring tuned to Ambiguity processing or not

Definition at line 138 of file InDetAmbiScoringTool.h.

◆ m_usePixel

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

Definition at line 100 of file InDetAmbiScoringTool.h.

◆ m_useSCT

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

Definition at line 101 of file InDetAmbiScoringTool.h.

◆ m_useSigmaChi2

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

Definition at line 98 of file InDetAmbiScoringTool.h.

◆ m_useTRT_AmbigFcn

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

Definition at line 97 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::InDetAmbiScoringTool::m_minPixel
IntegerProperty m_minPixel
Definition: InDetAmbiScoringTool.h:126
InDet::maxPixelHoles
@ maxPixelHoles
Definition: IInDetEtaDependentCutsSvc.h:14
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:77
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:842
Trk::numberOfInnermostPixelLayerHits
@ numberOfInnermostPixelLayerHits
these are the hits in the 1st pixel layer
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:53
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:187
python.Constants.FATAL
int FATAL
Definition: Control/AthenaCommon/python/Constants.py:19
SG::ReadCondHandle
Definition: ReadCondHandle.h:44
AtlasFieldCacheCondObj
Definition: AtlasFieldCacheCondObj.h:19
InDet::InDetAmbiScoringTool::m_maxHits
int m_maxHits
Definition: InDetAmbiScoringTool.h:71
Trk::numberOfCscEtaHits
@ numberOfCscEtaHits
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:108
Trk::PerigeeSurface
Definition: PerigeeSurface.h:43
Trk::ParametersBase::position
const Amg::Vector3D & position() const
Access method for the position.
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
AthCommonDataStore::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
Trk::numberOfSCTDeadSensors
@ numberOfSCTDeadSensors
number of TRT hits
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:76
Monitored::Z
@ Z
Definition: HistogramFillerUtils.h:24
InDet::InDetAmbiScoringTool::m_etaDependentCutsSvc
ServiceHandle< IInDetEtaDependentCutsSvc > m_etaDependentCutsSvc
ITk eta-dependent cuts.
Definition: InDetAmbiScoringTool.h:141
InDet::InDetAmbiScoringTool::m_factorDblHoles
std::vector< double > m_factorDblHoles
Definition: InDetAmbiScoringTool.h:74
initialize
void initialize()
Definition: run_EoverP.cxx:894
InDet::InDetAmbiScoringTool::m_maxSigmaChi2
int m_maxSigmaChi2
Definition: InDetAmbiScoringTool.h:71
Trk::numberOfTrackSummaryTypes
@ numberOfTrackSummaryTypes
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:189
test_pyathena.pt
pt
Definition: test_pyathena.py:11
InDet::InDetAmbiScoringTool::m_factorSCT_Holes
std::vector< double > m_factorSCT_Holes
Definition: InDetAmbiScoringTool.h:74
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:76
Trk::z0
@ z0
Definition: ParamDefs.h:64
AthCommonMsg< AlgTool >::msgLvl
bool msgLvl(const MSG::Level lvl) const
Definition: AthCommonMsg.h:30
InDet::InDetAmbiScoringTool::m_useITkAmbigFcn
BooleanProperty m_useITkAmbigFcn
use the ITk scoring tuned to Ambiguity processing or not
Definition: InDetAmbiScoringTool.h:138
athena.value
value
Definition: athena.py:124
Trk::numberOfOutliersOnTrack
@ numberOfOutliersOnTrack
100 times the standard deviation of the chi2 from the surfaces
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:148
Trk::numberOfTgcPhiHits
@ numberOfTgcPhiHits
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:105
Trk::standardDeviationOfChi2OS
@ standardDeviationOfChi2OS
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:150
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
InDet::InDetAmbiScoringTool::m_factorTrtRatio
std::vector< double > m_factorTrtRatio
Definition: InDetAmbiScoringTool.h:77
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_extrapolator
ToolHandle< Trk::IExtrapolator > m_extrapolator
Definition: InDetAmbiScoringTool.h:89
InDet::InDetAmbiScoringTool::m_factorPixLay
std::vector< double > m_factorPixLay
Definition: InDetAmbiScoringTool.h:75
InDet::InDetAmbiScoringTool::m_maxTrtRatio
int m_maxTrtRatio
Definition: InDetAmbiScoringTool.h:71
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::maxSctHoles
@ maxSctHoles
Definition: IInDetEtaDependentCutsSvc.h:14
InDet::InDetAmbiScoringTool::m_maxDblHoles
int m_maxDblHoles
Definition: InDetAmbiScoringTool.h:70
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:72
IDTPMcnv.htype
htype
Definition: IDTPMcnv.py:29
InDet::InDetAmbiScoringTool::m_usePixel
BooleanProperty m_usePixel
Definition: InDetAmbiScoringTool.h:100
InDet::InDetAmbiScoringTool::m_maxSctHoles
IntegerProperty m_maxSctHoles
Definition: InDetAmbiScoringTool.h:120
InDet::InDetAmbiScoringTool::m_minTRTprecision
DoubleProperty m_minTRTprecision
Definition: InDetAmbiScoringTool.h:124
InDet::InDetAmbiScoringTool::m_factorB_LayerHits
std::vector< double > m_factorB_LayerHits
Definition: InDetAmbiScoringTool.h:75
InDet::InDetAmbiScoringTool::m_useTRT_AmbigFcn
BooleanProperty m_useTRT_AmbigFcn
Definition: InDetAmbiScoringTool.h:97
InDet::InDetAmbiScoringTool::m_maxRPhiImp
DoubleProperty m_maxRPhiImp
Definition: InDetAmbiScoringTool.h:107
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
AthCommonDataStore
Definition: AthCommonDataStore.h:52
Trk::numberOfTRTTubeHits
@ numberOfTRTTubeHits
number of TRT hits on track in straws with xenon
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:97
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
InDet::InDetAmbiScoringTool::m_factorTrtFittedRatio
std::vector< double > m_factorTrtFittedRatio
Definition: InDetAmbiScoringTool.h:77
lumiFormat.i
int i
Definition: lumiFormat.py:85
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:84
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:135
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
InDet::InDetAmbiScoringTool::m_factorPixelHits
std::vector< double > m_factorPixelHits
Definition: InDetAmbiScoringTool.h:75
InDet::InDetAmbiScoringTool::setupScoreModifiers
void setupScoreModifiers()
Definition: InDetAmbiScoringTool.cxx:552
InDet::InDetAmbiScoringTool::m_maxSiHoles
IntegerProperty m_maxSiHoles
Definition: InDetAmbiScoringTool.h:116
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:331
PlotPulseshapeFromCool.input
input
Definition: PlotPulseshapeFromCool.py:106
chi2
double chi2(TH1 *h0, TH1 *h1)
Definition: comparitor.cxx:523
InDet::InDetAmbiScoringTool::m_etaWidthEm
FloatProperty m_etaWidthEm
Definition: InDetAmbiScoringTool.h:132
Trk::TrackScore
float TrackScore
Definition: TrackScore.h:10
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
InDet::InDetAmbiScoringTool::m_minPt
DoubleProperty m_minPt
cuts for selecting good tracks
Definition: InDetAmbiScoringTool.h:104
InDet::InDetAmbiScoringTool::m_factorSigmaChi2
std::vector< double > m_factorSigmaChi2
Definition: InDetAmbiScoringTool.h:75
AnalysisUtils::Delta::R
double R(const INavigable4Momentum *p1, const double v_eta, const double v_phi)
Definition: AnalysisMisc.h:49
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
Trk::ParametersBase
Definition: ParametersBase.h:55
SG::VarHandleKey::initialize
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:103
xAOD::double
double
Definition: CompositeParticle_v1.cxx:159
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::InDetAmbiScoringTool::m_phiWidthEm
FloatProperty m_phiWidthEm
Definition: InDetAmbiScoringTool.h:131
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
Trk::SurfaceType::Perigee
@ Perigee
InDet::InDetAmbiScoringTool::m_minTRTonTrk
IntegerProperty m_minTRTonTrk
Definition: InDetAmbiScoringTool.h:122
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
Trk::d0
@ d0
Definition: ParamDefs.h:63
VP1PartSpect::E
@ E
Definition: VP1PartSpectFlags.h:21
InDet::InDetAmbiScoringTool::m_maxDoubleHoles
IntegerProperty m_maxDoubleHoles
Definition: InDetAmbiScoringTool.h:114
InDet::InDetAmbiScoringTool::m_maxSCT_Holes
int m_maxSCT_Holes
Definition: InDetAmbiScoringTool.h:70
InDet::InDetAmbiScoringTool::m_selectortool
ToolHandle< ITrtDriftCircleCutTool > m_selectortool
Returns minimum number of expected TRT drift circles depending on eta.
Definition: InDetAmbiScoringTool.h:81
SG::CondHandleKey::initialize
StatusCode initialize(bool used=true)
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
InDet::InDetAmbiScoringTool::m_factorPixHoles
std::vector< double > m_factorPixHoles
Definition: InDetAmbiScoringTool.h:74
Trk::ParametersBase::momentum
const Amg::Vector3D & momentum() const
Access method for the momentum.
InDet::InDetAmbiScoringTool::m_maxPixelHoles
IntegerProperty m_maxPixelHoles
Definition: InDetAmbiScoringTool.h:118
a
TList * a
Definition: liststreamerinfos.cxx:10
InDet::InDetAmbiScoringTool::m_factorHits
std::vector< double > m_factorHits
Definition: InDetAmbiScoringTool.h:74
h
python.compareTCTs.ratio
ratio
Definition: compareTCTs.py:295
InDet::InDetAmbiScoringTool::m_maxPixHoles
int m_maxPixHoles
Definition: InDetAmbiScoringTool.h:70
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
InDet::InDetAmbiScoringTool::m_maxZImp
DoubleProperty m_maxZImp
Definition: InDetAmbiScoringTool.h:109
DEBUG
#define DEBUG
Definition: page_access.h:11
F
#define F(x, y, z)
Definition: MD5.cxx:112
InDet::InDetAmbiScoringTool::m_maxRPhiImpEM
DoubleProperty m_maxRPhiImpEM
Definition: InDetAmbiScoringTool.h:129
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::score
virtual Trk::TrackScore score(const Trk::Track &track, bool checkBasicSel) const override
create a score based on how good the passed track is
Definition: InDetAmbiScoringTool.cxx:168
InDet::InDetAmbiScoringTool::m_fieldCacheCondObjInputKey
SG::ReadCondHandleKey< AtlasFieldCacheCondObj > m_fieldCacheCondObjInputKey
Definition: InDetAmbiScoringTool.h:92
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:623
InDet::InDetAmbiScoringTool::m_maxEta
DoubleProperty m_maxEta
Definition: InDetAmbiScoringTool.h:105
InDet::InDetAmbiScoringTool::m_useSCT
BooleanProperty m_useSCT
Definition: InDetAmbiScoringTool.h:101
InDet::InDetAmbiScoringTool::m_factorGangedFakes
std::vector< double > m_factorGangedFakes
Definition: InDetAmbiScoringTool.h:75
LArCellBinning.step
step
Definition: LArCellBinning.py:158
xAOD::numPixelHoles
@ numPixelHoles
Definition: TrackingPrimitives.h:517
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:798
xAOD::numSCTHoles
@ numSCTHoles
Definition: TrackingPrimitives.h:518
Trk::numberOfGangedFlaggedFakes
@ numberOfGangedFlaggedFakes
number of dead pixel sensors crossed
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:63
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_minSiClusters
IntegerProperty m_minSiClusters
Definition: InDetAmbiScoringTool.h:112
InDet::InDetAmbiScoringTool::m_useAmbigFcn
BooleanProperty m_useAmbigFcn
use the scoring tuned to Ambiguity processing or not
Definition: InDetAmbiScoringTool.h:96
InDet::InDetAmbiScoringTool::m_boundsTrtFittedRatio
std::vector< double > m_boundsTrtFittedRatio
Definition: InDetAmbiScoringTool.h:77
Trk::numberOfSCTDoubleHoles
@ numberOfSCTDoubleHoles
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:75
InDet::InDetAmbiScoringTool::m_maxGangedFakes
int m_maxGangedFakes
Definition: InDetAmbiScoringTool.h:73
InDet::InDetAmbiScoringTool::m_maxPixelHits
int m_maxPixelHits
Definition: InDetAmbiScoringTool.h:72
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:86
InDet::InDetAmbiScoringTool::m_maxPixLay
int m_maxPixLay
Definition: InDetAmbiScoringTool.h:73
InDet::InDetAmbiScoringTool::passBasicSelections
virtual bool passBasicSelections(const Trk::Track &track) const override
check track selections independent from TrackSummary
Definition: InDetAmbiScoringTool.cxx:92
TauGNNUtils::Variables::Track::trackEta
bool trackEta(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
Definition: TauGNNUtils.cxx:477
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:13
InDet::InDetAmbiScoringTool::m_maxTrtFittedRatio
int m_maxTrtFittedRatio
Definition: InDetAmbiScoringTool.h:72
InDet::InDetAmbiScoringTool::m_useEmClusSeed
BooleanProperty m_useEmClusSeed
Definition: InDetAmbiScoringTool.h:130
Trk::TrackInfo::Unknown
@ Unknown
Track fitter not defined.
Definition: Tracking/TrkEvent/TrkTrack/TrkTrack/TrackInfo.h:41
InDet::InDetAmbiScoringTool::m_useSigmaChi2
BooleanProperty m_useSigmaChi2
Definition: InDetAmbiScoringTool.h:98