60 self.setup()
61
62
63 from PerfMonComps.PerfMonConfigHelpers import setPerfmonFlagsFromRunArgs
64 setPerfmonFlagsFromRunArgs(self.flags, self.args)
65
66 if self.args.test_mt_dependencies is not None:
67 self.flags.Concurrency.NumThreads = self.args.test_mt_dependencies
68 self.flags.Scheduler.ShowControlFlow = True
69 self.flags.Scheduler.ShowDataDeps = True
70 self.flags.lock()
71 self.printFlags()
72
73 self.initServiceCfg()
74 if self.args.pool_file_reading or self.args.test_mt_dependencies is not None:
75 from AthenaPoolCnvSvc.PoolReadConfig import PoolReadCfg
76 self.cfg.
merge(PoolReadCfg(self.flags))
77 else:
78 from AthenaRootComps.xAODEventSelectorConfig import xAODReadCfg
79 self.cfg.
merge(xAODReadCfg(self.flags))
80 from EventBookkeeperTools.EventBookkeeperToolsConfig import CutFlowSvcCfg
81 self.cfg.
merge(CutFlowSvcCfg(self.flags))
82
83 outputFile = f"ANALYSIS DATAFILE='{self.outputName}.root' OPT='RECREATE'"
84 from AthenaConfiguration.ComponentFactory import CompFactory
85 self.cfg.addService(CompFactory.THistSvc(Output=[outputFile]))
86 if not self.args.merge_output_files:
87 outputFileHist = f"ANALYSIS_HIST DATAFILE='hist-{self.outputName}.root' OPT='RECREATE'"
88 from AthenaConfiguration.ComponentFactory import CompFactory
89 self.cfg.addService(CompFactory.THistSvc(Output=[outputFileHist]))
90
91
92 self.cfg.
merge(self.makeAlgSequence())
93
94
95 if self.flags.PerfMon.doFastMonMT or self.flags.PerfMon.doFullMonMT:
96 from PerfMonComps.PerfMonCompsConfig import PerfMonMTSvcCfg
97 self.cfg.
merge(PerfMonMTSvcCfg(self.flags))
98
99 self.cfg.printConfig()
100
101
102 if self.args.config_only:
103 with open("CPRunConfig.pkl", "wb") as f:
104 self.cfg.store(f)
105 sys.exit(0)
106
108 sys.exit(sc.isFailure())
int run(int argc, char *argv[])