ATLAS Offline Software
runEgammaOnly.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
2 
3 # Simple script to run a
4 # Calo/Tracking/Egamma job
5 #
6 # Usefull for quick testing
7 # run with
8 # python runEgammaOnly.py
9 # or
10 # pythong -m egammaConfig.runEgammaOnly
11 
12 import sys
13 
14 
15 def _run(args):
16  from AthenaConfiguration.AllConfigFlags import initConfigFlags
17 
18  flags = initConfigFlags()
19 
20  flags.Exec.MaxEvents = args.maxEvents
21 
22  from AthenaConfiguration.TestDefaults import defaultTestFiles
23 
24  if not args.inputFileList:
25  flags.Input.Files = defaultTestFiles.RDO_RUN2
26  else:
27  flags.Input.Files = args.inputFileList
28 
29  from AthenaConfiguration.Enums import ProductionStep
30 
31  flags.Common.ProductionStep = ProductionStep.Reconstruction
32 
33  # output
34  flags.Output.AODFileName = args.outputAODFile
35 
36  # uncomment given something like export ATHENA_CORE_NUMBER=2
37  # flags.Concurrency.NumThreads = 2
38 
39  # Setup detector flags
40  from AthenaConfiguration.DetectorConfigFlags import setupDetectorFlags
41 
43  flags, None, use_metadata=True, toggle_geometry=True, keep_beampipe=True
44  )
45 
46  # egamma Only
47  from egammaConfig.egammaOnlyFromRawFlags import egammaOnlyFromRaw
48 
49  egammaOnlyFromRaw(flags)
50 
51  flags.lock()
52 
53  from RecJobTransforms.RecoSteering import RecoSteering
54 
55  acc = RecoSteering(flags)
56 
57  # Special message service configuration
58  from DigitizationConfig.DigitizationSteering import DigitizationMessageSvcCfg
59 
60  acc.merge(DigitizationMessageSvcCfg(flags))
61 
62  from AthenaConfiguration.Utils import setupLoggingLevels
63 
64  setupLoggingLevels(flags, acc)
65 
66  # Print reco domain status
67  from RecJobTransforms.RecoConfigFlags import printRecoFlags
68 
69  printRecoFlags(flags)
70 
71  # running
72  statusCode = acc.run()
73  return statusCode
74 
75 
76 if __name__ == "__main__":
77  statusCode = None
78 
79  # Argument parsing
80  from argparse import ArgumentParser
81 
82  parser = ArgumentParser("egammaOnly")
83  parser.add_argument(
84  "-m",
85  "--maxEvents",
86  default=20,
87  type=int,
88  help="The number of events to run. -1 runs all events.",
89  )
90  parser.add_argument(
91  "-i", "--inputFileList", nargs="*", help="list of input ESD files"
92  )
93  parser.add_argument(
94  "-o", "--outputAODFile", default="myAOD.pool.root", help="Output file name"
95  )
96  args = parser.parse_args()
97 
98  statusCode = _run(args)
99 
100  assert statusCode is not None, "Issue while running"
101  sys.exit(not statusCode.isSuccess())
python.RecoSteering.RecoSteering
def RecoSteering(flags)
Definition: RecoSteering.py:6
python.RecoConfigFlags.printRecoFlags
def printRecoFlags(flags)
Definition: RecoConfigFlags.py:153
python.DigitizationSteering.DigitizationMessageSvcCfg
def DigitizationMessageSvcCfg(flags)
Definition: DigitizationSteering.py:217
python.Utils.setupLoggingLevels
def setupLoggingLevels(flags, ca)
Definition: Control/AthenaConfiguration/python/Utils.py:46
python.egammaOnlyFromRawFlags.egammaOnlyFromRaw
def egammaOnlyFromRaw(flags)
Definition: egammaOnlyFromRawFlags.py:3
python.DetectorConfigFlags.setupDetectorFlags
def setupDetectorFlags(flags, custom_list=None, use_metadata=False, toggle_geometry=False, validate_only=False, keep_beampipe=False)
Definition: DetectorConfigFlags.py:286
python.AllConfigFlags.initConfigFlags
def initConfigFlags()
Definition: AllConfigFlags.py:19
python.runEgammaOnly._run
def _run(args)
Definition: runEgammaOnly.py:15