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(
'Exec.MPI',
False, help=
'run in MPI mode')
52 acf.addFlag(
'Debug.DumpEvtStore',
False, help=
'dump event store on each event')
53 acf.addFlag(
'Debug.DumpDetStore',
False, help=
'dump detector store on each event')
54 acf.addFlag(
'Debug.DumpCondStore',
False, help=
'dump conditions store on each event')
57 acf.addFlag(
'Debug.NameAuditor',
False,help=
'Activate NameAuditor')
59 acf.addFlag(
'ExecutorSplitting.TotalSteps', 0, help=
'number of steps for pileup overlay')
60 acf.addFlag(
'ExecutorSplitting.Step', -1, help=
'step number of current pileup overlay job')
61 acf.addFlag(
'ExecutorSplitting.TotalEvents', -1, help=
'events per pileup overlay step')
64 acf.addFlag(
'Input.Files', [
"_ATHENA_GENERIC_INPUTFILE_NAME_",], help=
'input files')
65 acf.addFlag(
"Input.FileNentries", -1, help=
'actual number of events in file (filled from runArgs')
66 acf.addFlag(
'Input.SecondaryFiles', [], help=
'secondary input files for DoubleEventSelector')
67 acf.addFlag(
'Input.isMC',
lambda prevFlags :
"IS_SIMULATION" in GetFileMD(prevFlags.Input.Files).
get(
"eventTypes", []), help=
'Monte Carlo input')
68 acf.addFlag(
'Input.OverrideRunNumber',
False, help=
'override run number' )
69 acf.addFlag(
"Input.ConditionsRunNumber", -1, help=
'override HITS file run number with one from a data')
70 acf.addFlag(
'Input.RunNumbers',
lambda prevFlags :
list(
GetFileMD(prevFlags.Input.Files).
get(
"runNumbers", [])), type=list, help=
'run numbers of input files')
71 acf.addFlag(
'Input.MCChannelNumber',
lambda prevFlags :
GetFileMD(prevFlags.Input.Files).
get(
"mc_channel_number", 0), help=
'Monte Carlo channel number')
72 acf.addFlag(
'Input.LumiBlockNumbers',
lambda prevFlags :
list(
GetFileMD(prevFlags.Input.Files).
get(
"lumiBlockNumbers", [])), type=list, help=
'lumi block numbers of input files')
73 acf.addFlag(
'Input.TimeStamps',
lambda prevFlags :
getInitialTimeStampsFromRunNumbers(prevFlags.Input.RunNumbers)
if prevFlags.Input.OverrideRunNumber
else [], type=list, help=
'timestamps of inputs files')
76 acf.addFlag(
"Input.RunAndLumiOverrideList", [], help=
'list of dictionaries to configure EvtIdModifierSvc')
78 acf.addFlag(
"Input.JobNumber", 1, help=
'job number for pileup overlay')
79 acf.addFlag(
'Input.FailOnUnknownCollections',
False, help=
'fail on unknown collections in input load')
81 def _dataYearFromFlags(prevFlags):
82 dataYear =
GetFileMD(prevFlags.Input.Files).
get(
"data_year",
"")
85 if prevFlags.Input.ProjectName.startswith(
"data"):
86 if prevFlags.Input.ProjectName[4:6].isdigit():
87 return 2000 +
int(prevFlags.Input.ProjectName[4:6])
90 def _keywordsFromFlags(prevFlags):
91 keywords_string =
GetFileMD(prevFlags.Input.Files).
get(
"keywords",
"")
92 return [keyword.strip()
for keyword
in keywords_string.split(
',')
if keyword.strip()]
94 acf.addFlag(
'Input.ProjectName',
lambda prevFlags :
GetFileMD(prevFlags.Input.Files).
get(
"project_name",
""), help=
'project name')
95 acf.addFlag(
'Input.DataYear', _dataYearFromFlags, help=
'year of input data')
96 acf.addFlag(
'Input.MCCampaign',
lambda prevFlags : Campaign(
GetFileMD(prevFlags.Input.Files).
get(
"mc_campaign",
"")), type=Campaign, help=
'Monte Carlo campaign')
97 acf.addFlag(
'Input.TriggerStream',
lambda prevFlags :
GetFileMD(prevFlags.Input.Files).
get(
"stream",
"")
if prevFlags.Input.Format == Format.BS
98 else GetFileMD(prevFlags.Input.Files).
get(
"triggerStreamOfFile",
""), help=
'trigger stream name')
99 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')
100 acf.addFlag(
'Input.ProcessingTags',
lambda prevFlags :
GetFileMD(prevFlags.Input.Files).
get(
"processingTags", []), help=
'list of stream names in this file')
101 acf.addFlag(
'Input.GeneratorsInfo',
lambda prevFlags :
getGeneratorsInfo(prevFlags), help=
'generator version')
102 acf.addFlag(
'Input.Keywords', _keywordsFromFlags, type=list, help=
'evtgen keywords')
103 acf.addFlag(
'Input.SpecialConfiguration',
lambda prevFlags :
getSpecialConfigurationMetadata(prevFlags), help=
'special configuration options read from input file metadata')
105 def _inputCollections(inputFile):
106 rawCollections = [type_key[1]
for type_key
in GetFileMD(inputFile).
get(
"itemList", [])]
107 collections = [col
for col
in rawCollections
if not col.endswith(
'Aux.')]
110 def _typedInputCollections(inputFile):
111 collections = [
'%s#%s' % type_key
for type_key
in GetFileMD(inputFile).
get(
"itemList", [])]
114 acf.addFlag(
'Input.Collections',
lambda prevFlags : _inputCollections(prevFlags.Input.Files), help=
'input collections')
115 acf.addFlag(
'Input.SecondaryCollections',
lambda prevFlags : _inputCollections(prevFlags.Input.SecondaryFiles), help=
'secondary input collections for overlay')
116 acf.addFlag(
'Input.TypedCollections',
lambda prevFlags : _typedInputCollections(prevFlags.Input.Files), help=
'input collections key#type')
117 acf.addFlag(
'Input.SecondaryTypedCollections',
lambda prevFlags : _typedInputCollections(prevFlags.Input.SecondaryFiles), help=
'secondary input collections key#type')
119 def _metadataItems(inputFile):
122 acf.addFlag(
'Input.MetadataItems',
lambda prevFlags : _metadataItems(prevFlags.Input.Files), help=
'metadata items in input' )
123 acf.addFlag(
'Input.Release',
lambda prevFlags :
GetFileMD(prevFlags.Input.Files).
get(
"AtlasRelease",
""), help=
'release of input file')
124 acf.addFlag(
'Input.AODFixesDone',
lambda prevFlags :
GetFileMD(prevFlags.Input.Files).
get(
"AODFixVersion",
""), help=
'set of already applied AODFixes')
126 acf.addFlag(
'Concurrency.NumProcs', 0, help=
'number of concurrent processes')
127 acf.addFlag(
'Concurrency.NumThreads', 0, help=
'number of threads' )
128 acf.addFlag(
'Concurrency.NumConcurrentEvents',
lambda prevFlags : prevFlags.Concurrency.NumThreads, help=
'number of concurrent events')
129 acf.addFlag(
'Concurrency.DebugWorkers',
False, help=
'stops the worker in bootstrap until SIGUSR1 is received')
130 acf.addFlag(
'Concurrency.NumOffloadThreads', 0, help=
'maximum number of extra threads to use for CPU portion of asynchronous algorithms')
132 acf.addFlag(
'Scheduler.CheckDependencies',
True, help=
'runtime check of algorithm input dependencies')
133 acf.addFlag(
'Scheduler.CheckOutputUsage',
False, help=
'runtime check of algorithm output usage')
134 acf.addFlag(
'Scheduler.ShowDataDeps',
False, help=
'show data dependencies')
135 acf.addFlag(
'Scheduler.ShowDataFlow',
False, help=
'show data flow')
136 acf.addFlag(
'Scheduler.ShowControlFlow',
False, help=
'show data flow')
137 acf.addFlag(
'Scheduler.EnableVerboseViews',
True, help=
'enable verbose view output')
138 acf.addFlag(
'Scheduler.AutoLoadUnmetDependencies',
True, help=
'auto-load unmet data dependencies')
139 acf.addFlag(
'Scheduler.DataDepsGraphFile',
'', help=
'file name containing the data dependency graph [.dot or .md]')
140 acf.addFlag(
'Scheduler.DataDepsGraphAlgPattern',
'.*', help=
'regex pattern for selecting algorithms to be drawn in the data dependency graph')
141 acf.addFlag(
'Scheduler.DataDepsGraphObjectPattern',
'.*', help=
'regex pattern for selecting I/O to be drawn in the data dependency graph')
143 acf.addFlag(
'MP.WorkerTopDir',
'athenaMP_workers', help=
'work directory for MP workers')
144 acf.addFlag(
'MP.OutputReportFile',
'AthenaMPOutputs', help=
'name of MP report file')
145 acf.addFlag(
'MP.Strategy',
'SharedQueue', help=
'event assignment strategy')
146 acf.addFlag(
'MP.CollectSubprocessLogs',
False, help=
'collects log of sub-processes')
147 acf.addFlag(
'MP.PollingInterval', 100, help=
'time interval in milliseconds between subsequent polling of subproceses')
148 acf.addFlag(
'MP.EventsBeforeFork', 0, help=
'number of events to process before forking')
149 acf.addFlag(
'MP.EventRangeChannel',
'EventService_EventRanges', help=
'channel name for communicating event ranges with the pilot')
150 acf.addFlag(
'MP.EvtRangeScattererCaching',
False, help=
'activate extra event caching by the EvtRangeScatterer')
151 acf.addFlag(
'MP.MemSamplingInterval', 0, help=
'time interval in seconds between taking memory samples')
152 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)')
153 acf.addFlag(
'MP.ReadEventOrders',
False, help=
'read event order from ASCII file for reproducibility')
154 acf.addFlag(
'MP.EventOrdersFile',
'athenamp_eventorders.txt', help=
'file name for event order')
155 acf.addFlag(
'MP.UseSharedReader',
False, help=
'use shared reader')
156 acf.addFlag(
'MP.UseSharedWriter',
False, help=
'use shared writer')
157 acf.addFlag(
'MP.UseParallelCompression',
True, help=
'enable event compression in workers')
159 acf.addFlag(
'Common.MsgSuppression',
True, help=
'enable log message suppression')
160 acf.addFlag(
'Common.MsgSourceLength', 50, help=
'length of the source-field in the log message format')
161 acf.addFlag(
'Common.ShowMsgStats',
False ,help=
'print message statistics at the end of the job')
163 acf.addFlag(
'Common.isOnline',
False, help=
'job runs in an online environment')
164 acf.addFlag(
'Common.useOnlineLumi',
lambda prevFlags : prevFlags.Common.isOnline, help=
'use online version of luminosity')
165 acf.addFlag(
'Common.isOverlay',
lambda prevFlags: prevFlags.Common.ProductionStep == ProductionStep.Overlay,
166 help=
'enable overlay')
167 acf.addFlag(
'Common.doExpressProcessing',
False, help=
'do express stream processing')
168 acf.addFlag(
'Common.ProductionStep', ProductionStep.Default, type=ProductionStep, help=
'production step')
169 acf.addFlag(
'Common.Project', Project.determine(), type=Project, help=
'current athena software project')
172 acf.addFlag(
'Beam.BunchSpacing', 25, help=
'bunch spacing in nanoseconds')
173 acf.addFlag(
'Beam.Type',
lambda prevFlags :
BeamType(
GetFileMD(prevFlags.Input.Files).
get(
'beam_type',
'collisions')), type=BeamType, help=
'beam type')
174 acf.addFlag(
"Beam.NumberOfCollisions",
lambda prevFlags : 2.
if prevFlags.Beam.Type
is BeamType.Collisions
else 0., help=
'number of pileup collisions')
176 def _configureBeamEnergy(prevFlags):
177 metadata =
GetFileMD(prevFlags.Input.Files)
180 if prevFlags.Input.Format == Format.POOL:
181 return float(metadata.get(
"beam_energy", default))
183 elif prevFlags.Input.Format == Format.BS:
184 if metadata.get(
"eventTypes", [
""])[0] ==
"IS_DATA":
186 if prevFlags.Common.isOnline:
187 from PyUtils.OnlineISConfig
import GetRunType
192 if prevFlags.Beam.Type.value ==
"cosmics":
194 elif prevFlags.Beam.Type.value ==
"singlebeam":
196 elif prevFlags.Beam.Type.value ==
"collisions":
197 projectName = prevFlags.Input.ProjectName
200 if "GeV" in projectName:
208 elif "TeV" in projectName:
209 if "hip5TeV" in projectName:
211 beamEnergy = 1.577 * TeV
212 elif "hip8TeV" in projectName:
214 beamEnergy = 2.51 * TeV
225 if "5TeV" in projectName:
227 beamEnergy = 2.51 * TeV
228 elif projectName.endswith(
"_hi")
or projectName.endswith(
"_hip"):
229 if projectName
in (
"data10_hi",
"data11_hi"):
230 beamEnergy = 1.38 * TeV
231 elif projectName ==
"data12_hi":
232 beamEnergy = 1.577 * TeV
233 elif projectName
in (
"data12_hip",
"data13_hip"):
236 beamEnergy = 2.51 * TeV
237 elif projectName
in (
"data15_hi",
"data18_hi"):
238 beamEnergy = 2.51 * TeV
239 elif projectName ==
"data17_hi":
240 beamEnergy = 2.721 * TeV
241 return beamEnergy
or default
242 elif metadata.get(
"eventTypes", [
""])[0] ==
"IS_SIMULATION":
243 return float(metadata.get(
"beam_energy", default))
247 acf.addFlag(
'Beam.Energy',
lambda prevFlags : _configureBeamEnergy(prevFlags), help=
'beam energy in MeV')
248 acf.addFlag(
'Beam.estimatedLuminosity',
lambda prevFlags : ( 1E33*(prevFlags.Beam.NumberOfCollisions)/2.3 ) *\
249 (25./prevFlags.Beam.BunchSpacing), help=
'luminosity estimated from pileup')
250 acf.addFlag(
'Beam.BunchStructureSource',
lambda prevFlags: BunchStructureSource.MC
if prevFlags.Input.isMC
else BunchStructureSource.TrigConf, help=
'source of bunch structure')
252 acf.addFlag(
'Beam.vdMScan.ConfigFile',
'LRAPositioner.root', help=
'vdM Scan Sim/Reco/BSFit Configuration File')
253 acf.addFlag(
'Beam.vdMScan.PV.PDF',
'Default', help=
'vdM Scan Sim/BSFit PV PDF Histogram')
256 acf.addFlag(
'Output.EVNTFileName',
'', help=
'EVNT output file name')
257 acf.addFlag(
'Output.EVNT_TRFileName',
'', help=
'EVNT_TR output file name')
258 acf.addFlag(
'Output.HITSFileName',
'', help=
'HITS output file name')
259 acf.addFlag(
'Output.RDOFileName',
'', help=
'RDO output file name')
260 acf.addFlag(
'Output.RDO_SGNLFileName',
'', help=
'RDO_SGNL output file name')
261 acf.addFlag(
'Output.ESDFileName',
'', help=
'ESD output file name')
262 acf.addFlag(
'Output.AODFileName',
'', help=
'AOD output file name')
263 acf.addFlag(
'Output.HISTFileName',
'', help=
'HIST output file name')
265 acf.addFlag(
'Output.doWriteEVNT',
lambda prevFlags:
bool(prevFlags.Output.EVNTFileName), help=
'write EVNT file')
266 acf.addFlag(
'Output.doWriteEVNT_TR',
lambda prevFlags:
bool(prevFlags.Output.EVNT_TRFileName), help=
'write EVNT_TR file')
267 acf.addFlag(
'Output.doWriteHITS',
lambda prevFlags:
bool(prevFlags.Output.HITSFileName), help=
'write HITS file')
268 acf.addFlag(
'Output.doWriteRDO',
lambda prevFlags:
bool(prevFlags.Output.RDOFileName), help=
'write RDO file')
269 acf.addFlag(
'Output.doWriteRDO_SGNL',
lambda prevFlags:
bool(prevFlags.Output.RDO_SGNLFileName), help=
'write RDO_SGNL file')
270 acf.addFlag(
'Output.doWriteESD',
lambda prevFlags:
bool(prevFlags.Output.ESDFileName), help=
'write ESD file')
271 acf.addFlag(
'Output.doWriteAOD',
lambda prevFlags:
bool(prevFlags.Output.AODFileName), help=
'write AOD file')
272 acf.addFlag(
'Output.doWriteBS',
False, help=
'write bytestream file')
273 acf.addFlag(
'Output.doWriteDAOD',
False, help=
'write at least one DAOD file')
274 acf.addFlag(
'Output.doJiveXML',
False, help=
'write JiveXML file')
276 acf.addFlag(
'Output.doGEN_AOD2xAOD',
True, help=
"Configure the AODtoxAOD Truth Conversion")
277 acf.addFlag(
'Output.OneDataHeaderForm',
False, help=
"Write only a single common DataHeaderForm per stream")
278 acf.addFlag(
'Output.TreeAutoFlush', {}, help=
"dict with auto-flush settings for stream e.g. {'STREAM': 123}")
279 acf.addFlag(
'Output.TemporaryStreams', [], help=
'list of output streams that are marked temporary')
280 acf.addFlag(
'Output.StorageTechnology.EventData',
'ROOTTREEINDEX', help=
'set the underlying POOL storage technology for event data')
281 acf.addFlag(
'Output.StorageTechnology.MetaData',
'ROOTTREE', help=
'set the underlying POOL storage technology for metadata')
286 acf.addFlag(
'TrackingGeometry.MagneticFileMode', 6)
287 acf.addFlag(
'TrackingGeometry.MaterialSource',
'COOL', help=
'material source (COOL, Input or None)')
291 from AthenaConfiguration.DetectorConfigFlags
import createDetectorConfigFlags
293 acf.addFlagsCategory(
"Detector", __detector )
297 from SimulationConfig.SimConfigFlags
import createSimConfigFlags
299 _addFlagsCategory (acf,
"Sim", __simulation,
'SimulationConfig' )
303 from SimulationConfig.TestBeamConfigFlags
import createTestBeamConfigFlags
305 _addFlagsCategory (acf,
"TestBeam", __testbeam,
'SimulationConfig' )
308 def __digitization():
309 from DigitizationConfig.DigitizationConfigFlags
import createDigitizationCfgFlags
315 from OverlayConfiguration.OverlayConfigFlags
import createOverlayConfigFlags
321 from AthenaConfiguration.GeoModelConfigFlags
import createGeoModelConfigFlags
323 acf.addFlagsCategory(
"GeoModel", __geomodel )
327 from RecJobTransforms.RecoConfigFlags
import createRecoConfigFlags
333 from GeneratorConfig.GeneratorConfigFlags
import createGeneratorConfigFlags
339 from IOVDbSvc.IOVDbAutoCfgFlags
import getLastGlobalTag, getDatabaseInstanceDefault
341 def __getTrigTag(flags):
342 from TriggerJobOpts.TriggerConfigFlags
import trigGlobalTag
345 acf.addFlag(
"IOVDb.GlobalTag",
lambda flags :
346 (__getTrigTag(flags)
if flags.Trigger.doLVL1
or flags.Trigger.doHLT
else None)
or
349 acf.addFlag(
"IOVDb.DatabaseInstance", getDatabaseInstanceDefault, help=
'conditions DB instance')
352 acf.addFlag(
"IOVDb.RunToTimestampDict",
lambda prevFlags:
getRunToTimestampDict(), help=
'runNumber to timestamp map')
353 acf.addFlag(
"IOVDb.DBConnection",
lambda prevFlags :
"sqlite://;schema=mycool.db;dbname=" + prevFlags.IOVDb.DatabaseInstance, help=
'default DB connection string')
354 acf.addFlag(
"IOVDb.CrestServer",
"http://crest-undertow-api.web.cern.ch", help=
"CREST server URL")
357 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')
358 acf.addFlag(
"IOVDb.SqliteInput",
"",help=
"Folders found in this file will be used instead of the production db")
359 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.")
362 acf.addFlag(
"PoolSvc.MaxFilesOpen",
lambda prevFlags : 2
if prevFlags.MP.UseSharedReader
else 0, help=
'maximum number of open files')
363 acf.addFlag(
'PoolSvc.DefaultContainerType',
'ROOTTREEINDEX', help=
'set the underlying POOL storage technology for the default container type')
364 acf.addFlag(
"PoolSvc.PersSvcPerInputType",
False, help=
'enable separate persistency service for each input type')
368 from MagFieldConfig.BFieldConfigFlags
import createBFieldConfigFlags
373 from LArConfiguration.LArConfigFlags
import createLArConfigFlags
378 from TileConfiguration.TileConfigFlags
import createTileConfigFlags
384 from CaloRec.CaloConfigFlags
import createCaloConfigFlags
389 acf.addFlag(
"Random.Engine",
"dSFMT", help=
'random number service ("dSFMT", "Ranlux64", "Ranecu")')
390 acf.addFlag(
"Random.SeedOffset", 0, help=
'seed offset')
393 from TriggerJobOpts.TriggerConfigFlags
import createTriggerFlags
400 acf.addFlag(
'Trigger.doLVL1',
False, help=
'enable L1 simulation')
401 acf.addFlag(
'Trigger.doHLT',
False, help=
'run HLT selection algorithms')
404 from InDetConfig.InDetConfigFlags
import createInDetConfigFlags
409 from InDetConfig.ITkConfigFlags
import createITkConfigFlags
414 from TrkConfig.TrkConfigFlags
import createTrackingConfigFlags
418 def __trackoverlay():
419 from TrackOverlayConfig.TrackOverlayConfigFlags
import createTrackOverlayConfigFlags
424 from ActsConfig.ActsConfigFlags
import createActsConfigFlags
429 from HGTD_Config.HGTD_ConfigFlags
import createHGTD_ConfigFlags
434 from MuonConfig.MuonConfigFlags
import createMuonConfigFlags
438 def __muoncombined():
439 from MuonCombinedConfig.MuonCombinedConfigFlags
import createMuonCombinedConfigFlags
444 from egammaConfig.egammaConfigFlags
import createEgammaConfigFlags
449 from METReconstruction.METConfigFlags
import createMETConfigFlags
454 from JetRecConfig.JetConfigFlags
import createJetConfigFlags
459 from TrackCaloClusterRecTools.UFOConfigFlags
import createUFOConfigFlags
464 from tauRec.TauConfigFlags
import createTauConfigFlags
469 from DiTauRec.DiTauConfigFlags
import createDiTauConfigFlags
474 from eflowRec.PFConfigFlags
import createPFConfigFlags
479 from JetTagConfig.BTaggingConfigFlags
import createBTaggingConfigFlags
484 from HIRecConfig.HIRecConfigFlags
import createHIRecConfigFlags
489 from EventDisplaysOnline.EventDisplaysOnlineFlags
import createOnlineEventDisplayFlags
491 _addFlagsCategory(acf,
"OnlineEventDisplays", __onlineED,
'EventDisplaysOnline' )
494 from AthenaMonitoring.DQConfigFlags
import createDQConfigFlags
500 from PerfMonComps.PerfMonConfigFlags
import createPerfMonConfigFlags
505 from PhysValMonitoring.PhysValFlags
import createPhysValConfigFlags
510 from CaloRingerAlgs.CaloRingerFlags
import createCaloRingerConfigFlags
515 from CaloRecGPU.CaloRecGPUFlags
import createFlagsCaloRecGPU
521 from DerivationFrameworkConfiguration.DerivationConfigFlags
import createDerivationConfigFlags
523 _addFlagsCategory(acf,
"Derivation", __commonDerivation,
'DerivationFrameworkConfiguration' )
527 from DerivationFrameworkInDet.InDetDFConfigFlags
import createInDetDFConfigFlags
529 _addFlagsCategory(acf,
"Derivation.InDet", __indetDerivation,
'DerivationFrameworkInDet' )
533 from DerivationFrameworkEGamma.EGammaDFConfigFlags
import createEGammaDFConfigFlags
535 _addFlagsCategory(acf,
"Derivation.Egamma", __egammaDerivation,
'DerivationFrameworkEGamma' )
539 from DerivationFrameworkLLP.LLPDFConfigFlags
import createLLPDFConfigFlags
541 _addFlagsCategory(acf,
"Derivation.LLP", __llpDerivation,
'DerivationFrameworkLLP' )
545 from AthOnnxComps.OnnxRuntimeFlags
import createOnnxRuntimeFlags
551 from EFTrackingFPGAPipeline.IntegrationConfigFlag
import addFPGADataPrepFlags
554 _addFlagsCategory(acf,
"FPGADataPrep", _eftracking_f100,
"EFTrackingFPGAPipeline")
557 from AthXRTServices.FPGAConfigFlags
import createFPGAMgmtFlags
566 collections = flags.Input.Collections
567 if "HLTResult_EF" in collections:
569 elif "TrigNavigation" in collections:
571 elif any(
"HLTNav_Summary" in s
for s
in collections):
573 elif not flags.Input.Collections:
578 return default_version
579 acf.addFlag(
'Trigger.EDMVersion',
lambda prevFlags:
EDMVersion(prevFlags),
580 help=
'Trigger EDM version (determined by input file or set to the version to be produced)')
585 if __name__==
"__main__":
586 from AthenaConfiguration.TestDefaults
import defaultTestFiles
589 if len(sys.argv) > 1:
590 flags.Input.Files = sys.argv[1:]
592 flags.Input.Files = defaultTestFiles.AOD_RUN3_DATA
594 flags.loadAllDynamicFlags()