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',
False, 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 return 2000 +
int(prevFlags.Input.ProjectName[4:6])
83 acf.addFlag(
'Input.ProjectName',
lambda prevFlags :
GetFileMD(prevFlags.Input.Files).
get(
"project_name",
""), help=
'project name')
84 acf.addFlag(
'Input.DataYear', _dataYearFromFlags, help=
'year of input data')
85 acf.addFlag(
'Input.MCCampaign',
lambda prevFlags : Campaign(
GetFileMD(prevFlags.Input.Files).
get(
"mc_campaign",
"")), type=Campaign, help=
'Monte Carlo campaign')
86 acf.addFlag(
'Input.TriggerStream',
lambda prevFlags :
GetFileMD(prevFlags.Input.Files).
get(
"stream",
"")
if prevFlags.Input.Format == Format.BS
87 else GetFileMD(prevFlags.Input.Files).
get(
"triggerStreamOfFile",
""), help=
'trigger stream name')
88 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')
89 acf.addFlag(
'Input.ProcessingTags',
lambda prevFlags :
GetFileMD(prevFlags.Input.Files).
get(
"processingTags", []), help=
'list of stream names in this file')
90 acf.addFlag(
'Input.GeneratorsInfo',
lambda prevFlags :
getGeneratorsInfo(prevFlags), help=
'generator version')
91 acf.addFlag(
'Input.SpecialConfiguration',
lambda prevFlags :
getSpecialConfigurationMetadata(prevFlags), help=
'special configuration options read from input file metadata')
93 def _inputCollections(inputFile):
94 rawCollections = [type_key[1]
for type_key
in GetFileMD(inputFile).
get(
"itemList", [])]
95 collections = [col
for col
in rawCollections
if not col.endswith(
'Aux.')]
98 def _typedInputCollections(inputFile):
99 collections = [
'%s#%s' % type_key
for type_key
in GetFileMD(inputFile).
get(
"itemList", [])]
102 acf.addFlag(
'Input.Collections',
lambda prevFlags : _inputCollections(prevFlags.Input.Files), help=
'input collections')
103 acf.addFlag(
'Input.SecondaryCollections',
lambda prevFlags : _inputCollections(prevFlags.Input.SecondaryFiles), help=
'secondary input collections for overlay')
104 acf.addFlag(
'Input.TypedCollections',
lambda prevFlags : _typedInputCollections(prevFlags.Input.Files), help=
'input collections key#type')
105 acf.addFlag(
'Input.SecondaryTypedCollections',
lambda prevFlags : _typedInputCollections(prevFlags.Input.SecondaryFiles), help=
'secondary input collections key#type')
107 def _metadataItems(inputFile):
110 acf.addFlag(
'Input.MetadataItems',
lambda prevFlags : _metadataItems(prevFlags.Input.Files), help=
'metadata items in input' )
111 acf.addFlag(
'Input.Release',
lambda prevFlags :
GetFileMD(prevFlags.Input.Files).
get(
"AtlasRelease",
""), help=
'release of input file')
112 acf.addFlag(
'Input.AODFixesDone',
lambda prevFlags :
GetFileMD(prevFlags.Input.Files).
get(
"AODFixVersion",
""), help=
'set of already applied AODFixes')
114 acf.addFlag(
'Concurrency.NumProcs', 0, help=
'number of concurrent processes')
115 acf.addFlag(
'Concurrency.NumThreads', 0, help=
'number of threads' )
116 acf.addFlag(
'Concurrency.NumConcurrentEvents',
lambda prevFlags : prevFlags.Concurrency.NumThreads, help=
'number of concurrent events')
117 acf.addFlag(
'Concurrency.DebugWorkers',
False, help=
'stops the worker in bootstrap until SIGUSR1 is received')
119 acf.addFlag(
'Scheduler.CheckDependencies',
True, help=
'runtime check of algorithm input dependencies')
120 acf.addFlag(
'Scheduler.CheckOutputUsage',
False, help=
'runtime check of algorithm output usage')
121 acf.addFlag(
'Scheduler.ShowDataDeps',
False, help=
'show data dependencies')
122 acf.addFlag(
'Scheduler.ShowDataFlow',
False, help=
'show data flow')
123 acf.addFlag(
'Scheduler.ShowControlFlow',
False, help=
'show data flow')
124 acf.addFlag(
'Scheduler.EnableVerboseViews',
True, help=
'enable verbose view output')
125 acf.addFlag(
'Scheduler.AutoLoadUnmetDependencies',
True, help=
'auto-load unmet data dependencies')
127 acf.addFlag(
'MP.WorkerTopDir',
'athenaMP_workers', help=
'work directory for MP workers')
128 acf.addFlag(
'MP.OutputReportFile',
'AthenaMPOutputs', help=
'name of MP report file')
129 acf.addFlag(
'MP.Strategy',
'SharedQueue', help=
'event assignment strategy')
130 acf.addFlag(
'MP.CollectSubprocessLogs',
False, help=
'collects log of sub-processes')
131 acf.addFlag(
'MP.PollingInterval', 100, help=
'time interval in milliseconds between subsequent polling of subproceses')
132 acf.addFlag(
'MP.EventsBeforeFork', 0, help=
'number of events to process before forking')
133 acf.addFlag(
'MP.EventRangeChannel',
'EventService_EventRanges', help=
'channel name for communicating event ranges with the pilot')
134 acf.addFlag(
'MP.EvtRangeScattererCaching',
False, help=
'activate extra event caching by the EvtRangeScatterer')
135 acf.addFlag(
'MP.MemSamplingInterval', 0, help=
'time interval in seconds between taking memory samples')
136 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)')
137 acf.addFlag(
'MP.ReadEventOrders',
False, help=
'read event order from ASCII file for reproducibility')
138 acf.addFlag(
'MP.EventOrdersFile',
'athenamp_eventorders.txt', help=
'file name for event order')
139 acf.addFlag(
'MP.UseSharedReader',
False, help=
'use shared reader')
140 acf.addFlag(
'MP.UseSharedWriter',
False, help=
'use shared writer')
141 acf.addFlag(
'MP.UseParallelCompression',
True, help=
'enable event compression in workers')
143 acf.addFlag(
'Common.MsgSuppression',
True, help=
'enable log message suppression')
144 acf.addFlag(
'Common.MsgSourceLength', 50, help=
'length of the source-field in the log message format')
145 acf.addFlag(
'Common.ShowMsgStats',
False ,help=
'print message statistics at the end of the job')
147 acf.addFlag(
'Common.isOnline',
False, help=
'job runs in an online environment')
148 acf.addFlag(
'Common.useOnlineLumi',
lambda prevFlags : prevFlags.Common.isOnline, help=
'use online version of luminosity')
149 acf.addFlag(
'Common.isOverlay',
lambda prevFlags: (prevFlags.Common.ProductionStep == ProductionStep.Overlay
or
150 (prevFlags.Common.ProductionStep == ProductionStep.FastChain
and
151 prevFlags.Overlay.FastChain)),
152 help=
'enable overlay')
153 acf.addFlag(
'Common.doExpressProcessing',
False, help=
'do express stream processing')
154 acf.addFlag(
'Common.ProductionStep', ProductionStep.Default, type=ProductionStep, help=
'production step')
155 acf.addFlag(
'Common.Project', Project.determine(), type=Project, help=
'current athena software project')
158 acf.addFlag(
'Beam.BunchSpacing', 25, help=
'bunch spacing in nanoseconds')
159 acf.addFlag(
'Beam.Type',
lambda prevFlags :
BeamType(
GetFileMD(prevFlags.Input.Files).
get(
'beam_type',
'collisions')), type=BeamType, help=
'beam type')
160 acf.addFlag(
"Beam.NumberOfCollisions",
lambda prevFlags : 2.
if prevFlags.Beam.Type
is BeamType.Collisions
else 0., help=
'number of pileup collisions')
162 def _configureBeamEnergy(prevFlags):
163 metadata =
GetFileMD(prevFlags.Input.Files)
166 if prevFlags.Input.Format == Format.POOL:
167 return float(metadata.get(
"beam_energy", default))
169 elif prevFlags.Input.Format == Format.BS:
170 if metadata.get(
"eventTypes", [
""])[0] ==
"IS_DATA":
172 if prevFlags.Common.isOnline:
173 from PyUtils.OnlineISConfig
import GetRunType
178 if prevFlags.Beam.Type.value ==
"cosmics":
180 elif prevFlags.Beam.Type.value ==
"singlebeam":
182 elif prevFlags.Beam.Type.value ==
"collisions":
183 projectName = prevFlags.Input.ProjectName
186 if "GeV" in projectName:
194 elif "TeV" in projectName:
195 if "hip5TeV" in projectName:
197 beamEnergy = 1.577 * TeV
198 elif "hip8TeV" in projectName:
200 beamEnergy = 2.51 * TeV
211 if "5TeV" in projectName:
213 beamEnergy = 2.51 * TeV
214 elif projectName.endswith(
"_hi")
or projectName.endswith(
"_hip"):
215 if projectName
in (
"data10_hi",
"data11_hi"):
216 beamEnergy = 1.38 * TeV
217 elif projectName ==
"data12_hi":
218 beamEnergy = 1.577 * TeV
219 elif projectName
in (
"data12_hip",
"data13_hip"):
222 beamEnergy = 2.51 * TeV
223 elif projectName
in (
"data15_hi",
"data18_hi"):
224 beamEnergy = 2.51 * TeV
225 elif projectName ==
"data17_hi":
226 beamEnergy = 2.721 * TeV
227 return beamEnergy
or default
228 elif metadata.get(
"eventTypes", [
""])[0] ==
"IS_SIMULATION":
229 return float(metadata.get(
"beam_energy", default))
233 acf.addFlag(
'Beam.Energy',
lambda prevFlags : _configureBeamEnergy(prevFlags), help=
'beam energy in MeV')
234 acf.addFlag(
'Beam.estimatedLuminosity',
lambda prevFlags : ( 1E33*(prevFlags.Beam.NumberOfCollisions)/2.3 ) *\
235 (25./prevFlags.Beam.BunchSpacing), help=
'luminosity estimated from pileup')
236 acf.addFlag(
'Beam.BunchStructureSource',
lambda prevFlags: BunchStructureSource.MC
if prevFlags.Input.isMC
else BunchStructureSource.TrigConf, help=
'source of bunch structure')
239 acf.addFlag(
'Output.EVNTFileName',
'', help=
'EVNT output file name')
240 acf.addFlag(
'Output.EVNT_TRFileName',
'', help=
'EVNT_TR output file name')
241 acf.addFlag(
'Output.HITSFileName',
'', help=
'HITS output file name')
242 acf.addFlag(
'Output.RDOFileName',
'', help=
'RDO output file name')
243 acf.addFlag(
'Output.RDO_SGNLFileName',
'', help=
'RDO_SGNL output file name')
244 acf.addFlag(
'Output.ESDFileName',
'', help=
'ESD output file name')
245 acf.addFlag(
'Output.AODFileName',
'', help=
'AOD output file name')
246 acf.addFlag(
'Output.HISTFileName',
'', help=
'HIST output file name')
248 acf.addFlag(
'Output.doWriteEVNT',
lambda prevFlags:
bool(prevFlags.Output.EVNTFileName), help=
'write EVNT file')
249 acf.addFlag(
'Output.doWriteEVNT_TR',
lambda prevFlags:
bool(prevFlags.Output.EVNT_TRFileName), help=
'write EVNT_TR file')
250 acf.addFlag(
'Output.doWriteHITS',
lambda prevFlags:
bool(prevFlags.Output.HITSFileName), help=
'write HITS file')
251 acf.addFlag(
'Output.doWriteRDO',
lambda prevFlags:
bool(prevFlags.Output.RDOFileName), help=
'write RDO file')
252 acf.addFlag(
'Output.doWriteRDO_SGNL',
lambda prevFlags:
bool(prevFlags.Output.RDO_SGNLFileName), help=
'write RDO_SGNL file')
253 acf.addFlag(
'Output.doWriteESD',
lambda prevFlags:
bool(prevFlags.Output.ESDFileName), help=
'write ESD file')
254 acf.addFlag(
'Output.doWriteAOD',
lambda prevFlags:
bool(prevFlags.Output.AODFileName), help=
'write AOD file')
255 acf.addFlag(
'Output.doWriteBS',
False, help=
'write bytestream file')
256 acf.addFlag(
'Output.doWriteDAOD',
False, help=
'write at least one DAOD file')
257 acf.addFlag(
'Output.doJiveXML',
False, help=
'write JiveXML file')
259 acf.addFlag(
'Output.OneDataHeaderForm',
False, help=
"Write only a single common DataHeaderForm per stream")
260 acf.addFlag(
'Output.TreeAutoFlush', {}, help=
"dict with auto-flush settings for stream e.g. {'STREAM': 123}")
261 acf.addFlag(
'Output.TemporaryStreams', [], help=
'list of output streams that are marked temporary')
262 acf.addFlag(
'Output.StorageTechnology.EventData',
'ROOTTREEINDEX', help=
'set the underlying POOL storage technology for event data')
263 acf.addFlag(
'Output.StorageTechnology.MetaData',
'ROOTTREE', help=
'set the underlying POOL storage technology for metadata')
268 acf.addFlag(
'TrackingGeometry.MagneticFileMode', 6)
269 acf.addFlag(
'TrackingGeometry.MaterialSource',
'COOL', help=
'material source (COOL, Input or None)')
273 from AthenaConfiguration.DetectorConfigFlags
import createDetectorConfigFlags
275 acf.addFlagsCategory(
"Detector", __detector )
279 from SimulationConfig.SimConfigFlags
import createSimConfigFlags
281 _addFlagsCategory (acf,
"Sim", __simulation,
'SimulationConfig' )
285 from SimulationConfig.TestBeamConfigFlags
import createTestBeamConfigFlags
287 _addFlagsCategory (acf,
"TestBeam", __testbeam,
'SimulationConfig' )
290 def __digitization():
291 from DigitizationConfig.DigitizationConfigFlags
import createDigitizationCfgFlags
297 from OverlayConfiguration.OverlayConfigFlags
import createOverlayConfigFlags
303 from AthenaConfiguration.GeoModelConfigFlags
import createGeoModelConfigFlags
305 acf.addFlagsCategory(
"GeoModel", __geomodel )
309 from RecJobTransforms.RecoConfigFlags
import createRecoConfigFlags
315 from GeneratorConfig.GeneratorConfigFlags
import createGeneratorConfigFlags
321 from IOVDbSvc.IOVDbAutoCfgFlags
import getLastGlobalTag, getDatabaseInstanceDefault
323 def __getTrigTag(flags):
324 from TriggerJobOpts.TriggerConfigFlags
import trigGlobalTag
327 acf.addFlag(
"IOVDb.GlobalTag",
lambda flags :
328 (__getTrigTag(flags)
if flags.Trigger.doLVL1
or flags.Trigger.doHLT
else None)
or
331 acf.addFlag(
"IOVDb.DatabaseInstance", getDatabaseInstanceDefault, help=
'conditions DB instance')
334 acf.addFlag(
"IOVDb.RunToTimestampDict",
lambda prevFlags:
getRunToTimestampDict(), help=
'runNumber to timestamp map')
335 acf.addFlag(
"IOVDb.DBConnection",
lambda prevFlags :
"sqlite://;schema=mycool.db;dbname=" + prevFlags.IOVDb.DatabaseInstance, help=
'default DB connection string')
336 acf.addFlag(
"IOVDb.CrestServer",
"http://crest-undertow-api.web.cern.ch", help=
"CREST server URL")
339 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')
340 acf.addFlag(
"IOVDb.SqliteInput",
"",help=
"Folders found in this file will be used instead of the production db")
341 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.")
343 acf.addFlag(
"PoolSvc.MaxFilesOpen",
lambda prevFlags : 2
if prevFlags.MP.UseSharedReader
else 0, help=
'maximum number of open files')
347 from MagFieldConfig.BFieldConfigFlags
import createBFieldConfigFlags
352 from LArConfiguration.LArConfigFlags
import createLArConfigFlags
357 from TileConfiguration.TileConfigFlags
import createTileConfigFlags
363 from CaloRec.CaloConfigFlags
import createCaloConfigFlags
368 acf.addFlag(
"Random.Engine",
"dSFMT", help=
'random number service ("dSFMT", "Ranlux64", "Ranecu")')
369 acf.addFlag(
"Random.SeedOffset", 0, help=
'seed offset')
372 from TriggerJobOpts.TriggerConfigFlags
import createTriggerFlags
379 acf.addFlag(
'Trigger.doLVL1',
False, help=
'enable L1 simulation')
380 acf.addFlag(
'Trigger.doHLT',
False, help=
'run HLT selection algorithms')
383 from InDetConfig.InDetConfigFlags
import createInDetConfigFlags
388 from InDetConfig.ITkConfigFlags
import createITkConfigFlags
393 from TrkConfig.TrkConfigFlags
import createTrackingConfigFlags
397 def __trackoverlay():
398 from TrackOverlayConfig.TrackOverlayConfigFlags
import createTrackOverlayConfigFlags
403 from ActsConfig.ActsConfigFlags
import createActsConfigFlags
408 from HGTD_Config.HGTD_ConfigFlags
import createHGTD_ConfigFlags
413 from MuonConfig.MuonConfigFlags
import createMuonConfigFlags
417 def __muoncombined():
418 from MuonCombinedConfig.MuonCombinedConfigFlags
import createMuonCombinedConfigFlags
423 from egammaConfig.egammaConfigFlags
import createEgammaConfigFlags
428 from METReconstruction.METConfigFlags
import createMETConfigFlags
433 from JetRecConfig.JetConfigFlags
import createJetConfigFlags
438 from TrackCaloClusterRecTools.UFOConfigFlags
import createUFOConfigFlags
443 from tauRec.TauConfigFlags
import createTauConfigFlags
448 from DiTauRec.DiTauConfigFlags
import createDiTauConfigFlags
453 from eflowRec.PFConfigFlags
import createPFConfigFlags
458 from JetTagConfig.BTaggingConfigFlags
import createBTaggingConfigFlags
463 from HIRecConfig.HIRecConfigFlags
import createHIRecConfigFlags
468 from EventDisplaysOnline.EventDisplaysOnlineFlags
import createOnlineEventDisplayFlags
470 _addFlagsCategory(acf,
"OnlineEventDisplays", __onlineED,
'EventDisplaysOnline' )
473 from AthenaMonitoring.DQConfigFlags
import createDQConfigFlags
479 from PerfMonComps.PerfMonConfigFlags
import createPerfMonConfigFlags
484 from PhysValMonitoring.PhysValFlags
import createPhysValConfigFlags
489 from CaloRingerAlgs.CaloRingerFlags
import createCaloRingerConfigFlags
494 from CaloRecGPU.CaloRecGPUFlags
import createFlagsCaloRecGPU
500 def __egammaDerivation():
501 from DerivationFrameworkEGamma.EGammaDFConfigFlags
import createEGammaDFConfigFlags
503 _addFlagsCategory(acf,
"Derivation.Egamma", __egammaDerivation,
'DerivationFrameworkEGamma' )
506 def __llpDerivation():
507 from DerivationFrameworkLLP.LLPDFConfigFlags
import createLLPDFConfigFlags
509 _addFlagsCategory(acf,
"Derivation.LLP", __llpDerivation,
'DerivationFrameworkLLP' )
512 def __triggerDerivation():
513 from DerivationFrameworkTrigger.TriggerDFConfigFlags
import createTriggerDFConfigFlags
515 _addFlagsCategory(acf,
"Derivation.Trigger", __triggerDerivation,
'DerivationFrameworkTrigger')
519 from AthOnnxComps.OnnxRuntimeFlags
import createOnnxRuntimeFlags
528 collections = flags.Input.Collections
529 if "HLTResult_EF" in collections:
531 elif "TrigNavigation" in collections:
533 elif any(
"HLTNav_Summary" in s
for s
in collections):
535 elif not flags.Input.Collections:
540 return default_version
541 acf.addFlag(
'Trigger.EDMVersion',
lambda prevFlags:
EDMVersion(prevFlags),
542 help=
'Trigger EDM version (determined by input file or set to the version to be produced)')
547 if __name__==
"__main__":
548 from AthenaConfiguration.TestDefaults
import defaultTestFiles
551 if len(sys.argv) > 1:
552 flags.Input.Files = sys.argv[1:]
554 flags.Input.Files = defaultTestFiles.AOD_RUN3_DATA
556 flags.loadAllDynamicFlags()