ATLAS Offline Software
InDetPriVxFinderConfig.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2023 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 
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(
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)
36  flags,
37  ClusterSplitProbabilityName = \
39  AssociationMapName = associationMapName,
40  xAODTrackParticlesFromTracksContainerName = \
41  "InDetTrackParticlesTemporary"))
42  kwargs["TracksName"]="InDetTrackParticlesTemporary"
43 
44  acc.addEventAlgo(CompFactory.InDet.InDetPriVxFinder(name, **kwargs))
45  return acc
46 
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(
63 
64  if "VertexCollectionSortingTool" not in kwargs:
65  from TrkConfig.TrkVertexToolsConfig import (
66  SumPt2VertexCollectionSortingToolCfg)
67  kwargs.setdefault("VertexCollectionSortingTool", acc.popToolsAndMerge(
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 
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  flags.lock()
143 
144  acc = MainServicesCfg(flags)
145  acc.merge(primaryVertexFindingCfg(flags))
146 
147  mlog = logging.getLogger("primaryVertexFindingConfigTest")
148  mlog.info("Configuring primaryVertexFinding: ")
149 
151  mlog,
152  acc.getEventAlgo("InDetPriVxFinder"),
153  nestLevel=2,
154  printDefaults=True,
155  )
156 
157  acc.wasMerged()
python.TrkVertexToolsConfig.SumPt2VertexCollectionSortingToolCfg
def SumPt2VertexCollectionSortingToolCfg(flags, name="SumPt2VertexCollectionSortingTool", **kwargs)
Definition: TrkVertexToolsConfig.py:7
python.InDetPriVxFinderToolConfig.TrigVertexFinderToolCfg
def TrigVertexFinderToolCfg(flags, **kwargs)
Definition: InDetPriVxFinderToolConfig.py:135
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
python.InDetPriVxFinderConfig.InDetPriVxFinderCfg
ComponentAccumulator InDetPriVxFinderCfg(flags, str name="InDetPriVxFinder", **kwargs)
Definition: InDetPriVxFinderConfig.py:7
python.InDetPriVxFinderConfig.InDetTrigPriVxFinderCfg
ComponentAccumulator InDetTrigPriVxFinderCfg(flags, str inputTracks, str outputVtx, str name="InDetTrigPriVxFinder", **kwargs)
Definition: InDetPriVxFinderConfig.py:47
python.InDetPriVxFinderConfig.primaryVertexFindingCfg
ComponentAccumulator primaryVertexFindingCfg(flags, str name="InDetPriVxFinder", vxCandidatesOutputName=None, **kwargs)
Definition: InDetPriVxFinderConfig.py:82
python.TrackRecoConfig.ClusterSplitProbabilityContainerName
def ClusterSplitProbabilityContainerName(flags)
Definition: TrackRecoConfig.py:86
InDetPriVxFinderMonitoring.InDetPriVxFinderMonitoringTool
def InDetPriVxFinderMonitoringTool(flags)
Definition: InDetPriVxFinderMonitoring.py:4
python.TrkVertexToolsConfig.VertexCollectionSortingToolCfg
def VertexCollectionSortingToolCfg(flags, **kwargs)
Definition: TrkVertexToolsConfig.py:67
python.InDetPriVxFinderToolConfig.VertexFinderToolCfg
def VertexFinderToolCfg(flags, **kwargs)
Definition: InDetPriVxFinderToolConfig.py:120
python.MainServicesConfig.MainServicesCfg
def MainServicesCfg(flags, LoopMgr='AthenaEventLoopMgr')
Definition: MainServicesConfig.py:260
python.OutputStreamConfig.addToESD
def addToESD(flags, itemOrList, **kwargs)
Definition: OutputStreamConfig.py:127
xAODTrackingCnvConfig.BeamLineTrackParticleCnvAlgCfg
def BeamLineTrackParticleCnvAlgCfg(flags, name="BeamLineTrackParticleCnvAlg", ClusterSplitProbabilityName="", AssociationMapName="", **kwargs)
Definition: xAODTrackingCnvConfig.py:214
extractSporadic.printProperties
def printProperties(h, q, hLB)
Definition: extractSporadic.py:8
python.AllConfigFlags.initConfigFlags
def initConfigFlags()
Definition: AllConfigFlags.py:19
python.OutputStreamConfig.addToAOD
def addToAOD(flags, itemOrList, **kwargs)
Definition: OutputStreamConfig.py:142
xAODTrackingCnvConfig.TrackParticleCnvAlgCfg
def TrackParticleCnvAlgCfg(flags, name="TrackParticleCnvAlg", ClusterSplitProbabilityName="", AssociationMapName="", **kwargs)
TrackParticleCnvAlg.
Definition: xAODTrackingCnvConfig.py:97