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,
155 help=
'enable overlay')
156 acf.addFlag(
'Common.doExpressProcessing',
False, help=
'do express stream processing')
157 acf.addFlag(
'Common.ProductionStep', ProductionStep.Default, type=ProductionStep, help=
'production step')
158 acf.addFlag(
'Common.Project', Project.determine(), type=Project, help=
'current athena software project')
161 acf.addFlag(
'Beam.BunchSpacing', 25, help=
'bunch spacing in nanoseconds')
162 acf.addFlag(
'Beam.Type',
lambda prevFlags :
BeamType(
GetFileMD(prevFlags.Input.Files).
get(
'beam_type',
'collisions')), type=BeamType, help=
'beam type')
163 acf.addFlag(
"Beam.NumberOfCollisions",
lambda prevFlags : 2.
if prevFlags.Beam.Type
is BeamType.Collisions
else 0., help=
'number of pileup collisions')
165 def _configureBeamEnergy(prevFlags):
166 metadata =
GetFileMD(prevFlags.Input.Files)
169 if prevFlags.Input.Format == Format.POOL:
170 return float(metadata.get(
"beam_energy", default))
172 elif prevFlags.Input.Format == Format.BS:
173 if metadata.get(
"eventTypes", [
""])[0] ==
"IS_DATA":
175 if prevFlags.Common.isOnline:
176 from PyUtils.OnlineISConfig
import GetRunType
181 if prevFlags.Beam.Type.value ==
"cosmics":
183 elif prevFlags.Beam.Type.value ==
"singlebeam":
185 elif prevFlags.Beam.Type.value ==
"collisions":
186 projectName = prevFlags.Input.ProjectName
189 if "GeV" in projectName:
197 elif "TeV" in projectName:
198 if "hip5TeV" in projectName:
200 beamEnergy = 1.577 * TeV
201 elif "hip8TeV" in projectName:
203 beamEnergy = 2.51 * TeV
214 if "5TeV" in projectName:
216 beamEnergy = 2.51 * TeV
217 elif projectName.endswith(
"_hi")
or projectName.endswith(
"_hip"):
218 if projectName
in (
"data10_hi",
"data11_hi"):
219 beamEnergy = 1.38 * TeV
220 elif projectName ==
"data12_hi":
221 beamEnergy = 1.577 * TeV
222 elif projectName
in (
"data12_hip",
"data13_hip"):
225 beamEnergy = 2.51 * TeV
226 elif projectName
in (
"data15_hi",
"data18_hi"):
227 beamEnergy = 2.51 * TeV
228 elif projectName ==
"data17_hi":
229 beamEnergy = 2.721 * TeV
230 return beamEnergy
or default
231 elif metadata.get(
"eventTypes", [
""])[0] ==
"IS_SIMULATION":
232 return float(metadata.get(
"beam_energy", default))
236 acf.addFlag(
'Beam.Energy',
lambda prevFlags : _configureBeamEnergy(prevFlags), help=
'beam energy in MeV')
237 acf.addFlag(
'Beam.estimatedLuminosity',
lambda prevFlags : ( 1E33*(prevFlags.Beam.NumberOfCollisions)/2.3 ) *\
238 (25./prevFlags.Beam.BunchSpacing), help=
'luminosity estimated from pileup')
239 acf.addFlag(
'Beam.BunchStructureSource',
lambda prevFlags: BunchStructureSource.MC
if prevFlags.Input.isMC
else BunchStructureSource.TrigConf, help=
'source of bunch structure')
242 acf.addFlag(
'Output.EVNTFileName',
'', help=
'EVNT output file name')
243 acf.addFlag(
'Output.EVNT_TRFileName',
'', help=
'EVNT_TR output file name')
244 acf.addFlag(
'Output.HITSFileName',
'', help=
'HITS output file name')
245 acf.addFlag(
'Output.RDOFileName',
'', help=
'RDO output file name')
246 acf.addFlag(
'Output.RDO_SGNLFileName',
'', help=
'RDO_SGNL output file name')
247 acf.addFlag(
'Output.ESDFileName',
'', help=
'ESD output file name')
248 acf.addFlag(
'Output.AODFileName',
'', help=
'AOD output file name')
249 acf.addFlag(
'Output.HISTFileName',
'', help=
'HIST output file name')
251 acf.addFlag(
'Output.doWriteEVNT',
lambda prevFlags:
bool(prevFlags.Output.EVNTFileName), help=
'write EVNT file')
252 acf.addFlag(
'Output.doWriteEVNT_TR',
lambda prevFlags:
bool(prevFlags.Output.EVNT_TRFileName), help=
'write EVNT_TR file')
253 acf.addFlag(
'Output.doWriteHITS',
lambda prevFlags:
bool(prevFlags.Output.HITSFileName), help=
'write HITS file')
254 acf.addFlag(
'Output.doWriteRDO',
lambda prevFlags:
bool(prevFlags.Output.RDOFileName), help=
'write RDO file')
255 acf.addFlag(
'Output.doWriteRDO_SGNL',
lambda prevFlags:
bool(prevFlags.Output.RDO_SGNLFileName), help=
'write RDO_SGNL file')
256 acf.addFlag(
'Output.doWriteESD',
lambda prevFlags:
bool(prevFlags.Output.ESDFileName), help=
'write ESD file')
257 acf.addFlag(
'Output.doWriteAOD',
lambda prevFlags:
bool(prevFlags.Output.AODFileName), help=
'write AOD file')
258 acf.addFlag(
'Output.doWriteBS',
False, help=
'write bytestream file')
259 acf.addFlag(
'Output.doWriteDAOD',
False, help=
'write at least one DAOD file')
260 acf.addFlag(
'Output.doJiveXML',
False, help=
'write JiveXML file')
262 acf.addFlag(
'Output.OneDataHeaderForm',
False, help=
"Write only a single common DataHeaderForm per stream")
263 acf.addFlag(
'Output.TreeAutoFlush', {}, help=
"dict with auto-flush settings for stream e.g. {'STREAM': 123}")
264 acf.addFlag(
'Output.TemporaryStreams', [], help=
'list of output streams that are marked temporary')
265 acf.addFlag(
'Output.StorageTechnology.EventData',
'ROOTTREEINDEX', help=
'set the underlying POOL storage technology for event data')
266 acf.addFlag(
'Output.StorageTechnology.MetaData',
'ROOTTREE', help=
'set the underlying POOL storage technology for metadata')
271 acf.addFlag(
'TrackingGeometry.MagneticFileMode', 6)
272 acf.addFlag(
'TrackingGeometry.MaterialSource',
'COOL', help=
'material source (COOL, Input or None)')
276 from AthenaConfiguration.DetectorConfigFlags
import createDetectorConfigFlags
278 acf.addFlagsCategory(
"Detector", __detector )
282 from SimulationConfig.SimConfigFlags
import createSimConfigFlags
284 _addFlagsCategory (acf,
"Sim", __simulation,
'SimulationConfig' )
288 from SimulationConfig.TestBeamConfigFlags
import createTestBeamConfigFlags
290 _addFlagsCategory (acf,
"TestBeam", __testbeam,
'SimulationConfig' )
293 def __digitization():
294 from DigitizationConfig.DigitizationConfigFlags
import createDigitizationCfgFlags
300 from OverlayConfiguration.OverlayConfigFlags
import createOverlayConfigFlags
306 from AthenaConfiguration.GeoModelConfigFlags
import createGeoModelConfigFlags
308 acf.addFlagsCategory(
"GeoModel", __geomodel )
312 from RecJobTransforms.RecoConfigFlags
import createRecoConfigFlags
318 from GeneratorConfig.GeneratorConfigFlags
import createGeneratorConfigFlags
324 from IOVDbSvc.IOVDbAutoCfgFlags
import getLastGlobalTag, getDatabaseInstanceDefault
326 def __getTrigTag(flags):
327 from TriggerJobOpts.TriggerConfigFlags
import trigGlobalTag
330 acf.addFlag(
"IOVDb.GlobalTag",
lambda flags :
331 (__getTrigTag(flags)
if flags.Trigger.doLVL1
or flags.Trigger.doHLT
else None)
or
334 acf.addFlag(
"IOVDb.DatabaseInstance", getDatabaseInstanceDefault, help=
'conditions DB instance')
337 acf.addFlag(
"IOVDb.RunToTimestampDict",
lambda prevFlags:
getRunToTimestampDict(), help=
'runNumber to timestamp map')
338 acf.addFlag(
"IOVDb.DBConnection",
lambda prevFlags :
"sqlite://;schema=mycool.db;dbname=" + prevFlags.IOVDb.DatabaseInstance, help=
'default DB connection string')
339 acf.addFlag(
"IOVDb.CrestServer",
"http://crest-undertow-api.web.cern.ch", help=
"CREST server URL")
342 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')
343 acf.addFlag(
"IOVDb.SqliteInput",
"",help=
"Folders found in this file will be used instead of the production db")
344 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.")
346 acf.addFlag(
"PoolSvc.MaxFilesOpen",
lambda prevFlags : 2
if prevFlags.MP.UseSharedReader
else 0, help=
'maximum number of open files')
347 acf.addFlag(
'PoolSvc.DefaultContainerType',
'ROOTTREEINDEX', help=
'set the underlying POOL storage technology for the default container type')
351 from MagFieldConfig.BFieldConfigFlags
import createBFieldConfigFlags
356 from LArConfiguration.LArConfigFlags
import createLArConfigFlags
361 from TileConfiguration.TileConfigFlags
import createTileConfigFlags
367 from CaloRec.CaloConfigFlags
import createCaloConfigFlags
372 acf.addFlag(
"Random.Engine",
"dSFMT", help=
'random number service ("dSFMT", "Ranlux64", "Ranecu")')
373 acf.addFlag(
"Random.SeedOffset", 0, help=
'seed offset')
376 from TriggerJobOpts.TriggerConfigFlags
import createTriggerFlags
383 acf.addFlag(
'Trigger.doLVL1',
False, help=
'enable L1 simulation')
384 acf.addFlag(
'Trigger.doHLT',
False, help=
'run HLT selection algorithms')
387 from InDetConfig.InDetConfigFlags
import createInDetConfigFlags
392 from InDetConfig.ITkConfigFlags
import createITkConfigFlags
397 from TrkConfig.TrkConfigFlags
import createTrackingConfigFlags
401 def __trackoverlay():
402 from TrackOverlayConfig.TrackOverlayConfigFlags
import createTrackOverlayConfigFlags
407 from ActsConfig.ActsConfigFlags
import createActsConfigFlags
412 from HGTD_Config.HGTD_ConfigFlags
import createHGTD_ConfigFlags
417 from MuonConfig.MuonConfigFlags
import createMuonConfigFlags
421 def __muoncombined():
422 from MuonCombinedConfig.MuonCombinedConfigFlags
import createMuonCombinedConfigFlags
427 from egammaConfig.egammaConfigFlags
import createEgammaConfigFlags
432 from METReconstruction.METConfigFlags
import createMETConfigFlags
437 from JetRecConfig.JetConfigFlags
import createJetConfigFlags
442 from TrackCaloClusterRecTools.UFOConfigFlags
import createUFOConfigFlags
447 from tauRec.TauConfigFlags
import createTauConfigFlags
452 from DiTauRec.DiTauConfigFlags
import createDiTauConfigFlags
457 from eflowRec.PFConfigFlags
import createPFConfigFlags
462 from JetTagConfig.BTaggingConfigFlags
import createBTaggingConfigFlags
467 from HIRecConfig.HIRecConfigFlags
import createHIRecConfigFlags
472 from EventDisplaysOnline.EventDisplaysOnlineFlags
import createOnlineEventDisplayFlags
474 _addFlagsCategory(acf,
"OnlineEventDisplays", __onlineED,
'EventDisplaysOnline' )
477 from AthenaMonitoring.DQConfigFlags
import createDQConfigFlags
483 from PerfMonComps.PerfMonConfigFlags
import createPerfMonConfigFlags
488 from PhysValMonitoring.PhysValFlags
import createPhysValConfigFlags
493 from CaloRingerAlgs.CaloRingerFlags
import createCaloRingerConfigFlags
498 from CaloRecGPU.CaloRecGPUFlags
import createFlagsCaloRecGPU
504 from DerivationFrameworkConfiguration.DerivationConfigFlags
import createDerivationConfigFlags
506 _addFlagsCategory(acf,
"Derivation", __commonDerivation,
'DerivationFrameworkConfiguration' )
510 from DerivationFrameworkEGamma.EGammaDFConfigFlags
import createEGammaDFConfigFlags
512 _addFlagsCategory(acf,
"Derivation.Egamma", __egammaDerivation,
'DerivationFrameworkEGamma' )
516 from DerivationFrameworkLLP.LLPDFConfigFlags
import createLLPDFConfigFlags
518 _addFlagsCategory(acf,
"Derivation.LLP", __llpDerivation,
'DerivationFrameworkLLP' )
522 from AthOnnxComps.OnnxRuntimeFlags
import createOnnxRuntimeFlags
531 collections = flags.Input.Collections
532 if "HLTResult_EF" in collections:
534 elif "TrigNavigation" in collections:
536 elif any(
"HLTNav_Summary" in s
for s
in collections):
538 elif not flags.Input.Collections:
543 return default_version
544 acf.addFlag(
'Trigger.EDMVersion',
lambda prevFlags:
EDMVersion(prevFlags),
545 help=
'Trigger EDM version (determined by input file or set to the version to be produced)')
550 if __name__==
"__main__":
551 from AthenaConfiguration.TestDefaults
import defaultTestFiles
554 if len(sys.argv) > 1:
555 flags.Input.Files = sys.argv[1:]
557 flags.Input.Files = defaultTestFiles.AOD_RUN3_DATA
559 flags.loadAllDynamicFlags()