3 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
4 from AthenaConfiguration.ComponentFactory
import CompFactory
8 name: str =
"InDetPriVxFinder",
9 **kwargs) -> ComponentAccumulator:
12 if "VertexCollectionSortingTool" not in kwargs:
13 from TrkConfig.TrkVertexToolsConfig
import (
14 VertexCollectionSortingToolCfg)
15 kwargs.setdefault(
"VertexCollectionSortingTool", acc.popToolsAndMerge(
18 if "VertexFinderTool" not in kwargs:
19 from InDetConfig.InDetPriVxFinderToolConfig
import (
21 kwargs.setdefault(
"VertexFinderTool", acc.popToolsAndMerge(
24 kwargs.setdefault(
"doVertexSorting",
True)
26 if flags.Tracking.perigeeExpression ==
"Vertex":
27 associationMapName =
"PRDtoTrackMapMerge_CombinedInDetTracks"
28 if flags.Detector.GeometryITk:
29 associationMapName =
"PRDtoTrackMapMerge_CombinedITkTracks"
31 from xAODTrackingCnv.xAODTrackingCnvConfig
import (
32 BeamLineTrackParticleCnvAlgCfg)
33 from InDetConfig.TrackRecoConfig
import (
34 ClusterSplitProbabilityContainerName)
37 ClusterSplitProbabilityName = \
39 AssociationMapName = associationMapName,
40 xAODTrackParticlesFromTracksContainerName = \
41 "InDetTrackParticlesTemporary"))
42 kwargs[
"TracksName"]=
"InDetTrackParticlesTemporary"
44 acc.addEventAlgo(CompFactory.InDet.InDetPriVxFinder(name, **kwargs))
50 name: str =
"InDetTrigPriVxFinder",
51 **kwargs) -> ComponentAccumulator:
55 kwargs[
"TracksName"] = inputTracks
56 kwargs[
"VxCandidatesOutputName"] = outputVtx
58 if "VertexFinderTool" not in kwargs:
59 from InDetConfig.InDetPriVxFinderToolConfig
import (
60 TrigVertexFinderToolCfg)
61 kwargs.setdefault(
"VertexFinderTool", acc.popToolsAndMerge(
64 if "VertexCollectionSortingTool" not in kwargs:
65 from TrkConfig.TrkVertexToolsConfig
import (
66 SumPt2VertexCollectionSortingToolCfg)
67 kwargs.setdefault(
"VertexCollectionSortingTool", acc.popToolsAndMerge(
70 if "PriVxMonTool" not in kwargs:
71 from InDetPriVxFinder.InDetPriVxFinderMonitoring
import (
72 InDetPriVxFinderMonitoringTool)
75 kwargs.setdefault(
"doVertexSorting",
True)
77 acc.addEventAlgo(CompFactory.InDet.InDetPriVxFinder(name+flags.Tracking.ActiveConfig.input_name,
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}"
94 VxCandidatesOutputName=vxCandidatesOutputName,
97 if flags.Tracking.perigeeExpression ==
"Vertex":
98 associationMapName =
"PRDtoTrackMapMerge_CombinedInDetTracks"
99 if flags.Detector.GeometryITk:
100 associationMapName =
"PRDtoTrackMapMerge_CombinedITkTracks"
102 from xAODTrackingCnv.xAODTrackingCnvConfig
import TrackParticleCnvAlgCfg
103 from InDetConfig.TrackRecoConfig
import (
104 ClusterSplitProbabilityContainerName)
109 AssociationMapName=associationMapName))
111 from OutputStreamAthenaPool.OutputStreamConfig
import addToESD, addToAOD
113 excludedVtxAuxData =
"-vxTrackAtVertex.-MvfFitInfo.-isInitialized.-VTAV.-TruthEventMatchingInfos.-TruthEventRawMatchingInfos.-VertexMatchType"
114 verticesContainer = [
115 f
"xAOD::VertexContainer#{vxCandidatesOutputName}",
116 f
"xAOD::VertexAuxContainer#{vxCandidatesOutputName}Aux." + excludedVtxAuxData,
119 acc.merge(
addToAOD(flags, verticesContainer))
120 acc.merge(
addToESD(flags, verticesContainer))
124 if __name__ ==
"__main__":
125 from AthenaCommon.Logging
import logging
126 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
129 from AthenaConfiguration.TestDefaults
import defaultTestFiles
130 from AthenaConfiguration.ComponentAccumulator
import printProperties
131 from AthenaConfiguration.MainServicesConfig
import MainServicesCfg
132 from TrkConfig.VertexFindingFlags
import VertexSetup
134 flags.Input.Files = defaultTestFiles.RDO_RUN2
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
147 mlog = logging.getLogger(
"primaryVertexFindingConfigTest")
148 mlog.info(
"Configuring primaryVertexFinding: ")
152 acc.getEventAlgo(
"InDetPriVxFinder"),