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/AmbiguityResolution/GreedyAmbiguityResolution.hpp"
19
20// Athena
26
27// Handle Keys
31
32#include <string>
33#include <memory>
34
35namespace ActsTrk
36{
37
39 {
40 public:
41 AmbiguityResolutionAlg(const std::string &name,
42 ISvcLocator *pSvcLocator);
43
44 virtual StatusCode initialize() override;
45 virtual StatusCode finalize() override;
46 virtual StatusCode execute(const EventContext &ctx) const override;
47
48 private:
49 ToolHandle< GenericMonitoringTool > m_monTool {this, "MonTool", "", "Monitoring tool"};
50
52 {this, "TracksLocation", "", "Input track collection"};
54 {this, "ResolvedTracksLocation", "", "Ambiguity resolved output track collection"};
55
56 Gaudi::Property<unsigned int> m_maximumSharedHits
57 {this, "MaximumSharedHits", 3u, "Maximum number of shared hits per track."};
58 Gaudi::Property<unsigned int> m_maximumIterations
59 {this, "MaximumIterations", 10000u, "Maximum number of iterations to resolve ambiguities among all tracks."};
60 Gaudi::Property<unsigned int> m_nMeasurementsMin
61 {this, "NMeasurementsMin", 7u, "Minimum number of measurements per track."};
62 Gaudi::Property<bool> m_countSharedHits{this, "countSharedHits", true, "add shared hit flags to tracks"};
63
64 std::unique_ptr<Acts::GreedyAmbiguityResolution> m_ambi {nullptr};
65
66 public:
73
74 private:
75 mutable std::array<std::atomic<unsigned int>, kNStat> m_stat ATLAS_THREAD_SAFE{};
76 };
77
78} // namespace
79
80#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
AmbiguityResolutionAlg(const std::string &name, ISvcLocator *pSvcLocator)
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...