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