ATLAS Offline Software
InDetAmbiTrackSelectionTool.h
Go to the documentation of this file.
1 // -*- C++ -*-
2 
3 /*
4  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
5 */
6 
8 // InDetAmbiTrackSelectionTool.h, (c) ATLAS Detector software
9 // Markus Elsing
11 
12 #ifndef INDETINDETAMBITRACKSELECTIONTOOL_H
13 #define INDETINDETAMBITRACKSELECTIONTOOL_H
14 
17 
21 
22 #include "GaudiKernel/ToolHandle.h"
23 
24 #include <map>
25 #include <vector>
26 
27 class SiliconID;
28 class Identifier;
29 namespace Trk {
30  class Track;
31 }
32 
33 namespace InDet
34 {
35 
46  class InDetAmbiTrackSelectionTool : public extends<AthAlgTool, Trk::IAmbiTrackSelectionTool>
47  {
48  public:
49  InDetAmbiTrackSelectionTool(const std::string&,const std::string&,const IInterface*);
50 
52  virtual ~InDetAmbiTrackSelectionTool () = default;
53 
55  virtual StatusCode initialize() override;
57  virtual StatusCode finalize() override;
58 
59  virtual std::tuple<Trk::Track*,bool> getCleanedOutTrack(const Trk::Track *track,
60  const Trk::TrackScore score,
61  Trk::ClusterSplitProbabilityContainer &splitProbContainer,
62  Trk::PRDtoTrackMap &prd_to_track_map,
63  int trackId = -1, int subtrackId = -1) const override;
64 
65  private:
66 
68  Trk::Track* createSubTrack( const std::vector<const Trk::TrackStateOnSurface*>& tsos, const Trk::Track* track ) const ;
69 
71  PublicToolHandle<ITrtDriftCircleCutTool> m_selectortool
72  {this, "DriftCircleCutTool", "InDet::InDetTrtDriftCircleCutTool"};
73 
74  ToolHandle<Trk::IPRDtoTrackMapTool> m_assoTool
75  {this, "AssociationTool", "Trk::PRDtoTrackMapTool" };
76 
78  const SiliconID* m_detID{nullptr};
79 
81  IntegerProperty m_minHits{this, "minHits", 5};
82  IntegerProperty m_minTRT_Hits{this, "minTRTHits", 0};
83  int m_maxShared{0};
84  IntegerProperty m_maxSharedModules{this, "maxShared", 1};
85  IntegerProperty m_maxTracksPerPRD{this, "maxTracksPerSharedPRD", 2};
86  IntegerProperty m_minNotShared{this, "minNotShared", 6};
87  FloatProperty m_minScoreShareTracks{this, "minScoreShareTracks", 0.0};
88  BooleanProperty m_cosmics{this, "Cosmics", false};
89  BooleanProperty m_parameterization{this, "UseParameterization", true}; // Use table of min number DCs
90  BooleanProperty m_doPixelClusterSplitting{this, "doPixelSplitting", false};
91  FloatProperty m_sharedProbCut{this, "sharedProbCut", 0.02};
92  IntegerProperty m_maxSplitSize{this, "MaximalSplitSize", 49, "A.S.: remove that when solved properly by updating the SplitProb info with isExcluded. A.S.: to be removed once EDM is updated"};
93  };
94 } // end of namespace
95 
96 
97 #endif
InDet::InDetAmbiTrackSelectionTool::m_minScoreShareTracks
FloatProperty m_minScoreShareTracks
Definition: InDetAmbiTrackSelectionTool.h:87
InDet::InDetAmbiTrackSelectionTool::createSubTrack
Trk::Track * createSubTrack(const std::vector< const Trk::TrackStateOnSurface * > &tsos, const Trk::Track *track) const
method to create a new track from a vector of TSOS's
Definition: InDetAmbiTrackSelectionTool.cxx:534
InDet::InDetAmbiTrackSelectionTool::m_maxTracksPerPRD
IntegerProperty m_maxTracksPerPRD
Definition: InDetAmbiTrackSelectionTool.h:85
Trk::Track
The ATLAS Track class.
Definition: Tracking/TrkEvent/TrkTrack/TrkTrack/Track.h:73
InDet::InDetAmbiTrackSelectionTool::m_parameterization
BooleanProperty m_parameterization
Definition: InDetAmbiTrackSelectionTool.h:89
Trk::PRDtoTrackMap
Definition: PRDtoTrackMap.h:17
InDet::InDetAmbiTrackSelectionTool::~InDetAmbiTrackSelectionTool
virtual ~InDetAmbiTrackSelectionTool()=default
default destructor
InDet
DUMMY Primary Vertex Finder.
Definition: VP1ErrorUtils.h:36
ITrtDriftCircleCutTool.h
InDet::InDetAmbiTrackSelectionTool::m_doPixelClusterSplitting
BooleanProperty m_doPixelClusterSplitting
Definition: InDetAmbiTrackSelectionTool.h:90
InDet::InDetAmbiTrackSelectionTool::m_minTRT_Hits
IntegerProperty m_minTRT_Hits
Definition: InDetAmbiTrackSelectionTool.h:82
InDet::InDetAmbiTrackSelectionTool::m_cosmics
BooleanProperty m_cosmics
Definition: InDetAmbiTrackSelectionTool.h:88
InDet::InDetAmbiTrackSelectionTool::finalize
virtual StatusCode finalize() override
standard Athena-Algorithm method
Definition: InDetAmbiTrackSelectionTool.cxx:54
InDet::InDetAmbiTrackSelectionTool::m_assoTool
ToolHandle< Trk::IPRDtoTrackMapTool > m_assoTool
Definition: InDetAmbiTrackSelectionTool.h:75
Identifier
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:32
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
AthAlgTool.h
Trk::TrackScore
float TrackScore
Definition: TrackScore.h:10
InDet::InDetAmbiTrackSelectionTool::initialize
virtual StatusCode initialize() override
standard Athena-Algorithm method
Definition: InDetAmbiTrackSelectionTool.cxx:40
InDet::InDetAmbiTrackSelectionTool::m_selectortool
PublicToolHandle< ITrtDriftCircleCutTool > m_selectortool
TRT minimum number of drift circles tool- returns allowed minimum number of TRT drift circles.
Definition: InDetAmbiTrackSelectionTool.h:72
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Trk::ClusterSplitProbabilityContainer
Container to associate Cluster with cluster splitting probabilities.
Definition: ClusterSplitProbabilityContainer.h:17
IPRDtoTrackMapTool.h
SiliconID
This is an Identifier helper class for both the Pixel and SCT subdetectors. This class defines identi...
Definition: SiliconID.h:46
InDet::InDetAmbiTrackSelectionTool::getCleanedOutTrack
virtual std::tuple< Trk::Track *, bool > getCleanedOutTrack(const Trk::Track *track, const Trk::TrackScore score, Trk::ClusterSplitProbabilityContainer &splitProbContainer, Trk::PRDtoTrackMap &prd_to_track_map, int trackId=-1, int subtrackId=-1) const override
Definition: InDetAmbiTrackSelectionTool.cxx:60
xAOD::score
@ score
Definition: TrackingPrimitives.h:513
InDet::InDetAmbiTrackSelectionTool::m_minNotShared
IntegerProperty m_minNotShared
Definition: InDetAmbiTrackSelectionTool.h:86
InDet::InDetAmbiTrackSelectionTool::InDetAmbiTrackSelectionTool
InDetAmbiTrackSelectionTool(const std::string &, const std::string &, const IInterface *)
Definition: InDetAmbiTrackSelectionTool.cxx:29
InDet::InDetAmbiTrackSelectionTool::m_maxShared
int m_maxShared
Definition: InDetAmbiTrackSelectionTool.h:83
Track
Definition: TriggerChamberClusterOnTrackCreator.h:21
IAmbiTrackSelectionTool.h
InDet::InDetAmbiTrackSelectionTool::m_sharedProbCut
FloatProperty m_sharedProbCut
Definition: InDetAmbiTrackSelectionTool.h:91
xAOD::track
@ track
Definition: TrackingPrimitives.h:512
InDet::InDetAmbiTrackSelectionTool::m_maxSplitSize
IntegerProperty m_maxSplitSize
Definition: InDetAmbiTrackSelectionTool.h:92
InDet::InDetAmbiTrackSelectionTool::m_minHits
IntegerProperty m_minHits
some cut values
Definition: InDetAmbiTrackSelectionTool.h:81
InDet::InDetAmbiTrackSelectionTool::m_maxSharedModules
IntegerProperty m_maxSharedModules
Definition: InDetAmbiTrackSelectionTool.h:84
InDet::InDetAmbiTrackSelectionTool
Definition: InDetAmbiTrackSelectionTool.h:47
TrackStateOnSurface.h
InDet::InDetAmbiTrackSelectionTool::m_detID
const SiliconID * m_detID
atlas id helper
Definition: InDetAmbiTrackSelectionTool.h:78