6 from AthenaCommon.Logging
import logging
7 from AthenaConfiguration.ComponentAccumulator
import printProperties
8 from AthenaConfiguration.MainServicesConfig
import MainServicesCfg
9 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
10 from TrkConfig.VertexFindingFlags
import VertexSetup
13 from OutputStreamAthenaPool.OutputStreamConfig
import OutputStreamCfg
15 if __name__ ==
"__main__":
17 parser = argparse.ArgumentParser(
18 description=
"Primary vertex finding configuration for ITk"
24 choices=[
"Grid",
"Gaussian"],
25 help=
"Choose between Grid or Gaussian seeder."
31 help=
"Name of the output file"
37 help=
"Number of events to process. Default: -1 (all)."
39 args = parser.parse_args()
41 mlog = logging.getLogger(
"vertexingJO_ITK_init")
42 mlog.setLevel(logging.INFO)
46 flags.Exec.MaxEvents = args.maxEvents
47 flags.Input.Files = args.input
49 flags.Output.AODFileName = args.output
50 flags.Exec.OutputLevel = VERBOSE
52 if args.seeder ==
"Gaussian":
53 flags.Tracking.PriVertex.setup = VertexSetup.ActsGaussAMVF
54 mlog.info(
"Using Gaussian seeder for primary vertex finding.")
55 vxContainerName =
"PrimaryVertices_Gauss"
56 elif args.seeder ==
"Grid":
57 flags.Tracking.PriVertex.setup = VertexSetup.ActsGridDensity
58 mlog.info(
"Using Grid seeder for primary vertex finding.")
59 vxContainerName =
"PrimaryVertices_Grid"
61 mlog.info(
"Grid parameters:")
62 mlog.info(
" gridMainGridSize = %s", flags.Tracking.PriVertex.gridMainGridSize)
63 mlog.info(
" gridTrkGridSize = %s", flags.Tracking.PriVertex.gridTrkGridSize)
64 mlog.info(
" gridUseHighestSumZPosition = %s", flags.Tracking.PriVertex.gridUseHighestSumZPosition)
65 mlog.info(
" gridMaxD0Significance = %s", flags.Tracking.PriVertex.gridMaxD0Significance)
66 mlog.info(
" gridMaxZ0Significance = %s", flags.Tracking.PriVertex.gridMaxZ0Significance)
68 raise ValueError(f
"Invalid seeder '{args.seeder}'; choose 'Grid' or 'Gaussian'.")
75 from AthenaPoolCnvSvc.PoolReadConfig
import PoolReadCfg
78 from xAODMetaDataCnv.InfileMetaDataConfig
import SetupMetaDataForStreamCfg
81 from InDetConfig.InDetPriVxFinderConfig
import primaryVertexFindingCfg
84 mlog.info(
"Configuring primary vertex finding...")
85 mlog.setLevel(VERBOSE)
89 cfg.getEventAlgo(
"InDetPriVxFinder"),
93 cfg.printConfig(withDetails=
True, summariseProps=
True)
96 "xAOD::ElectronContainer#Electrons",
97 "xAOD::ElectronAuxContainer#*",
98 "xAOD::PhotonContainer#Photons",
99 "xAOD::PhotonAuxContainer#*",
100 "xAOD::MuonContainer#Muons",
101 "xAOD::MuonAuxContainer#*",
102 "xAOD::TauJetContainer#*",
103 "xAOD::TauJetAuxContainer#*",
104 "xAOD::TruthVertexContainer#*",
105 "xAOD::TruthVertexAuxContainer#*",
106 "xAOD::VertexContainer#*",
107 "xAOD::VertexAuxContainer#*",
108 "xAOD::TrackParticleContainer#*",
109 "xAOD::TrackParticleAuxContainer#*",
110 "xAOD::TruthParticleContainer#*",
111 "xAOD::TruthParticleAuxContainer#*",
112 "xAOD::TruthEventContainer#*",
113 "xAOD::TruthEventAuxContainer#*",
114 "xAOD::EventInfo#EventInfo",
115 "xAOD::EventAuxInfo#EventInfoAux",
116 "xAOD::TruthPileupEventContainer#*",
117 "xAOD::TruthPileupEventAuxContainer#*"
123 sys.exit(
not status.isSuccess())