ATLAS Offline Software
DenseEnvironmentsAmbiguityScoreProcessorTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef DenseEnvironmentsAmbiguityScoreProcessorTool_H
6 #define DenseEnvironmentsAmbiguityScoreProcessorTool_H
7 
9 #include "GaudiKernel/ToolHandle.h"
10 
16 
17 //need to include the following, since its a typedef and can't be forward declared.
19 #include "TrkTrack/TrackSeedMap.h"
21 
26 #include "AmbiCounter.h"
27 #include <map>
28 #include <set>
29 #include <vector>
30 
31 namespace InDet{
32  class PixelCluster;
33  class SCT_Cluster;
34 }
35 
36 namespace Trk {
37 
38  class ITrackScoringTool;
39 
41  : public AthAlgTool,
42  virtual public ITrackAmbiguityScoreProcessorTool {
43  public:
44  enum class ScoreCategory {
45  kNtracks,
49  kNaccept,
50  kNCounter
51  };
53  // public types
54  typedef std::multimap< TrackScore, const Track* > TrackScoreMap;
55  typedef std::vector<const PrepRawData*> PrdSignature;
56  typedef std::set<PrdSignature> PrdSignatureSet;
57 
58  // default methods
59  DenseEnvironmentsAmbiguityScoreProcessorTool(const std::string&,const std::string&,const IInterface*);
61  virtual StatusCode initialize() override final;
62  virtual StatusCode finalize () override final;
63 
64  virtual void process(const TrackCollection & tracks, TracksScores* trackScoreTrackMap) const override final;
65 
67  void statistics() override;
68  void dumpStat(MsgStream &out) const;
69  private:
70 
71 
76  void addNewTracks(const TrackCollection & tracks,
77  TracksScores* trackScoreTrackMap) const;
78 
80  void overlappingTracks(const TracksScores* scoreTrackMap,
81  InDet::PixelGangedClusterAmbiguities *splitClusterMap,
82  Trk::ClusterSplitProbabilityContainer &splitProbContainer,
83  Trk::PRDtoTrackMap &prd_to_track_map) const;
84 
87  const Trk::TrackParameters*> & clusterTrkPara,
88  InDet::PixelGangedClusterAmbiguities *splitClusterMap,
89  Trk::ClusterSplitProbabilityContainer &splitProbContainer) const;
90 
91 
96  {this, "ScoringTool", "Trk::TrackScoringTool/TrackScoringTool" };
97 
98  ToolHandle<Trk::IPRDtoTrackMapTool> m_assoTool
99  {this, "AssociationTool", "InDet::InDetPRDtoTrackMapToolGangedPixels" };
100 
101  ToolHandle<Trk::IPRDtoTrackMapTool> m_assoToolNotGanged
102  {this, "AssociationToolNotGanged", "Trk::PRDtoTrackMapTool" }; // @TODO why are ganged pixels ignored ?
103 
105  ToolHandle<InDet::IPixelClusterSplitProbTool> m_splitProbTool
106  {this, "SplitProbTool", "InDet::NnPixelClusterSplitProbTool/NnPixelClusterSplitProbTool" };
107 
109  PublicToolHandle<Trk::ITrkObserverTool> m_observerTool{this, "ObserverTool", "", "track observer within ambiguity solver"};
110 
113 
116 
119  {this,"AssociationMapName",""};
120 
122  {this,"InputClusterSplitProbabilityName",""};
124  {this,"OutputClusterSplitProbabilityName",""};
125 
128 
131 
132  std::vector<float> m_etaBounds;
134  mutable Counter m_stat ATLAS_THREAD_SAFE;
135  };
136 } //end ns
137 
138 
139 #endif // TrackAmbiguityProcessorTool_H
ITrkObserverTool.h
Trk::DenseEnvironmentsAmbiguityScoreProcessorTool::ATLAS_THREAD_SAFE
Counter m_stat ATLAS_THREAD_SAFE
Definition: DenseEnvironmentsAmbiguityScoreProcessorTool.h:134
PRDtoTrackMap.h
PixelCluster
Definition: Trigger/TrigAccel/TrigCudaFitter/src/PixelCluster.h:7
TrackParameters.h
Trk::DenseEnvironmentsAmbiguityScoreProcessorTool::ScoreCategory::kNcandScoreZero
@ kNcandScoreZero
Trk::DenseEnvironmentsAmbiguityScoreProcessorTool::m_clusterSplitProbContainerOut
SG::WriteHandleKey< Trk::ClusterSplitProbabilityContainer > m_clusterSplitProbContainerOut
the key given to the newly created association map
Definition: DenseEnvironmentsAmbiguityScoreProcessorTool.h:124
Trk::ITrackAmbiguityScoreProcessorTool
Interface for resolving hit association ambiguities in a given track collection.
Definition: ITrackAmbiguityScoreProcessorTool.h:23
AmbiCounter.h
Trk::PRDtoTrackMap
Definition: PRDtoTrackMap.h:17
BeamSpot::mutex
std::mutex mutex
Definition: InDetBeamSpotVertex.cxx:18
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
Trk::DenseEnvironmentsAmbiguityScoreProcessorTool::m_splitClusterMapKey_last
SG::ReadHandleKey< InDet::PixelGangedClusterAmbiguities > m_splitClusterMapKey_last
cluster split information generated by previous instances
Definition: DenseEnvironmentsAmbiguityScoreProcessorTool.h:112
Trk::DenseEnvironmentsAmbiguityScoreProcessorTool::finalize
virtual StatusCode finalize() override final
Definition: DenseEnvironmentsAmbiguityScoreProcessorTool.cxx:74
Trk::DenseEnvironmentsAmbiguityScoreProcessorTool::m_scoringTool
ToolHandle< ITrackScoringTool > m_scoringTool
Scoring tool This tool is used to 'score' the tracks, i.e.
Definition: DenseEnvironmentsAmbiguityScoreProcessorTool.h:96
Trk::DenseEnvironmentsAmbiguityScoreProcessorTool::m_clusterSplitProbContainerIn
SG::ReadHandleKey< Trk::ClusterSplitProbabilityContainer > m_clusterSplitProbContainerIn
the key given to the newly created association map
Definition: DenseEnvironmentsAmbiguityScoreProcessorTool.h:122
python.AthDsoLogger.out
out
Definition: AthDsoLogger.py:71
Trk::DenseEnvironmentsAmbiguityScoreProcessorTool::~DenseEnvironmentsAmbiguityScoreProcessorTool
virtual ~DenseEnvironmentsAmbiguityScoreProcessorTool()
Trk::DenseEnvironmentsAmbiguityScoreProcessorTool::m_observerTool
PublicToolHandle< Trk::ITrkObserverTool > m_observerTool
Observer tool This tool is used to observe the tracks and their 'score'.
Definition: DenseEnvironmentsAmbiguityScoreProcessorTool.h:109
Trk::DenseEnvironmentsAmbiguityScoreProcessorTool::ScoreCategory::kNcandDouble
@ kNcandDouble
Trk::DenseEnvironmentsAmbiguityScoreProcessorTool::ScoreCategory::kNtracks
@ kNtracks
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:562
SG::ReadHandleKey< InDet::PixelGangedClusterAmbiguities >
SCT_Cluster
Definition: Trigger/TrigAccel/TrigCudaFitter/src/SCT_Cluster.h:7
Trk::DenseEnvironmentsAmbiguityScoreProcessorTool::m_assoToolNotGanged
ToolHandle< Trk::IPRDtoTrackMapTool > m_assoToolNotGanged
Definition: DenseEnvironmentsAmbiguityScoreProcessorTool.h:102
Trk::DenseEnvironmentsAmbiguityScoreProcessorTool::ScoreCategory::kNcandidates
@ kNcandidates
Trk::DenseEnvironmentsAmbiguityScoreProcessorTool::overlappingTracks
void overlappingTracks(const TracksScores *scoreTrackMap, InDet::PixelGangedClusterAmbiguities *splitClusterMap, Trk::ClusterSplitProbabilityContainer &splitProbContainer, Trk::PRDtoTrackMap &prd_to_track_map) const
Find SiS Tracks that share hits in the track score map.
Definition: DenseEnvironmentsAmbiguityScoreProcessorTool.cxx:270
Trk::DenseEnvironmentsAmbiguityScoreProcessorTool::process
virtual void process(const TrackCollection &tracks, TracksScores *trackScoreTrackMap) const override final
Do actual processing of event.
Definition: DenseEnvironmentsAmbiguityScoreProcessorTool.cxx:96
SG::WriteHandleKey< InDet::PixelGangedClusterAmbiguities >
Trk::DenseEnvironmentsAmbiguityScoreProcessorTool::m_assoTool
ToolHandle< Trk::IPRDtoTrackMapTool > m_assoTool
Definition: DenseEnvironmentsAmbiguityScoreProcessorTool.h:99
Trk::DenseEnvironmentsAmbiguityScoreProcessorTool::m_statMutex
std::mutex m_statMutex
Definition: DenseEnvironmentsAmbiguityScoreProcessorTool.h:133
PixelGangedClusterAmbiguities.h
IPixelClusterSplitProbTool.h
Trk::DenseEnvironmentsAmbiguityScoreProcessorTool::ScoreCategory::kNaccept
@ kNaccept
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
Trk::DenseEnvironmentsAmbiguityScoreProcessorTool::dumpStat
void dumpStat(MsgStream &out) const
Definition: DenseEnvironmentsAmbiguityScoreProcessorTool.cxx:361
AthAlgTool.h
TrackCollection.h
TrackSeedMap.h
Trk::ParametersBase
Definition: ParametersBase.h:55
DataVector< Trk::Track >
Trk::DenseEnvironmentsAmbiguityScoreProcessorTool::m_assoMapName
SG::WriteHandleKey< Trk::PRDtoTrackMap > m_assoMapName
key for the PRDtoTrackMap to be used by the ambiguity process to resolve the ambiguities.
Definition: DenseEnvironmentsAmbiguityScoreProcessorTool.h:119
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Trk::DenseEnvironmentsAmbiguityScoreProcessorTool::m_etaBounds
std::vector< float > m_etaBounds
eta intervals for internal monitoring
Definition: DenseEnvironmentsAmbiguityScoreProcessorTool.h:132
private
#define private
Definition: DetDescrConditionsDict_dict_fixes.cxx:13
Trk::ClusterSplitProbabilityContainer
Container to associate Cluster with cluster splitting probabilities.
Definition: ClusterSplitProbabilityContainer.h:17
TrackScore.h
Trk::DenseEnvironmentsAmbiguityScoreProcessorTool::addNewTracks
void addNewTracks(const TrackCollection &tracks, TracksScores *trackScoreTrackMap) const
Add passed TrackCollection, and Trk::PrepRawData from tracks to caches.
Definition: DenseEnvironmentsAmbiguityScoreProcessorTool.cxx:163
IPRDtoTrackMapTool.h
Trk::DenseEnvironmentsAmbiguityScoreProcessorTool
Definition: DenseEnvironmentsAmbiguityScoreProcessorTool.h:42
Trk::DenseEnvironmentsAmbiguityScoreProcessorTool::m_splitProbTool
ToolHandle< InDet::IPixelClusterSplitProbTool > m_splitProbTool
recalculate split prob tool
Definition: DenseEnvironmentsAmbiguityScoreProcessorTool.h:106
Trk::DenseEnvironmentsAmbiguityScoreProcessorTool::PrdSignature
std::vector< const PrepRawData * > PrdSignature
Definition: DenseEnvironmentsAmbiguityScoreProcessorTool.h:55
Trk::DenseEnvironmentsAmbiguityScoreProcessorTool::PrdSignatureSet
std::set< PrdSignature > PrdSignatureSet
Definition: DenseEnvironmentsAmbiguityScoreProcessorTool.h:56
Trk::TracksScores
std::vector< std::pair< const Track *, float > > TracksScores
Definition: ITrackAmbiguityProcessorTool.h:18
Trk::DenseEnvironmentsAmbiguityScoreProcessorTool::DenseEnvironmentsAmbiguityScoreProcessorTool
DenseEnvironmentsAmbiguityScoreProcessorTool(const std::string &, const std::string &, const IInterface *)
Definition: DenseEnvironmentsAmbiguityScoreProcessorTool.cxx:24
Trk::DenseEnvironmentsAmbiguityScoreProcessorTool::m_splitClusterMapKey
SG::WriteHandleKey< InDet::PixelGangedClusterAmbiguities > m_splitClusterMapKey
cluster split information which m_splitClusterMap_last will be merged into
Definition: DenseEnvironmentsAmbiguityScoreProcessorTool.h:115
Trk::DenseEnvironmentsAmbiguityScoreProcessorTool::m_sharedProbCut2
float m_sharedProbCut2
NN split sprob cut for 3 particle clusters.
Definition: DenseEnvironmentsAmbiguityScoreProcessorTool.h:130
Trk::DenseEnvironmentsAmbiguityScoreProcessorTool::m_sharedProbCut
float m_sharedProbCut
NN split sprob cut for 2 particle clusters.
Definition: DenseEnvironmentsAmbiguityScoreProcessorTool.h:127
Trk::DenseEnvironmentsAmbiguityScoreProcessorTool::ScoreCategory::kNCounter
@ kNCounter
ClusterSplitProbabilityContainer.h
Trk::DenseEnvironmentsAmbiguityScoreProcessorTool::initialize
virtual StatusCode initialize() override final
Definition: DenseEnvironmentsAmbiguityScoreProcessorTool.cxx:47
AthAlgTool
Definition: AthAlgTool.h:26
Trk::DenseEnvironmentsAmbiguityScoreProcessorTool::statistics
void statistics() override
statistics output to be called by algorithm during finalize.
Definition: DenseEnvironmentsAmbiguityScoreProcessorTool.cxx:79
Trk::DenseEnvironmentsAmbiguityScoreProcessorTool::ScoreCategory
ScoreCategory
Definition: DenseEnvironmentsAmbiguityScoreProcessorTool.h:44
Trk::DenseEnvironmentsAmbiguityScoreProcessorTool::updatePixelSplitInformationForCluster
void updatePixelSplitInformationForCluster(const std::pair< const InDet::PixelCluster *const, const Trk::TrackParameters * > &clusterTrkPara, InDet::PixelGangedClusterAmbiguities *splitClusterMap, Trk::ClusterSplitProbabilityContainer &splitProbContainer) const
Update pixel split information based using the fitted track.
Definition: DenseEnvironmentsAmbiguityScoreProcessorTool.cxx:231
ITrackFitter.h
Trk::DenseEnvironmentsAmbiguityScoreProcessorTool::TrackScoreMap
std::multimap< TrackScore, const Track * > TrackScoreMap
Definition: DenseEnvironmentsAmbiguityScoreProcessorTool.h:54
AmbiCounter
Definition: AmbiCounter.h:16
ITrackAmbiguityScoreProcessorTool.h