ATLAS Offline Software
Loading...
Searching...
No Matches
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
4from glob import glob
5
6def 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
21if __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())