11def fromRunArgs(runArgs):
12 from AthenaCommon.Logging import logging
13 log = logging.getLogger('PUTracks')
14 log.info('****************** STARTING Reconstruction (PUTracks) *****************')
15 import time
16 timeStart = time.time()
17 log.info('**** Setting-up configuration flags')
18 from AthenaConfiguration.AllConfigFlags import initConfigFlags
19 flags = initConfigFlags()
20 commonRunArgsToFlags(runArgs, flags)
21
22
23 if hasattr(runArgs, 'detectors'):
24 detectors = runArgs.detectors
25 else:
26 detectors = None
27
28
30 if hasattr(runArgs, 'inputRDOFile'):
31 flags.Input.Files = runArgs.inputRDOFile
32
33
34
35 flags.Output.RDOFileName = runArgs.outputRDO_PUFile
36 log.info("---------- Configured BKG_RDO output")
37
38
39 from RecJobTransforms.RecoConfigFlags import recoRunArgsToFlags
40 recoRunArgsToFlags(runArgs, flags)
41
42 from AthenaConfiguration.Enums import ProductionStep
43 flags.Common.ProductionStep = ProductionStep.PileUpPretracking
44 flags.Input.isMC = True
45 flags.Tracking.doVertexFinding = False
46 flags.Overlay.SigPrefix = flags.Overlay.BkgPrefix
47
48
49 from AthenaConfiguration.DetectorConfigFlags import setupDetectorFlags
50 setupDetectorFlags(flags, detectors, use_metadata=True, toggle_geometry=True, keep_beampipe=True)
51
52 from RecJobTransforms.RecoConfigFlags import printRecoFlags
53 printRecoFlags(flags)
54
55
56 from PerfMonComps.PerfMonConfigHelpers import setPerfmonFlagsFromRunArgs
57 setPerfmonFlagsFromRunArgs(flags, runArgs)
58
59
60 processPreInclude(runArgs, flags)
61
62
63 processPreExec(runArgs, flags)
64
65
66 flags.fillFromArgs()
67
68
69 flags.lock()
70
71 from FastChainPileup.PileUpPreTrackingConfig import PreTrackingCfg
72 cfg = PreTrackingCfg(flags)
73 log.info("---------- Configured pileup tracks")
74
75
76 processPostInclude(runArgs, flags, cfg)
77
78
79 processPostExec(runArgs, flags, cfg)
80
81 timeConfig = time.time()
82 log.info("configured in %d seconds", timeConfig - timeStart)
83
84 log.info("Configured according to flag values listed below")
85 flags.dump()
86
87
88 from AthenaConfiguration.AccumulatorCache import AccumulatorDecorator
89 AccumulatorDecorator.printStats()
90
91
92 sc = cfg.run()
93 timeFinal = time.time()
94 log.info("Run PUTracks_skeleton in %d seconds (running %d seconds)", timeFinal - timeStart, timeFinal - timeConfig)
95
96 import sys
97 sys.exit(not sc.isSuccess())