ATLAS Offline Software
ScoreBasedAmbiguityResolutionAlg.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 ACTSTRKFINDING_SCOREBASEDAMBIGUITYRESOLUTIONALG_H
6 #define ACTSTRKFINDING_SCOREBASEDAMBIGUITYRESOLUTIONALG_H 1
7 
8 // Base Class
10 
11 // Gaudi includes
12 #include "Gaudi/Property.h"
13 #include "GaudiKernel/ToolHandle.h"
14 
15 // ACTS
17 #include "Acts/AmbiguityResolution/ScoreBasedAmbiguityResolution.hpp"
18 #include "Acts/Definitions/Units.hpp"
19 #include "Acts/Utilities/Logger.hpp"
21 
22 // Athena
25 
26 // Handle Keys
29 
30 namespace ActsTrk {
31 
33  public:
34  ScoreBasedAmbiguityResolutionAlg(const std::string &name,
35  ISvcLocator *pSvcLocator);
36 
37  virtual StatusCode initialize() override;
38  virtual StatusCode finalize() override;
39  virtual StatusCode execute(const EventContext &ctx) const override;
40 
41  private:
42  ToolHandle<GenericMonitoringTool> m_monTool{this, "MonTool", "",
43  "Monitoring tool"};
44 
46  this, "TracksLocation", "", "Input track collection"};
48  this, "ResolvedTracksLocation", "",
49  "Ambiguity resolved output track collection"};
50 
51  Gaudi::Property<double> m_minScore{this, "MinScore", 0.0,
52  "Minimum score for track selection."};
53  Gaudi::Property<double> m_minScoreSharedTracks{
54  this, "MinScoreSharedTracks", 0.0,
55  "Minimum score for shared track selection."};
56  Gaudi::Property<std::size_t> m_maxSharedTracksPerMeasurement{
57  this, "MaxSharedTracksPerMeasurement", 10,
58  "Maximum number of shared tracks per measurement."};
59  Gaudi::Property<std::size_t> m_maxShared{
60  this, "MaxShared", 5, "Maximum number of shared hit per track."};
61  Gaudi::Property<std::size_t> m_minUnshared{
62  this, "MinUnshared", 5, "Minimum number of unshared hits per track."};
63 
64  Gaudi::Property<bool> m_useAmbiguityScoring{
65  this, "UseAmbiguityScoring", false,
66  "Flag to enable/disable ambiguity function."};
67 
68  Gaudi::Property<std::string> m_jsonFileName{
69  this, "jsonFileName", "ScoreBasedAmbiguity_Config.json",
70  "Name of the JSON file that contains the config file."};
71 
72  Gaudi::Property<bool> m_countSharedHits{this, "countSharedHits", true, "add shared hit flags to tracks"};
73 
74  std::unique_ptr<Acts::ScoreBasedAmbiguityResolution> m_ambi{nullptr};
75 
78  this, "InDetEtaDependentCutsSvc", ""};
79 
80  public:
81  enum EStat {
85  kNStat
86  };
87 
88  private:
89  mutable std::array<std::atomic<unsigned int>, kNStat> m_stat ATLAS_THREAD_SAFE{};
90 };
91 
92 } // namespace ActsTrk
93 
94 #endif
ReadHandleKey.h
Property holding a SG store/key/clid from which a ReadHandle is made.
ActsTrk::ScoreBasedAmbiguityResolutionAlg::m_monTool
ToolHandle< GenericMonitoringTool > m_monTool
Definition: ScoreBasedAmbiguityResolutionAlg.h:42
ActsTrk::ScoreBasedAmbiguityResolutionAlg::m_jsonFileName
Gaudi::Property< std::string > m_jsonFileName
Definition: ScoreBasedAmbiguityResolutionAlg.h:68
ActsTrk::ScoreBasedAmbiguityResolutionAlg::finalize
virtual StatusCode finalize() override
Definition: ScoreBasedAmbiguityResolutionAlg.cxx:97
ActsTrk::ScoreBasedAmbiguityResolutionAlg::kNInputTracks
@ kNInputTracks
Definition: ScoreBasedAmbiguityResolutionAlg.h:82
ActsTrk::ScoreBasedAmbiguityResolutionAlg::ScoreBasedAmbiguityResolutionAlg
ScoreBasedAmbiguityResolutionAlg(const std::string &name, ISvcLocator *pSvcLocator)
Definition: ScoreBasedAmbiguityResolutionAlg.cxx:53
ActsTrk::ScoreBasedAmbiguityResolutionAlg::execute
virtual StatusCode execute(const EventContext &ctx) const override
Definition: ScoreBasedAmbiguityResolutionAlg.cxx:107
SG::ReadHandleKey< ActsTrk::TrackContainer >
ActsTrk::ScoreBasedAmbiguityResolutionAlg::m_useAmbiguityScoring
Gaudi::Property< bool > m_useAmbiguityScoring
Definition: ScoreBasedAmbiguityResolutionAlg.h:64
ActsTrk::ScoreBasedAmbiguityResolutionAlg
Definition: ScoreBasedAmbiguityResolutionAlg.h:32
ActsTrk::ScoreBasedAmbiguityResolutionAlg::m_tracksKey
SG::ReadHandleKey< ActsTrk::TrackContainer > m_tracksKey
Definition: ScoreBasedAmbiguityResolutionAlg.h:45
ActsTrk::ScoreBasedAmbiguityResolutionAlg::m_minUnshared
Gaudi::Property< std::size_t > m_minUnshared
Definition: ScoreBasedAmbiguityResolutionAlg.h:61
AthReentrantAlgorithm
An algorithm that can be simultaneously executed in multiple threads.
Definition: AthReentrantAlgorithm.h:74
ActsTrk::ScoreBasedAmbiguityResolutionAlg::m_ambi
std::unique_ptr< Acts::ScoreBasedAmbiguityResolution > m_ambi
Definition: ScoreBasedAmbiguityResolutionAlg.h:74
ScoreBasedSolverCutsImpl.h
GenericMonitoringTool.h
ActsTrk::ScoreBasedAmbiguityResolutionAlg::EStat
EStat
Definition: ScoreBasedAmbiguityResolutionAlg.h:81
SG::WriteHandleKey< ActsTrk::TrackContainer >
ActsTrk::ScoreBasedAmbiguityResolutionAlg::m_minScore
Gaudi::Property< double > m_minScore
Definition: ScoreBasedAmbiguityResolutionAlg.h:51
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ActsTrk::ScoreBasedAmbiguityResolutionAlg::kNResolvedTracks
@ kNResolvedTracks
Definition: ScoreBasedAmbiguityResolutionAlg.h:83
ActsTrk::ScoreBasedAmbiguityResolutionAlg::ATLAS_THREAD_SAFE
std::array< std::atomic< unsigned int >, kNStat > m_stat ATLAS_THREAD_SAFE
Definition: ScoreBasedAmbiguityResolutionAlg.h:89
ActsTrk::ScoreBasedAmbiguityResolutionAlg::m_etaDependentCutsSvc
ServiceHandle< InDet::IInDetEtaDependentCutsSvc > m_etaDependentCutsSvc
ITk eta-dependent cuts.
Definition: ScoreBasedAmbiguityResolutionAlg.h:77
AthReentrantAlgorithm.h
WriteHandleKey.h
Property holding a SG store/key/clid from which a WriteHandle is made.
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
ActsTrk::ScoreBasedAmbiguityResolutionAlg::m_minScoreSharedTracks
Gaudi::Property< double > m_minScoreSharedTracks
Definition: ScoreBasedAmbiguityResolutionAlg.h:53
ActsTrk::ScoreBasedAmbiguityResolutionAlg::m_maxShared
Gaudi::Property< std::size_t > m_maxShared
Definition: ScoreBasedAmbiguityResolutionAlg.h:59
ActsTrk::ScoreBasedAmbiguityResolutionAlg::kNStat
@ kNStat
Definition: ScoreBasedAmbiguityResolutionAlg.h:85
ActsTrk::ScoreBasedAmbiguityResolutionAlg::kNSharedHits
@ kNSharedHits
Definition: ScoreBasedAmbiguityResolutionAlg.h:84
ActsTrk
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...
Definition: MSTrackingVolumeBuilder.cxx:25
ActsTrk::ScoreBasedAmbiguityResolutionAlg::m_maxSharedTracksPerMeasurement
Gaudi::Property< std::size_t > m_maxSharedTracksPerMeasurement
Definition: ScoreBasedAmbiguityResolutionAlg.h:56
ActsTrk::ScoreBasedAmbiguityResolutionAlg::m_countSharedHits
Gaudi::Property< bool > m_countSharedHits
Definition: ScoreBasedAmbiguityResolutionAlg.h:72
ActsTrk::ScoreBasedAmbiguityResolutionAlg::m_resolvedTracksKey
SG::WriteHandleKey< ActsTrk::TrackContainer > m_resolvedTracksKey
Definition: ScoreBasedAmbiguityResolutionAlg.h:47
IInDetEtaDependentCutsSvc.h
TrackContainer.h
ActsTrk::ScoreBasedAmbiguityResolutionAlg::initialize
virtual StatusCode initialize() override
Definition: ScoreBasedAmbiguityResolutionAlg.cxx:57
ServiceHandle< InDet::IInDetEtaDependentCutsSvc >