ATLAS Offline Software
Loading...
Searching...
No Matches
AmbiguityResolutionAlg.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 ACTSTRKFINDING_AMBIGUITYRESOLUTIONALG_H
6#define ACTSTRKFINDING_AMBIGUITYRESOLUTIONALG_H 1
7
8// Base Class
10
11// Gaudi includes
12#include "GaudiKernel/ToolHandle.h"
13#include "Gaudi/Property.h"
14
15// ACTS
17#include "Acts/Utilities/Logger.hpp"
18#include "Acts/Utilities/Helpers.hpp"
19
20#include "Acts/AmbiguityResolution/GreedyAmbiguityResolution.hpp"
21
22// Athena
28
29// Handle Keys
34
35
36#include <string>
37#include <memory>
38
39namespace ActsTrk
40{
41
43 {
44 public:
45 using AthReentrantAlgorithm::AthReentrantAlgorithm;
46
47 virtual StatusCode initialize() override;
48 virtual StatusCode finalize() override;
49 virtual StatusCode execute(const EventContext &ctx) const override;
50
51 private:
52 ToolHandle< GenericMonitoringTool > m_monTool {this, "MonTool", "", "Monitoring tool"};
53
55 {this, "TracksLocation", "", "Input track collection"};
57 {this, "ResolvedTracksLocation", "", "Ambiguity resolved output track collection"};
58
59 Gaudi::Property<unsigned int> m_maximumSharedHits
60 {this, "MaximumSharedHits", 3u, "Maximum number of shared hits per track."};
61 Gaudi::Property<unsigned int> m_maximumIterations
62 {this, "MaximumIterations", 10000u, "Maximum number of iterations to resolve ambiguities among all tracks."};
63 Gaudi::Property<unsigned int> m_nMeasurementsMin
64 {this, "NMeasurementsMin", 7u, "Minimum number of measurements per track."};
65 Gaudi::Property<bool> m_countSharedHits{this, "countSharedHits", true, "add shared hit flags to tracks"};
66
67 std::unique_ptr<Acts::GreedyAmbiguityResolution> m_ambi {nullptr};
68
69 public:
76
77 private:
78 mutable std::array<std::atomic<unsigned int>, kNStat> m_stat ATLAS_THREAD_SAFE{};
79 };
80
81} // namespace
82
83#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.
ToolHandle< GenericMonitoringTool > m_monTool
Gaudi::Property< unsigned int > m_maximumSharedHits
std::array< std::atomic< unsigned int >, kNStat > m_stat ATLAS_THREAD_SAFE
virtual StatusCode finalize() override
std::unique_ptr< Acts::GreedyAmbiguityResolution > m_ambi
SG::ReadHandleKey< ActsTrk::TrackContainer > m_tracksKey
SG::WriteHandleKey< ActsTrk::TrackContainer > m_resolvedTracksKey
Gaudi::Property< bool > m_countSharedHits
virtual StatusCode initialize() override
Gaudi::Property< unsigned int > m_maximumIterations
Gaudi::Property< unsigned int > m_nMeasurementsMin
virtual StatusCode execute(const EventContext &ctx) const override
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...