ATLAS Offline Software
MuonVertexValidationRun.py
Go to the documentation of this file.
1 #
2 # Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 #
4 
5 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
6 from AthenaConfiguration.ComponentFactory import CompFactory
7 
8 
9 def splitOnComma(inputs):
10  files = []
11  for item in inputs: files.extend(item.split(','))
12 
13  return files
14 
15 
17  from argparse import ArgumentParser
18 
19  parser = ArgumentParser()
20  parser.add_argument( "-i", "--inputFile", required=True, help="Input files to run on. Files can be comma or space separated", nargs="+")
21  parser.add_argument( "-o", "--outputFile", default="MSVtxVal_out.NTUP.root", help="output root file")
22  parser.add_argument("--maxEvents", default=-1, type=int, help="How many events shall be run maximally")
23  parser.add_argument("--skipEvents", default=0, type=int, help="How many events shall be skipped")
24  parser.add_argument("--threads", default=1, type=int, help="number of threads")
25 
26  args = parser.parse_args()
27  args.inputFile = splitOnComma(args.inputFile) # to support comma separated input files
28 
29  return args
30 
31 
32 def setupHistSvcCfg(flags, out_file="out.root", out_stream="MSVtxValidation"):
33  result = ComponentAccumulator()
34  if len(out_file) == 0: return result
35  histSvc = CompFactory.THistSvc(Output=[f"{out_stream} DATAFILE='{out_file}', OPT='RECREATE'"])
36  result.addService(histSvc, primary=True)
37  return result
38 
39 
40 def MSVtxValidationCfg(flags, name="MSVertexValidationAlg", outStream="MSVtxValidation", outFile="out.root", **kwargs):
41  # outStream defines the steam to place the tree and histograms
42  from TriggerMatchingTool.TriggerMatchingToolConfig import TriggerMatchingToolCfg
43  result = ComponentAccumulator()
44  # setting algorithm properties here via kwargs.setdefault("<property name>", <property value>)
45  alg = CompFactory.MSVtxValidationAlg(name, **kwargs)
46  result.merge(setupHistSvcCfg(flags,out_file=outFile, out_stream=outStream))
47  result.getPrimaryAndMerge(TriggerMatchingToolCfg(flags, name='R3MatchingTool'))
48  result.addEventAlgo(alg)
49 
50  return result
51 
52 
53 def execute(cfg):
54  cfg.printConfig(withDetails=True, summariseProps=True)
55  if not cfg.run().isSuccess(): exit(1)
56 
57 
58 if __name__ == "__main__":
59  from AthenaConfiguration.AllConfigFlags import initConfigFlags
60  from MuonCondTest.MdtCablingTester import setupServicesCfg
61 
63  flags = initConfigFlags()
64  flags.Concurrency.NumThreads = args.threads
65  flags.Exec.MaxEvents = args.maxEvents
66  flags.Exec.SkipEvents = args.skipEvents
67  flags.Concurrency.NumConcurrentEvents = args.threads
68  flags.Input.Files = args.inputFile
69  flags.Scheduler.ShowDataDeps = True
70  flags.Scheduler.ShowDataFlow = True
71  flags.lock()
72  cfg = setupServicesCfg(flags)
73  cfg.merge(MSVtxValidationCfg(flags, outFile=args.outputFile))
74  execute(cfg)
MuonVertexValidationRun.execute
def execute(cfg)
Definition: MuonVertexValidationRun.py:53
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
MuonVertexValidationRun.setupHistSvcCfg
def setupHistSvcCfg(flags, out_file="out.root", out_stream="MSVtxValidation")
Definition: MuonVertexValidationRun.py:32
MuonVertexValidationRun.splitOnComma
def splitOnComma(inputs)
Definition: MuonVertexValidationRun.py:9
TriggerMatchingToolConfig.TriggerMatchingToolCfg
def TriggerMatchingToolCfg(ConfigFlags, name, UseTypedScoringTool=False, **kwargs)
Definition: PhysicsAnalysis/DerivationFramework/DerivationFrameworkTrigger/python/TriggerMatchingToolConfig.py:19
MdtCablingTester.setupServicesCfg
def setupServicesCfg(flags)
Definition: MdtCablingTester.py:17
calibdata.exit
exit
Definition: calibdata.py:235
MuonVertexValidationRun.GetArgsFromParser
def GetArgsFromParser()
Definition: MuonVertexValidationRun.py:16
MuonVertexValidationRun.MSVtxValidationCfg
def MSVtxValidationCfg(flags, name="MSVertexValidationAlg", outStream="MSVtxValidation", outFile="out.root", **kwargs)
Definition: MuonVertexValidationRun.py:40
python.AllConfigFlags.initConfigFlags
def initConfigFlags()
Definition: AllConfigFlags.py:19