5 from AthenaConfiguration.AthConfigFlags
import AthConfigFlags
6 from AthenaConfiguration.Enums
import FlagEnum, Format, LHCPeriod
8 from AthenaCommon.Logging
import logging
10 log=logging.getLogger(
'TriggerConfigFlags')
16 InitialRoI =
'InitialRoI'
18 TauCoreLargeRoI =
'TauCoreLargeRoI'
22 """Return global conditions data to be used in the HLT. Return None to indicate that
23 no trigger-specific tag is required. Used for IOVDb.GlobalTag in AllConfigFlags.py.
25 return None if flags.Input.isMC
else 'CONDBR2-HLTP-2024-02'
28 """Return geometry tag to be used in the HLT. Returns None to indicate that
29 no trigger-specific tag is required. Used for GeoModel.AtlasVersion in GeoModelConfigFlags.py.
31 return None if flags.Input.isMC
else 'ATLAS-R3S-2021-03-02-00'
35 flags = AthConfigFlags()
37 flags.addFlag(
'Trigger.doLVL1',
lambda prevFlags: prevFlags.Input.isMC,
38 help=
'enable L1 simulation')
40 flags.addFlag(
'Trigger.doHLT',
False,
41 help=
'run HLT selection algorithms')
43 flags.addFlag(
"Trigger.forceEnableAllChains",
False,
44 help=
'always enable all configured chains (for testing)')
46 flags.addFlag(
'Trigger.enableL1MuonPhase1',
lambda prevFlags:
47 prevFlags.Trigger.EDMVersion >= 3
or prevFlags.Detector.EnableMM
or prevFlags.Detector.EnablesTGC,
48 help=
'enable Run-3 LVL1 muon decoding')
50 flags.addFlag(
'Trigger.enableL1CaloPhase1',
lambda prevFlags:
51 prevFlags.Trigger.EDMVersion >= 3
or prevFlags.GeoModel.Run >= LHCPeriod.Run3,
52 help=
'enable Phase-1 LVL1 calo simulation and/or decoding for Run-3+')
54 flags.addFlag(
'Trigger.enableL1TopoDump',
False,
55 help=
'enable L1Topo simulation to write inputs to txt file')
57 flags.addFlag(
'Trigger.enableL1TopoBWSimulation',
True,
58 help=
'enable bitwise L1Topo simulation')
60 flags.addFlag(
'Trigger.enableL1CaloLegacy',
True,
61 help=
'enable Run-2 L1Calo simulation and/or decoding')
64 flags.addFlag(
'Trigger.L1MuonSim.EmulateNSW',
False,
65 help=
'enable emulation tool for NSW-TGC coincidence')
67 flags.addFlag(
'Trigger.L1MuonSim.doMMTrigger',
True,
68 help=
'enable NSW MM trigger')
70 flags.addFlag(
'Trigger.L1MuonSim.doPadTrigger',
True,
71 help=
'enable NSW sTGC pad trigger')
73 flags.addFlag(
'Trigger.L1MuonSim.doStripTrigger',
False,
74 help=
'enable NSW sTGC strip trigger')
76 flags.addFlag(
'Trigger.L1MuonSim.WriteNSWDebugNtuple',
False,
77 help=
'enable Storing NSW debug Ntuple')
79 flags.addFlag(
'Trigger.L1MuonSim.WriteMMBranches',
False,
80 help=
'enable storing of Micromega branches in NSW debug Ntuple')
82 flags.addFlag(
'Trigger.L1MuonSim.WritesTGCBranches',
False,
83 help=
'enable storing of TGC branches in NSW debug Ntuple')
85 flags.addFlag(
'Trigger.L1MuonSim.NSWVetoMode',
True,
86 help=
'enable the veto mode of the NSW-TGC coincidence')
88 flags.addFlag(
'Trigger.L1MuonSim.doBIS78',
True,
89 help=
'enable TGC-RPC BIS78 coincidence')
91 flags.addFlag(
'Trigger.L1MuonSim.CondDBOffline',
'OFLCOND-MC16-SDR-RUN2-04',
92 help=
'offline CondDB tag for RPC/TGC coincidence window in rerunLVL1 on data')
94 flags.addFlag(
'Trigger.L1MuonSim.RPCNBX',
lambda prevFlags:
95 8
if prevFlags.Input.isMC
else 4,
96 help=
'Number of bunch crossings in RPC readout')
98 flags.addFlag(
'Trigger.L1MuonSim.RPCNBCZ',
lambda prevFlags:
99 3
if prevFlags.Input.isMC
else 1,
100 help=
'Nominal BC for RPC readout')
104 flags.addFlag(
'Trigger.doID',
True,
105 help=
'enable Inner Detector')
107 flags.addFlag(
'Trigger.doMuon',
True,
108 help=
'enable muon systems')
110 flags.addFlag(
'Trigger.doCalo',
True,
111 help=
'enable calorimeters')
113 flags.addFlag(
'Trigger.doZDC',
False,
114 help=
'enable ZDC system')
116 flags.addFlag(
'Trigger.ZdcLUT',
'TrigT1ZDC/zdcRun3T1LUT_v2_08_08_2023.json',
117 help=
'path to Run3 ZDC LUT')
120 flags.addFlag(
'Trigger.doTRT',
False)
123 flags.addFlag(
'Trigger.TRT.TTCMultiplicity', 4)
126 flags.addFlag(
'Trigger.TRT.maskedChipsFile',
'TrigT1TRT/fastORmaskedChips.json')
129 flags.addFlag(
'Trigger.doValidationMonitoring',
False,
130 help=
'enable additional validation histograms')
132 flags.addFlag(
'Trigger.doRuntimeNaviVal',
False,
133 help=(
'Check validity of each Decision objects in the entire decision tree (CPU expensive). '
134 'Also enable per-step decision printouts.'))
136 flags.addFlag(
'Trigger.ROBPrefetchingOptions',
137 [ROBPrefetching.InitialRoI, ROBPrefetching.StepRoI, ROBPrefetching.TauCoreLargeRoI],
138 help=
'select ROB prefetching types, empty list disables prefetching')
142 """Determine Trigger EDM version based on the input file."""
143 _log = logging.getLogger(
'TriggerConfigFlags.EDMVersion')
147 if flags.Input.Format
is Format.BS:
148 _log.debug(
"Input format is ByteStream")
150 if not any(flags.Input.Files)
and flags.Common.isOnline:
151 _log.info(
"Online reconstruction, no input file. Return default EDMVersion=%d", default_version)
152 return default_version
154 from TrigEDMConfig.Utils
import getEDMVersionFromBS
156 log.error(
"Failed to import TrigEDMConfig, analysing ByteStream files is not possible in this release!")
162 return version
if version
is not None else default_version
166 _log.debug(
"Input format is POOL -- determine from input file collections")
167 collections = flags.Input.Collections
168 if "HLTResult_EF" in collections:
169 _log.info(
"Determined EDMVersion to be 1, because HLTResult_EF found in POOL file")
171 elif "TrigNavigation" in collections:
172 _log.info(
"Determined EDMVersion to be 2, because TrigNavigation found in POOL file")
174 elif any(
"HLTNav_Summary" in s
for s
in collections):
175 _log.info(
"Determined EDMVersion to be 3, because HLTNav_Summary.* found in POOL file")
177 elif not flags.Input.Collections:
180 _log.warning(
"All input files seem to be empty, cannot determine EDM version. Guessing EDMVersion=3")
183 _log.info(
"Could not determine EDM version from the input file. Return default EDMVersion=%d",
185 return default_version
187 flags.addFlag(
'Trigger.EDMVersion',
lambda prevFlags:
EDMVersion(prevFlags),
188 help=
'Trigger EDM version (determined by input file or set to the version to be produced)')
190 flags.addFlag(
'Trigger.doEDMVersionConversion',
False,
191 help=
'convert Run-1&2 EDM to Run-3 EDM')
193 flags.addFlag(
'Trigger.doxAODConversion',
True,
194 help=(
'convert Run-1 EDM to xAOD'))
196 flags.addFlag(
'Trigger.doOnlineNavigationCompactification',
True,
197 help=
'enable trigger Navigation compactification into a single collection')
199 flags.addFlag(
'Trigger.doNavigationSlimming',
True,
200 help=
'enable Navigation slimming for RAWtoXYZ or AODtoDAOD transforms')
202 flags.addFlag(
'Trigger.derivationsExtraChains', [],
203 help=
'list of chains which should be considered for trigger-matching in addition to those from the TriggerAPI when running derivations')
206 flags.addFlag(
'Trigger.CostMonitoring.doCostMonitoring',
True,
207 help=
'enable cost monitoring')
209 flags.addFlag(
'Trigger.CostMonitoring.chain',
'HLT_noalg_CostMonDS_L1All',
210 help=
'Cost monitoring chain name')
212 flags.addFlag(
'Trigger.CostMonitoring.outputCollection',
'HLT_TrigCostContainer',
213 help=
'Cost monitoring output collection name')
215 flags.addFlag(
'Trigger.CostMonitoring.monitorAllEvents',
False,
216 help=
'enable Cost monitoring for all events')
218 flags.addFlag(
'Trigger.CostMonitoring.monitorROBs',
True,
219 help=
'enable Cost monitoring of ROB accesses')
222 flags.addFlag(
'Trigger.L1.doMuon',
True,
223 help=
'enable L1Muon ByteStream conversion/simulation')
225 flags.addFlag(
'Trigger.L1.doMuonTopoInputs',
lambda prevFlags: prevFlags.Trigger.doLVL1,
226 help=
'enable ByteStream conversion/simulation of MUCTPI Topo TOBs')
228 flags.addFlag(
'Trigger.L1.doCalo',
True,
229 help=
'enable L1Calo ByteStream conversion/simulation')
231 flags.addFlag(
'Trigger.L1.doCaloInputs',
lambda prevFlags:
232 prevFlags.Trigger.L1.doCalo
and prevFlags.Trigger.enableL1CaloPhase1
and not prevFlags.Trigger.doHLT,
233 help=
'enable L1Calo Input ([ejg]Towers) ByteStream conversion/simulation')
235 flags.addFlag(
'Trigger.L1.doeFex',
lambda prevFlags:
236 prevFlags.Trigger.L1.doCalo
and prevFlags.Trigger.enableL1CaloPhase1,
237 help=
'enable eFEX ByteStream conversion/simulation')
239 flags.addFlag(
'Trigger.L1.Menu.doeFexBDTTau',
True,
240 help=
'set BDT tau algorithm as the active one for eFEX when constructing L1 menus')
242 flags.addFlag(
'Trigger.L1.dojFex',
lambda prevFlags:
243 prevFlags.Trigger.L1.doCalo
and prevFlags.Trigger.enableL1CaloPhase1,
244 help=
'enable jFEX ByteStream conversion/simulation')
246 flags.addFlag(
'Trigger.L1.dogFex',
lambda prevFlags:
247 prevFlags.Trigger.L1.doCalo
and prevFlags.Trigger.enableL1CaloPhase1,
248 help=
'enable gFEX ByteStream conversion/simulation')
250 flags.addFlag(
'Trigger.L1.L1CaloSuperCellContainerName',
lambda prevFlags:
251 "EmulatedSCell" if prevFlags.GeoModel.Run
is LHCPeriod.Run2
else "SCell",
252 help=
'name of SuperCell container')
254 flags.addFlag(
'Trigger.L1.doTopo',
True,
255 help=
'enable L1Topo ByteStream conversion/simulation (steering both legacy and phase-1 Topo)')
257 flags.addFlag(
'Trigger.L1.doTopoPhase1',
lambda prevFlags:
258 prevFlags.Trigger.L1.doTopo
and prevFlags.Trigger.enableL1CaloPhase1,
259 help=
'control Phase-I L1Topo simulation even if L1.doTopo is True')
261 flags.addFlag(
'Trigger.L1.doCTP',
True,
262 help=
'enable CTP ByteStream conversion/simulation')
264 flags.addFlag(
'Trigger.L1.Menu.doHeavyIonTobThresholds',
lambda prevFlags:
265 'HI' in prevFlags.Trigger.triggerMenuSetup,
266 help=
'modify min-pt-to-Topo threshold for TOBs to HI values')
268 flags.addFlag(
'Trigger.L1.errorOnMissingTOB',
True,
269 help=
'Set to true to enable strict-mode which will generate an ERROR on missing (non-overflow) TOB events in HLT-seeding from L1')
272 flags.addFlag(
'Trigger.Online.partitionName', os.getenv(
'TDAQ_PARTITION')
or '',
273 help=
'partition name used to determine online vs offline BS result writing')
275 flags.addFlag(
'Trigger.Online.isPartition',
lambda prevFlags: len(prevFlags.Trigger.Online.partitionName)>0,
276 help=
'check if job is running in a partition (i.e. partition name is not empty)')
278 flags.addFlag(
'Trigger.Online.useOnlineTHistSvc',
False,
279 help=
'use online THistSvc')
281 flags.addFlag(
'Trigger.Online.BFieldAutoConfig',
True,
282 help=
'auto-configure magnetic field from currents in IS')
284 flags.addFlag(
'Trigger.writeBS',
False,
285 help=
'enable bytestream writing of trigger information')
287 flags.addFlag(
'Trigger.doTransientByteStream',
lambda prevFlags:
288 True if prevFlags.Input.Format
is Format.POOL
and prevFlags.Trigger.doCalo
else False,
289 help=
'create transient BS (for running on MC RDO with clients that require BS inputs)')
291 flags.addFlag(
'Trigger.AODEDMSet',
lambda flags:
'AODSLIM' if flags.Input.isMC
else 'AODFULL',
292 help=
'list of EDM objects to be written to AOD')
294 flags.addFlag(
'Trigger.ESDEDMSet',
'ESD',
295 help=
'list of EDM objects to be written to ESD')
297 flags.addFlag(
'Trigger.ExtraEDMList', [],
298 help=
'list of extra EDM objects to be stored (for testing)')
300 def __availableRecoMetadata(flags):
301 systems = [
'L1',
'HLT']
303 if not any(flags.Input.Files)
and flags.Common.isOnline:
306 elif flags.Trigger.doHLT:
307 raise RuntimeError(
'Trigger.availableRecoMetadata is ill-defined if Trigger.doHLT==True')
309 elif flags.Input.Format
is Format.BS:
310 from TrigConfigSvc.TriggerConfigAccess
import getKeysFromCool
312 return ( ([
'L1']
if 'L1PSK' in keys
else []) +
313 ([
'HLT']
if 'HLTPSK' in keys
else []) )
316 return systems
if flags.Trigger.triggerConfig ==
'INFILE' else []
318 flags.addFlag(
'Trigger.availableRecoMetadata',
lambda flags: __availableRecoMetadata(flags),
319 help=
"list of enabled trigger sub-systems in reconstruction: ['L1,'HLT']")
321 flags.addFlag(
"Trigger.decodeHLT",
True,
322 help=
'enable decoding of HLT trigger decision/result in reconstruction')
324 flags.addFlag(
"Trigger.DecisionMakerValidation.Execute",
True,
325 help=
'run trigger decision validation algorithm in reconstruction')
327 flags.addFlag(
"Trigger.DecisionMakerValidation.ErrorMode",
True,
328 help=
'emit an ERROR (or WARNING) in case of trigger decision validation failure')
331 def __triggerConfig(flags):
332 _log = logging.getLogger(
'TriggerConfigFlags.triggerConfig')
333 if flags.Common.isOnline
and not flags.Trigger.doHLT:
335 _log.debug(
"Autoconfigured default value for running reconstruction inside Point 1: 'DB'")
337 elif flags.Input.Format
is Format.BS:
338 from glob
import glob
339 hasLocal =
True if (glob(
"HLTMenu*.json")
and glob(
"L1Menu*.json")
and glob(
"HLTPrescales*.json")
and glob(
"L1Prescales*.json")
and glob(
"HLTMonitoring*.json")
and glob(
"BunchGroupSet*.json"))
else False
340 if flags.Trigger.doHLT:
342 _log.debug(
"Autoconfigured default value for running the trigger on data: 'FILE'")
348 _log.debug(
"Autoconfigured default value for running reconstruction with a pre-supplied set of trigger configuration JSON files: 'FILE'")
350 elif flags.GeoModel.Run >= LHCPeriod.Run3:
352 _log.debug(
"Autoconfigured default value for reconstruction of Run 3 data: 'DB'")
356 _log.debug(
"Autoconfigured default value for reconstruction of Run 1 or Run 2 data: 'FILE'")
359 from AthenaConfiguration.AutoConfigFlags
import GetFileMD
363 hasTrigMeta = (
"metadata_items" in md
and any((
'TriggerMenu' in key)
for key
in md[
"metadata_items"].
keys()))
366 _log.debug(
"Autoconfigured default value to read trigger configuration data from the input file: 'INFILE'")
370 _log.debug(
"Autoconfigured default value to read trigger configuration data from disk for MC production: 'FILE'")
373 flags.addFlag(
'Trigger.triggerConfig',
lambda flags: __triggerConfig(flags),
374 help=
'Trigger configuration source (https://twiki.cern.ch/twiki/bin/view/Atlas/TriggerConfigFlag)')
376 flags.addFlag(
'Trigger.triggerMenuSetup',
lambda flags:
'MC_pp_run3_v1_BulkMCProd_prescale' if flags.GeoModel.Run
is LHCPeriod.Run3
else 'MC_pp_run4_v1_BulkMCProd_prescale',
377 help=
'name of the trigger menu')
379 flags.addFlag(
'Trigger.generateMenuDiagnostics',
False,
380 help=
'print debug output from control flow generation')
382 flags.addFlag(
'Trigger.fastMenuGeneration',
True,
383 help=
'avoid re-merging CAs that were already seen once')
385 flags.addFlag(
'Trigger.disableCPS',
False,
386 help=
'disable coherent prescale sets (for testing with small menu)')
388 flags.addFlag(
'Trigger.enableEndOfEventProcessing',
True,
389 help=
'enable execution of extra algorithms for accepted events')
391 flags.addFlag(
'Trigger.doCFEmulationTest',
False,
392 help=
'enable run Control Flow Emulation test')
397 if doTriggerRecoFlags:
401 flags.Trigger.disableCPS =
lambda prevFlags: prevFlags.Trigger.selectChains
or len(prevFlags.Trigger.enabledSignatures)==1
407 flags = AthConfigFlags()
410 def _allSignatures (prevFlags):
411 from TriggerMenuMT.HLT.Config.GenerateMenuMT
import allSignatures
415 flags.addFlag(
"Trigger.enabledSignatures", _allSignatures, help=
'list of enabled trigger signatures')
416 flags.addFlag(
"Trigger.disabledSignatures", [], help=
'list of disabled trigger signatures')
417 flags.addFlag(
"Trigger.selectChains", [], help=
'list of enabled chains')
418 flags.addFlag(
"Trigger.disableChains", [], help=
'list of disabled chains')
421 from TriggerMenuMT.HLT.Egamma.TrigEgammaConfigFlags
import createTrigEgammaConfigFlags
423 flags.addFlagsCategory(
'Trigger.egamma', __egamma )
427 from MuonConfig.MuonConfigFlags
import createMuonConfigFlags
429 muonflags.Muon.useTGCPriorNextBC=
True
430 muonflags.Muon.MuonTrigger=
True
431 muonflags.Muon.SAMuonTrigger=
True
432 muonflags.Muon.runCommissioningChain=
False
433 muonflags.Muon.enableErrorTuning=
False
435 flags.addFlagsCategory(
'Trigger.Offline.SA', __muonSA, prefix=
True)
438 from MuonConfig.MuonConfigFlags
import createMuonConfigFlags
440 muonflags.Muon.useTGCPriorNextBC=
True
441 muonflags.Muon.MuonTrigger=
True
442 muonflags.Muon.enableErrorTuning=
False
444 flags.addFlagsCategory(
'Trigger.Offline', __muon, prefix=
True)
446 def __muonCombined():
447 from MuonCombinedConfig.MuonCombinedConfigFlags
import createMuonCombinedConfigFlags
449 muonflags.MuonCombined.doCaloTrkMuId =
False
450 muonflags.MuonCombined.doSiAssocForwardMuons =
False
451 muonflags.MuonCombined.doStatisticalCombination =
False
452 muonflags.MuonCombined.doMuGirl =
False
453 muonflags.MuonCombined.doCombinedFit =
True
455 flags.addFlagsCategory(
'Trigger.Offline.Combined', __muonCombined, prefix=
True)
458 from TrigTauRec.TrigTauConfigFlags
import createTrigTauConfigFlags
460 flags.addFlagsCategory(
'Trigger.Offline.Tau', __tau )
463 from TrigInDetConfig.TrigTrackingPassFlags
import createTrigTrackingPassFlags
465 flags.addFlagsCategory(
'Trigger.InDetTracking', __idTrk )
468 from TrigInDetConfig.TrigTrackingPassFlags
import createTrigTrackingPassFlags
470 flags.addFlagsCategory(
'Trigger.ITkTracking', __idITk )
473 from TrigInDetConfig.TrigTrackingPassFlags
import createTrigTrackingPassFlags
475 flags.addFlagsCategory(
'Trigger.ActsTracking', _idActs )
477 flags.addFlag(
'Trigger.useActsTracking',
False, help=
'use ACTS for ITk tracking')
480 from TrigCaloRec.TrigCaloConfigFlags
import createTrigCaloConfigFlags
482 flags.addFlagsCategory(
'Trigger.Calo', __trigCalo )
485 from TrigT1MuctpiPhase1.TrigMUCTPIConfigFlags
import createTrigMUCTPIConfigFlags
487 flags.addFlagsCategory(
'Trigger.MUCTPI', __muctpiFlags )
489 def __fpgatracksimFlags():
490 """Additional function delays import"""
491 from FPGATrackSimConfTools.FPGATrackSimConfigFlags
import createFPGATrackSimConfigFlags
493 flags.addFlagsCategory(
"Trigger.FPGATrackSim", __fpgatracksimFlags, prefix=
True )
503 flags.addFlag(
"Trigger.FSHad.PFOMuonRemoval",
"Calo",
504 help=
'PFO-muon removal option: None, Calo, Iso)')
506 flags.addFlag(
"Trigger.FSHad.PFOMuonRemovalMinPt", 10 * GeV,
507 help=
'minimum pT threshold to use for the muon removal')
509 flags.addFlag(
'Trigger.Jet.doJetSuperPrecisionTracking',
False,
510 help=
'enable precision tracking in jet super-ROI before fast b-tagging (EMTopo jets)')
512 flags.addFlag(
"Trigger.Jet.fastbtagPFlow",
True,
513 help=
'enable fast b-tagging for all fully calibrated HLT PFlow jets')
515 flags.addFlag(
"Trigger.Jet.fastbtagVertex",
True,
516 help=
'enable the addition of the super ROI PV to the b-tagging')
518 flags.addFlag(
"Trigger.Jet.doVRJets",
False,
519 help=
'enable the addition of the VR track jet reconstruction sequence')
521 flags.addFlag(
"Trigger.FSTrk.doJetRestrictedVertexSort",
False,
522 help=
'use tracks in jets for computing sumpt2 for vertex sorting')
527 flags.addFlag(
"Trigger.Jet.pflowCalibKey",
lambda prevFlags:
"TrigHIUPC" if 'HI' in prevFlags.Trigger.triggerMenuSetup
else "TrigR22Prerec",
528 help=
'calibration config file for HLT small-R jets')
530 flags.addFlag(
"Trigger.Jet.emtopoCalibKey",
"TrigLS2",
531 help=
'calibration config file for HLT small-R jets')
533 flags.addFlag(
"Trigger.Jet.pflowLJCalibKey",
"TrigSoftDrop",
534 help=
'calibration config file for HLT large-R PFlow jets')
536 flags.addFlag(
"Trigger.Jet.PFlowTolerance", 1e-2,
537 help=
'tolerance in STEP Propagator')
539 flags.addFlag(
"Trigger.Jet.TrackVtxAssocWP",
"Custom",
540 help=
'working point for the TVA algorithm')
542 flags.addFlag(
"Trigger.Jet.LowPtFilter",
lambda prevFlags:
'HI' in prevFlags.Trigger.triggerMenuSetup,
543 help=
'apply low pT filter on antiKt4 jets (used for HI UPC jet reco)')
548 if __name__ ==
"__main__":
550 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
551 from AthenaConfiguration.Enums
import Project
556 @unittest.skipIf(flags.Common.Project
is Project.AthAnalysis,
"project is AthAnalysis")
558 """Check if offline reco flags can be added to trigger"""
560 flags.Trigger.Offline.Tau.doTauRec=
False
561 flags.Tau.doTauRec=
True
562 self.assertEqual(flags.Trigger.Offline.Tau.doTauRec,
False,
"dependent flag setting does not work")
563 self.assertEqual(flags.Tau.doTauRec,
True,
"dependent flag setting does not work")
565 newflags = flags.cloneAndReplace(
'Tau',
'Trigger.Offline.Tau')
567 self.assertEqual(flags.Tau.doTauRec,
True,
"dependent flag setting does not work")
568 self.assertEqual(newflags.Tau.doTauRec,
False,
"dependent flag setting does not work")
571 """Force load all dynamic flags"""
573 flags.loadAllDynamicFlags()