diff --git a/DataQuality/GoodRunsListsUser/CMakeLists.txt b/DataQuality/GoodRunsListsUser/CMakeLists.txt
index 4b0c4e24b8a03f7fdd99bfa958f6bb7c420302bd..ac26fdba4731f5feb23fbf5bd4fe78b3c66daf3b 100644
--- a/DataQuality/GoodRunsListsUser/CMakeLists.txt
+++ b/DataQuality/GoodRunsListsUser/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
 
 # Declare the package name:
 atlas_subdir( GoodRunsListsUser )
@@ -12,6 +12,3 @@ atlas_add_component( GoodRunsListsUser
                      src/components/*.cxx
                      INCLUDE_DIRS ${ROOT_INCLUDE_DIRS}
                      LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaBaseComps GoodRunsListsLib EventInfo GaudiKernel TrigDecisionToolLib TrigDecisionEvent )
-
-# Install files from the package:
-atlas_install_joboptions( share/*.py )
diff --git a/DataQuality/GoodRunsListsUser/share/GoodRunsListsUser_DQLumiExample.py b/DataQuality/GoodRunsListsUser/share/GoodRunsListsUser_DQLumiExample.py
deleted file mode 100644
index 534adac2d99b1210b45887b3a314601b7012b344..0000000000000000000000000000000000000000
--- a/DataQuality/GoodRunsListsUser/share/GoodRunsListsUser_DQLumiExample.py
+++ /dev/null
@@ -1,37 +0,0 @@
-# add LumiBlockMetaDataTool to ToolSvc and configure
-from LumiBlockComps.LumiBlockCompsConf import LumiBlockMetaDataTool
-ToolSvc += LumiBlockMetaDataTool( "LumiBlockMetaDataTool" )
-
-# add ToolSvc.LumiBlockMetaDataTool to MetaDataSvc
-from AthenaServices.AthenaServicesConf import MetaDataSvc
-svcMgr += MetaDataSvc( "MetaDataSvc" )
-svcMgr.MetaDataSvc.MetaDataTools += [ ToolSvc.LumiBlockMetaDataTool ]
-
-# Configure the goodrunslist selector tool
-from GoodRunsLists.GoodRunsListsConf import *
-ToolSvc += GoodRunsListSelectorTool() 
-GoodRunsListSelectorTool.GoodRunsListVec = [ '$TestArea/DataQuality/GoodRunsListsUser/run/minbias_900GeV.xml' ]
-
-## This Athena job consists of algorithms that loop over events;
-## here, the (default) top sequence is used:
-from AthenaCommon.AlgSequence import AlgSequence, AthSequencer
-job = AlgSequence()
-seq = AthSequencer("AthMasterSeq")
-
-## AthMasterSeq is always executed before the top sequence, and is configured such that
-## any follow-up sequence (eg. top sequence) is not executed in case GRLTriggerAlg1 does
-## not pass the event
-## In short, the sequence AthMasterSeq makes sure that all algs in the job sequence
-## are skipped when an event gets rejects
-from GoodRunsListsUser.GoodRunsListsUserConf import *
-seq += GRLTriggerSelectorAlg('GRLTriggerAlg1')
-seq.GRLTriggerAlg1.GoodRunsListArray = ['minbias_900GeV']        ## pick up correct name from inside xml file!
-seq.GRLTriggerAlg1.TriggerSelectionRegistration = 'L1_MBTS_1' ## set this to your favorite trigger, eg. L1_MBTS_1_1
-
-## Add the ntuple dumper to the top sequence, as usual
-## DummyDumperAlg1 is run in the top sequence, but is not executed in case GRLTriggerAlg1 rejects the event.
-job += DummyDumperAlg('DummyDumperAlg1')
-# job.DummyDumperAlg1.RootFileName = 'selection1.root'
-THistSvc.Output =  {"new DATAFILE='selection1.root' TYP='ROOT' OPT='NEW'"};
-job.DummyDumperAlg1.GRLNameVec = [ 'LumiBlocks_GoodDQ0', 'IncompleteLumiBlocks_GoodDQ0' ]
-
diff --git a/DataQuality/GoodRunsListsUser/share/GoodRunsListsUser_default.py b/DataQuality/GoodRunsListsUser/share/GoodRunsListsUser_default.py
deleted file mode 100644
index 9fab877c4f0668377131236cf3695aa95bfd1195..0000000000000000000000000000000000000000
--- a/DataQuality/GoodRunsListsUser/share/GoodRunsListsUser_default.py
+++ /dev/null
@@ -1,48 +0,0 @@
-## Example trigger joboptions
-#include ("AMAAthena/Trigger_jobOptions.py")
-
-###########################################################################################
-## Configure the goodrunslist selector tool to read and interpret xml files
-###########################################################################################
-
-## Configure the goodrunslist selector tool
-from GoodRunsLists.GoodRunsListsConf import *
-ToolSvc += GoodRunsListSelectorTool() 
-GoodRunsListSelectorTool.GoodRunsListVec  = [ '$TestArea/DataQuality/GoodRunsListsUser/run/grl_topmix_mu.xml' ]
-GoodRunsListSelectorTool.BlackRunsListVec = [ '$TestArea/DataQuality/GoodRunsListsUser/run/blacklist.xml' ]
-GoodRunsListSelectorTool.OutputLevel = DEBUG
-
-## GRL selector, dummy ntuple dumper
-from GoodRunsListsUser.GoodRunsListsUserConf import *
-
-###########################################################################################
-## Start of jobsequence
-###########################################################################################
-
-## This Athena job consists of algorithms that loop over events;
-## here, the (default) top sequence is used:
-from AthenaCommon.AlgSequence import AlgSequence, AthSequencer
-job = AlgSequence()
-
-###########################################################################################
-## GRLTriggerSelectorAlg uses GoodRunsListSelectorTool to determine for 
-##   each event whether to pass it, or to reject it.
-## As good- and black run lists GRLTriggerAlg1 uses: 'grl_topmix_mu' and 'blacklist', 
-##   which are the names of the good run list objects in grl_topmix_mu.xml 
-##   and blacklist.xml respectively.
-## As the dummy ntupledumper DummyDumperAlg1 runs in the top sequence, 
-##   after GRLTriggerAlg1, it is not executed in case GRLTriggerAlg1 rejects an event.
-###########################################################################################
-
-## AthMasterSeq is always executed before the top sequence, and is configured such that
-## any follow-up sequence (eg. top sequence) is not executed in case GRLTriggerAlg1 does
-## not pass the event
-seq = AthSequencer("AthMasterSeq")
-seq += GRLTriggerSelectorAlg('GRLTriggerAlg1')
-seq.GRLTriggerAlg1.GoodRunsListArray  = ['grl_topmix_mu']
-seq.GRLTriggerAlg1.BlackRunsListArray = ['blacklist']
-
-## DummyDumperAlg1 is run in the top sequence, but is not executed in case GRLTriggerAlg1 rejects the event.
-job += DummyDumperAlg('DummyDumperAlg1')
-# job.DummyDumperAlg1.RootFileName = 'selection1.root'
-THistSvc.Output =  {"new DATAFILE='selection1.root' TYP='ROOT' OPT='NEW'"};
diff --git a/DataQuality/GoodRunsListsUser/share/GoodRunsListsUser_default_data.py b/DataQuality/GoodRunsListsUser/share/GoodRunsListsUser_default_data.py
deleted file mode 100644
index 33d9599a8c3e7c6f4efcd2f24f1857fffcbc0e8f..0000000000000000000000000000000000000000
--- a/DataQuality/GoodRunsListsUser/share/GoodRunsListsUser_default_data.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# Configure the goodrunslist selector tool
-from GoodRunsLists.GoodRunsListsConf import *
-ToolSvc += GoodRunsListSelectorTool() 
-GoodRunsListSelectorTool.GoodRunsListVec = [ '$TestArea/DataQuality/GoodRunsListsUser/run/minbias_900GeV.xml' ]
-#GoodRunsListSelectorTool.OutputLevel = DEBUG
-
-## This Athena job consists of algorithms that loop over events;
-## here, the (default) top sequence is used:
-from AthenaCommon.AlgSequence import AlgSequence, AthSequencer
-job = AlgSequence()
-seq = AthSequencer("AthMasterSeq")
-
-## AthMasterSeq is always executed before the top sequence, and is configured such that
-## any follow-up sequence (eg. top sequence) is not executed in case GRLTriggerAlg1 does
-## not pass the event
-## In short, the sequence AthMasterSeq makes sure that all algs in the job sequence
-## are skipped when an event gets rejects
-from GoodRunsListsUser.GoodRunsListsUserConf import *
-seq += GRLTriggerSelectorAlg('GRLTriggerAlg1')
-seq.GRLTriggerAlg1.GoodRunsListArray = ['minbias_900GeV']        ## pick up correct name from inside xml file!
-
-## Add the ntuple dumper to the top sequence, as usual
-## DummyDumperAlg1 is run in the top sequence, but is not executed in case GRLTriggerAlg1 rejects the event.
-job += DummyDumperAlg('DummyDumperAlg1')
-# job.DummyDumperAlg1.RootFileName = 'selection1.root'
-THistSvc.Output =  {"new DATAFILE='selection1.root' TYP='ROOT' OPT='NEW'"};
diff --git a/DataQuality/GoodRunsListsUser/share/GoodRunsListsUser_oneSelection.py b/DataQuality/GoodRunsListsUser/share/GoodRunsListsUser_oneSelection.py
deleted file mode 100644
index a8d6d11c1c9bbfeb71b44b621f5a30476ee44753..0000000000000000000000000000000000000000
--- a/DataQuality/GoodRunsListsUser/share/GoodRunsListsUser_oneSelection.py
+++ /dev/null
@@ -1,46 +0,0 @@
-## Example trigger joboptions
-#include ("AMAAthena/Trigger_jobOptions.py")
-
-###########################################################################################
-## Configure the goodrunslist selector tool to read and interpret xml files
-###########################################################################################
-
-## Configure the goodrunslist selector tool
-from GoodRunsLists.GoodRunsListsConf import *
-ToolSvc += GoodRunsListSelectorTool() 
-GoodRunsListSelectorTool.GoodRunsListVec  = [ 'grl_topmix_mu.xml' ]
-GoodRunsListSelectorTool.BlackRunsListVec = [ 'blacklist.xml' ]
-#GoodRunsListSelectorTool.OutputLevel = DEBUG
-
-## GRL selector, dummy ntuple dumper
-from GoodRunsListsUser.GoodRunsListsUserConf import *
-
-###########################################################################################
-## Start of jobsequence
-###########################################################################################
-
-## This Athena job consists of algorithms that loop over events;
-## here, the (default) top sequence is used:
-from AthenaCommon.AlgSequence import AlgSequence, AthSequencer
-job = AlgSequence()
-
-###########################################################################################
-## GRLTriggerSelectorAlg uses GoodRunsListSelectorTool to determine for 
-##   each event whether to pass it, or to reject it.
-## As good- and black run lists GRLTriggerAlg1 uses: 'grl_topmix_mu' and 'blacklist', 
-##   which are the names of the good run list objects in grl_topmix_mu.xml 
-##   and blacklist.xml respectively.
-## As the dummy ntupledumper DummyDumperAlg1 runs in sequence ModSequence1, 
-##   after GRLTriggerAlg1, it is not executed in case GRLTriggerAlg1 rejects an event.
-###########################################################################################
-
-## Sequence 1
-job += AthSequencer("ModSequence1")
-job.ModSequence1 += GRLTriggerSelectorAlg('GRLTriggerAlg1')
-job.ModSequence1 += DummyDumperAlg('DummyDumperAlg1')
-
-job.ModSequence1.GRLTriggerAlg1.GoodRunsListArray  = ['grl_topmix_mu']
-job.ModSequence1.GRLTriggerAlg1.BlackRunsListArray = ['blacklist']
-
-# job.ModSequence1.DummyDumperAlg1.RootFileName = 'selection1.root'
-THistSvc.Output =  {"new DATAFILE='selection1.root' TYP='ROOT' OPT='NEW'"};
diff --git a/DataQuality/GoodRunsListsUser/share/GoodRunsListsUser_preEventSelector.py b/DataQuality/GoodRunsListsUser/share/GoodRunsListsUser_preEventSelector.py
deleted file mode 100644
index de98b25ae8843273469b911a0d33655e7f996c5c..0000000000000000000000000000000000000000
--- a/DataQuality/GoodRunsListsUser/share/GoodRunsListsUser_preEventSelector.py
+++ /dev/null
@@ -1,32 +0,0 @@
-###########################################################################################
-## IMPORTANT: Configuring the goodrunslist selector as preevent selector tool
-##            does currently not work in combination with the LumiBlockMetaDataTool
-##            USE WITH CAUTION!
-###########################################################################################
-
-###########################################################################################
-## Configure the goodrunslist selector tool
-###########################################################################################
-
-from GoodRunsLists.GoodRunsListsConf import *
-GoodRunsTool = GoodRunsListSelectorTool('GoodRunsTool')
-GoodRunsTool.GoodRunsListVec  = [ 'grl_topmix_mu.xml', 'grl_topmix_e.xml' ]
-GoodRunsTool.BlackRunsListVec = [ 'blacklist.xml' ]
-GoodRunsTool.RejectBlackRunsInEventSelector = True  ## False by default
-GoodRunsTool.EventSelectorMode = True
-#GoodRunsTool.OutputLevel = DEBUG
-
-###########################################################################################
-## Add GRL selector tool to pre-eventselector
-###########################################################################################
-
-## Klugde: eventselector currently needs private tool, will become public very soon!
-## Public version is used by eg. LumiBlockMetaDataTool
-## add the (private version of) grl selector tool to the eventselector
-AthenaEventLoopMgr = Service( "AthenaEventLoopMgr" )
-AthenaEventLoopMgr.PreSelectTools += [ GoodRunsTool ]
-#AthenaEventLoopMgr.OutputLevel = WARNING
-
-from AthenaCommon.AppMgr import ServiceMgr
-ServiceMgr += AthenaEventLoopMgr
-
diff --git a/DataQuality/GoodRunsListsUser/share/GoodRunsListsUser_twoSelections.py b/DataQuality/GoodRunsListsUser/share/GoodRunsListsUser_twoSelections.py
deleted file mode 100644
index 5dd81c7ed41324fef8a0a3098e9f1bfb6961c677..0000000000000000000000000000000000000000
--- a/DataQuality/GoodRunsListsUser/share/GoodRunsListsUser_twoSelections.py
+++ /dev/null
@@ -1,54 +0,0 @@
-## Example trigger joboptions
-#include ("AMAAthena/Trigger_jobOptions.py")
-
-###########################################################################################
-## Configure the goodrunslist selector tool to read and interpret xml files
-###########################################################################################
-
-## Configure the goodrunslist selector tool
-from GoodRunsLists.GoodRunsListsConf import *
-ToolSvc += GoodRunsListSelectorTool() 
-GoodRunsListSelectorTool.GoodRunsListVec  = [ 'grl_topmix_mu.xml', 'grl_topmix_e.xml' ]
-GoodRunsListSelectorTool.BlackRunsListVec = [ 'blacklist.xml' ]
-#GoodRunsListSelectorTool.OutputLevel = DEBUG
-
-## GRL selector, dummy ntuple dumper
-from GoodRunsListsUser.GoodRunsListsUserConf import *
-
-###########################################################################################
-## Start of jobsequence
-###########################################################################################
-
-## This Athena job consists of algorithms that loop over events;
-## here, the (default) top sequence is used:
-from AthenaCommon.AlgSequence import AlgSequence, AthSequencer
-job = AlgSequence()
-
-###########################################################################################
-## GRLTriggerSelectorAlg uses GoodRunsListSelectorTool to determine for 
-##   each event whether to pass it, or to reject it.
-## As good- and black run lists GRLTriggerAlg1 uses: 'grl_topmix_mu' and 'blacklist', 
-##   which are the names of the good run list objects in grl_topmix_mu.xml 
-##   and blacklist.xml respectively. 
-## GRLTriggerAlg2 uses 'grl_topmix_e', coming from grl_topmix_e.xml
-## As the dummy ntupledumper DummyDumperAlg1 runs in sequence ModSequence1, 
-##   after GRLTriggerAlg1, it is not executed in case GRLTriggerAlg1 rejects an event.
-##   Same story for GRLTriggerAlg2 and DummyDumperAlg2, running in ModSequence2
-###########################################################################################
-
-## Selection 1
-job += AthSequencer("ModSequence1")
-job.ModSequence1 += GRLTriggerSelectorAlg('GRLTriggerAlg1')
-job.ModSequence1.GRLTriggerAlg1.GoodRunsListArray  = ['grl_topmix_mu']
-job.ModSequence1.GRLTriggerAlg1.BlackRunsListArray = ['blacklist']
-job.ModSequence1 += DummyDumperAlg('DummyDumperAlg1')
-# job.ModSequence1.DummyDumperAlg1.RootFileName = 'selection1.root'
-THistSvc.Output =  {"new DATAFILE='selection1.root' TYP='ROOT' OPT='NEW'"};
-
-## Selection 2
-job += AthSequencer("ModSequence2")
-job.ModSequence2 += GRLTriggerSelectorAlg('GRLTriggerAlg2')
-job.ModSequence2.GRLTriggerAlg2.GoodRunsListArray  = ['grl_topmix_e']
-job.ModSequence2 += DummyDumperAlg('DummyDumperAlg2')
-# job.ModSequence2.DummyDumperAlg2.RootFileName = 'selection2.root'
-THistSvc.Output =  {"new DATAFILE='selection2.root' TYP='ROOT' OPT='NEW'"};
diff --git a/DataQuality/GoodRunsListsUser/share/LumiBlock_LumiCalc_GRL_dumper.py b/DataQuality/GoodRunsListsUser/share/LumiBlock_LumiCalc_GRL_dumper.py
deleted file mode 100644
index 3b3e5a803e21a4563cd6aab8b6fd3dc4489cf738..0000000000000000000000000000000000000000
--- a/DataQuality/GoodRunsListsUser/share/LumiBlock_LumiCalc_GRL_dumper.py
+++ /dev/null
@@ -1,32 +0,0 @@
-# add LumiBlockMetaDataTool to ToolSvc and configure
-from LumiBlockComps.LumiBlockCompsConf import LumiBlockMetaDataTool
-ToolSvc += LumiBlockMetaDataTool( "LumiBlockMetaDataTool" )
-
-# add ToolSvc.LumiBlockMetaDataTool to MetaDataSvc
-from AthenaServices.AthenaServicesConf import MetaDataSvc
-svcMgr += MetaDataSvc( "MetaDataSvc" )
-svcMgr.MetaDataSvc.MetaDataTools += [ ToolSvc.LumiBlockMetaDataTool ]
-
-# Configure the goodrunslist selector tool
-from GoodRunsLists.GoodRunsListsConf import *
-ToolSvc += GoodRunsListSelectorTool() 
-GoodRunsListSelectorTool.GoodRunsListVec = [ 'grl_topmix_mu.xml', 'grl_topmix_e.xml' ]
-GoodRunsListSelectorTool.BlackRunsListVec = [ 'blacklist.xml' ]
-
-## This Athena job consists of algorithms that loop over events;
-## here, the (default) top sequence is used:
-from AthenaCommon.AlgSequence import AlgSequence, AthSequencer
-job = AlgSequence()
-job += AthSequencer("ModSequence1")
-
-## GRL selector, dummy ntuple dumper
-from GoodRunsListsUser.GoodRunsListsUserConf import *
-job.ModSequence1 += GRLTriggerSelectorAlg('GRLTriggerAlg1')
-job.ModSequence1.GRLTriggerAlg1.GoodRunsListArray = ['grl_topmix_mu']
-job.ModSequence1.GRLTriggerAlg1.BlackRunsListArray = ['blacklist']
-job.ModSequence1.GRLTriggerAlg1.TriggerSelectionRegistration = 'EF_mu20'
-
-job.ModSequence1 += DummyDumperAlg('DummyDumperAlg1')
-# job.ModSequence1.DummyDumperAlg1.RootFileName = 'selection1.root'
-THistSvc.Output =  {"new DATAFILE='selection1.root' TYP='ROOT' OPT='NEW'"};
-job.ModSequence1.DummyDumperAlg1.GRLNameVec = [ 'LumiBlocks_GoodDQ0', 'IncompleteLumiBlocks_GoodDQ0' ]