ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Tracking
Acts
ActsTrackReconstruction
src
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
9
#include "
AthenaBaseComps/AthReentrantAlgorithm.h
"
10
11
// Gaudi includes
12
#include "GaudiKernel/ToolHandle.h"
13
#include "Gaudi/Property.h"
14
15
// ACTS
16
#include "
ActsEvent/TrackContainer.h
"
17
#include "Acts/Utilities/Logger.hpp"
18
#include "Acts/Utilities/Helpers.hpp"
19
20
#include "Acts/AmbiguityResolution/GreedyAmbiguityResolution.hpp"
21
22
// Athena
23
#include "
AthenaMonitoringKernel/GenericMonitoringTool.h
"
24
#include "
InDetReadoutGeometry/SiDetectorElementCollection.h
"
25
#include "
xAODInDetMeasurement/PixelClusterContainer.h
"
26
#include "
xAODInDetMeasurement/StripClusterContainer.h
"
27
#include "
ActsGeometryInterfaces/ITrackingGeometrySvc.h
"
28
29
// Handle Keys
30
#include "
StoreGate/ReadHandleKey.h
"
31
#include "
StoreGate/WriteHandleKey.h
"
32
#include "
ActsEvent/TrackContainerHandlesHelper.h
"
33
#include "
ActsCalibBase/SourceLinkType.h
"
34
35
36
#include <string>
37
#include <memory>
38
39
namespace
ActsTrk
40
{
41
42
class
AmbiguityResolutionAlg
:
public
AthReentrantAlgorithm
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
54
SG::ReadHandleKey<ActsTrk::TrackContainer>
m_tracksKey
55
{
this
,
"TracksLocation"
,
""
,
"Input track collection"
};
56
SG::WriteHandleKey<ActsTrk::TrackContainer>
m_resolvedTracksKey
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
:
70
enum
EStat
{
71
kNInputTracks
,
72
kNResolvedTracks
,
73
kNSharedHits
,
74
kNStat
75
};
76
77
private
:
78
mutable
std::array<std::atomic<unsigned int>,
kNStat
> m_stat
ATLAS_THREAD_SAFE
{};
79
};
80
81
}
// namespace
82
83
#endif
ITrackingGeometrySvc.h
AthReentrantAlgorithm.h
PixelClusterContainer.h
GenericMonitoringTool.h
SiDetectorElementCollection.h
SourceLinkType.h
ReadHandleKey.h
Property holding a SG store/key/clid from which a ReadHandle is made.
WriteHandleKey.h
Property holding a SG store/key/clid from which a WriteHandle is made.
StripClusterContainer.h
TrackContainerHandlesHelper.h
TrackContainer.h
ActsTrk::AmbiguityResolutionAlg
Definition
AmbiguityResolutionAlg.h:43
ActsTrk::AmbiguityResolutionAlg::EStat
EStat
Definition
AmbiguityResolutionAlg.h:70
ActsTrk::AmbiguityResolutionAlg::kNInputTracks
@ kNInputTracks
Definition
AmbiguityResolutionAlg.h:71
ActsTrk::AmbiguityResolutionAlg::kNStat
@ kNStat
Definition
AmbiguityResolutionAlg.h:74
ActsTrk::AmbiguityResolutionAlg::kNResolvedTracks
@ kNResolvedTracks
Definition
AmbiguityResolutionAlg.h:72
ActsTrk::AmbiguityResolutionAlg::kNSharedHits
@ kNSharedHits
Definition
AmbiguityResolutionAlg.h:73
ActsTrk::AmbiguityResolutionAlg::m_monTool
ToolHandle< GenericMonitoringTool > m_monTool
Definition
AmbiguityResolutionAlg.h:52
ActsTrk::AmbiguityResolutionAlg::m_maximumSharedHits
Gaudi::Property< unsigned int > m_maximumSharedHits
Definition
AmbiguityResolutionAlg.h:60
ActsTrk::AmbiguityResolutionAlg::ATLAS_THREAD_SAFE
std::array< std::atomic< unsigned int >, kNStat > m_stat ATLAS_THREAD_SAFE
Definition
AmbiguityResolutionAlg.h:78
ActsTrk::AmbiguityResolutionAlg::finalize
virtual StatusCode finalize() override
Definition
AmbiguityResolutionAlg.cxx:49
ActsTrk::AmbiguityResolutionAlg::m_ambi
std::unique_ptr< Acts::GreedyAmbiguityResolution > m_ambi
Definition
AmbiguityResolutionAlg.h:67
ActsTrk::AmbiguityResolutionAlg::m_tracksKey
SG::ReadHandleKey< ActsTrk::TrackContainer > m_tracksKey
Definition
AmbiguityResolutionAlg.h:55
ActsTrk::AmbiguityResolutionAlg::m_resolvedTracksKey
SG::WriteHandleKey< ActsTrk::TrackContainer > m_resolvedTracksKey
Definition
AmbiguityResolutionAlg.h:57
ActsTrk::AmbiguityResolutionAlg::m_countSharedHits
Gaudi::Property< bool > m_countSharedHits
Definition
AmbiguityResolutionAlg.h:65
ActsTrk::AmbiguityResolutionAlg::initialize
virtual StatusCode initialize() override
Definition
AmbiguityResolutionAlg.cxx:30
ActsTrk::AmbiguityResolutionAlg::m_maximumIterations
Gaudi::Property< unsigned int > m_maximumIterations
Definition
AmbiguityResolutionAlg.h:62
ActsTrk::AmbiguityResolutionAlg::m_nMeasurementsMin
Gaudi::Property< unsigned int > m_nMeasurementsMin
Definition
AmbiguityResolutionAlg.h:64
ActsTrk::AmbiguityResolutionAlg::execute
virtual StatusCode execute(const EventContext &ctx) const override
Definition
AmbiguityResolutionAlg.cxx:59
AthReentrantAlgorithm
An algorithm that can be simultaneously executed in multiple threads.
Definition
AthReentrantAlgorithm.h:74
SG::ReadHandleKey
Property holding a SG store/key/clid from which a ReadHandle is made.
Definition
StoreGate/StoreGate/ReadHandleKey.h:40
SG::WriteHandleKey
Property holding a SG store/key/clid from which a WriteHandle is made.
Definition
StoreGate/StoreGate/WriteHandleKey.h:40
ActsTrk
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...
Definition
MdtCalibInput.h:31
Generated on
for ATLAS Offline Software by
1.17.0