diff --git a/Reconstruction/RecExample/RecExCond/share/RecExCommon_flags.py b/Reconstruction/RecExample/RecExCond/share/RecExCommon_flags.py
index ce39b071cf73c03fa2ac9a8431cde4bd31c5a45b..ce6e4f47984bd84724813f558831cd42b936688e 100755
--- a/Reconstruction/RecExample/RecExCond/share/RecExCommon_flags.py
+++ b/Reconstruction/RecExample/RecExCond/share/RecExCommon_flags.py
@@ -236,12 +236,6 @@ if len(rec.AutoConfiguration())>0:
 #special commisioning job options
 if rec.Commissioning():
    include("RecExCond/MinimalCommissioningSetup.py")
-   # setup trigger reading from COOL
-   if rec.doTrigger():
-      from TriggerJobOpts.TriggerFlags import TriggerFlags as tf
-      tf.configForStartup="HLTonline"
-      tf.configForStartup.lock()
-
    rec.ScopingLevel.set_Value_and_Lock(1)
 
 if rec.triggerStream().startswith('express'):
diff --git a/Trigger/TriggerCommon/TriggerJobOpts/python/HLTTriggerResultGetter.py b/Trigger/TriggerCommon/TriggerJobOpts/python/HLTTriggerResultGetter.py
index 73c731f3a082e001f16a7b62e91223eb01211045..2d435e81b5bb6c14b2d688c0ee9e79d6c068b271 100644
--- a/Trigger/TriggerCommon/TriggerJobOpts/python/HLTTriggerResultGetter.py
+++ b/Trigger/TriggerCommon/TriggerJobOpts/python/HLTTriggerResultGetter.py
@@ -50,12 +50,6 @@ class ByteStreamUnpackGetter(Configured):
     def configure(self):
         log = logging.getLogger("ByteStreamUnpackGetter")
 
-        log.info( "TriggerFlags.dataTakingConditions: %s", TriggerFlags.dataTakingConditions() )
-        hasHLT = TriggerFlags.dataTakingConditions()=='HltOnly' or TriggerFlags.dataTakingConditions()=='FullTrigger'
-        if not hasHLT:
-            log.info("Will not configure HLT BS unpacking because dataTakingConditions flag indicates HLT was disabled")
-            return True
-
         # Define the decoding sequence
         from TrigHLTResultByteStream.TrigHLTResultByteStreamConf import HLTResultMTByteStreamDecoderAlg
         from TrigOutputHandling.TrigOutputHandlingConf import TriggerEDMDeserialiserAlg
@@ -82,10 +76,6 @@ class ByteStreamUnpackGetterRun1or2(Configured):
         from AthenaCommon.AlgSequence import AlgSequence 
         topSequence = AlgSequence()
         
-        log.info( "TriggerFlags.dataTakingConditions: %s", TriggerFlags.dataTakingConditions() )
-        # in MC this is always FullTrigger
-        hasHLT = TriggerFlags.dataTakingConditions() in ('HltOnly', 'FullTrigger')
-        
         # BS unpacking
         from TrigBSExtraction.TrigBSExtractionConf import TrigBSExtraction
         extr = TrigBSExtraction()
@@ -95,7 +85,7 @@ class ByteStreamUnpackGetterRun1or2(Configured):
         extr.ExtraInputs += [("xAOD::TrigNavigation", "StoreGateSvc+TrigNavigation")]
         extr.ExtraOutputs += [("TrigBSExtractionOutput", "StoreGateSvc+TrigBSExtractionOutput")]
         
-        if hasHLT:
+        if 'HLT' in ConfigFlags.Trigger.availableRecoMetadata:
             from TrigNavigation.TrigNavigationConfig import HLTNavigationOffline
             extr.NavigationForL2 = HLTNavigationOffline("NavigationForL2")
             # Ignore the L2 TrigPassBits to avoid clash with EF (ATR-23411)
@@ -132,6 +122,7 @@ class ByteStreamUnpackGetterRun1or2(Configured):
                     extr.DSResultKeys += [ds_tag]
 
         else:
+            log.info("Will not schedule HLT bytestream extraction")
             # if data doesn't have HLT info set HLTResult keys as empty strings to avoid warnings
             # but the extraction algorithm must run
             extr.L2ResultKey = ""
@@ -210,14 +201,14 @@ class TrigDecisionGetterRun1or2(Configured):
 #           WritexAODTrigDecision() is called within WriteTrigDecision()
 
             # inform TD maker that some parts may be missing
-            if TriggerFlags.dataTakingConditions()=='Lvl1Only':
+            if 'HLT' not in ConfigFlags.Trigger.availableRecoMetadata:
                 topSequence.TrigDecMaker.doL2=False
                 topSequence.TrigDecMaker.doEF=False
                 topSequence.TrigDecMaker.doHLT=False
                 topSequence.TrigNavigationCnvAlg.doL2 = False
                 topSequence.TrigNavigationCnvAlg.doEF = False
                 topSequence.TrigNavigationCnvAlg.doHLT = False
-            elif TriggerFlags.dataTakingConditions()=='HltOnly':
+            if 'L1' not in ConfigFlags.Trigger.availableRecoMetadata:
                 from AthenaCommon.AlgSequence import AlgSequence
                 topSequence.TrigDecMaker.doL1=False
 
diff --git a/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfigFlags.py b/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfigFlags.py
index ced5770c01f5c5a916d1f82d9292dc2286a47c02..f81713b7403dca751774314f7831978afbc9236d 100644
--- a/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfigFlags.py
+++ b/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfigFlags.py
@@ -1,5 +1,7 @@
 # Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
 
+import os
+
 from AthenaConfiguration.AthConfigFlags import AthConfigFlags
 from AthenaCommon.SystemOfUnits import GeV
 from AthenaCommon.Logging import logging
@@ -67,7 +69,7 @@ def createTriggerFlags():
         if flags.Input.Format=="BS":
             _log.debug("Input format is ByteStream")
 
-            if not flags.Input.Files and flags.Common.isOnline():
+            if not any(flags.Input.Files) and flags.Common.isOnline:
                 _log.info("Online reconstruction, no input file. Return default EDMVersion=%d", default_version)
                 return default_version
 
@@ -112,13 +114,13 @@ def createTriggerFlags():
 
     # True if we have at least one input file, it is a POOL file, it has a metadata store, and the store has xAOD trigger configuration data
     # in either the run-2 or run-3 formats.
-    def _trigConfMeta(flags):
+    def __trigConfMeta(flags):
         from AthenaConfiguration.AutoConfigFlags import GetFileMD
         md = GetFileMD(flags.Input.Files) if any(flags.Input.Files) else {}
         return ("metadata_items" in md and any(('TriggerMenu' in key) for key in md["metadata_items"].keys()))
 
-    # Flag to sense if trigger confioguration POOL metadata is available on the job's input
-    flags.addFlag('Trigger.InputContainsConfigMetadata', lambda prevFlags: _trigConfMeta(prevFlags))
+    # Flag to sense if trigger configuration POOL metadata is available on the job's input
+    flags.addFlag('Trigger.InputContainsConfigMetadata', lambda prevFlags: __trigConfMeta(prevFlags))
 
     # only enable services for analysis and BS -> ESD processing (we need better name)
     flags.addFlag('Trigger.doTriggerConfigOnly', False)
@@ -143,7 +145,6 @@ def createTriggerFlags():
     flags.addFlag('Trigger.L1.doCTP', True)
 
     # partition name used to determine online vs offline BS result writing
-    import os
     flags.addFlag('Trigger.Online.partitionName', os.getenv('TDAQ_PARTITION') or '')
 
     # shortcut to check if job is running in a partition (i.e. partition name is not empty)
@@ -170,13 +171,26 @@ def createTriggerFlags():
     # geometry version used by HLT online
     flags.addFlag('Trigger.OnlineGeoTag', 'ATLAS-R2-2016-01-00-01')
 
-    # comissionig options
-    # one of:  'HltOnly',
-    #    'Lvl1Only',
-    #    'FullTrigger',
-    #    'NoTrigger'
-    flags.addFlag('Trigger.dataTakingConditions', 'FullTrigger')
-                
+    def __availableRecoMetadata(flags):
+        systems = ['L1','HLT']
+        # Online reco without input files
+        if not any(flags.Input.Files) and flags.Common.isOnline:
+            return systems
+        # Makes no sense when running HLT
+        elif flags.Trigger.doHLT:
+            raise RuntimeError('Trigger.availableRecoMetadata is ill-defined if Trigger.doHLT==True')
+        # RAW: check if keys are in COOL
+        elif flags.Input.Format=="BS":
+            from TrigConfigSvc.TriggerConfigAccess import getKeysFromCool
+            keys = getKeysFromCool(flags.Input.RunNumber[0])  # currently only checking first file
+            return ( (['L1'] if 'L1PSK' in keys else []) +
+                     (['HLT'] if 'HLTPSK' in keys else []) )
+        # POOL: metadata (do not distinguish L1/HLT yet, see discussions on GitLab commit f83ae2bc)
+        else:
+            return systems if flags.Trigger.InputContainsConfigMetadata else []
+
+    # list of enabled trigger sub-systems in reconstruction: ['L1,'HLT']
+    flags.addFlag('Trigger.availableRecoMetadata', lambda flags: __availableRecoMetadata(flags))
 
     # use or not frontier proxies
     flags.addFlag('Trigger.triggerUseFrontier', False)
@@ -227,7 +241,6 @@ def createTriggerFlags():
         muonflags = createMuonConfigFlags()
         muonflags.Muon.useTGCPriorNextBC=True
         muonflags.Muon.MuonTrigger=True
-
         return muonflags 
 
     def __muonCombined():
@@ -270,10 +283,6 @@ def createTriggerFlags():
     flags.addFlag("Trigger.Test.doDummyChainConfig", False)
 
     return flags
-    # for reference, this flags are skipped as never used or never set in fact, or set identical to de default or used in a very old JO:
-    # configForStartup
-    # the flags related to trigger DB are redundant of triggerConfig - need to decide if they are needed in this form
-    # also not defined the Prescale sets yet
 
     
 if __name__ == "__main__":
diff --git a/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfigGetter.py b/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfigGetter.py
index 7b21fb0c667f474aecaf375bc29d63263111c711..d26696a398085c05bda34a216edee2c937d5490f 100644
--- a/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfigGetter.py
+++ b/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfigGetter.py
@@ -8,9 +8,9 @@ from RecExConfig.Configured import Configured
 
 from AthenaCommon.GlobalFlags import globalflags
 from AthenaCommon.Logging import logging
-from AthenaCommon.Resilience import protectedInclude
 from AthenaCommon.AppMgr import ServiceMgr as svcMgr
 
+log = logging.getLogger( "TriggerConfigGetter.py" )
 
 class TriggerConfigGetter(Configured):
     """ This class brings to the job Trigger Configuration.
@@ -19,7 +19,7 @@ class TriggerConfigGetter(Configured):
     _environment=""
 
     def __init__(self, environment=""):
-        log = logging.getLogger( "TriggerConfigGetter.py" )
+
         if environment:
             log.info('Initialize (environment "%s")', environment)
         else:
@@ -28,37 +28,6 @@ class TriggerConfigGetter(Configured):
         super(TriggerConfigGetter,self).__init__() # calls configure
 
 
-    def checkInput(self):
-
-        log = logging.getLogger( "TriggerConfigGetter.py" )
-        if "ReadPool" in self._environment or "WritePool" in self._environment:
-            log.info("Flags are ignored, since 'ReadPool' or  'WritePool' is specified")
-            return True
-
-        if rec.readESD() or rec.readAOD(): # and globalflags.DataSource()=='data':  # need this for MC as well
-            protectedInclude("TriggerJobOpts/TriggerConfigCheckMetadata.py")
-
-        if rec.readRDO() and globalflags.InputFormat()=='bytestream' and globalflags.DataSource()=='data' and TriggerFlags.configForStartup()!='HLToffline':
-            protectedInclude("TriggerJobOpts/TriggerConfigCheckHLTpsk.py")
-
-        log.info("The following flags are set:")
-        log.info("globalflags.InputFormat             : %s", globalflags.InputFormat())
-        log.info("rec.read.*                          : RDO: %s, ESD: %s, AOD: %s, TAG: %s", rec.readRDO(), rec.readESD(), rec.readAOD(), rec.readTAG())
-        log.info("rec.doWrite.*                       : ESD: %s, AOD: %s, TAG: %s", rec.doWriteESD(), rec.doWriteAOD(), rec.doWriteTAG())
-        log.info("globalflags.DataSource              : %s", globalflags.DataSource())
-        log.info("TriggerFlags.configForStartup       : %s", TriggerFlags.configForStartup())
-        log.info("TriggerFlags.dataTakingConditions   : %s", TriggerFlags.dataTakingConditions())
-
-        count = len([1 for x in [rec.readRDO(),rec.readESD(),rec.readAOD()] if x ]) #readTAG is only set with another input
-        if count == 0:
-            log.warning("Don't know what the input format is.")
-            return False
-        if count >= 2:
-            log.warning("More than one input format specified, please set only the appropriate one.")
-            return False
-        return True
-
-
     def setConfigSvcConnParams(self,connectionParameters):
         sl = []
         if hasattr(svcMgr,'LVL1ConfigSvc'):
@@ -100,33 +69,28 @@ class TriggerConfigGetter(Configured):
 
 
     def configure(self):
-        log = logging.getLogger( "TriggerConfigGetter.py" )
-        from PyUtils.MetaReaderPeekerFull import metadata
-
-        # first check the input
-        if "HIT2RDO" in self._environment:
-            log.info("For simulation jobs the following flags are set:")
-            log.info("globalflags.InputFormat             : %s", globalflags.InputFormat())
-            log.info("globalflags.DataSource              : %s", globalflags.DataSource())
-            log.info("TriggerFlags.configForStartup       : %s", TriggerFlags.configForStartup())
-            log.info("TriggerFlags.dataTakingConditions   : %s", TriggerFlags.dataTakingConditions())
-        else:
-            if not self.checkInput():
-                log.error("Could not determine job input. Can't setup trigger configuration and will return!")
-                return
-            # self.checkInput() may call TriggerConfigCheckMetadata, this can in turn set "rec.doTrigger.set_Value_and_Lock(False)"
-            # but TriggerConfigGetter might have only been called in the first place due to this flag having been true, 
-            # so re-check that we're still OK to be executing here
+
+        log.info("The following flags are set:")
+        log.info("globalflags.InputFormat             : %s", globalflags.InputFormat())
+        log.info("globalflags.DataSource              : %s", globalflags.DataSource())
+        log.info("rec.read.*                          : RDO: %s, ESD: %s, AOD: %s, TAG: %s", rec.readRDO(), rec.readESD(), rec.readAOD(), rec.readTAG())
+        log.info("rec.doWrite.*                       : ESD: %s, AOD: %s, TAG: %s", rec.doWriteESD(), rec.doWriteAOD(), rec.doWriteTAG())
+
+        # first check the input (TODO: review these environments)
+        if self._environment not in ["HIT2RDO", "ReadPool", "WritePool"]:
+
+            from AthenaConfiguration.AllConfigFlags import ConfigFlags
+            if not ConfigFlags.Trigger.availableRecoMetadata:
+                log.error("At least one run does not contain any trigger configuration data. "
+                          "Turning off trigger [rec.doTrigger=False]")
+                rec.doTrigger = False
+
+            # TODO: Review doTriggerConfigOnly
             if not (rec.doTrigger() or TriggerFlags.doTriggerConfigOnly()):
-                log.info("Aborting TriggerConfigGetter as the trigger flags were switched to false in checkInput()")
+                log.info("Aborting TriggerConfigGetter as the trigger flags were switched to false")
                 return True
 
         self.readTriggerDB  = TriggerFlags.readMenuFromTriggerDb() and self.readRDO
-        self.hasxAODMeta    = (
-            ("metadata_items" in metadata)
-            and 
-            any((('TriggerMenu' or 'MenuJSON') in key) for key in metadata["metadata_items"].keys())
-        )
 
         log.info('Creating the Trigger Configuration Services')
         from AthenaConfiguration.AllConfigFlags import ConfigFlags
@@ -134,7 +98,7 @@ class TriggerConfigGetter(Configured):
 
         log.info("ConfigFlags.Trigger.EDMVersion: %i", ConfigFlags.Trigger.EDMVersion)
         if ConfigFlags.Trigger.EDMVersion >= 3:
-            if self.hasxAODMeta:
+            if ConfigFlags.Trigger.InputContainsConfigMetadata:
                 if not hasattr(svcMgr, 'xAODConfigSvc'):
                     from TrigConfxAOD.TrigConfxAODConf import TrigConf__xAODConfigSvc
                     svcMgr += TrigConf__xAODConfigSvc('xAODConfigSvc')
@@ -151,7 +115,7 @@ class TriggerConfigGetter(Configured):
 
         log.info("TriggerFlags.triggerCoolDbConnection is '%s' [default: '']", TriggerFlags.triggerCoolDbConnection())
 
-        if not self.hasxAODMeta:
+        if not ConfigFlags.Trigger.InputContainsConfigMetadata:
             self.setupxAODWriting()
         else:
             log.info("Input file already has xAOD trigger metadata. Will not re-create it.")
@@ -166,8 +130,6 @@ class TriggerConfigGetter(Configured):
         metadata.
         """
 
-        # Get a logger:
-        log = logging.getLogger( "TriggerConfigGetter.py" )
         log.info( "ESD/AOD writing enabled, will set up xAOD trigger "
                   "configuration metadata writing" )
 
@@ -216,17 +178,3 @@ class TriggerConfigGetter(Configured):
             acc.merge( HLTPrescaleCondAlgCfg( ConfigFlags ) )
         appendCAtoAthena( acc )
 
-        # Set up the metadata for the output ESD and AOD:
-        from RecExConfig.ObjKeyStore import objKeyStore
-        metadataItems = [ "xAOD::TriggerMenuJsonContainer#MenuJSON_HLT",
-                          "xAOD::TriggerMenuJsonAuxContainer#MenuJSON_HLTAux.",
-                          "xAOD::TriggerMenuJsonContainer#MenuJSON_L1",
-                          "xAOD::TriggerMenuJsonAuxContainer#MenuJSON_L1Aux.",
-                          "xAOD::TriggerMenuJsonContainer#MenuJSON_HLTPS",
-                          "xAOD::TriggerMenuJsonAuxContainer#MenuJSON_HLTPSAux.",
-                          "xAOD::TriggerMenuJsonContainer#MenuJSON_L1PS",
-                          "xAOD::TriggerMenuJsonAuxContainer#MenuJSON_L1PSAux.",
-                          # "xAOD::TriggerMenuJsonContainer#MenuJSON_BG", // TODO
-                          # "xAOD::TriggerMenuJsonAuxContainer#MenuJSON_BGAux.", // TODO
-                        ]
-        objKeyStore.addManyTypesMetaData( metadataItems )
diff --git a/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerFlags.py b/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerFlags.py
index d76aca8cab140a747b6e6b37ad4c03e8f7589d13..f1aedfd3d129b24cdf70442315a6eee09c629866 100644
--- a/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerFlags.py
+++ b/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerFlags.py
@@ -64,31 +64,13 @@ class configForStartup(JobProperty):
     """ A temporary flag to determine the actions to be taken for the different cases of HLT running in the startup phase"""
     statusOn=True
     allowedType=['string']
-    StoredValue = 'HLTonline'
-    
-    allowedValues = [
-        'HLTonline',
-        'HLToffline'
-        ]
+    StoredValue = None
+    def _do_action(self):
+        log.warning("TriggerFlags.configForStartup is deprecated. Remove it from your configuration.")
 
 _flags.append(configForStartup)
 
 
-class dataTakingConditions(JobProperty):
-    """ A flag that describes the conditions of the Trigger at data taking, and determines which part of it will be processed in reconstruction."""
-    statusOn=True
-    allowedType=['string']
-    StoredValue = 'FullTrigger'
-    
-    allowedValues = [
-        'HltOnly',
-        'Lvl1Only',
-        'FullTrigger',
-        'NoTrigger'
-        ]
-
-_flags.append(dataTakingConditions)
-
 class triggerUseFrontier(JobProperty):
     """Flag determines if frontier should be used to connect to the oracle database, current default is False"""
     statusOn=True
diff --git a/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerRecoGetter.py b/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerRecoGetter.py
index 103c3bc46da85df21451df7c45c5e8dd3796a959..4d97a03436f50522841571556aa7c7cda77b5d60 100644
--- a/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerRecoGetter.py
+++ b/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerRecoGetter.py
@@ -1,18 +1,9 @@
 # Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
 
-from TriggerJobOpts.TriggerFlags import TriggerFlags
+from RecExConfig.Configured import Configured
 from AthenaCommon.Logging import logging
-
 log = logging.getLogger( "TriggerRecoGetter.py" )
 
-from RecExConfig.Configured import Configured
-
-def withLVL1():
-    return TriggerFlags.dataTakingConditions()=='Lvl1Only' or TriggerFlags.dataTakingConditions()=='FullTrigger'
-
-def withHLT():
-    return TriggerFlags.dataTakingConditions()=='HltOnly' or TriggerFlags.dataTakingConditions()=='FullTrigger'
-
 class TriggerRecoGetter(Configured):
 
     _configured=True
@@ -39,12 +30,12 @@ class TriggerRecoGetter(Configured):
         from AthenaConfiguration.ComponentAccumulator import appendCAtoAthena
         appendCAtoAthena(tdtAcc)
 
-        if withLVL1():
+        if 'L1' in ConfigFlags.Trigger.availableRecoMetadata:
             log.info("configuring lvl1")
             from TriggerJobOpts.Lvl1ResultBuilderGetter import Lvl1ResultBuilderGetter
             lvl1 = Lvl1ResultBuilderGetter()  # noqa: F841
 
-        if withHLT():
+        if 'HLT' in ConfigFlags.Trigger.availableRecoMetadata:
             log.info("configuring hlt")
             from TriggerJobOpts.HLTTriggerResultGetter import HLTTriggerResultGetter
             hlt = HLTTriggerResultGetter()   # noqa: F841
diff --git a/Trigger/TriggerCommon/TriggerJobOpts/share/TriggerConfigCheckHLTpsk.py b/Trigger/TriggerCommon/TriggerJobOpts/share/TriggerConfigCheckHLTpsk.py
deleted file mode 100644
index 467d36e391b9f2c1f5acdf5c2f0b65c5ce318af7..0000000000000000000000000000000000000000
--- a/Trigger/TriggerCommon/TriggerJobOpts/share/TriggerConfigCheckHLTpsk.py
+++ /dev/null
@@ -1,103 +0,0 @@
-# Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
-from AthenaCommon.Include import include, printfunc
-include.block("TriggerJobOpts/TriggerConfigCheckHLTpsk.py")
-
-from AthenaCommon.Logging import logging
-mlog = logging.getLogger( 'TriggerConfigCheckHLTpsk' ) ## get the logger
-
-runNumbers=[]
-from AthenaCommon.AthenaCommonFlags import athenaCommonFlags
-if len(athenaCommonFlags.BSRDOInput()) > 0 :
-    from PyUtils.MetaReaderPeeker import metadata
-    if 'runNumbers' in metadata: # online monitoring does not provide a run_number in the file metadata (hence the rest of this program will be skipped)
-        runNumbers = metadata['runNumbers']
-
-if len(runNumbers)>0:
-
-    #from RecExConfig.RecAlgsFlags import recAlgs
-    #from RecExConfig.RecFlags import rec
-    from TriggerJobOpts.TriggerFlags import TriggerFlags
-
-    ### Loop over the input files and find if a problematic one is there.
-    ### If so, turn off the trigger.
-    from PyCool import cool
-    from CoolConvUtilities.AtlCoolLib import indirectOpen
-
-    # get connection to COOL and find the HLT ps key
-
-    from IOVDbSvc.CondDB import conddb
-    coolDbConn = indirectOpen("COOLONL_TRIGGER/%s" % conddb.dbdata,oracle=True)
-    hltfolder=coolDbConn.getFolder('/TRIGGER/HLT/PrescaleKey')
-    lvl1folder=coolDbConn.getFolder('/TRIGGER/LVL1/Lvl1ConfigKey')
-    chansel = cool.ChannelSelection(0,0,cool.ChannelSelection.sinceBeforeChannel)
-
-    needToTurnOffHLT = False
-    needToTurnOffLVL1 = False
-    for RunNumber in runNumbers:
-        # translate to begin and end IOV
-        iovmin=(RunNumber << 32)+0
-        iovmax=((RunNumber+1) << 32)-1
-        # read info from COOL
-        hltobjs = hltfolder.browseObjects( iovmin, iovmax, chansel)
-        allHltpsks = []
-        while hltobjs.goToNext():
-            obj=hltobjs.currentRef()
-            ch = obj.channelId()
-            hltpsk = int(obj.payloadValue("HltPrescaleKey")) # By default is a string
-            allHltpsks += [hltpsk]
-        mlog.info("HLT prescale keys for run %d are %r ", RunNumber, allHltpsks)
-        if len(allHltpsks) == 0:
-            needToTurnOffHLT = True
-
-        # same thing for lvl1
-        allLvl1psks = []
-        lvl1objs = lvl1folder.browseObjects( iovmin, iovmax, chansel)
-        while lvl1objs.goToNext():
-            obj=lvl1objs.currentRef()
-            ch = obj.channelId()
-            lvl1psk = int(obj.payloadValue("Lvl1PrescaleConfigurationKey"))
-            allLvl1psks += [lvl1psk]
-        mlog.info("LVL1 prescale keys for run %d are %r ", RunNumber, allLvl1psks)
-        if len(allLvl1psks) == 0:
-            needToTurnOffLVL1 = True
-          
-    if needToTurnOffHLT and needToTurnOffLVL1:
-        mlog.error("At least one run (%r) does not contain any trigger information in cool. "
-                   "Turning off trigger [rec.doTrigger=False, and TriggerFlags.dataTakingConditions='NoTrigger']",
-                   runNumbers)
-        TriggerFlags.dataTakingConditions='NoTrigger'
-        from RecExConfig.RecFlags import rec
-        rec.doTrigger=False
-        if 'DQMonFlags' not in dir():
-            printfunc ("TriggerJobOpts/TriggerConfigCheckHLTpsk.py: DQMonFlags not yet imported - I import them now")
-            from AthenaMonitoring.DQMonFlags import DQMonFlags
-        DQMonFlags.doHLTMon.set_Value_and_Lock(False)
-        DQMonFlags.useTrigger.set_Value_and_Lock(False)
-        DQMonFlags.doLVL1CaloMon.set_Value_and_Lock(False)
-        DQMonFlags.doCTPMon.set_Value_and_Lock(False)
-
-    elif needToTurnOffHLT:
-        mlog.warning("ERROR At least one run (%r) does not contain HLT information", runNumbers)
-        mlog.warning("turning off hlt [rec.doTrigger=True and TriggerFlags.dataTakingConditions='Lvl1Only'].")
-        TriggerFlags.dataTakingConditions='Lvl1Only'
-        if 'DQMonFlags' not in dir():
-            printfunc ("TriggerJobOpts/TriggerConfigCheckHLTpsk.py: DQMonFlags not yet imported - I import them now")
-            from AthenaMonitoring.DQMonFlags import DQMonFlags
-        DQMonFlags.doHLTMon.set_Value_and_Lock(False)
-        DQMonFlags.useTrigger.set_Value_and_Lock(False)
-
-    elif needToTurnOffLVL1:
-        mlog.warning("ERROR At least one run (%r) does not contain LVL1 information", runNumbers)
-        mlog.warning("turning off lvl1 [rec.doTrigger=True and TriggerFlags.dataTakingConditions='HltOnly'].")
-        TriggerFlags.dataTakingConditions='HltOnly'
-        if 'DQMonFlags' not in dir():
-            printfunc ("TriggerJobOpts/TriggerConfigCheckHLTpsk.py: DQMonFlags not yet imported - I import them now")
-            from AthenaMonitoring.DQMonFlags import DQMonFlags
-#        DQMonFlags.doHLTMon.set_Value_and_Lock(False)
-        DQMonFlags.useTrigger.set_Value_and_Lock(False)
-        DQMonFlags.doLVL1CaloMon.set_Value_and_Lock(False)
-        DQMonFlags.doCTPMon.set_Value_and_Lock(False)
-
-
-    coolDbConn.closeDatabase()
-
diff --git a/Trigger/TriggerCommon/TriggerJobOpts/share/TriggerConfigCheckMetadata.py b/Trigger/TriggerCommon/TriggerJobOpts/share/TriggerConfigCheckMetadata.py
deleted file mode 100644
index 1496a80e29639d37c4acef6e94501d1f59cb4fde..0000000000000000000000000000000000000000
--- a/Trigger/TriggerCommon/TriggerJobOpts/share/TriggerConfigCheckMetadata.py
+++ /dev/null
@@ -1,83 +0,0 @@
-# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
-
-from AthenaCommon.Include import include, printfunc
-include.block("TriggerJobOpts/TriggerConfigCheckMetadata.py")
-
-from AthenaCommon.AthenaCommonFlags import athenaCommonFlags
-from AthenaCommon.GlobalFlags  import globalflags
-from AthenaCommon.Logging import logging
-from RecExConfig.RecFlags import rec
-from TriggerJobOpts.TriggerFlags import TriggerFlags
-
-log = logging.getLogger( "TriggerConfigCheckMetadata.py" )
-
-if len(athenaCommonFlags.PoolESDInput())>0 or len(athenaCommonFlags.PoolAODInput())>0 :
-    from PyUtils.MetaReaderPeekerFull import metadata
-    if 'DQMonFlags' not in dir():
-        printfunc ("DataQualityMon_RecExCommon_Flags_jobOptions.py: DQMonFlags not yet imported - I import them now")
-        from AthenaMonitoring.DQMonFlags import DQMonFlags
-
-    if len(metadata) > 0:
-        hasLVL1 = any(('/TRIGGER/LVL1/Lvl1ConfigKey' in key or 'TriggerMenu' in key) for key in metadata["metadata_items"].keys())
-        hasHLT  = any(('/TRIGGER/HLT/HltConfigKeys' in key or 'TriggerMenu' in key) for key in metadata["metadata_items"].keys())
-
-        if globalflags.DataSource()=='data':
-            if hasLVL1 and not hasHLT:
-                log.error("This pool file does not contain HLT trigger information ")
-                log.info("Disabling HLT monitoring, trigger aware DQMonitoring and trigger ntuples.")
-                TriggerFlags.dataTakingConditions.set_Value_and_Lock('Lvl1Only')
-                DQMonFlags.doHLTMon.set_Value_and_Lock(False) # now that some hltmon moved to ESDtoAOD
-                DQMonFlags.useTrigger.set_Value_and_Lock(False)
-
-            if hasHLT and not hasLVL1:
-                log.error("This pool file does not contain LVL1 trigger information ")
-                log.info("Disabling trigger ntuples and trigger aware DQMonitoring but not HLT monitoring.")
-                TriggerFlags.dataTakingConditions.set_Value_and_Lock('HltOnly')
-                DQMonFlags.useTrigger.set_Value_and_Lock(False)
-                DQMonFlags.doLVL1CaloMon.set_Value_and_Lock(False)
-                DQMonFlags.doCTPMon.set_Value_and_Lock(False)
-                try:
-                    from MuonDQAMonFlags.MuonDQAProperFlags import MuonDQADetFlags
-                    MuonDQADetFlags.doTGCL1Mon.set_Value_and_Lock(False)
-                    MuonDQADetFlags.doTGCMon.set_Value_and_Lock(False)                    
-                    log.warning("Turning off TgcLv1RawMonitoring because lvl1 info is missing")
-                except Exception:
-                    from AthenaCommon.Resilience import treatException
-                    treatException("Could not import MuonDQADetFlags")
-
-            if not hasHLT and not hasLVL1:
-                log.error("This pool file does not contain any trigger information ")
-                log.info("Disabling HLT monitoring and trigger aware DQMonitoring and trigger ntuples.")
-                TriggerFlags.dataTakingConditions.set_Value_and_Lock('NoTrigger')
-                rec.doTrigger.set_Value_and_Lock(False)
-                DQMonFlags.doHLTMon.set_Value_and_Lock(False)
-                DQMonFlags.useTrigger.set_Value_and_Lock(False)
-                DQMonFlags.doLVL1CaloMon.set_Value_and_Lock(False)
-                DQMonFlags.doCTPMon.set_Value_and_Lock(False)
-                try:
-                    from MuonDQAMonFlags.MuonDQAProperFlags import MuonDQADetFlags
-                    MuonDQADetFlags.doTGCL1Mon.set_Value_and_Lock(False)
-                    MuonDQADetFlags.doTGCMon.set_Value_and_Lock(False)                    
-                    log.warning("Turning off TgcLv1RawMonitoring  because all trigger info is missing")
-                except Exception:
-                    from AthenaCommon.Resilience import treatException
-                    treatException("Could not import MuonDQADetFlags")
-
-        else:
-            if hasLVL1 and not hasHLT:
-                log.info("This pool file does not contain HLT trigger information ")
-                TriggerFlags.dataTakingConditions.set_Value_and_Lock('Lvl1Only')
-
-            if hasHLT and not hasLVL1:
-                log.info("This pool file does not contain LVL1 trigger information ")
-                TriggerFlags.dataTakingConditions.set_Value_and_Lock('HltOnly')
-
-            if not hasHLT and not hasLVL1:
-                log.info("This pool file does not contain any trigger information, setting rec.doTrigger to False")
-                TriggerFlags.dataTakingConditions.set_Value_and_Lock('NoTrigger')
-                rec.doTrigger.set_Value_and_Lock(False)
-            
-    else:
-        log.warning("Either file(s) does not have key 'metadata' or something strange is happening.")
-else:
-    log.warning("Wrong flags setting for pool input, try calling TriggerConfigGetter with 'ReadPool' or 'WritePool' as argument.")