ATLAS Offline Software
Loading...
Searching...
No Matches
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
30namespace 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
79
80 public:
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
Property holding a SG store/key/clid from which a ReadHandle is made.
Property holding a SG store/key/clid from which a WriteHandle is made.
ServiceHandle< InDet::IInDetEtaDependentCutsSvc > m_etaDependentCutsSvc
ITk eta-dependent cuts.
std::unique_ptr< Acts::ScoreBasedAmbiguityResolution > m_ambi
ScoreBasedAmbiguityResolutionAlg(const std::string &name, ISvcLocator *pSvcLocator)
SG::ReadHandleKey< ActsTrk::TrackContainer > m_tracksKey
SG::WriteHandleKey< ActsTrk::TrackContainer > m_resolvedTracksKey
virtual StatusCode execute(const EventContext &ctx) const override
std::array< std::atomic< unsigned int >, kNStat > m_stat ATLAS_THREAD_SAFE
An algorithm that can be simultaneously executed in multiple threads.
Property holding a SG store/key/clid from which a ReadHandle is made.
Property holding a SG store/key/clid from which a WriteHandle is made.
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...