44def overlayTestFlags(flags, args):
45 """Fill default overlay flags for testing"""
47 flags.Digitization.EnableTruth = False
49 from AthenaConfiguration.TestDefaults import defaultTestFiles, defaultConditionsTags
50 from AthenaConfiguration.Enums import ProductionStep
51 flags.Common.ProductionStep = ProductionStep.Overlay
53 flags.Overlay.DataOverlay = True
54 flags.Overlay.DataOverlayConditions = "OverlayConfiguration.DataOverlayConditions.DataOverlay2023Cfg"
55 flags.Input.isMC = False
56 flags.Input.Files = defaultTestFiles.RDO_BKG_HI_RUN3_2023
57 flags.Input.SecondaryFiles = defaultTestFiles.HITS_DATA_OVERLAY_HI_RUN3_2023
58 flags.Output.RDOFileName = "dataOverlayRDO.pool.root"
59 flags.IOVDb.GlobalTag = defaultConditionsTags.RUN3_DATA23
60 flags.IOVDb.DatabaseInstance = "CONDBR2"
61 from Campaigns import DataOverlay2023
62 DataOverlay2023(flags)
64 if args.run is LHCPeriod.Run2:
65 flags.Input.Files = defaultTestFiles.RDO_BKG_RUN2
66 flags.Input.SecondaryFiles = defaultTestFiles.HITS_RUN2
67 flags.IOVDb.GlobalTag = defaultConditionsTags.RUN2_MC
68 from Campaigns import MC20e
70 elif args.run is LHCPeriod.Run3:
71 flags.Input.Files = defaultTestFiles.RDO_BKG_RUN3_2022
72 flags.Input.SecondaryFiles = defaultTestFiles.HITS_RUN3_2022
73 flags.IOVDb.GlobalTag = defaultConditionsTags.RUN3_MC
74 from Campaigns import MC23a
76 elif args.run is LHCPeriod.Run4:
77 flags.Input.Files = defaultTestFiles.RDO_BKG_RUN4
78 flags.Input.SecondaryFiles = defaultTestFiles.HITS_RUN4
79 flags.IOVDb.GlobalTag = defaultConditionsTags.RUN4_MC
80 from Campaigns import PhaseIIPileUp200
81 PhaseIIPileUp200(flags)
83 raise ValueError("Run not supported")
84 flags.Input.MCChannelNumber = GetFileMD(flags.Input.SecondaryFiles, allowEmpty=False).get("mc_channel_number", 0)
85 flags.Output.RDOFileName = "mcOverlayRDO.pool.root"
86 flags.Overlay.DataOverlay = False
89 if args.output == 'None':
90 flags.Output.RDOFileName = ''
92 flags.Output.RDOFileName = args.output
95 flags.Output.RDO_SGNLFileName = args.outputSig
97 if 'detectors' in args and args.detectors:
98 detectors = args.detectors
102 from AthenaConfiguration.DetectorConfigFlags import setupDetectorFlags
103 setupDetectorFlags(flags, detectors, toggle_geometry=True, use_metadata=True)
105 # Moving here so that it is ahead of flags being locked. Need to
106 # iterate on exact best position w.r.t. above calls
107 from OverlayConfiguration.OverlayMetadata import overlayMetadataCheck
108 # Handle metadata correctly
109 overlayMetadataCheck(flags)
112def postprocessAndLockFlags(flags, args):
113 """Postprocess and lock config flags for overlay"""
114 flags.Concurrency.NumThreads = args.threads
115 flags.Concurrency.NumProcs = args.processes
117 flags.Scheduler.ShowDataDeps = True
118 flags.Scheduler.ShowDataFlow = True
119 flags.Scheduler.ShowControlFlow = True
120 flags.Concurrency.NumConcurrentEvents = args.concurrent if args.concurrent > 0 else args.threads
121 if flags.Overlay.DataOverlay:
122 from CoolConvUtilities.MagFieldUtils import getTimeForLB
123 flags.Input.TimeStamps=[int(getTimeForLB(run=flags.Input.RunNumbers[0], LB=flags.Input.LumiBlockNumbers[0])/1e9)]
128def printAndRun(accessor, flags, args):
129 """Common debugging and execution for overlay tests"""
131 accessor.printConfig(withDetails=args.verboseAccumulators)
132 if args.verboseStoreGate:
133 accessor.getService("StoreGateSvc").Dump = True
137 accessor.setDebugStage (args.debug)
140 sc = accessor.run(maxEvents=args.maxEvents)
142 # Success should be 0
143 return not sc.isSuccess()