ATLAS Offline Software
runSecVtxTruthMatching.py
Go to the documentation of this file.
1 #!/usr/bin/env python
2 # Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 
4 from glob import glob
5 
6 def get_args():
7  from argparse import ArgumentParser
8  parser = ArgumentParser(description='Parser for SecVertexTruthMatching configuration')
9  parser.add_argument("--filesInput", required=True)
10  parser.add_argument("--maxEvents", help="Limit number of events. Default: all input events", default=-1, type=int)
11  parser.add_argument("--skipEvents", help="Skip this number of events. Default: no events are skipped", default=0, type=int)
12  parser.add_argument("--mergeLargeD0Tracks", help='Consider LRT tracks in the matching', action='store_true', default=False)
13  parser.add_argument("--outputFile", help='Name of output file',default="TruthMatchHists.root")
14  parser.add_argument("--pdgIds", help='List of pdgIds to match', nargs='+', type=int, default=[36,51,50, 72, 31, 32, 3000001])
15  parser.add_argument("--vertexContainer", help='SG key of secondary vertex container',default='VrtSecInclusive_SecondaryVertices')
16  parser.add_argument("--truthVertexContainer", help='SG key of truth vertex container',default='TruthVertices')
17  parser.add_argument("--useMuSA", help='Use MuSA configuration instead of default', action='store_true', default=False)
18  parser.add_argument("--doSMOrigin", help="Turn on optional SM origin matching", action='store_true', default=False)
19  return parser.parse_args()
20 
21 if __name__=='__main__':
22 
23  args = get_args()
24 
25  from AthenaConfiguration.AllConfigFlags import initConfigFlags
26  flags = initConfigFlags()
27 
28  flags.Input.Files = []
29  for path in args.filesInput.split(','):
30  flags.Input.Files += glob(path)
31  flags.Output.HISTFileName = args.outputFile
32 
33  flags.Exec.SkipEvents = args.skipEvents
34  flags.Exec.MaxEvents = args.maxEvents
35 
36  flags.lock()
37 
38  from AthenaConfiguration.MainServicesConfig import MainServicesCfg
39  acc = MainServicesCfg(flags)
40  from AthenaPoolCnvSvc.PoolReadConfig import PoolReadCfg
41  acc.merge(PoolReadCfg(flags))
42 
43  from TrackingAnalysisAlgorithms.TrackingAnalysisAlgorithmsConfig import SecVertexTruthMatchAlgCfg, SecVertexTruthMatchMuSaAlgCfg
44 
45  if args.useMuSA:
46  acc.merge(SecVertexTruthMatchMuSaAlgCfg(flags,
47  TargetPDGIDs = args.pdgIds,
48  SecondaryVertexContainer = args.vertexContainer,
49  TruthVertexContainer = args.truthVertexContainer,
50  doSMOrigin = args.doSMOrigin,
51  )
52  )
53  else:
54  acc.merge(SecVertexTruthMatchAlgCfg(flags,
55  useLRTTracks = args.mergeLargeD0Tracks,
56  TargetPDGIDs = args.pdgIds,
57  SecondaryVertexContainer = args.vertexContainer,
58  TruthVertexContainer = args.truthVertexContainer,
59  doSMOrigin = args.doSMOrigin,
60  )
61  )
62 
63  acc.printConfig(withDetails=True)
64 
65  # Execute and finish
66  sc = acc.run()
67 
68  # Success should be 0
69  import sys
70  sys.exit(not sc.isSuccess())
runSecVtxTruthMatching.get_args
def get_args()
Definition: runSecVtxTruthMatching.py:6
TrackingAnalysisAlgorithmsConfig.SecVertexTruthMatchMuSaAlgCfg
def SecVertexTruthMatchMuSaAlgCfg(flags, name="SecVertexTruthMatchMuSaAlg", **kwargs)
Definition: TrackingAnalysisAlgorithmsConfig.py:51
python.MainServicesConfig.MainServicesCfg
def MainServicesCfg(flags, LoopMgr='AthenaEventLoopMgr')
Definition: MainServicesConfig.py:312
TrackingAnalysisAlgorithmsConfig.SecVertexTruthMatchAlgCfg
def SecVertexTruthMatchAlgCfg(flags, name="SecVertexTruthMatchAlg", useLRTTracks=False, **kwargs)
Definition: TrackingAnalysisAlgorithmsConfig.py:29
python.AllConfigFlags.initConfigFlags
def initConfigFlags()
Definition: AllConfigFlags.py:19
python.PoolReadConfig.PoolReadCfg
def PoolReadCfg(flags)
Definition: PoolReadConfig.py:71