ATLAS Offline Software
Loading...
Searching...
No Matches
python.AllConfigFlags Namespace Reference

Functions

 _addFlagsCategory (acf, name, generator, modName=None)
 initConfigFlags ()
 __commonDerivation ()
 common derivation flags
 __indetDerivation ()
 __egammaDerivation ()
 __llpDerivation ()
 __onnxruntime ()
 _eftracking_f100 ()
 __fpga ()
 EDMVersion (flags)

Variables

 help
 flags = initConfigFlags()
 Files

Function Documentation

◆ __commonDerivation()

python.AllConfigFlags.__commonDerivation ( )
private

common derivation flags

Definition at line 527 of file AllConfigFlags.py.

527 def __commonDerivation():
528 from DerivationFrameworkConfiguration.DerivationConfigFlags import createDerivationConfigFlags
529 return createDerivationConfigFlags()

◆ __egammaDerivation()

python.AllConfigFlags.__egammaDerivation ( )
private

Definition at line 539 of file AllConfigFlags.py.

539 def __egammaDerivation():
540 from DerivationFrameworkEGamma.EGammaDFConfigFlags import createEGammaDFConfigFlags
541 return createEGammaDFConfigFlags()

◆ __fpga()

python.AllConfigFlags.__fpga ( )
private

Definition at line 563 of file AllConfigFlags.py.

563 def __fpga():
564 from AthXRTServices.FPGAConfigFlags import createFPGAMgmtFlags
565 return createFPGAMgmtFlags()

◆ __indetDerivation()

python.AllConfigFlags.__indetDerivation ( )
private

Definition at line 533 of file AllConfigFlags.py.

533 def __indetDerivation():
534 from DerivationFrameworkInDet.InDetDFConfigFlags import createInDetDFConfigFlags
535 return createInDetDFConfigFlags()

◆ __llpDerivation()

python.AllConfigFlags.__llpDerivation ( )
private

Definition at line 545 of file AllConfigFlags.py.

545 def __llpDerivation():
546 from DerivationFrameworkLLP.LLPDFConfigFlags import createLLPDFConfigFlags
547 return createLLPDFConfigFlags()

◆ __onnxruntime()

python.AllConfigFlags.__onnxruntime ( )
private

Definition at line 551 of file AllConfigFlags.py.

551 def __onnxruntime():
552 from AthOnnxComps.OnnxRuntimeFlags import createOnnxRuntimeFlags
553 return createOnnxRuntimeFlags()

◆ _addFlagsCategory()

python.AllConfigFlags._addFlagsCategory ( acf,
name,
generator,
modName = None )
protected
Add flags category and return True/False on success/failure

Definition at line 11 of file AllConfigFlags.py.

11def _addFlagsCategory (acf, name, generator, modName = None):
12 """Add flags category and return True/False on success/failure"""
13 if moduleExists (modName):
14 acf.addFlagsCategory (name, generator)
15 return True
16 return False
17
18

◆ _eftracking_f100()

python.AllConfigFlags._eftracking_f100 ( )
protected

Definition at line 557 of file AllConfigFlags.py.

557 def _eftracking_f100():
558 from EFTrackingFPGAPipeline.IntegrationConfigFlag import addFPGADataPrepFlags
559 return addFPGADataPrepFlags()
560

◆ EDMVersion()

python.AllConfigFlags.EDMVersion ( flags)

Definition at line 570 of file AllConfigFlags.py.

570 def EDMVersion(flags):
571 # POOL files: decide based on HLT output type present in the file
572 default_version = 3
573 collections = flags.Input.Collections
574 if "HLTResult_EF" in collections:
575 return 1
576 elif "TrigNavigation" in collections:
577 return 2
578 elif any("HLTNav_Summary" in s for s in collections):
579 return 3
580 elif not flags.Input.Collections:
581 # Special case for empty input files (can happen in merge jobs on the grid)
582 # The resulting version doesn't really matter as there's nothing to be done, but we want a valid configuration
583 return 3
584
585 return default_version

◆ initConfigFlags()

python.AllConfigFlags.initConfigFlags ( )

Definition at line 19 of file AllConfigFlags.py.

19def initConfigFlags():
20
21 acf=AthConfigFlags()
22
23 #Flags steering the job execution:
24 from AthenaCommon.Constants import INFO
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')
36 acf.addFlag('Exec.StopOnSignal', [], help='List of signal names that can be used to stop the job gracefully. See SignalMonitorSvc in GaudiUtils.' )
37
38 #Custom messaging for components, see Utils.setupLoggingLevels
39 acf.addFlag('Exec.VerboseMessageComponents', [], help='verbose output for listed components (wildcards)')
40 acf.addFlag('Exec.DebugMessageComponents', [], help='debug output for listed components (wildcards)')
41 acf.addFlag('Exec.InfoMessageComponents', [], help='info output for listed components (wildcards)')
42 acf.addFlag('Exec.WarningMessageComponents', [], help='warning output for listed components (wildcards)')
43 acf.addFlag('Exec.ErrorMessageComponents', [], help='error output for listed components (wildcards)')
44
45 #Multi-threaded event service mode
46 acf.addFlag('Exec.MTEventService', False, help='use multi-threaded event service')
47 acf.addFlag('Exec.MTEventServiceChannel', 'EventService_EventRanges', help='name of YAMPL communication channel between AthenaMT and pilot')
48
49 #Multi-node with MPI
50 acf.addFlag('Exec.MPI', False, help='run in MPI mode')
51
52 #Activate per-event log-output of StoreGate content
53 acf.addFlag('Debug.DumpEvtStore', False, help='dump event store on each event')
54 acf.addFlag('Debug.DumpDetStore', False, help='dump detector store on each event')
55 acf.addFlag('Debug.DumpCondStore', False, help='dump conditions store on each event')
56
57 #Activate NameAuditor
58 acf.addFlag('Debug.NameAuditor',False,help='Activate NameAuditor')
59
60 acf.addFlag('ExecutorSplitting.TotalSteps', 0, help='number of steps for pileup overlay')
61 acf.addFlag('ExecutorSplitting.Step', -1, help='step number of current pileup overlay job')
62 acf.addFlag('ExecutorSplitting.TotalEvents', -1, help='events per pileup overlay step')
63
64 #Flags describing the input data
65 acf.addFlag('Input.Files', ["_ATHENA_GENERIC_INPUTFILE_NAME_",], help='input files')
66 acf.addFlag("Input.FileNentries", -1, help='actual number of events in file (filled from runArgs')
67 acf.addFlag('Input.SecondaryFiles', [], help='secondary input files for DoubleEventSelector')
68 acf.addFlag('Input.isMC', lambda prevFlags : "IS_SIMULATION" in GetFileMD(prevFlags.Input.Files).get("eventTypes", []), help='Monte Carlo input')
69 acf.addFlag('Input.OverrideRunNumber', False, help='override run number' )
70 acf.addFlag("Input.ConditionsRunNumber", -1, help='override HITS file run number with one from a data') # TODO merge with Input.RunNumbers
71 acf.addFlag('Input.RunNumbers', lambda prevFlags : list(GetFileMD(prevFlags.Input.Files).get("runNumbers", [])), type=list, help='run numbers of input files')
72 acf.addFlag('Input.MCChannelNumber', lambda prevFlags : GetFileMD(prevFlags.Input.Files).get("mc_channel_number", 0), help='Monte Carlo channel number')
73 acf.addFlag('Input.LumiBlockNumbers', lambda prevFlags : list(GetFileMD(prevFlags.Input.Files).get("lumiBlockNumbers", [])), type=list, help='lumi block numbers of input files')
74 acf.addFlag('Input.TimeStamps', lambda prevFlags : getInitialTimeStampsFromRunNumbers(prevFlags.Input.RunNumbers) if prevFlags.Input.OverrideRunNumber else [], type=list, help='timestamps of inputs files')
75 # Configure EvtIdModifierSvc with a list of dictionaries of the form:
76 # {'run': 152166, 'lb': 202, 'starttstamp': 1269948352889940910, 'evts': 1, 'mu': 0.005}
77 acf.addFlag("Input.RunAndLumiOverrideList", [], help='list of dictionaries to configure EvtIdModifierSvc')
78 # Job number
79 acf.addFlag("Input.JobNumber", 1, help='job number for pileup overlay')
80 acf.addFlag('Input.FailOnUnknownCollections', False, help='fail on unknown collections in input load')
81
82 def _dataYearFromFlags(prevFlags):
83 dataYear = GetFileMD(prevFlags.Input.Files).get("data_year", "")
84 if dataYear:
85 return int(dataYear)
86 if prevFlags.Input.ProjectName.startswith("data"):
87 if prevFlags.Input.ProjectName[4:6].isdigit():
88 return 2000 + int(prevFlags.Input.ProjectName[4:6])
89 return 0
90
91 def _keywordsFromFlags(prevFlags):
92 keywords_string = GetFileMD(prevFlags.Input.Files).get("keywords", "")
93 return [keyword.strip() for keyword in keywords_string.split(',') if keyword.strip()]
94
95 acf.addFlag('Input.ProjectName', lambda prevFlags : GetFileMD(prevFlags.Input.Files).get("project_name", ""), help='project name')
96 acf.addFlag('Input.DataYear', _dataYearFromFlags, help='year of input data')
97 acf.addFlag('Input.MCCampaign', lambda prevFlags : Campaign(GetFileMD(prevFlags.Input.Files).get("mc_campaign", "")), type=Campaign, help='Monte Carlo campaign')
98 acf.addFlag('Input.TriggerStream', lambda prevFlags : GetFileMD(prevFlags.Input.Files).get("stream", "") if prevFlags.Input.Format == Format.BS
99 else GetFileMD(prevFlags.Input.Files).get("triggerStreamOfFile", ""), help='trigger stream name')
100 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')
101 acf.addFlag('Input.ProcessingTags', lambda prevFlags : GetFileMD(prevFlags.Input.Files).get("processingTags", []), help='list of stream names in this file')
102 acf.addFlag('Input.GeneratorsInfo', lambda prevFlags : getGeneratorsInfo(prevFlags), help='generator version')
103 acf.addFlag('Input.Keywords', _keywordsFromFlags, type=list, help='evtgen keywords')
104 acf.addFlag('Input.SpecialConfiguration', lambda prevFlags : getSpecialConfigurationMetadata(prevFlags), help='special configuration options read from input file metadata')
105
106 def _inputCollections(inputFile):
107 rawCollections = [type_key[1] for type_key in GetFileMD(inputFile).get("itemList", [])]
108 collections = [col for col in rawCollections if not col.endswith('Aux.')]
109 return collections
110
111 def _typedInputCollections(inputFile):
112 collections = ['%s#%s' % type_key for type_key in GetFileMD(inputFile).get("itemList", [])]
113 return collections
114
115 acf.addFlag('Input.Collections', lambda prevFlags : _inputCollections(prevFlags.Input.Files), help='input collections')
116 acf.addFlag('Input.SecondaryCollections', lambda prevFlags : _inputCollections(prevFlags.Input.SecondaryFiles), help='secondary input collections for overlay')
117 acf.addFlag('Input.TypedCollections', lambda prevFlags : _typedInputCollections(prevFlags.Input.Files), help='input collections key#type')
118 acf.addFlag('Input.SecondaryTypedCollections', lambda prevFlags : _typedInputCollections(prevFlags.Input.SecondaryFiles), help='secondary input collections key#type')
119
120 def _metadataItems(inputFile):
121 return GetFileMD(inputFile).get("metadata_items", {})
122
123 acf.addFlag('Input.MetadataItems', lambda prevFlags : _metadataItems(prevFlags.Input.Files), help='metadata items in input' )
124 acf.addFlag('Input.Release', lambda prevFlags : GetFileMD(prevFlags.Input.Files).get("AtlasRelease", ""), help='release of input file')
125 acf.addFlag('Input.AODFixesDone', lambda prevFlags : GetFileMD(prevFlags.Input.Files).get("AODFixVersion", ""), help='set of already applied AODFixes')
126
127 acf.addFlag('Concurrency.NumProcs', 0, help='number of concurrent processes')
128 acf.addFlag('Concurrency.NumThreads', 0, help='number of threads' )
129 acf.addFlag('Concurrency.NumConcurrentEvents', lambda prevFlags : prevFlags.Concurrency.NumThreads, help='number of concurrent events')
130 acf.addFlag('Concurrency.DebugWorkers', False, help='stops the worker in bootstrap until SIGUSR1 is received')
131 acf.addFlag('Concurrency.NumOffloadThreads', 0, help='maximum number of extra threads to use for CPU portion of asynchronous algorithms')
132
133 acf.addFlag('Scheduler.CheckDependencies', True, help='runtime check of algorithm input dependencies')
134 acf.addFlag('Scheduler.CheckOutputUsage', False, help='runtime check of algorithm output usage')
135 acf.addFlag('Scheduler.ShowDataDeps', False, help='show data dependencies')
136 acf.addFlag('Scheduler.ShowDataFlow', False, help='show data flow')
137 acf.addFlag('Scheduler.ShowControlFlow', False, help='show data flow')
138 acf.addFlag('Scheduler.EnableVerboseViews', True, help='enable verbose view output')
139 acf.addFlag('Scheduler.AutoLoadUnmetDependencies', True, help='auto-load unmet data dependencies')
140 acf.addFlag('Scheduler.DataDepsGraphFile', '', help='file name containing the data dependency graph [.dot or .md]')
141 acf.addFlag('Scheduler.DataDepsGraphAlgPattern', '.*', help='regex pattern for selecting algorithms to be drawn in the data dependency graph')
142 acf.addFlag('Scheduler.DataDepsGraphObjectPattern', '.*', help='regex pattern for selecting I/O to be drawn in the data dependency graph')
143
144 acf.addFlag('MP.WorkerTopDir', 'athenaMP_workers', help='work directory for MP workers')
145 acf.addFlag('MP.OutputReportFile', 'AthenaMPOutputs', help='name of MP report file')
146 acf.addFlag('MP.Strategy', 'SharedQueue', help='event assignment strategy')
147 acf.addFlag('MP.CollectSubprocessLogs', False, help='collects log of sub-processes')
148 acf.addFlag('MP.PollingInterval', 100, help='time interval in milliseconds between subsequent polling of subproceses')
149 acf.addFlag('MP.EventsBeforeFork', 0, help='number of events to process before forking')
150 acf.addFlag('MP.EventRangeChannel', 'EventService_EventRanges', help='channel name for communicating event ranges with the pilot')
151 acf.addFlag('MP.EvtRangeScattererCaching', False, help='activate extra event caching by the EvtRangeScatterer')
152 acf.addFlag('MP.MemSamplingInterval', 0, help='time interval in seconds between taking memory samples')
153 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)')
154 acf.addFlag('MP.ReadEventOrders', False, help='read event order from ASCII file for reproducibility')
155 acf.addFlag('MP.EventOrdersFile', 'athenamp_eventorders.txt', help='file name for event order')
156 acf.addFlag('MP.UseSharedReader', False, help='use shared reader')
157 acf.addFlag('MP.UseSharedWriter', False, help='use shared writer')
158 acf.addFlag('MP.UseParallelCompression', True, help='enable event compression in workers')
159
160 acf.addFlag('Common.MsgSuppression', True, help='enable log message suppression')
161 acf.addFlag('Common.MsgSourceLength', 50, help='length of the source-field in the log message format')
162 acf.addFlag('Common.ShowMsgStats', False ,help='print message statistics at the end of the job')
163
164 acf.addFlag('Common.isOnline', False, help='job runs in an online environment')
165 acf.addFlag('Common.useOnlineLumi', lambda prevFlags : prevFlags.Common.isOnline, help='use online version of luminosity')
166 acf.addFlag('Common.isOverlay', lambda prevFlags: prevFlags.Common.ProductionStep == ProductionStep.Overlay,
167 help='enable overlay')
168 acf.addFlag('Common.doExpressProcessing', False, help='do express stream processing')
169 acf.addFlag('Common.ProductionStep', ProductionStep.Default, type=ProductionStep, help='production step')
170 acf.addFlag('Common.Project', Project.determine(), type=Project, help='current athena software project')
171
172 # replace global.Beam*
173 acf.addFlag('Beam.BunchSpacing', 25, help='bunch spacing in nanoseconds')
174 acf.addFlag('Beam.Type', lambda prevFlags : BeamType(GetFileMD(prevFlags.Input.Files).get('beam_type', 'collisions')), type=BeamType, help='beam type')
175 acf.addFlag("Beam.NumberOfCollisions", lambda prevFlags : 2. if prevFlags.Beam.Type is BeamType.Collisions else 0., help='number of pileup collisions')
176
177 def _configureBeamEnergy(prevFlags):
178 metadata = GetFileMD(prevFlags.Input.Files)
179 default = 6.8 * TeV
180 # pool files
181 if prevFlags.Input.Format == Format.POOL:
182 return float(metadata.get("beam_energy", default))
183 # BS files
184 elif prevFlags.Input.Format == Format.BS:
185 if metadata.get("eventTypes", [""])[0] == "IS_DATA":
186 # special option for online running
187 if prevFlags.Common.isOnline:
188 from PyUtils.OnlineISConfig import GetRunType
189
190 return float(GetRunType()[1] or default)
191
192 # configure Beam energy depending on beam type:
193 if prevFlags.Beam.Type.value == "cosmics":
194 return 0.0
195 elif prevFlags.Beam.Type.value == "singlebeam":
196 return 450.0 * GeV
197 elif prevFlags.Beam.Type.value == "collisions":
198 projectName = prevFlags.Input.ProjectName
199 beamEnergy = None
200
201 if "GeV" in projectName:
202 beamEnergy = (
203 float(
204 (str(projectName).split("_")[1]).replace("GeV", "", 1)
205 )
206 / 2
207 * GeV
208 )
209 elif "TeV" in projectName:
210 if "hip5TeV" in projectName:
211 # Approximate 'beam energy' here as sqrt(sNN)/2.
212 beamEnergy = 1.577 * TeV
213 elif "hip8TeV" in projectName:
214 # Approximate 'beam energy' here as sqrt(sNN)/2.
215 beamEnergy = 2.51 * TeV
216 else:
217 beamEnergy = (
218 float(
219 (str(projectName).split("_")[1])
220 .replace("TeV", "", 1)
221 .replace("p", ".")
222 )
223 / 2
224 * TeV
225 )
226 if "5TeV" in projectName:
227 # these are actually sqrt(s) = 5.02 TeV
228 beamEnergy = 2.51 * TeV
229 elif projectName.endswith("_hi") or projectName.endswith("_hip"):
230 if projectName in ("data10_hi", "data11_hi"):
231 beamEnergy = 1.38 * TeV # 1.38 TeV (=3.5 TeV * (Z=82/A=208))
232 elif projectName == "data12_hi":
233 beamEnergy = 1.577 * TeV # 1.577 TeV (=4 TeV * (Z=82/A=208))
234 elif projectName in ("data12_hip", "data13_hip"):
235 # Pb (p) Beam energy in p-Pb collisions in 2012/3 was 1.577 (4) TeV.
236 # Approximate 'beam energy' here as sqrt(sNN)/2.
237 beamEnergy = 2.51 * TeV
238 elif projectName in ("data15_hi", "data18_hi"):
239 beamEnergy = 2.51 * TeV # 2.51 TeV (=6.37 TeV * (Z=82/A=208)) - lowered to 6.37 to match s_NN = 5.02 in Pb-p runs.
240 elif projectName == "data17_hi":
241 beamEnergy = 2.721 * TeV # 2.72 TeV for Xe-Xe (=6.5 TeV * (Z=54/A=129))
242 return beamEnergy or default
243 elif metadata.get("eventTypes", [""])[0] == "IS_SIMULATION":
244 return float(metadata.get("beam_energy", default))
245 return default
246
247
248 acf.addFlag('Beam.Energy', lambda prevFlags : _configureBeamEnergy(prevFlags), help='beam energy in MeV')
249 acf.addFlag('Beam.estimatedLuminosity', lambda prevFlags : ( 1E33*(prevFlags.Beam.NumberOfCollisions)/2.3 ) *\
250 (25./prevFlags.Beam.BunchSpacing), help='luminosity estimated from pileup')
251 acf.addFlag('Beam.BunchStructureSource', lambda prevFlags: BunchStructureSource.MC if prevFlags.Input.isMC else BunchStructureSource.TrigConf, help='source of bunch structure')
252
253 acf.addFlag('Beam.vdMScan.ConfigFile', 'LRAPositioner.root', help='vdM Scan Sim/Reco/BSFit Configuration File')
254 acf.addFlag('Beam.vdMScan.PV.PDF', 'Default', help='vdM Scan Sim/BSFit PV PDF Histogram')
255
256 # output
257 acf.addFlag('Output.BSFileName', '', help='BS output file name')
258 acf.addFlag('Output.EVNTFileName', '', help='EVNT output file name')
259 acf.addFlag('Output.EVNT_TRFileName', '', help='EVNT_TR output file name')
260 acf.addFlag('Output.HITSFileName', '', help='HITS output file name')
261 acf.addFlag('Output.RDOFileName', '', help='RDO output file name')
262 acf.addFlag('Output.RDO_SGNLFileName', '', help='RDO_SGNL output file name')
263 acf.addFlag('Output.ESDFileName', '', help='ESD output file name')
264 acf.addFlag('Output.AODFileName', '', help='AOD output file name')
265 acf.addFlag('Output.HISTFileName', '', help='HIST output file name')
266
267 acf.addFlag('Output.doWriteEVNT', lambda prevFlags: bool(prevFlags.Output.EVNTFileName), help='write EVNT file')
268 acf.addFlag('Output.doWriteEVNT_TR', lambda prevFlags: bool(prevFlags.Output.EVNT_TRFileName), help='write EVNT_TR file')
269 acf.addFlag('Output.doWriteHITS', lambda prevFlags: bool(prevFlags.Output.HITSFileName), help='write HITS file')
270 acf.addFlag('Output.doWriteRDO', lambda prevFlags: bool(prevFlags.Output.RDOFileName), help='write RDO file')
271 acf.addFlag('Output.doWriteRDO_SGNL', lambda prevFlags: bool(prevFlags.Output.RDO_SGNLFileName), help='write RDO_SGNL file')
272 acf.addFlag('Output.doWriteESD', lambda prevFlags: bool(prevFlags.Output.ESDFileName), help='write ESD file')
273 acf.addFlag('Output.doWriteAOD', lambda prevFlags: bool(prevFlags.Output.AODFileName), help='write AOD file')
274 acf.addFlag('Output.doWriteBS', False, help='write bytestream file')
275 acf.addFlag('Output.doWriteDAOD', False, help='write at least one DAOD file')
276 acf.addFlag('Output.doJiveXML', False, help='write JiveXML file')
277
278 acf.addFlag('Output.doGEN_AOD2xAOD', True, help="Configure the AODtoxAOD Truth Conversion")
279 acf.addFlag('Output.OneDataHeaderForm', False, help="Write only a single common DataHeaderForm per stream")
280 acf.addFlag('Output.TreeAutoFlush', {}, help="dict with auto-flush settings for stream e.g. {'STREAM': 123}")
281 acf.addFlag('Output.TemporaryStreams', [], help='list of output streams that are marked temporary')
282 acf.addFlag('Output.StorageTechnology.EventData', {},
283 help="set the underlying POOL storage technology for event data, e.g., {f'{flags.Output.AODFileName}':'ROOTRNTUPLE', '*':'ROOTTREEINDEX'}. If not set for a file, defaults to PoolSvc.DefaultContainerType.")
284 acf.addFlag('Output.StorageTechnology.MetaData', {},
285 help="set the underlying POOL storage technology for metadata, e.g., {f'{flags.Output.AODFileName}':'ROOTRNTUPLE', '*':'ROOTTREE'}. If not set for a file, defaults to the EventData technology for that file.")
286
287 # Might move this elsewhere in the future.
288 # Some flags from https://gitlab.cern.ch/atlas/athena/blob/master/Tracking/TrkDetDescr/TrkDetDescrSvc/python/TrkDetDescrJobProperties.py
289 # (many, e.g. those that set properties of one tool are not needed)
290 acf.addFlag('TrackingGeometry.MagneticFileMode', 6) # TODO: unused?
291 acf.addFlag('TrackingGeometry.MaterialSource', 'COOL', help='material source (COOL, Input or None)')
292
293#Detector Flags:
294 def __detector():
295 from AthenaConfiguration.DetectorConfigFlags import createDetectorConfigFlags
296 return createDetectorConfigFlags()
297 acf.addFlagsCategory( "Detector", __detector )
298
299#Simulation Flags:
300 def __simulation():
301 from SimulationConfig.SimConfigFlags import createSimConfigFlags
302 return createSimConfigFlags()
303 _addFlagsCategory (acf, "Sim", __simulation, 'SimulationConfig' )
304
305#Test Beam Simulation Flags:
306 def __testbeam():
307 from SimulationConfig.TestBeamConfigFlags import createTestBeamConfigFlags
308 return createTestBeamConfigFlags()
309 _addFlagsCategory (acf, "TestBeam", __testbeam, 'SimulationConfig' )
310
311#Digitization Flags:
312 def __digitization():
313 from DigitizationConfig.DigitizationConfigFlags import createDigitizationCfgFlags
314 return createDigitizationCfgFlags()
315 _addFlagsCategory(acf, "Digitization", __digitization, 'DigitizationConfig' )
316
317#Overlay Flags:
318 def __overlay():
319 from OverlayConfiguration.OverlayConfigFlags import createOverlayConfigFlags
320 return createOverlayConfigFlags()
321 _addFlagsCategory(acf, "Overlay", __overlay, 'OverlayConfiguration' )
322
323#Geo Model Flags:
324 def __geomodel():
325 from AthenaConfiguration.GeoModelConfigFlags import createGeoModelConfigFlags
326 return createGeoModelConfigFlags(not isGaudiEnv() or acf.Common.Project is Project.AthAnalysis)
327 acf.addFlagsCategory( "GeoModel", __geomodel )
328
329#Reco Flags:
330 def __reco():
331 from RecJobTransforms.RecoConfigFlags import createRecoConfigFlags
332 return createRecoConfigFlags()
333 _addFlagsCategory(acf, "Reco", __reco, 'RecJobTransforms')
334
335#Generator Flags:
336 def __generators():
337 from GeneratorConfig.GeneratorConfigFlags import createGeneratorConfigFlags
338 return createGeneratorConfigFlags()
339 _addFlagsCategory(acf, "Generator", __generators, 'GeneratorConfig')
340
341#IOVDbSvc Flags:
342 if isGaudiEnv():
343 from IOVDbSvc.IOVDbAutoCfgFlags import getLastGlobalTag, getDatabaseInstanceDefault
344
345 def __getTrigTag(flags):
346 from TriggerJobOpts.TriggerConfigFlags import trigGlobalTag
347 return trigGlobalTag(flags)
348
349 acf.addFlag("IOVDb.GlobalTag", lambda flags :
350 (__getTrigTag(flags) if flags.Trigger.doLVL1 or flags.Trigger.doHLT else None) or
351 getLastGlobalTag(flags), help='global conditions tag')
352
353 acf.addFlag("IOVDb.DatabaseInstance", getDatabaseInstanceDefault, help='conditions DB instance')
354
355 # Run dependent simulation
356 acf.addFlag("IOVDb.RunToTimestampDict", lambda prevFlags: getRunToTimestampDict(), help='runNumber to timestamp map')
357
358 acf.addFlag("IOVDb.DBConnection", lambda prevFlags : "sqlite://;schema=mycool.db;dbname=" + prevFlags.IOVDb.DatabaseInstance, help='default DB connection string')
359 acf.addFlag("IOVDb.CrestServer", "https://crest.cern.ch", help="CREST server URL") # FIXME could this be merged with IOVDb.DBConnection?
360 acf.addFlag("IOVDb.UseCREST", False, help='Use CREST for conditions access')
361
362 #For HLT-jobs, the ring-size should be 0 (eg no cleaning at all since there are no IOV-updates during the job)
363 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')
364 acf.addFlag("IOVDb.SqliteInput","",help="Folders found in this file will be used instead of the production db")
365 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.")
366 acf.addFlag("IOVDb.WriteParametersAsMetaData", False, help="Write simulation/digitization parameters directly as in-file metadata (True) or via intermediate sqlite files (False)")
367
368#PoolSvc Flags:
369 acf.addFlag("PoolSvc.MaxFilesOpen", lambda prevFlags : 2 if prevFlags.MP.UseSharedReader else 0, help='maximum number of open files')
370 acf.addFlag('PoolSvc.DefaultContainerType', 'ROOTTREEINDEX', help='set the underlying POOL storage technology for the default container type')
371 acf.addFlag("PoolSvc.PersSvcPerInputType", False, help='enable separate persistency service for each input type')
372
373
374 def __bfield():
375 from MagFieldConfig.BFieldConfigFlags import createBFieldConfigFlags
376 return createBFieldConfigFlags()
377 _addFlagsCategory(acf, "BField", __bfield, 'MagFieldConfig')
378
379 def __lar():
380 from LArConfiguration.LArConfigFlags import createLArConfigFlags
381 return createLArConfigFlags()
382 _addFlagsCategory(acf, "LAr", __lar, 'LArConfiguration' )
383
384 def __tile():
385 from TileConfiguration.TileConfigFlags import createTileConfigFlags
386 return createTileConfigFlags()
387 _addFlagsCategory(acf, 'Tile', __tile, 'TileConfiguration' )
388
389
390 def __calo():
391 from CaloRec.CaloConfigFlags import createCaloConfigFlags
392 return createCaloConfigFlags()
393 _addFlagsCategory(acf, 'Calo', __calo, 'CaloRec' )
394
395#Random engine Flags:
396 acf.addFlag("Random.Engine", "dSFMT", help='random number service ("dSFMT", "Ranlux64", "Ranecu")')
397 acf.addFlag("Random.SeedOffset", 0, help='seed offset') # TODO replace usage of Digitization.RandomSeedOffset with this flag
398
399 def __trigger():
400 from TriggerJobOpts.TriggerConfigFlags import createTriggerFlags
401 return createTriggerFlags(acf.Common.Project is not Project.AthAnalysis)
402
403 added = _addFlagsCategory(acf, "Trigger", __trigger, 'TriggerJobOpts' )
404 if not added:
405 # If TriggerJobOpts is not available, we add at least these basic flags
406 # to indicate Trigger is not available:
407 acf.addFlag('Trigger.doLVL1', False, help='enable L1 simulation')
408 acf.addFlag('Trigger.doHLT', False, help='run HLT selection algorithms')
409
410 def __indet():
411 from InDetConfig.InDetConfigFlags import createInDetConfigFlags
412 return createInDetConfigFlags()
413 _addFlagsCategory(acf, "InDet", __indet, 'InDetConfig' )
414
415 def __itk():
416 from InDetConfig.ITkConfigFlags import createITkConfigFlags
417 return createITkConfigFlags()
418 _addFlagsCategory(acf, "ITk", __itk, 'InDetConfig' )
419
420 def __tracking():
421 from TrkConfig.TrkConfigFlags import createTrackingConfigFlags
422 return createTrackingConfigFlags()
423 _addFlagsCategory(acf, "Tracking", __tracking, 'TrkConfig')
424
425 def __trackoverlay():
426 from TrackOverlayConfig.TrackOverlayConfigFlags import createTrackOverlayConfigFlags
427 return createTrackOverlayConfigFlags()
428 _addFlagsCategory(acf, "TrackOverlay", __trackoverlay, 'TrackOverlayConfig')
429
430 def __acts():
431 from ActsConfig.ActsConfigFlags import createActsConfigFlags
432 return createActsConfigFlags()
433 _addFlagsCategory(acf, "Acts", __acts, 'ActsConfig')
434
435 def __hgtd():
436 from HGTD_Config.HGTD_ConfigFlags import createHGTD_ConfigFlags
437 return createHGTD_ConfigFlags()
438 _addFlagsCategory(acf, "HGTD", __hgtd, 'HGTD_Config' )
439
440 def __muon():
441 from MuonConfig.MuonConfigFlags import createMuonConfigFlags
442 return createMuonConfigFlags()
443 _addFlagsCategory(acf, "Muon", __muon, 'MuonConfig' )
444
445 def __muoncombined():
446 from MuonCombinedConfig.MuonCombinedConfigFlags import createMuonCombinedConfigFlags
447 return createMuonCombinedConfigFlags()
448 _addFlagsCategory(acf, "MuonCombined", __muoncombined, 'MuonCombinedConfig' )
449
450 def __egamma():
451 from egammaConfig.egammaConfigFlags import createEgammaConfigFlags
452 return createEgammaConfigFlags()
453 _addFlagsCategory(acf, "Egamma", __egamma, 'egammaConfig' )
454
455 def __met():
456 from METReconstruction.METConfigFlags import createMETConfigFlags
457 return createMETConfigFlags()
458 _addFlagsCategory(acf,"MET",__met, 'METReconstruction')
459
460 def __jet():
461 from JetRecConfig.JetConfigFlags import createJetConfigFlags
462 return createJetConfigFlags()
463 _addFlagsCategory(acf,"Jet",__jet, 'JetRecConfig')
464
465 def __ufo():
466 from TrackCaloClusterRecTools.UFOConfigFlags import createUFOConfigFlags
467 return createUFOConfigFlags()
468 _addFlagsCategory(acf,"UFO",__ufo, 'TrackCaloClusterRecTools')
469
470 def __tau():
471 from tauRec.TauConfigFlags import createTauConfigFlags
472 return createTauConfigFlags()
473 _addFlagsCategory(acf, "Tau",__tau, 'tauRec')
474
475 def __ditau():
476 from DiTauRec.DiTauConfigFlags import createDiTauConfigFlags
477 return createDiTauConfigFlags()
478 _addFlagsCategory(acf, "DiTau",__ditau, 'DiTauRec')
479
480 def __pflow():
481 from eflowRec.PFConfigFlags import createPFConfigFlags
482 return createPFConfigFlags()
483 _addFlagsCategory(acf,"PF",__pflow, 'eflowRec')
484
485 def __btagging():
486 from JetTagConfig.BTaggingConfigFlags import createBTaggingConfigFlags
487 return createBTaggingConfigFlags()
488 _addFlagsCategory(acf,"BTagging",__btagging, 'JetTagConfig')
489
490 def __hi():
491 from HIRecConfig.HIRecConfigFlags import createHIRecConfigFlags
492 return createHIRecConfigFlags()
493 _addFlagsCategory(acf, "HeavyIon", __hi, "HIRecConfig")
494
495 def __onlineED():
496 from EventDisplaysOnline.EventDisplaysOnlineFlags import createOnlineEventDisplayFlags
497 return createOnlineEventDisplayFlags()
498 _addFlagsCategory(acf, "OnlineEventDisplays", __onlineED, 'EventDisplaysOnline' )
499
500 def __dq():
501 from AthenaMonitoring.DQConfigFlags import createDQConfigFlags
502 dqf = createDQConfigFlags()
503 return dqf
504 _addFlagsCategory(acf, "DQ", __dq, 'AthenaMonitoring' )
505
506 def __perfmon():
507 from PerfMonComps.PerfMonConfigFlags import createPerfMonConfigFlags
508 return createPerfMonConfigFlags()
509 _addFlagsCategory(acf, "PerfMon", __perfmon, 'PerfMonComps')
510
511 def __physVal():
512 from PhysValMonitoring.PhysValFlags import createPhysValConfigFlags
513 return createPhysValConfigFlags()
514 _addFlagsCategory(acf, "PhysVal", __physVal , "PhysValMonitoring")
515
516 def __caloRinger():
517 from CaloRingerAlgs.CaloRingerFlags import createCaloRingerConfigFlags
518 return createCaloRingerConfigFlags()
519 _addFlagsCategory(acf, "CaloRinger", __caloRinger, 'CaloRingerAlgs' )
520
521 def __caloGPU():
522 from CaloRecGPU.CaloRecGPUFlags import createFlagsCaloRecGPU
523 return createFlagsCaloRecGPU()
524 _addFlagsCategory(acf, "CaloRecGPU", __caloGPU, 'CaloRecGPU' )
525
#define max(a, b)
Definition cfImp.cxx:41
std::string replace(std::string s, const std::string &s2, const std::string &s3)
Definition hcg.cxx:310
T * get(TKey *tobj)
get a TObject* from a TKey* (why can't a TObject be a TKey?)
Definition hcg.cxx:130
std::vector< std::string > split(const std::string &s, const std::string &t=":")
Definition hcg.cxx:177

Variable Documentation

◆ Files

python.AllConfigFlags.Files

Definition at line 597 of file AllConfigFlags.py.

◆ flags

python.AllConfigFlags.flags = initConfigFlags()

Definition at line 594 of file AllConfigFlags.py.

◆ help

python.AllConfigFlags.help

Definition at line 587 of file AllConfigFlags.py.