ATLAS Offline Software
Loading...
Searching...
No Matches
InDetTrtTrackScoringTool.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef INDETTRTTRACKSCORINGTOOL_H
6#define INDETTRTTRACKSCORINGTOOL_H
7
9#include "GaudiKernel/ServiceHandle.h"
10#include "GaudiKernel/ToolHandle.h"
13// MagField cache
16// Access to mu
19#include <string>
20#include <vector>
21
22namespace Trk {
23class Track;
24class TrackSummary;
25}
26
27class TRT_ID;
28
29namespace InDet {
30
32
35 : virtual public Trk::ITrackScoringTool
36 , public AthAlgTool
37{
38
39public:
40 InDetTrtTrackScoringTool(const std::string&,
41 const std::string&,
42 const IInterface*);
43 virtual ~InDetTrtTrackScoringTool() = default;
44 virtual StatusCode initialize() override;
46 virtual bool passBasicSelections( const Trk::Track& track ) const override;
47
49 virtual Trk::TrackScore score(const Trk::Track& track, bool checkBasicSel) const override;
50
53 const Trk::Track& track,
54 const Trk::TrackSummary& trackSum) const override;
55
57 const Trk::TrackSummary& trackSum) const;
58
59private:
61
63 bool isGoodTRT(const Trk::Track&) const;
64
65 // Get Eta bin for eta-dependent TRT-track cuts
66 unsigned int getEtaBin(const Trk::Perigee& perigee) const;
67
68 // Get eta- and mu-dependent nTRT cut for TRT track
69 double getMuDependentNtrtMinCut(unsigned int eta_bin) const;
70
73
74 // these are used for ScoreModifiers
76
77 std::vector<double> m_factorSigmaChi2, m_factorTrtRatio,
79
80 std::vector<double> m_boundsSigmaChi2, m_boundsTrtRatio,
82
84 BooleanProperty m_useAmbigFcn{this, "useAmbigFcn", true};
85 BooleanProperty m_useSigmaChi2{this, "useSigmaChi2", false};
86
89 std::vector<Trk::TrackScore> m_summaryTypeScore;
90
92 ToolHandle<ITrtDriftCircleCutTool> m_selectortool
93 {this, "DriftCircleCutTool", "InDet::InDetTrtDriftCircleCutTool"};
94
95 // Read handle for conditions object to get the field cache
97 this,
98 "AtlasFieldCacheCondObj",
99 "fieldCondObj",
100 "Name of the Magnetic Field conditions object key"
101 };
102
103 ToolHandle<ILumiBlockMuTool> m_lumiBlockMuTool{
104 this,
105 "LuminosityTool",
106 "LumiBlockMuTool/LumiBlockMuTool",
107 "Luminosity Tool"
108 };
109
111 IntegerProperty m_minTRTonTrk
112 {this, "minTRTonTrk", 15, "minimum number of TRT hits"};
113 DoubleProperty m_maxEta{this, "maxEta", 2.1, "maximal Eta cut"};
114 DoubleProperty m_ptmin{this, "PtMin", 1.0, "Minimum Pt"};
115 BooleanProperty m_parameterization
116 {this, "UseParameterization", true, "use parameterization to cut instead of custom cut"};
117 BooleanProperty m_oldLogic
118 {this, "OldTransitionLogic", false, "use old transition hit logic"};
119 DoubleProperty m_minTRTprecision
120 {this, "minTRTPrecisionFraction", 0.5, "minimum fraction of TRT precision hits"};
121
122 DoubleArrayProperty m_TRTTrksEtaBins
123 {this, "TRTTrksEtaBins",
124 {999., 999., 999., 999., 999., 999., 999., 999., 999., 999.},
125 "Eta bins (10 expected) for TRT-only track cuts"};
127 {this, "TRTTrksMinTRTHitsThresholds",
128 {0., 0., 0., 0., 0., 0., 0., 0., 0., 0.},
129 "Eta-binned nTRT cut for TRT-only cuts"};
131 {this, "TRTTrksMinTRTHitsMuDependencies",
132 {0., 0., 0., 0., 0., 0., 0., 0., 0., 0.},
133 "Eta-bined Mu-dependent component for nTRT cut"};
134};
135
136}
137#endif
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
The abstract interface base class for the trt segment selector tools.
std::vector< Trk::TrackScore > m_summaryTypeScore
holds the scores assigned to each Trk::SummaryType from the track's Trk::TrackSummary
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
virtual ~InDetTrtTrackScoringTool()=default
DoubleArrayProperty m_TRTTrksMinTRTHitsMuDependencies
IntegerProperty m_minTRTonTrk
cuts for selecting good tracks
SG::ReadCondHandleKey< AtlasFieldCacheCondObj > m_fieldCacheCondObjInputKey
unsigned int getEtaBin(const Trk::Perigee &perigee) const
bool isGoodTRT(const Trk::Track &) const
Decide whether standalone TRT tracks pass the minimum hit requirement.
InDetTrtTrackScoringTool(const std::string &, const std::string &, const IInterface *)
const TRT_ID * m_trtId
ID TRT helper.
BooleanProperty m_useAmbigFcn
use the scoring tuned to Ambiguity processing or not
Trk::TrackScore TRT_ambigScore(const Trk::Track &track, const Trk::TrackSummary &trackSum) const
virtual Trk::TrackScore score(const Trk::Track &track, bool checkBasicSel) const override
create a score based on how good the passed track is
ToolHandle< ILumiBlockMuTool > m_lumiBlockMuTool
virtual StatusCode initialize() override
virtual bool passBasicSelections(const Trk::Track &track) const override
check track selections independent from TrackSummary
ToolHandle< ITrtDriftCircleCutTool > m_selectortool
Returns minimum number of expected TRT drift circles depending on eta.
double getMuDependentNtrtMinCut(unsigned int eta_bin) const
This is an Identifier helper class for the TRT subdetector.
Definition TRT_ID.h:82
Interface for tool to return a score from a given track.
A summary of the information contained by a track.
Primary Vertex Finder.
Ensure that the ATLAS eigen extensions are properly loaded.
float TrackScore
Definition TrackScore.h:10
ParametersT< TrackParametersDim, Charged, PerigeeSurface > Perigee