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("--triggers", action="store_true", help="Configure the trigger tools")
23  parser.add_argument("--data", action="store_true", help="run on a data file")
24  parser.add_argument("--maxEvents", default=-1, type=int, help="How many events shall be run maximally")
25  parser.add_argument("--skipEvents", default=0, type=int, help="How many events shall be skipped")
26  parser.add_argument("--threads", default=1, type=int, help="number of threads")
27 
28  args = parser.parse_args()
29  args.inputFile = splitOnComma(args.inputFile) # to support comma separated input files
30 
31  return args
32 
33 def MSVtxValidationCfg(flags, name="MSVertexValidationAlg", outStream="MSVtxValidation", outFile="out.root", **kwargs):
34  # outStream defines the steam to place the tree and histograms
35  from TriggerMatchingTool.TriggerMatchingToolConfig import TriggerMatchingToolCfg
36  result = ComponentAccumulator()
37  # setting algorithm properties here via kwargs.setdefault("<property name>", <property value>)
38  alg = CompFactory.MSVtxValidationAlg(name, **kwargs)
39  from MuonConfig.MuonConfigUtils import setupHistSvcCfg
40  result.merge(setupHistSvcCfg(flags,outFile=outFile, outStream=outStream))
41  if kwargs.get("readTriggers", False): result.getPrimaryAndMerge(TriggerMatchingToolCfg(flags, name='R3MatchingTool'))
42  result.addEventAlgo(alg)
43 
44  return result
45 
46 
47 def execute(cfg):
48  cfg.printConfig(withDetails=True, summariseProps=True)
49  if not cfg.run().isSuccess(): exit(1)
50 
51 
52 if __name__ == "__main__":
53  from AthenaConfiguration.AllConfigFlags import initConfigFlags
54  from MuonCondTest.MdtCablingTester import setupServicesCfg
55 
57  flags = initConfigFlags()
58  flags.Concurrency.NumThreads = args.threads
59  flags.Exec.MaxEvents = args.maxEvents
60  flags.Exec.SkipEvents = args.skipEvents
61  flags.Concurrency.NumConcurrentEvents = args.threads
62  flags.Input.Files = args.inputFile
63  flags.Scheduler.ShowDataDeps = True
64  flags.Scheduler.ShowDataFlow = True
65  flags.lock()
66  cfg = setupServicesCfg(flags)
67  cfg.merge(MSVtxValidationCfg(flags, outFile=args.outputFile, readTriggers=args.triggers, isMC=not args.data))
68  execute(cfg)
testGeoModel.setupServicesCfg
def setupServicesCfg(flags)
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/python/testGeoModel.py:37
MuonVertexValidationRun.execute
def execute(cfg)
Definition: MuonVertexValidationRun.py:47
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
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
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:33
python.AllConfigFlags.initConfigFlags
def initConfigFlags()
Definition: AllConfigFlags.py:19
MuonConfigUtils.setupHistSvcCfg
def setupHistSvcCfg(flags, str outFile, str outStream)
Configuration snippet to setup the THistSvc.
Definition: MuonConfigUtils.py:5