4 from AthenaConfiguration.AthConfigFlags
import AthConfigFlags, isGaudiEnv
5 from AthenaConfiguration.AutoConfigFlags
import GetFileMD, getInitialTimeStampsFromRunNumbers, getRunToTimestampDict, getSpecialConfigurationMetadata, getGeneratorsInfo
6 from AthenaConfiguration.Enums
import BeamType, Format, ProductionStep, BunchStructureSource, Project
7 from Campaigns.Utils
import Campaign
8 from PyUtils.moduleExists
import moduleExists
12 """Add flags category and return True/False on success/failure"""
13 if moduleExists (modName):
14 acf.addFlagsCategory (name, generator)
25 acf.addFlag(
'Exec.OutputLevel', INFO, help=
'Global OutputLevel')
26 acf.addFlag(
'Exec.QuietMode',
True, help=
'Suppress excess output for grid running')
27 acf.addFlag(
'Exec.PrintAlgsSequence',
False, help=
'print algorithm sequence in ApplicationMgr')
28 acf.addFlag(
'Exec.MaxEvents', -1, type=int, help=
'number of events to proceess (-1 for all)')
29 acf.addFlag(
'Exec.SkipEvents', 0, type=int, help=
'number of events to skip')
30 acf.addFlag(
'Exec.FirstEvent', 1, type=int, help=
'first event number when not reading from input file')
31 acf.addFlag(
'Exec.DebugStage',
'', help=
'attach debugger at stage: conf, init, exec, fini')
32 acf.addFlag(
'Exec.Interactive',
"", help=
'interactive prompt at stage: init, exec')
33 acf.addFlag(
'Exec.FPE', 0, help=
'FPE check mode: -2 (no FPE check), -1 (abort with core-dump), 0 (FPE Auditor w/o stack-tace) , >0 (number of stack-traces printed by the job)')
34 acf.addFlag(
'Exec.EventTimeOut', 0, help=
'per-event timeout (in ns) after which the job is aborted (0 means no timeout)')
35 acf.addFlag(
'Exec.EventPrintoutInterval', 1, help=
'interval of event heartbeat printouts from the loop manager')
38 acf.addFlag(
'Exec.VerboseMessageComponents', [], help=
'verbose output for listed components (wildcards)')
39 acf.addFlag(
'Exec.DebugMessageComponents', [], help=
'debug output for listed components (wildcards)')
40 acf.addFlag(
'Exec.InfoMessageComponents', [], help=
'info output for listed components (wildcards)')
41 acf.addFlag(
'Exec.WarningMessageComponents', [], help=
'warning output for listed components (wildcards)')
42 acf.addFlag(
'Exec.ErrorMessageComponents', [], help=
'error output for listed components (wildcards)')
45 acf.addFlag(
'Exec.MTEventService',
False, help=
'use multi-threaded event service')
46 acf.addFlag(
'Exec.MTEventServiceChannel',
'EventService_EventRanges', help=
'name of YAMPL communication channel between AthenaMT and pilot')
49 acf.addFlag(
'Debug.DumpEvtStore',
False, help=
'dump event store on each event')
50 acf.addFlag(
'Debug.DumpDetStore',
False, help=
'dump detector store on each event')
51 acf.addFlag(
'Debug.DumpCondStore',
False, help=
'dump conditions store on each event')
53 acf.addFlag(
'ExecutorSplitting.TotalSteps', 0, help=
'number of steps for pileup overlay')
54 acf.addFlag(
'ExecutorSplitting.Step', -1, help=
'step number of current pileup overlay job')
55 acf.addFlag(
'ExecutorSplitting.TotalEvents', -1, help=
'events per pileup overlay step')
58 acf.addFlag(
'Input.Files', [
"_ATHENA_GENERIC_INPUTFILE_NAME_",], help=
'input files')
59 acf.addFlag(
"Input.FileNentries", -1, help=
'actual number of events in file (filled from runArgs')
60 acf.addFlag(
'Input.SecondaryFiles', [], help=
'secondary input files for DoubleEventSelector')
61 acf.addFlag(
'Input.isMC',
lambda prevFlags :
"IS_SIMULATION" in GetFileMD(prevFlags.Input.Files).
get(
"eventTypes", []), help=
'Monte Carlo input')
62 acf.addFlag(
'Input.OverrideRunNumber',
False, help=
'override run number' )
63 acf.addFlag(
"Input.ConditionsRunNumber", -1, help=
'override HITS file run number with one from a data')
64 acf.addFlag(
'Input.RunNumbers',
lambda prevFlags :
list(
GetFileMD(prevFlags.Input.Files).
get(
"runNumbers", [])), type=list, help=
'run numbers of input files')
65 acf.addFlag(
'Input.MCChannelNumber',
lambda prevFlags :
GetFileMD(prevFlags.Input.Files).
get(
"mc_channel_number", 0), help=
'Monte Carlo channel number')
66 acf.addFlag(
'Input.LumiBlockNumbers',
lambda prevFlags :
list(
GetFileMD(prevFlags.Input.Files).
get(
"lumiBlockNumbers", [])), type=list, help=
'lumi block numbers of input files')
67 acf.addFlag(
'Input.TimeStamps',
lambda prevFlags :
getInitialTimeStampsFromRunNumbers(prevFlags.Input.RunNumbers)
if prevFlags.Input.OverrideRunNumber
else [], type=list, help=
'timestamps of inputs files')
70 acf.addFlag(
"Input.RunAndLumiOverrideList", [], help=
'list of dictionaries to configure EvtIdModifierSvc')
72 acf.addFlag(
"Input.JobNumber", 1, help=
'job number for pileup overlay')
73 acf.addFlag(
'Input.FailOnUnknownCollections',
False, help=
'fail on unknown collections in input load')
75 def _dataYearFromFlags(prevFlags):
76 dataYear =
GetFileMD(prevFlags.Input.Files).
get(
"data_year",
"")
79 if prevFlags.Input.ProjectName.startswith(
"data"):
80 if prevFlags.Input.ProjectName[4:6].isdigit():
81 return 2000 +
int(prevFlags.Input.ProjectName[4:6])
84 acf.addFlag(
'Input.ProjectName',
lambda prevFlags :
GetFileMD(prevFlags.Input.Files).
get(
"project_name",
""), help=
'project name')
85 acf.addFlag(
'Input.DataYear', _dataYearFromFlags, help=
'year of input data')
86 acf.addFlag(
'Input.MCCampaign',
lambda prevFlags : Campaign(
GetFileMD(prevFlags.Input.Files).
get(
"mc_campaign",
"")), type=Campaign, help=
'Monte Carlo campaign')
87 acf.addFlag(
'Input.TriggerStream',
lambda prevFlags :
GetFileMD(prevFlags.Input.Files).
get(
"stream",
"")
if prevFlags.Input.Format == Format.BS
88 else GetFileMD(prevFlags.Input.Files).
get(
"triggerStreamOfFile",
""), help=
'trigger stream name')
89 acf.addFlag(
'Input.Format',
lambda prevFlags : Format.BS
if GetFileMD(prevFlags.Input.Files).
get(
"file_type",
"BS") ==
"BS" else Format.POOL, type=Format, help=
'input format type')
90 acf.addFlag(
'Input.ProcessingTags',
lambda prevFlags :
GetFileMD(prevFlags.Input.Files).
get(
"processingTags", []), help=
'list of stream names in this file')
91 acf.addFlag(
'Input.GeneratorsInfo',
lambda prevFlags :
getGeneratorsInfo(prevFlags), help=
'generator version')
92 acf.addFlag(
'Input.SpecialConfiguration',
lambda prevFlags :
getSpecialConfigurationMetadata(prevFlags), help=
'special configuration options read from input file metadata')
94 def _inputCollections(inputFile):
95 rawCollections = [type_key[1]
for type_key
in GetFileMD(inputFile).
get(
"itemList", [])]
96 collections = [col
for col
in rawCollections
if not col.endswith(
'Aux.')]
99 def _typedInputCollections(inputFile):
100 collections = [
'%s#%s' % type_key
for type_key
in GetFileMD(inputFile).
get(
"itemList", [])]
103 acf.addFlag(
'Input.Collections',
lambda prevFlags : _inputCollections(prevFlags.Input.Files), help=
'input collections')
104 acf.addFlag(
'Input.SecondaryCollections',
lambda prevFlags : _inputCollections(prevFlags.Input.SecondaryFiles), help=
'secondary input collections for overlay')
105 acf.addFlag(
'Input.TypedCollections',
lambda prevFlags : _typedInputCollections(prevFlags.Input.Files), help=
'input collections key#type')
106 acf.addFlag(
'Input.SecondaryTypedCollections',
lambda prevFlags : _typedInputCollections(prevFlags.Input.SecondaryFiles), help=
'secondary input collections key#type')
108 def _metadataItems(inputFile):
111 acf.addFlag(
'Input.MetadataItems',
lambda prevFlags : _metadataItems(prevFlags.Input.Files), help=
'metadata items in input' )
112 acf.addFlag(
'Input.Release',
lambda prevFlags :
GetFileMD(prevFlags.Input.Files).
get(
"AtlasRelease",
""), help=
'release of input file')
113 acf.addFlag(
'Input.AODFixesDone',
lambda prevFlags :
GetFileMD(prevFlags.Input.Files).
get(
"AODFixVersion",
""), help=
'set of already applied AODFixes')
115 acf.addFlag(
'Concurrency.NumProcs', 0, help=
'number of concurrent processes')
116 acf.addFlag(
'Concurrency.NumThreads', 0, help=
'number of threads' )
117 acf.addFlag(
'Concurrency.NumConcurrentEvents',
lambda prevFlags : prevFlags.Concurrency.NumThreads, help=
'number of concurrent events')
118 acf.addFlag(
'Concurrency.DebugWorkers',
False, help=
'stops the worker in bootstrap until SIGUSR1 is received')
119 acf.addFlag(
'Concurrency.NumOffloadThreads', 0, help=
'maximum number of extra threads to use for CPU portion of asynchronous algorithms')
121 acf.addFlag(
'Scheduler.CheckDependencies',
True, help=
'runtime check of algorithm input dependencies')
122 acf.addFlag(
'Scheduler.CheckOutputUsage',
False, help=
'runtime check of algorithm output usage')
123 acf.addFlag(
'Scheduler.ShowDataDeps',
False, help=
'show data dependencies')
124 acf.addFlag(
'Scheduler.ShowDataFlow',
False, help=
'show data flow')
125 acf.addFlag(
'Scheduler.ShowControlFlow',
False, help=
'show data flow')
126 acf.addFlag(
'Scheduler.EnableVerboseViews',
True, help=
'enable verbose view output')
127 acf.addFlag(
'Scheduler.AutoLoadUnmetDependencies',
True, help=
'auto-load unmet data dependencies')
128 acf.addFlag(
'Scheduler.DataDepsGraphFile',
'', help=
'file name containing the data dependency graph [.dot or .md]')
129 acf.addFlag(
'Scheduler.DataDepsGraphAlgPattern',
'.*', help=
'regex pattern for selecting algorithms to be drawn in the data dependency graph')
130 acf.addFlag(
'Scheduler.DataDepsGraphObjectPattern',
'.*', help=
'regex pattern for selecting I/O to be drawn in the data dependency graph')
132 acf.addFlag(
'MP.WorkerTopDir',
'athenaMP_workers', help=
'work directory for MP workers')
133 acf.addFlag(
'MP.OutputReportFile',
'AthenaMPOutputs', help=
'name of MP report file')
134 acf.addFlag(
'MP.Strategy',
'SharedQueue', help=
'event assignment strategy')
135 acf.addFlag(
'MP.CollectSubprocessLogs',
False, help=
'collects log of sub-processes')
136 acf.addFlag(
'MP.PollingInterval', 100, help=
'time interval in milliseconds between subsequent polling of subproceses')
137 acf.addFlag(
'MP.EventsBeforeFork', 0, help=
'number of events to process before forking')
138 acf.addFlag(
'MP.EventRangeChannel',
'EventService_EventRanges', help=
'channel name for communicating event ranges with the pilot')
139 acf.addFlag(
'MP.EvtRangeScattererCaching',
False, help=
'activate extra event caching by the EvtRangeScatterer')
140 acf.addFlag(
'MP.MemSamplingInterval', 0, help=
'time interval in seconds between taking memory samples')
141 acf.addFlag(
'MP.ChunkSize', -1, help=
'size of event chunks in shared queue (-1: auto_flush for LZMA-compressed files, -2: auto_flush for LZMA or ZLIB, -3: auto_flush for LZMA, ZLIB or LZ4, -4: auto_flush)')
142 acf.addFlag(
'MP.ReadEventOrders',
False, help=
'read event order from ASCII file for reproducibility')
143 acf.addFlag(
'MP.EventOrdersFile',
'athenamp_eventorders.txt', help=
'file name for event order')
144 acf.addFlag(
'MP.UseSharedReader',
False, help=
'use shared reader')
145 acf.addFlag(
'MP.UseSharedWriter',
False, help=
'use shared writer')
146 acf.addFlag(
'MP.UseParallelCompression',
True, help=
'enable event compression in workers')
148 acf.addFlag(
'Common.MsgSuppression',
True, help=
'enable log message suppression')
149 acf.addFlag(
'Common.MsgSourceLength', 50, help=
'length of the source-field in the log message format')
150 acf.addFlag(
'Common.ShowMsgStats',
False ,help=
'print message statistics at the end of the job')
152 acf.addFlag(
'Common.isOnline',
False, help=
'job runs in an online environment')
153 acf.addFlag(
'Common.useOnlineLumi',
lambda prevFlags : prevFlags.Common.isOnline, help=
'use online version of luminosity')
154 acf.addFlag(
'Common.isOverlay',
lambda prevFlags: (prevFlags.Common.ProductionStep == ProductionStep.Overlay
or
155 (prevFlags.Common.ProductionStep == ProductionStep.FastChain
and
156 prevFlags.Overlay.FastChain)),
157 help=
'enable overlay')
158 acf.addFlag(
'Common.doExpressProcessing',
False, help=
'do express stream processing')
159 acf.addFlag(
'Common.ProductionStep', ProductionStep.Default, type=ProductionStep, help=
'production step')
160 acf.addFlag(
'Common.Project', Project.determine(), type=Project, help=
'current athena software project')
163 acf.addFlag(
'Beam.BunchSpacing', 25, help=
'bunch spacing in nanoseconds')
164 acf.addFlag(
'Beam.Type',
lambda prevFlags :
BeamType(
GetFileMD(prevFlags.Input.Files).
get(
'beam_type',
'collisions')), type=BeamType, help=
'beam type')
165 acf.addFlag(
"Beam.NumberOfCollisions",
lambda prevFlags : 2.
if prevFlags.Beam.Type
is BeamType.Collisions
else 0., help=
'number of pileup collisions')
167 def _configureBeamEnergy(prevFlags):
168 metadata =
GetFileMD(prevFlags.Input.Files)
171 if prevFlags.Input.Format == Format.POOL:
172 return float(metadata.get(
"beam_energy", default))
174 elif prevFlags.Input.Format == Format.BS:
175 if metadata.get(
"eventTypes", [
""])[0] ==
"IS_DATA":
177 if prevFlags.Common.isOnline:
178 from PyUtils.OnlineISConfig
import GetRunType
183 if prevFlags.Beam.Type.value ==
"cosmics":
185 elif prevFlags.Beam.Type.value ==
"singlebeam":
187 elif prevFlags.Beam.Type.value ==
"collisions":
188 projectName = prevFlags.Input.ProjectName
191 if "GeV" in projectName:
199 elif "TeV" in projectName:
200 if "hip5TeV" in projectName:
202 beamEnergy = 1.577 * TeV
203 elif "hip8TeV" in projectName:
205 beamEnergy = 2.51 * TeV
216 if "5TeV" in projectName:
218 beamEnergy = 2.51 * TeV
219 elif projectName.endswith(
"_hi")
or projectName.endswith(
"_hip"):
220 if projectName
in (
"data10_hi",
"data11_hi"):
221 beamEnergy = 1.38 * TeV
222 elif projectName ==
"data12_hi":
223 beamEnergy = 1.577 * TeV
224 elif projectName
in (
"data12_hip",
"data13_hip"):
227 beamEnergy = 2.51 * TeV
228 elif projectName
in (
"data15_hi",
"data18_hi"):
229 beamEnergy = 2.51 * TeV
230 elif projectName ==
"data17_hi":
231 beamEnergy = 2.721 * TeV
232 return beamEnergy
or default
233 elif metadata.get(
"eventTypes", [
""])[0] ==
"IS_SIMULATION":
234 return float(metadata.get(
"beam_energy", default))
238 acf.addFlag(
'Beam.Energy',
lambda prevFlags : _configureBeamEnergy(prevFlags), help=
'beam energy in MeV')
239 acf.addFlag(
'Beam.estimatedLuminosity',
lambda prevFlags : ( 1E33*(prevFlags.Beam.NumberOfCollisions)/2.3 ) *\
240 (25./prevFlags.Beam.BunchSpacing), help=
'luminosity estimated from pileup')
241 acf.addFlag(
'Beam.BunchStructureSource',
lambda prevFlags: BunchStructureSource.MC
if prevFlags.Input.isMC
else BunchStructureSource.TrigConf, help=
'source of bunch structure')
244 acf.addFlag(
'Output.EVNTFileName',
'', help=
'EVNT output file name')
245 acf.addFlag(
'Output.EVNT_TRFileName',
'', help=
'EVNT_TR output file name')
246 acf.addFlag(
'Output.HITSFileName',
'', help=
'HITS output file name')
247 acf.addFlag(
'Output.RDOFileName',
'', help=
'RDO output file name')
248 acf.addFlag(
'Output.RDO_SGNLFileName',
'', help=
'RDO_SGNL output file name')
249 acf.addFlag(
'Output.ESDFileName',
'', help=
'ESD output file name')
250 acf.addFlag(
'Output.AODFileName',
'', help=
'AOD output file name')
251 acf.addFlag(
'Output.HISTFileName',
'', help=
'HIST output file name')
253 acf.addFlag(
'Output.doWriteEVNT',
lambda prevFlags:
bool(prevFlags.Output.EVNTFileName), help=
'write EVNT file')
254 acf.addFlag(
'Output.doWriteEVNT_TR',
lambda prevFlags:
bool(prevFlags.Output.EVNT_TRFileName), help=
'write EVNT_TR file')
255 acf.addFlag(
'Output.doWriteHITS',
lambda prevFlags:
bool(prevFlags.Output.HITSFileName), help=
'write HITS file')
256 acf.addFlag(
'Output.doWriteRDO',
lambda prevFlags:
bool(prevFlags.Output.RDOFileName), help=
'write RDO file')
257 acf.addFlag(
'Output.doWriteRDO_SGNL',
lambda prevFlags:
bool(prevFlags.Output.RDO_SGNLFileName), help=
'write RDO_SGNL file')
258 acf.addFlag(
'Output.doWriteESD',
lambda prevFlags:
bool(prevFlags.Output.ESDFileName), help=
'write ESD file')
259 acf.addFlag(
'Output.doWriteAOD',
lambda prevFlags:
bool(prevFlags.Output.AODFileName), help=
'write AOD file')
260 acf.addFlag(
'Output.doWriteBS',
False, help=
'write bytestream file')
261 acf.addFlag(
'Output.doWriteDAOD',
False, help=
'write at least one DAOD file')
262 acf.addFlag(
'Output.doJiveXML',
False, help=
'write JiveXML file')
264 acf.addFlag(
'Output.OneDataHeaderForm',
False, help=
"Write only a single common DataHeaderForm per stream")
265 acf.addFlag(
'Output.TreeAutoFlush', {}, help=
"dict with auto-flush settings for stream e.g. {'STREAM': 123}")
266 acf.addFlag(
'Output.TemporaryStreams', [], help=
'list of output streams that are marked temporary')
267 acf.addFlag(
'Output.StorageTechnology.EventData',
'ROOTTREEINDEX', help=
'set the underlying POOL storage technology for event data')
268 acf.addFlag(
'Output.StorageTechnology.MetaData',
'ROOTTREE', help=
'set the underlying POOL storage technology for metadata')
273 acf.addFlag(
'TrackingGeometry.MagneticFileMode', 6)
274 acf.addFlag(
'TrackingGeometry.MaterialSource',
'COOL', help=
'material source (COOL, Input or None)')
278 from AthenaConfiguration.DetectorConfigFlags
import createDetectorConfigFlags
280 acf.addFlagsCategory(
"Detector", __detector )
284 from SimulationConfig.SimConfigFlags
import createSimConfigFlags
286 _addFlagsCategory (acf,
"Sim", __simulation,
'SimulationConfig' )
290 from SimulationConfig.TestBeamConfigFlags
import createTestBeamConfigFlags
292 _addFlagsCategory (acf,
"TestBeam", __testbeam,
'SimulationConfig' )
295 def __digitization():
296 from DigitizationConfig.DigitizationConfigFlags
import createDigitizationCfgFlags
302 from OverlayConfiguration.OverlayConfigFlags
import createOverlayConfigFlags
308 from AthenaConfiguration.GeoModelConfigFlags
import createGeoModelConfigFlags
310 acf.addFlagsCategory(
"GeoModel", __geomodel )
314 from RecJobTransforms.RecoConfigFlags
import createRecoConfigFlags
320 from GeneratorConfig.GeneratorConfigFlags
import createGeneratorConfigFlags
326 from IOVDbSvc.IOVDbAutoCfgFlags
import getLastGlobalTag, getDatabaseInstanceDefault
328 def __getTrigTag(flags):
329 from TriggerJobOpts.TriggerConfigFlags
import trigGlobalTag
332 acf.addFlag(
"IOVDb.GlobalTag",
lambda flags :
333 (__getTrigTag(flags)
if flags.Trigger.doLVL1
or flags.Trigger.doHLT
else None)
or
336 acf.addFlag(
"IOVDb.DatabaseInstance", getDatabaseInstanceDefault, help=
'conditions DB instance')
339 acf.addFlag(
"IOVDb.RunToTimestampDict",
lambda prevFlags:
getRunToTimestampDict(), help=
'runNumber to timestamp map')
340 acf.addFlag(
"IOVDb.DBConnection",
lambda prevFlags :
"sqlite://;schema=mycool.db;dbname=" + prevFlags.IOVDb.DatabaseInstance, help=
'default DB connection string')
341 acf.addFlag(
"IOVDb.CrestServer",
"http://crest-undertow-api.web.cern.ch", help=
"CREST server URL")
344 acf.addFlag(
"IOVDb.CleanerRingSize",
lambda prevFlags : 0
if prevFlags.Trigger.doHLT
else 2*
max(1, prevFlags.Concurrency.NumConcurrentEvents), help=
'size of ring-buffer for conditions cleaner')
345 acf.addFlag(
"IOVDb.SqliteInput",
"",help=
"Folders found in this file will be used instead of the production db")
346 acf.addFlag(
"IOVDb.SqliteFolders",(),help=
"Folders listed here will be taken from the IOVDb.SqliteInput file instead of the production db. If empty, all folders found in the file are used.")
348 acf.addFlag(
"PoolSvc.MaxFilesOpen",
lambda prevFlags : 2
if prevFlags.MP.UseSharedReader
else 0, help=
'maximum number of open files')
352 from MagFieldConfig.BFieldConfigFlags
import createBFieldConfigFlags
357 from LArConfiguration.LArConfigFlags
import createLArConfigFlags
362 from TileConfiguration.TileConfigFlags
import createTileConfigFlags
368 from CaloRec.CaloConfigFlags
import createCaloConfigFlags
373 acf.addFlag(
"Random.Engine",
"dSFMT", help=
'random number service ("dSFMT", "Ranlux64", "Ranecu")')
374 acf.addFlag(
"Random.SeedOffset", 0, help=
'seed offset')
377 from TriggerJobOpts.TriggerConfigFlags
import createTriggerFlags
384 acf.addFlag(
'Trigger.doLVL1',
False, help=
'enable L1 simulation')
385 acf.addFlag(
'Trigger.doHLT',
False, help=
'run HLT selection algorithms')
388 from InDetConfig.InDetConfigFlags
import createInDetConfigFlags
393 from InDetConfig.ITkConfigFlags
import createITkConfigFlags
398 from TrkConfig.TrkConfigFlags
import createTrackingConfigFlags
402 def __trackoverlay():
403 from TrackOverlayConfig.TrackOverlayConfigFlags
import createTrackOverlayConfigFlags
408 from ActsConfig.ActsConfigFlags
import createActsConfigFlags
413 from HGTD_Config.HGTD_ConfigFlags
import createHGTD_ConfigFlags
418 from MuonConfig.MuonConfigFlags
import createMuonConfigFlags
422 def __muoncombined():
423 from MuonCombinedConfig.MuonCombinedConfigFlags
import createMuonCombinedConfigFlags
428 from egammaConfig.egammaConfigFlags
import createEgammaConfigFlags
433 from METReconstruction.METConfigFlags
import createMETConfigFlags
438 from JetRecConfig.JetConfigFlags
import createJetConfigFlags
443 from TrackCaloClusterRecTools.UFOConfigFlags
import createUFOConfigFlags
448 from tauRec.TauConfigFlags
import createTauConfigFlags
453 from DiTauRec.DiTauConfigFlags
import createDiTauConfigFlags
458 from eflowRec.PFConfigFlags
import createPFConfigFlags
463 from JetTagConfig.BTaggingConfigFlags
import createBTaggingConfigFlags
468 from HIRecConfig.HIRecConfigFlags
import createHIRecConfigFlags
473 from EventDisplaysOnline.EventDisplaysOnlineFlags
import createOnlineEventDisplayFlags
475 _addFlagsCategory(acf,
"OnlineEventDisplays", __onlineED,
'EventDisplaysOnline' )
478 from AthenaMonitoring.DQConfigFlags
import createDQConfigFlags
484 from PerfMonComps.PerfMonConfigFlags
import createPerfMonConfigFlags
489 from PhysValMonitoring.PhysValFlags
import createPhysValConfigFlags
494 from CaloRingerAlgs.CaloRingerFlags
import createCaloRingerConfigFlags
499 from CaloRecGPU.CaloRecGPUFlags
import createFlagsCaloRecGPU
505 def __egammaDerivation():
506 from DerivationFrameworkEGamma.EGammaDFConfigFlags
import createEGammaDFConfigFlags
508 _addFlagsCategory(acf,
"Derivation.Egamma", __egammaDerivation,
'DerivationFrameworkEGamma' )
511 def __llpDerivation():
512 from DerivationFrameworkLLP.LLPDFConfigFlags
import createLLPDFConfigFlags
514 _addFlagsCategory(acf,
"Derivation.LLP", __llpDerivation,
'DerivationFrameworkLLP' )
518 from AthOnnxComps.OnnxRuntimeFlags
import createOnnxRuntimeFlags
527 collections = flags.Input.Collections
528 if "HLTResult_EF" in collections:
530 elif "TrigNavigation" in collections:
532 elif any(
"HLTNav_Summary" in s
for s
in collections):
534 elif not flags.Input.Collections:
539 return default_version
540 acf.addFlag(
'Trigger.EDMVersion',
lambda prevFlags:
EDMVersion(prevFlags),
541 help=
'Trigger EDM version (determined by input file or set to the version to be produced)')
546 if __name__==
"__main__":
547 from AthenaConfiguration.TestDefaults
import defaultTestFiles
550 if len(sys.argv) > 1:
551 flags.Input.Files = sys.argv[1:]
553 flags.Input.Files = defaultTestFiles.AOD_RUN3_DATA
555 flags.loadAllDynamicFlags()