ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
InnerDetector
InDetConfig
python
InDetPriVxFinderConfig.py
Go to the documentation of this file.
1
# Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
2
# Configuration of InDetPriVxFinder package
3
from
AthenaConfiguration.ComponentAccumulator
import
ComponentAccumulator
4
from
AthenaConfiguration.ComponentFactory
import
CompFactory
5
from
TrkConfig.TrkConfigFlags
import
PerigeeExpression
6
7
8
def
InDetPriVxFinderCfg
(flags,
9
name: str =
"InDetPriVxFinder"
,
10
**kwargs) -> ComponentAccumulator:
11
acc = ComponentAccumulator()
12
13
if
"VertexCollectionSortingTool"
not
in
kwargs:
14
from
TrkConfig.TrkVertexToolsConfig
import
(
15
VertexCollectionSortingToolCfg)
16
kwargs.setdefault(
"VertexCollectionSortingTool"
, acc.popToolsAndMerge(
17
VertexCollectionSortingToolCfg(flags)))
18
19
if
"VertexFinderTool"
not
in
kwargs:
20
from
InDetConfig.InDetPriVxFinderToolConfig
import
(
21
VertexFinderToolCfg)
22
kwargs.setdefault(
"VertexFinderTool"
, acc.popToolsAndMerge(
23
VertexFinderToolCfg(flags)))
24
25
kwargs.setdefault(
"doVertexSorting"
,
True
)
26
27
if
flags.Tracking.perigeeExpression
is
PerigeeExpression.Vertex:
28
associationMapName =
"PRDtoTrackMapMerge_CombinedInDetTracks"
29
if
flags.Detector.GeometryITk:
30
associationMapName =
"PRDtoTrackMapMerge_CombinedITkTracks"
31
32
from
xAODTrackingCnv.xAODTrackingCnvConfig
import
(
33
BeamLineTrackParticleCnvAlgCfg)
34
from
InDetConfig.TrackRecoConfig
import
(
35
ClusterSplitProbabilityContainerName)
36
acc.merge(BeamLineTrackParticleCnvAlgCfg(
37
flags,
38
ClusterSplitProbabilityName = \
39
ClusterSplitProbabilityContainerName(flags),
40
AssociationMapName = associationMapName,
41
xAODTrackParticlesFromTracksContainerName = \
42
"InDetBeamLineTrackParticles"
))
43
kwargs[
"TracksName"
]=
"InDetBeamLineTrackParticles"
44
45
acc.addEventAlgo(CompFactory.InDet.InDetPriVxFinder(name, **kwargs))
46
return
acc
47
48
def
InDetTrigPriVxFinderCfg
(flags,
49
inputTracks: str,
50
outputVtx: str,
51
name: str =
"InDetTrigPriVxFinder"
,
52
**kwargs) -> ComponentAccumulator:
53
54
acc = ComponentAccumulator()
55
56
kwargs[
"TracksName"
] = inputTracks
57
kwargs[
"VxCandidatesOutputName"
] = outputVtx
58
59
if
"VertexFinderTool"
not
in
kwargs:
60
from
InDetConfig.InDetPriVxFinderToolConfig
import
(
61
TrigVertexFinderToolCfg)
62
kwargs.setdefault(
"VertexFinderTool"
, acc.popToolsAndMerge(
63
TrigVertexFinderToolCfg(flags)))
64
65
if
"VertexCollectionSortingTool"
not
in
kwargs:
66
from
TrkConfig.TrkVertexToolsConfig
import
(
67
SumPt2VertexCollectionSortingToolCfg)
68
kwargs.setdefault(
"VertexCollectionSortingTool"
, acc.popToolsAndMerge(
69
SumPt2VertexCollectionSortingToolCfg(flags)))
70
71
if
"PriVxMonTool"
not
in
kwargs:
72
from
InDetPriVxFinder.InDetPriVxFinderMonitoring
import
(
73
InDetPriVxFinderMonitoringTool)
74
kwargs.setdefault(
"PriVxMonTool"
, InDetPriVxFinderMonitoringTool(flags))
75
76
kwargs.setdefault(
"doVertexSorting"
,
True
)
77
78
acc.addEventAlgo(CompFactory.InDet.InDetPriVxFinder(name+flags.Tracking.ActiveConfig.input_name,
79
**kwargs))
80
return
acc
81
82
83
def
primaryVertexFindingCfg
(flags,
84
name: str =
"InDetPriVxFinder"
,
85
vxCandidatesOutputName=
None
,
86
**kwargs) -> ComponentAccumulator:
87
if
not
vxCandidatesOutputName:
88
vxCandidatesOutputName =
"PrimaryVertices"
89
from
AthenaConfiguration.Enums
import
ProductionStep
90
if
flags.Common.ProductionStep
in
[ProductionStep.MinbiasPreprocessing]:
91
vxCandidatesOutputName = f
"{flags.Overlay.BkgPrefix}{vxCandidatesOutputName}"
92
93
acc =
InDetPriVxFinderCfg
(flags,
94
name,
95
VxCandidatesOutputName=vxCandidatesOutputName,
96
**kwargs)
97
98
if
flags.Tracking.perigeeExpression
is
PerigeeExpression.Vertex:
99
associationMapName =
"PRDtoTrackMapMerge_CombinedInDetTracks"
100
if
flags.Detector.GeometryITk:
101
associationMapName =
"PRDtoTrackMapMerge_CombinedITkTracks"
102
103
from
xAODTrackingCnv.xAODTrackingCnvConfig
import
TrackParticleCnvAlgCfg
104
from
InDetConfig.TrackRecoConfig
import
(
105
ClusterSplitProbabilityContainerName)
106
acc.merge(TrackParticleCnvAlgCfg(
107
flags,
108
ClusterSplitProbabilityName=ClusterSplitProbabilityContainerName(
109
flags),
110
AssociationMapName=associationMapName))
111
112
from
OutputStreamAthenaPool.OutputStreamConfig
import
addToESD, addToAOD
113
114
excludedVtxAuxData =
"-vxTrackAtVertex.-MvfFitInfo.-isInitialized.-VTAV.-TruthEventMatchingInfos.-TruthEventRawMatchingInfos.-VertexMatchType"
115
verticesContainer = [
116
f
"xAOD::VertexContainer#{vxCandidatesOutputName}"
,
117
f
"xAOD::VertexAuxContainer#{vxCandidatesOutputName}Aux."
+ excludedVtxAuxData,
118
]
119
120
acc.merge(addToAOD(flags, verticesContainer))
121
acc.merge(addToESD(flags, verticesContainer))
122
123
return
acc
124
125
if
__name__ ==
"__main__"
:
126
from
AthenaCommon.Logging
import
logging
127
from
AthenaConfiguration.AllConfigFlags
import
initConfigFlags
128
flags = initConfigFlags()
129
130
from
AthenaConfiguration.TestDefaults
import
defaultTestFiles
131
from
AthenaConfiguration.ComponentAccumulator
import
printProperties
132
from
AthenaConfiguration.MainServicesConfig
import
MainServicesCfg
133
from
TrkConfig.VertexFindingFlags
import
VertexSetup
134
135
flags.Input.Files = defaultTestFiles.RDO_RUN2
136
import
sys
137
if
'ActsGaussAdaptiveMultiFinding'
in
sys.argv:
138
flags.Tracking.PriVertex.setup = VertexSetup.ActsGaussAMVF
139
elif
"IterativeFinding"
in
sys.argv:
140
flags.Tracking.PriVertex.setup = VertexSetup.IVF
141
elif
"FastIterativeFinding"
in
sys.argv:
142
flags.Tracking.PriVertex.setup = VertexSetup.FastIVF
143
elif
"GridFinding"
in
sys.argv:
144
flags.Tracking.PriVertex.setup = VertexSetup.ActsGridDensity
145
flags.lock()
146
147
acc = MainServicesCfg(flags)
148
acc.merge(
primaryVertexFindingCfg
(flags))
149
150
mlog = logging.getLogger(
"primaryVertexFindingConfigTest"
)
151
mlog.info(
"Configuring primaryVertexFinding: "
)
152
153
printProperties(
154
mlog,
155
acc.getEventAlgo(
"InDetPriVxFinder"
),
156
nestLevel=2,
157
printDefaults=
True
,
158
)
159
160
acc.wasMerged()
161
python.InDetPriVxFinderConfig.InDetPriVxFinderCfg
ComponentAccumulator InDetPriVxFinderCfg(flags, str name="InDetPriVxFinder", **kwargs)
Definition
InDetPriVxFinderConfig.py:10
python.InDetPriVxFinderConfig.InDetTrigPriVxFinderCfg
ComponentAccumulator InDetTrigPriVxFinderCfg(flags, str inputTracks, str outputVtx, str name="InDetTrigPriVxFinder", **kwargs)
Definition
InDetPriVxFinderConfig.py:52
python.InDetPriVxFinderConfig.primaryVertexFindingCfg
ComponentAccumulator primaryVertexFindingCfg(flags, str name="InDetPriVxFinder", vxCandidatesOutputName=None, **kwargs)
Definition
InDetPriVxFinderConfig.py:86
Generated on
for ATLAS Offline Software by
1.17.0