ATLAS Offline Software
InDetNNScoringTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // Markus Elsing
8 
9 #ifndef INDETNNSCORINGTOOL_H
10 #define INDETNNSCORINGTOOL_H
11 
13 #include "GaudiKernel/ToolHandle.h"
14 #include "GaudiKernel/ServiceHandle.h"
19 #include "lwtnn/lightweight_network_config.hh"
20 #include "lwtnn/LightweightNeuralNetwork.hh"
21 #include "lwtnn/LightweightGraph.hh"
22 #include "lwtnn/parse_json.hh"
25 #include "AthenaKernel/CLASS_DEF.h"
27 // MagField cache
30 #include <fstream>
31 #include <vector>
32 #include <string>
34 
35 namespace Trk {
36  class IExtrapolator;
37  class Track;
38  class TrackSummary;
39 
40 }
41 class EventContext;
42 
43 namespace InDet {
44 class ITrtDriftCircleCutTool;
45 
48  public AthAlgTool
49 {
50 
51  public:
52  InDetNNScoringTool(const std::string&,const std::string&,const IInterface*);
53  virtual ~InDetNNScoringTool () = default;
54  virtual StatusCode initialize() override;
56  virtual Trk::TrackScore score( const Trk::Track& track ) const override;
57 
59  virtual Trk::TrackScore simpleScore( const Trk::Track& track, const Trk::TrackSummary& trackSum ) const override;
60  Trk::TrackScore ambigScore( const Trk::Track& track, const Trk::TrackSummary& trackSum ) const;
61  Trk::TrackScore calcNnScore( const Trk::Track &track, const Trk::TrackSummary& trackSum , const Trk::Perigee *extrapolatedPerigee) const;
62 
63 
64  private:
65  void setupScoreModifiers();
66 
67  // DNN tools
68  std::unique_ptr<lwt::LightweightGraph> m_graph;
69  std::map<std::string, double> m_DNN_inputValues;
70 
72  bool isEmCaloCompatible(const Trk::Track& track, const EventContext& ctx) const;
73 
74 
75  //these are used for ScoreModifiers
80  std::vector<double> m_boundsSigmaChi2,
82 
84  ToolHandle<ITrtDriftCircleCutTool> m_selectortool;
85 
87  std::vector<Trk::TrackScore> m_summaryTypeScore;
88 
89  SG::ReadCondHandleKey<InDet::BeamSpotData> m_beamSpotKey { this, "BeamSpotKey", "BeamSpotData", "SG key for beam spot" };
90 
91  ToolHandle<Trk::IExtrapolator> m_extrapolator;
92 
93  // Read handle for conditions object to get the field cache
94  SG::ReadCondHandleKey<AtlasFieldCacheCondObj> m_fieldCacheCondObjInputKey {this, "AtlasFieldCacheCondObj", "fieldCondObj", "Name of the Magnetic Field conditions object key"};
95 
96 
101  std::string m_nnCutConfig;
103 
105  bool m_useSCT;
106 
108  double m_minPt;
109  double m_maxEta;
110  double m_maxRPhiImp;
111  double m_maxZImp;
113  int m_maxDoubleHoles;//|< maximum number of SCT double holes
120  double m_maxRPhiImpEM;
121 
125 
127  {this, "EMROIPhiRZContainer", "", "Name of the calo cluster ROIs in Phi,R,Z parameterization"};
128 };
129 
130 
131 } // namespace InDet
132 
133 
134 #endif
InDet::InDetNNScoringTool::m_maxPixelHits
int m_maxPixelHits
Definition: InDetNNScoringTool.h:77
ReadHandleKey.h
Property holding a SG store/key/clid from which a ReadHandle is made.
InDet::InDetNNScoringTool::m_maxPixLay
int m_maxPixLay
Definition: InDetNNScoringTool.h:77
InDet::InDetNNScoringTool::calcNnScore
Trk::TrackScore calcNnScore(const Trk::Track &track, const Trk::TrackSummary &trackSum, const Trk::Perigee *extrapolatedPerigee) const
Definition: InDetNNScoringTool.cxx:848
InDet::InDetNNScoringTool::m_boundsTrtFittedRatio
std::vector< double > m_boundsTrtFittedRatio
Definition: InDetNNScoringTool.h:81
InDet::InDetNNScoringTool::m_beamSpotKey
SG::ReadCondHandleKey< InDet::BeamSpotData > m_beamSpotKey
Definition: InDetNNScoringTool.h:89
TrackParameters.h
InDet::InDetNNScoringTool::m_maxHits
int m_maxHits
Definition: InDetNNScoringTool.h:76
InDet::InDetNNScoringTool::simpleScore
virtual Trk::TrackScore simpleScore(const Trk::Track &track, const Trk::TrackSummary &trackSum) const override
create a score based on how good the passed TrackSummary is
Definition: InDetNNScoringTool.cxx:174
Trk::Track
The ATLAS Track class.
Definition: Tracking/TrkEvent/TrkTrack/TrkTrack/Track.h:73
InDet::InDetNNScoringTool::m_useEmClusSeed
bool m_useEmClusSeed
Definition: InDetNNScoringTool.h:122
InDet::InDetNNScoringTool::m_maxB_LayerHits
int m_maxB_LayerHits
Definition: InDetNNScoringTool.h:77
InDet::InDetNNScoringTool::m_DNN_inputValues
std::map< std::string, double > m_DNN_inputValues
Definition: InDetNNScoringTool.h:69
InDet::InDetNNScoringTool::m_maxDoubleHoles
int m_maxDoubleHoles
Definition: InDetNNScoringTool.h:113
AtlasFieldCacheCondObj.h
InDet::InDetNNScoringTool::m_summaryTypeScore
std::vector< Trk::TrackScore > m_summaryTypeScore
holds the scores assigned to each Trk::SummaryType from the track's Trk::TrackSummary
Definition: InDetNNScoringTool.h:87
Trk::ParametersT
Dummy class used to allow special convertors to be called for surfaces owned by a detector element.
Definition: EMErrorDetail.h:25
InDet
DUMMY Primary Vertex Finder.
Definition: VP1ErrorUtils.h:36
Trk::ITrackScoringTool
Interface for tool to return a score from a given track.
Definition: ITrackScoringTool.h:23
InDet::InDetNNScoringTool::isEmCaloCompatible
bool isEmCaloCompatible(const Trk::Track &track, const EventContext &ctx) const
Check if the cluster is compatible with a EM cluster.
Definition: InDetNNScoringTool.cxx:820
InDet::InDetNNScoringTool::m_maxSiHoles
int m_maxSiHoles
maximal number of holes (Pixel+SCT)
Definition: InDetNNScoringTool.h:114
InDet::InDetNNScoringTool::m_selectortool
ToolHandle< ITrtDriftCircleCutTool > m_selectortool
Returns minimum number of expected TRT drift circles depending on eta.
Definition: InDetNNScoringTool.h:84
InDet::InDetNNScoringTool::m_maxPixelHoles
int m_maxPixelHoles
maximal number of Pixel holes
Definition: InDetNNScoringTool.h:115
ITrackScoringTool.h
SG::ReadHandleKey< ROIPhiRZContainer >
InDet::InDetNNScoringTool::m_etaWidthEm
float m_etaWidthEm
Definition: InDetNNScoringTool.h:124
InDet::InDetNNScoringTool::m_boundsSigmaChi2
std::vector< double > m_boundsSigmaChi2
Definition: InDetNNScoringTool.h:80
InDet::InDetNNScoringTool::m_factorSigmaChi2
std::vector< double > m_factorSigmaChi2
Definition: InDetNNScoringTool.h:79
InDet::InDetNNScoringTool::m_useTRT_AmbigFcn
bool m_useTRT_AmbigFcn
Definition: InDetNNScoringTool.h:99
InDet::InDetNNScoringTool::m_useSCT
bool m_useSCT
Definition: InDetNNScoringTool.h:105
InDet::InDetNNScoringTool::m_maxGangedFakes
int m_maxGangedFakes
Definition: InDetNNScoringTool.h:77
InDet::InDetNNScoringTool::m_extrapolator
ToolHandle< Trk::IExtrapolator > m_extrapolator
Definition: InDetNNScoringTool.h:91
InDet::InDetNNScoringTool::m_minPixel
int m_minPixel
minimum number of pixel clusters
Definition: InDetNNScoringTool.h:119
InDet::InDetNNScoringTool::m_phiWidthEm
float m_phiWidthEm
Definition: InDetNNScoringTool.h:123
InDet::InDetNNScoringTool::m_nnCutThreshold
double m_nnCutThreshold
Definition: InDetNNScoringTool.h:102
InDet::InDetNNScoringTool::m_minPt
double m_minPt
cuts for selecting good tracks
Definition: InDetNNScoringTool.h:108
InDet::InDetNNScoringTool::m_boundsTrtRatio
std::vector< double > m_boundsTrtRatio
Definition: InDetNNScoringTool.h:81
InDet::InDetNNScoringTool::m_useSigmaChi2
bool m_useSigmaChi2
Definition: InDetNNScoringTool.h:100
InDet::InDetNNScoringTool::m_factorB_LayerHits
std::vector< double > m_factorB_LayerHits
Definition: InDetNNScoringTool.h:79
InDet::InDetNNScoringTool::m_minTRTonTrk
int m_minTRTonTrk
minimum number of TRT hits
Definition: InDetNNScoringTool.h:117
InDet::InDetNNScoringTool::m_factorPixHoles
std::vector< double > m_factorPixHoles
Definition: InDetNNScoringTool.h:78
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
InDet::InDetNNScoringTool
Concrete implementation of the ITrackScoringTool pABC.
Definition: InDetNNScoringTool.h:49
AthAlgTool.h
InDet::InDetNNScoringTool::m_minTRTprecision
double m_minTRTprecision
minimum fraction of TRT precision hits
Definition: InDetNNScoringTool.h:118
AtlasFieldCache.h
Trk::TrackScore
float TrackScore
Definition: TrackScore.h:10
InDet::InDetNNScoringTool::m_graph
std::unique_ptr< lwt::LightweightGraph > m_graph
Definition: InDetNNScoringTool.h:68
InDet::InDetNNScoringTool::m_factorSCT_Holes
std::vector< double > m_factorSCT_Holes
Definition: InDetNNScoringTool.h:78
InDet::InDetNNScoringTool::m_factorPixLay
std::vector< double > m_factorPixLay
Definition: InDetNNScoringTool.h:79
InDet::InDetNNScoringTool::m_factorGangedFakes
std::vector< double > m_factorGangedFakes
Definition: InDetNNScoringTool.h:79
ROIPhiRZContainer.h
InDet::InDetNNScoringTool::m_usePixel
bool m_usePixel
Definition: InDetNNScoringTool.h:104
InDet::InDetNNScoringTool::m_maxTrtRatio
int m_maxTrtRatio
Definition: InDetNNScoringTool.h:76
InDet::InDetNNScoringTool::m_factorTrtRatio
std::vector< double > m_factorTrtRatio
Definition: InDetNNScoringTool.h:81
InDet::InDetNNScoringTool::ambigScore
Trk::TrackScore ambigScore(const Trk::Track &track, const Trk::TrackSummary &trackSum) const
Definition: InDetNNScoringTool.cxx:375
InDet::InDetNNScoringTool::m_maxDblHoles
int m_maxDblHoles
Definition: InDetNNScoringTool.h:76
InDet::InDetNNScoringTool::m_factorPixelHits
std::vector< double > m_factorPixelHits
Definition: InDetNNScoringTool.h:79
InDet::InDetNNScoringTool::m_factorDblHoles
std::vector< double > m_factorDblHoles
Definition: InDetNNScoringTool.h:78
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
InDet::InDetNNScoringTool::m_maxPixHoles
int m_maxPixHoles
Definition: InDetNNScoringTool.h:76
PathResolver.h
Trk::TrackSummary
A summary of the information contained by a track.
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:287
TrackScore.h
InDet::InDetNNScoringTool::m_caloClusterROIKey
SG::ReadHandleKey< ROIPhiRZContainer > m_caloClusterROIKey
Definition: InDetNNScoringTool.h:127
InDet::InDetNNScoringTool::m_factorHits
std::vector< double > m_factorHits
Definition: InDetNNScoringTool.h:78
InDet::InDetNNScoringTool::m_maxTrtFittedRatio
int m_maxTrtFittedRatio
Definition: InDetNNScoringTool.h:76
InDet::InDetNNScoringTool::~InDetNNScoringTool
virtual ~InDetNNScoringTool()=default
InDet::InDetNNScoringTool::m_maxSigmaChi2
int m_maxSigmaChi2
Definition: InDetNNScoringTool.h:76
InDet::InDetNNScoringTool::m_maxSCT_Holes
int m_maxSCT_Holes
Definition: InDetNNScoringTool.h:76
SG::ReadCondHandleKey< InDet::BeamSpotData >
InDet::InDetNNScoringTool::m_maxRPhiImp
double m_maxRPhiImp
maximal RPhi impact parameter cut
Definition: InDetNNScoringTool.h:110
InDet::InDetNNScoringTool::m_maxSctHoles
int m_maxSctHoles
maximal number of SCT holes
Definition: InDetNNScoringTool.h:116
InDet::InDetNNScoringTool::m_maxEta
double m_maxEta
maximal Eta cut
Definition: InDetNNScoringTool.h:109
InDet::InDetNNScoringTool::m_maxZImp
double m_maxZImp
maximal z impact parameter cut
Definition: InDetNNScoringTool.h:111
InDet::InDetNNScoringTool::score
virtual Trk::TrackScore score(const Trk::Track &track) const override
create a score based on how good the passed track is
Definition: InDetNNScoringTool.cxx:160
InDet::InDetNNScoringTool::initialize
virtual StatusCode initialize() override
Definition: InDetNNScoringTool.cxx:108
InDet::InDetNNScoringTool::m_factorTrtFittedRatio
std::vector< double > m_factorTrtFittedRatio
Definition: InDetNNScoringTool.h:81
InDet::InDetNNScoringTool::InDetNNScoringTool
InDetNNScoringTool(const std::string &, const std::string &, const IInterface *)
Definition: InDetNNScoringTool.cxx:24
Track
Definition: TriggerChamberClusterOnTrackCreator.h:21
IOVSvcDefs.h
defines and typedefs for IOVSvc
BeamSpotData.h
xAOD::track
@ track
Definition: TrackingPrimitives.h:512
InDet::InDetNNScoringTool::setupScoreModifiers
void setupScoreModifiers()
Definition: InDetNNScoringTool.cxx:594
InDet::InDetNNScoringTool::m_nnCutConfig
std::string m_nnCutConfig
Definition: InDetNNScoringTool.h:101
AthAlgTool
Definition: AthAlgTool.h:26
InDet::InDetNNScoringTool::m_minSiClusters
int m_minSiClusters
minimal number of Si clusters
Definition: InDetNNScoringTool.h:112
InDet::InDetNNScoringTool::m_maxRPhiImpEM
double m_maxRPhiImpEM
maximal RPhi impact parameter cut track that match EM clusters
Definition: InDetNNScoringTool.h:120
CLASS_DEF.h
macros to associate a CLID to a type
InDet::InDetNNScoringTool::m_fieldCacheCondObjInputKey
SG::ReadCondHandleKey< AtlasFieldCacheCondObj > m_fieldCacheCondObjInputKey
Definition: InDetNNScoringTool.h:94
xAOD::TrackSummary
TrackSummary_v1 TrackSummary
Definition: Event/xAOD/xAODTracking/xAODTracking/TrackSummary.h:10
InDet::InDetNNScoringTool::m_useAmbigFcn
bool m_useAmbigFcn
use the scoring tuned to Ambiguity processing or not
Definition: InDetNNScoringTool.h:98