diff --git a/InnerDetector/InDetExample/InDetTrigRecExample/python/InDetTrigSliceSettings.py b/InnerDetector/InDetExample/InDetTrigRecExample/python/InDetTrigSliceSettings.py
index c38a1369e6512972e8af6164a352a822b662499e..3b2963a414dfa0951fa56e9c6d2ff2ca9afeb031 100644
--- a/InnerDetector/InDetExample/InDetTrigRecExample/python/InDetTrigSliceSettings.py
+++ b/InnerDetector/InDetExample/InDetTrigRecExample/python/InDetTrigSliceSettings.py
@@ -14,6 +14,7 @@ __author__ = "Jiri Masik"
 __doc__    = "InDetTrigSliceSettings"
 __all__    = [ "InDetTrigSliceSettings" ]
 
+
 class InDetTrigSliceSettingsDB:
   """
   keeps a dictionary of quantities which may vary slice by slice with
@@ -26,302 +27,19 @@ class InDetTrigSliceSettingsDB:
   """
   def __init__(self):
     from AthenaCommon.SystemOfUnits import GeV
-    _slices = ['electron','photon',
-               'muon', 'muonFS', 'muonCore', 'muonLate', 'muonIso',
-               'tau', 'tauCore', 'tauIso',
-               # nonsense duplicated tau instances
-               # "tauId", "tauEF", "tauTrk", "tauTrkTwo",
-               'bjet', 'bjetVtx',
-               'bphysics',
-               'fullScan',
-               'fullScan2',           #2GeV threshold for MET
-               'minBias', 'beamgas',
-               'minBias2',            #two pass (low-pt tracking)
-               'minBias400',          #another minBias with 400MeV threshold
-               'cosmicsN', 'lowPt',   #these are not real slices, rather different setups of tools
-               'hadCalib', 'fullScan500',       #hadCalib instances
-               'heavyIon', 'heavyIonFS',   #RoI and FS instances for the heavy ion
-               'beamSpot', 'cosmics',
-               'bphysHighPt',
-               'electronLRT', 'muonLRT', 'tauLRT', 'fullScanLRT', 'bjetLRT'
-               ]
+    _slices = ['lowPt']
 
     self.db = {}
 
     ptmin =   {}
-    etahalf = {}
-    phihalf = {}
-    fullscan= {}
-    monps = {}
-    monptmin = {}
-
-    #FTF-specific settings
-    drdoubletmax = {}
-    seedradbinwidth = {}
-    d0seedmax = {}
-    d0seedppsmax = {}
-    checkseedredundancy = {}
-    dospphifiltering = {}
-    dozfinder = {}
-    docloneremoval = {}
-    doresmon = {}
-    dotrigindettrack = {}
-    dopps = {}
-
-    #ptmin
     for i in _slices:
       ptmin[i] = 1.*GeV
-    ptmin['tau']=        0.8 * GeV
-    ptmin['minBias'] = 0.2 * GeV
-    ptmin['minBias2'] = 0.5 * GeV
-    ptmin['cosmicsN'] = 0.5 * GeV
-    #ptmin['fullScan'] = 0.5 * GeV    #comparison with the offline
-    ptmin['beamgas'] = 0.1 * GeV
     ptmin['lowPt'] = 0.1 * GeV
-    ptmin['heavyIonFS'] = 0.4 * GeV
-    ptmin['hadCalib'] = 0.5 * GeV
-    ptmin['fullScan500'] = 0.5 * GeV
-    ptmin['fullScan2'] = 2. * GeV
-    ptmin['minBias400'] = 0.39 * GeV
-    ptmin['bphysHighPt'] = 2. * GeV
-    ptmin['bjetVtx'] = 5. * GeV
 
     self.db['pTmin']=ptmin
 
-    for i in _slices:
-      d0seedmax[i] = 4.0
-      d0seedppsmax[i] = 1.7
-
-    d0seedmax['bphysics'] = 10.0
-    d0seedmax['bphysHighPt'] = 10.0
-    d0seedmax['muon'] = 10.0
-    d0seedmax['muonFS'] = 10.0
-    d0seedmax['muonCore'] = 10.0
-    d0seedmax['muonLate'] = 10.0
-    # muonIso instance has default 4.0 mm setting
-
-    d0seedmax['cosmics'] = 1000.0
-    d0seedppsmax['cosmics'] = 1000.0
-
-    for i in ["fullScanLRT", "electronLRT", "muonLRT", "tauLRT", "bjetLRT"]:
-        d0seedmax[i] = 300.
-
-    self.db['d0SeedMax']=d0seedmax
-    self.db['d0SeedPPSMax']=d0seedppsmax
-
-    for i in _slices:
-      dozfinder[i] = False
-      dotrigindettrack[i] = False
-    dozfinder['beamSpot'] = True
-    self.db['doZFinder']=dozfinder
-    self.db['doTrigInDetTrack']=dotrigindettrack
-
-    for i in _slices:
-      doresmon[i] = False
-    doresmon['muon'] = True
-    self.db['doResMon']=doresmon
-    
-    for i in _slices:
-      dopps[i] = True
-    dopps['fullScan'] = False
-    self.db['DoPPS'] = dopps
-
-    for i in _slices:
-      dospphifiltering[i] = True
-    # Turn off spacepoint phi filtering for muons
-    dospphifiltering['muon'] = False
-    dospphifiltering['muonFS'] = False
-    dospphifiltering['muonCore'] = False
-    dospphifiltering['muonLate'] = False
-    # muonIso instance has default sp filtering value of True
-
-    dospphifiltering['bphysics'] = False
-    dospphifiltering['bphysHighPt'] = False
-    self.db['doSpPhiFiltering'] = dospphifiltering
-
-    for i in _slices:
-      docloneremoval[i] = True
-    docloneremoval['electron'] = False
-    self.db['doCloneRemoval'] = docloneremoval
-
-
-
-    for i in _slices:
-      checkseedredundancy[i] = False
-    checkseedredundancy['electron'] = True
-    checkseedredundancy['muon'] = True
-    checkseedredundancy['muonFS'] = True
-    checkseedredundancy['muonLate'] = True
-    checkseedredundancy['muonCore'] = True
-    # muonIso instance has default seed redundency of False
-
-    checkseedredundancy['bphysics'] = True
-    checkseedredundancy['beamSpot'] = True
-    checkseedredundancy["fullScanLRT"] = True
-
-    self.db['checkRedundantSeeds'] = checkseedredundancy
-
-
-    for i in _slices:
-      drdoubletmax[i] = 270
-      seedradbinwidth[i] = 2
-
-    drdoubletmax['beamSpot']    = 200
-    seedradbinwidth['beamSpot'] = 10
 
-    drdoubletmax['fullScan']    = 200
-    seedradbinwidth['fullScan'] = 10
 
-    self.db['dRdoubletMax'] = drdoubletmax
-    self.db['seedRadBinWidth'] = seedradbinwidth
-
-
-
-    #etaHalfWidth
-    etahalf = {
-      'electron'  : 0.1,
-      'photon'    : 0.1,
-      'muon'      : 0.1,
-      'muonFS'    : 0.1,
-      'muonCore'  : 0.1,
-      'muonLate'  : 0.1,
-      'muonIso'   : 0.35,
-      'tau'       : 0.4,
-      'bjet'      : 0.2,
-      'bphysics'  : 0.75,
-      'bphysHighPt'  : 0.75,
-      'hadCalib'  : 0.4,
-      'fullScan'  : 3.0,
-      'fullScan500': 3.0,
-      'fullScan2' : 3.0,
-      'minBias'   : 3.0,
-      'minBias2'  : 3.0,
-      'beamgas'   : 3.0,
-      'cosmicsN'  : 3.0,
-      'cosmics'   : 3.0,
-      'lowPt'     : 3.0,
-      'heavyIonFS': 3.0,
-      'heavyIon'  : 0.1,
-      'minBias400': 3.0,
-      'tauCore'   : 0.1,
-      'tauIso'    : 0.4,
-      'beamSpot'  : 3.0,
-      'bjetVtx'   : 0.2,
-      'electronLRT': 0.1,
-      'muonLRT': 0.1,
-      'tauLRT': 0.4,
-      'fullScanLRT': 3,
-      'bjetLRT': 0.2
-      }
-    self.db['etaHalfWidth']=etahalf
-
-    #phiHalfWidth
-    phihalf = {
-      'electron'  : 0.1,
-      'photon'    : 0.1,
-      'muon'      : 0.1,
-      'muonFS'    : 0.1,
-      'muonCore'  : 0.1,
-      'muonLate'  : 0.1,
-      'muonIso'   : 0.35,
-      'tau'       : 0.4,
-      'bjet'      : 0.201,
-      'bphysics'  : 0.75,
-      'bphysHighPt'  : 0.75,
-      'hadCalib'  : 0.4,
-      'fullScan'  : 3.14159,
-      'fullScan500' : 3.14159,
-      'fullScan2' : 3.14159,
-      'minBias'   : 3.14159,
-      'minBias2'  : 3.14159,
-      'beamgas'   : 3.14159,
-      'cosmicsN'  : 3.14159,
-      'cosmics'   : 3.14159,
-      'lowPt'     : 3.14159,
-      'heavyIonFS': 3.14159,
-      'heavyIon'  : 0.1,
-      'minBias400': 3.14159,
-      'tauCore'   : 0.1,
-      'tauIso'    : 0.4,
-      'beamSpot'  : 3.14159,
-      'bjetVtx'   : 0.201,
-      'electronLRT': 0.1,
-      'muonLRT': 0.1,
-      'tauLRT': 0.4,
-      'fullScanLRT': 3.14159,
-      'bjetLRT': 0.201
-      }
-    self.db['phiHalfWidth']=phihalf
-
-    #doFullScan
-    for i in _slices:
-      fullscan[i] = False
-    fullscan['fullScan'] = True
-    fullscan['fullScan2']= True
-    fullscan['fullScan500'] = True
-    fullscan['minBias']  = True
-    fullscan['minBias2'] = True
-    fullscan['beamgas']  = True
-    fullscan['cosmicsN'] = True
-    fullscan['cosmics']  = True
-    fullscan['lowPt']    = True
-    fullscan['heavyIonFS']=True
-    fullscan['minBias400']=True
-    fullscan['beamSpot']  =True
-    fullscan['fullScanLRT'] = True
-
-    self.db['doFullScan']=fullscan
-
-
-    #Monitoring Prescales
-    for i in _slices:
-      monps[i] = 1
-    monps['tau']= 1
-    self.db['monPS']=monps
-
-    #Monitoring pT min
-    for i in _slices:
-      monptmin[i] = 1 * GeV
-    monptmin['muon'] = 12 * GeV
-    self.db['monPtMin']=monptmin
-
-    #TRT extension
-    dotrt = {}
-    for i in _slices:
-      dotrt[i] = False
-
-    dotrt["tauIso"] = True
-    dotrt["tauCore"] = True
-    dotrt["tau"] = True
-    dotrt["electron"] = True
-    dotrt["tauLRT"] = True
-
-    self.db['doTRT'] = dotrt
-
-
-    #d0 track max, z0 track max and usepixelsp
-    d0trackmax = {}
-    z0trackmax = {}
-    usepixelsp = {}
-
-    for i in _slices:
-      d0trackmax[i] = 20.
-      z0trackmax[i] = 300.
-      usepixelsp[i] = True
-
-    d0trackmax["cosmics"] = 1000.
-    z0trackmax["cosmics"] = 1000.
-
-    for i in ["fullScanLRT", "electronLRT", "muonLRT", "tauLRT", "bjetLRT"]:
-      d0trackmax[i] = 300.
-      z0trackmax[i] = 500.
-      usepixelsp[i] = False
-
-
-
-    self.db["d0TrackMax"] = d0trackmax
-    self.db["z0TrackMax"] = z0trackmax
-    self.db["usePixelSP"] = usepixelsp
 
   def __getitem__(self, p):
     (quantity, slice) = p
@@ -334,10 +52,10 @@ class InDetTrigSliceSettingsDB:
       except Exception:
         print ('get InDetTrigSliceSettingsDB has no slice %s configured' % slice)
     except Exception:
-      print ('get InDetTrigSliceSettingsDB has no quantity %s configured' % quantity)
-
+        print ('get InDetTrigSliceSettingsDB has no quantity %s configured' % quantity)
     return v
 
+
   def __setitem__(self, p, value):
     (quantity, slice) = p
     try:
diff --git a/Trigger/TrigAlgorithms/TrigFastTrackFinder/python/TrigFastTrackFinder_Config.py b/Trigger/TrigAlgorithms/TrigFastTrackFinder/python/TrigFastTrackFinder_Config.py
index 520b38dacbcbdc68a97468735513b58a4508591f..0b4bc5a82bad377662ab9cd81b4eb1594dd20460 100755
--- a/Trigger/TrigAlgorithms/TrigFastTrackFinder/python/TrigFastTrackFinder_Config.py
+++ b/Trigger/TrigAlgorithms/TrigFastTrackFinder/python/TrigFastTrackFinder_Config.py
@@ -176,14 +176,14 @@ remap  = {
     "Muon"     : "muon",
     "MuonFS"   : "muon",
     "MuonLate" : "muon",
-    "MuonCore" : "muonCore",
+    "MuonCore" : "muon",
     "MuonIso"  : "muonIso",
     "eGamma"   : "electron",
     "Electron" : "electron",
     "Tau"      : "tau",
     "TauCore"  : "tauCore",
     "TauIso"   : "tauIso",
-    "Jet"      : "bjet",
+    "Jet"      : "Bjet",
     "JetFS"    : "fullScan",
     "FS"       : "fullScan",
     "bjetVtx"  : "bjetVtx",
@@ -204,16 +204,17 @@ class TrigFastTrackFinderBase(TrigFastTrackFinder):
         TrigFastTrackFinder.__init__(self,name)
 
         #Remapping should be now covered by SliceConfigurationSetting
-        remapped_type = slice_name
+ 
+        from TrigInDetConfig.ConfigSettings import getInDetTrigConfig
+
+        config = getInDetTrigConfig( slice_name )
+
+        remapped_type = config.name
+
         if slice_name == "fullScanUTT" :
             self.doJseedHitDV = True
             self.dodEdxTrk    = True
 
-        #There are still some places which relies on this remapping such as:
-        #https://gitlab.cern.ch/atlas/athena/-/blob/master/Trigger/TrigTools/TrigInDetConf/python/TrigInDetSequence.py
-        #I guess eventually this should be removed
-        if slice_name in remap:
-            remapped_type = remap[slice_name]
 
         isLRT = False
 
@@ -233,8 +234,6 @@ class TrigFastTrackFinderBase(TrigFastTrackFinder):
         ToolSvc += numberingTool
         self.LayerNumberTool = numberingTool
 
-        from InDetTrigRecExample.InDetTrigSliceSettings import InDetTrigSliceSettings
-
         # GPU offloading config begins
 
         self.useGPU = False
@@ -249,7 +248,9 @@ class TrigFastTrackFinderBase(TrigFastTrackFinder):
 
         # GPU offloading config ends
 
-        self.doResMon = InDetTrigSliceSettings[('doResMon',remapped_type)]
+        self.doResMon = config.doResMon
+
+        
 
         # switch between Run-2/3 monitoring
         self.MonTool = TrigFastTrackFinderMonitoring(slice_name, self.doResMon)
@@ -261,13 +262,13 @@ class TrigFastTrackFinderBase(TrigFastTrackFinder):
         #Spacepoint conversion
         from TrigOnlineSpacePointTool.TrigOnlineSpacePointToolConf import TrigSpacePointConversionTool
         spTool = TrigSpacePointConversionTool().clone('TrigSpacePointConversionTool_' + remapped_type)
-        spTool.DoPhiFiltering = InDetTrigSliceSettings[('doSpPhiFiltering',remapped_type)]
+        spTool.DoPhiFiltering = config.DoPhiFiltering
         spTool.UseNewLayerScheme = self.useNewLayerNumberScheme
         spTool.UseBeamTilt = False
         spTool.PixelSP_ContainerName = TrigPixelKeys.SpacePoints
         spTool.SCT_SP_ContainerName  = TrigSCTKeys.SpacePoints
         spTool.layerNumberTool = numberingTool
-        spTool.UsePixelSpacePoints = InDetTrigSliceSettings[('usePixelSP',remapped_type)]
+        spTool.UsePixelSpacePoints = config.UsePixelSpacePoints
 
         from RegionSelector.RegSelToolConfig import makeRegSelTool_Pixel
         from RegionSelector.RegSelToolConfig import makeRegSelTool_SCT
@@ -275,7 +276,6 @@ class TrigFastTrackFinderBase(TrigFastTrackFinder):
         spTool.RegSelTool_Pixel = makeRegSelTool_Pixel()
         spTool.RegSelTool_SCT   = makeRegSelTool_SCT()
 
-        spTool.UsePixelSpacePoints=InDetTrigSliceSettings[('usePixelSP',remapped_type)]
 
         ToolSvc += spTool
         self.SpacePointProviderTool=spTool
@@ -289,17 +289,17 @@ class TrigFastTrackFinderBase(TrigFastTrackFinder):
         self.LRT_Mode = isLRT
 
         self.Triplet_MaxBufferLength = 3
-        self.doSeedRedundancyCheck = InDetTrigSliceSettings[('checkRedundantSeeds',remapped_type)]
-        self.Triplet_D0Max        = InDetTrigSliceSettings[('d0SeedMax',remapped_type)]
-        self.Triplet_D0_PPS_Max   = InDetTrigSliceSettings[('d0SeedPPSMax',remapped_type)]
-        self.TrackInitialD0Max = InDetTrigSliceSettings[('d0TrackMax',remapped_type)]
-        self.TrackZ0Max = InDetTrigSliceSettings[('z0TrackMax',remapped_type)]
-
-        self.TripletDoPPS   = InDetTrigSliceSettings[('DoPPS',remapped_type)]
-        self.TripletDoPSS   = False
-        self.pTmin = InDetTrigSliceSettings[('pTmin',remapped_type)]
-        self.DoubletDR_Max = InDetTrigSliceSettings[('dRdoubletMax',remapped_type)]
-        self.SeedRadBinWidth = InDetTrigSliceSettings[('seedRadBinWidth',remapped_type)]
+        self.doSeedRedundancyCheck = config.doSeedRedundancyCheck
+        self.Triplet_D0Max         = config.Triplet_D0Max
+        self.Triplet_D0_PPS_Max    = config.Triplet_D0_PPS_Max
+        self.TrackInitialD0Max     = config.TrackInitialD0Max
+        self.TrackZ0Max            = config.TrackZ0Max
+
+        self.TripletDoPPS    = config.TripletDoPPS
+        self.TripletDoPSS    = False
+        self.pTmin           = config.pTmin
+        self.DoubletDR_Max   = config.DoubletDR_Max
+        self.SeedRadBinWidth = config.SeedRadBinWidth
 
         if remapped_type=="cosmics":
           self.Doublet_FilterRZ = False
@@ -343,7 +343,7 @@ class TrigFastTrackFinderBase(TrigFastTrackFinder):
         TrackMaker_FTF = InDet__SiTrackMaker_xk(name = 'InDetTrigSiTrackMaker_FTF_'+slice_name,
                                               RoadTool       = InDetTrigSiDetElementsRoadMaker_FTF,
                                               CombinatorialTrackFinder = InDetTrigSiComTrackFinder_FTF,
-                                              pTmin          = InDetTrigSliceSettings[('pTmin',remapped_type)],
+                                              pTmin          = config.pTmin,
                                               nClustersMin   = TrackingCuts.minClusters(),
                                               nHolesMax      = TrackingCuts.nHolesMax(),
                                               nHolesGapMax   = TrackingCuts.nHolesGapMax(),
@@ -383,8 +383,9 @@ class TrigFastTrackFinderBase(TrigFastTrackFinder):
           ToolSvc += theTrigInDetTrackFitterBrem
           self.trigInDetTrackFitter = theTrigInDetTrackFitterBrem
 
-        self.doZFinder = InDetTrigSliceSettings[('doZFinder',remapped_type)]
+        self.doZFinder = config.doZFinder
         if (self.doZFinder):
+          self.doZFinderOnly = config.doZFinderOnly
           from IDScanZFinder.IDScanZFinderConf import TrigZFinder
           theTrigZFinder = TrigZFinder( name="TrigZFinder_"+remapped_type )
           theTrigZFinder.NumberOfPeaks = 3
@@ -403,19 +404,31 @@ class TrigFastTrackFinderBase(TrigFastTrackFinder):
           self.doFastZVertexSeeding = True
           self.zVertexResolution = 1
 
-        TrackMaker_FTF.InputClusterContainerName = ""
-        TrackMaker_FTF.InputHadClusterContainerName = ""
+        if not config.doZFinderOnly:
 
+          TrackMaker_FTF.InputClusterContainerName = ""
+          TrackMaker_FTF.InputHadClusterContainerName = ""
 
-        from TrigInDetConf.TrigInDetRecCommonTools import InDetTrigFastTrackSummaryTool
-        self.TrackSummaryTool = InDetTrigFastTrackSummaryTool
 
-        if remapped_type == "tauCore":
-          from TrigInDetConf.TrigInDetRecCommonTools import InDetTrigTrackSummaryToolWithHoleSearch
-          self.TrackSummaryTool = InDetTrigTrackSummaryToolWithHoleSearch
+          from TrigInDetConf.TrigInDetRecCommonTools import InDetTrigFastTrackSummaryTool
+          self.TrackSummaryTool = InDetTrigFastTrackSummaryTool
+          
+          if config.holeSearch_FTF : 
+              from TrigInDetConf.TrigInDetRecCommonTools import InDetTrigTrackSummaryToolWithHoleSearch
+              self.TrackSummaryTool = InDetTrigTrackSummaryToolWithHoleSearch
 
-        self.doCloneRemoval = InDetTrigSliceSettings[('doCloneRemoval',remapped_type)]
+          self.doCloneRemoval = config.doCloneRemoval
+          self.TracksName     = config.trkTracks_FTF()
 
+          if config.name == 'fullScanUTT' :
+              self.RecJetRoI      = "HLT_RecJETRoIs"
+              self.HitDVSeed      = "HLT_HitDVSeed"
+              self.HitDVTrk       = "HLT_HitDVTrk"
+              self.HitDVSP        = "HLT_HitDVSP"
+              self.dEdxTrk        = "HLT_dEdxTrk"
+              self.dEdxHit        = "HLT_dEdxHit"
+              
+              
 
 class TrigFastTrackFinder_Muon(TrigFastTrackFinderBase):
   def __init__(self, name = "TrigFastTrackFinder_Muon"):
diff --git a/Trigger/TrigTools/TrigInDetConfig/python/ConfigSettings.py b/Trigger/TrigTools/TrigInDetConfig/python/ConfigSettings.py
index c09e1aadd450264f33882b79f57f0d650707154d..dd7683276e5ffbc6c6377fe2f9bb86fadaaa4641 100644
--- a/Trigger/TrigTools/TrigInDetConfig/python/ConfigSettings.py
+++ b/Trigger/TrigTools/TrigInDetConfig/python/ConfigSettings.py
@@ -5,846 +5,374 @@ __doc__    = "ConfigSettings"
 __all__    = [ "getInDetTrigConfig" ]
 
 
-
+from TrigInDetConfig.ConfigSettingsBase import _ConfigSettingsBase
+from TrigEDMConfig.TriggerEDMRun3 import recordable
 from AthenaCommon.SystemOfUnits import GeV
-#This function is a wrapper around functions that return name of collections
-#It checks whether the collection is specified to be recorded into EDM and if so it marks it to be recordable
-#Collection has to be defined in EDM! see:
-#https://gitlab.cern.ch/atlas/athena/-/blob/master/Trigger/TriggerCommon/TrigEDMConfig/python/TriggerEDMRun3.py
-#Maybe overkill?
-def makeRecordable(getName):
-   def recordCollection(*args, **kwargs):
-      #Retrieve record decision
-      record=kwargs.pop("doRecord",False)
-
-      #Get the name of the collection
-      collectionName = getName(*args, **kwargs)
-
-      from TrigEDMConfig.TriggerEDMRun3 import recordable
-      if record:
-           return recordable( collectionName )
-      else:
-          return collectionName
-   return recordCollection
-
-
-
-#     Configuration of Tracking parameters for different signatures
-#-----------------------------------------------------------------------------
-
-class _Settings :
-   def __init__(self, name = "Settings") :
-      self._name = name
-
-      # default values
-      self._pTmin               = 1.*GeV
-      self._d0SeedMax           = 4.0
-      self._d0SeedPPSMax        = 1.7
-      self._doZFinder           = False
-      self._doResMon            = False
-      self._doSpPhiFiltering    = True
-      self._doCloneRemoval      = True
-      self._checkRedundantSeeds = False
-      self._dRdoubletMax        = 270
-      self._seedRadBinWidth     = 2
-      self._etaHalfWidth        = 0.1
-      self._phiHalfWidth        = 0.1
-      self._doFullScan          = False
-      self._monPS               = 1
-      self._monPtMin            = 1*GeV
-      self._doTRT               = False #Apply TRT extension sequence after ambiguity solving
-      self._keepTrackParameters = False #Keep track parameters in conversion to TrackParticles
-      self._usePixelSP          = True
-      self._d0TrackMax          = 20.0
-      self._z0TrackMax          = 300.0
-      self._isLRT               = False
-
-#Previous version in:
-#https://gitlab.cern.ch/atlas/athena/-/blob/master/InnerDetector/InDetExample/InDetTrigRecExample/python/InDetTrigSliceSettings.py#L70
-
-   @property
-   def name(self):
-      return self._name
-
-   @property
-   def pTmin(self):
-      return self._pTmin
-
-   @property
-   def d0SeedMax(self):
-      return self._d0SeedMax
-
-   @property
-   def d0SeedPPSMax(self):
-      return self._d0SeedPPSMax
-
-   @property
-   def doZFinder(self):
-      return self._doZFinder
-
-   @property
-   def doResMon(self):
-      return self._doResMon
-
-   @property
-   def doSpPhiFiltering(self):
-      return self._doSpPhiFiltering
-
-   @property
-   def doCloneRemoval(self):
-      return self._doCloneRemoval
-
-   @property
-   def checkRedundantSeeds(self):
-      return self._checkRedundantSeeds
-
-   @property
-   def dRdoubletMax(self):
-      return self._dRdoubletMax
-
-   @property
-   def seedRadBinWidth(self):
-      return self._seedRadBinWidth
-
-   @property
-   def etaHalfWidth(self):
-      return self._etaHalfWidth
-
-   @property
-   def phiHalfWidth(self):
-      return self._phiHalfWidth
-
-   @property
-   def doFullScan(self):
-      return self._doFullScan
-
-   @property
-   def monPS(self):
-      return self._monPS
-
-   @property
-   def monPtMin(self):
-      return self._monPtMin
-
-   @property
-   def doTRT(self):
-      return self._doTRT
-
-   @property
-   def keepTrackParameters(self):
-      return self._keepTrackParameters
-
-   @property
-   def usePixelSP(self):
-       return self._usePixelSP
-
-   @property
-   def d0TrackMax(self):
-       return self._d0TrackMax
-
-   @property
-   def z0TrackMax(self):
-       return self._z0TrackMax
-
-   @property
-   def isLRT(self):
-       return self._isLRT
-
-   def printout(self):
-      print( self._name, " :")                                         # noqa: ATL901
-      print( "   pTmin                : ", self._pTmin )               # noqa: ATL901
-      print( "   d0SeedMax            : ", self._d0SeedMax )           # noqa: ATL901
-      print( "   d0SeedPPSMax         : ", self._d0SeedPPSMax )        # noqa: ATL901
-      print( "   doZFinder            : ", self._doZFinder )           # noqa: ATL901
-      print( "   doResMon             : ", self._doResMon )            # noqa: ATL901
-      print( "   doSpPhiFiltering     : ", self._doSpPhiFiltering )    # noqa: ATL901
-      print( "   doCloneRemoval       : ", self._doCloneRemoval )      # noqa: ATL901
-      print( "   checkRedundantSeeds  : ", self._checkRedundantSeeds ) # noqa: ATL901
-      print( "   dRdoubletMax         : ", self._dRdoubletMax )        # noqa: ATL901
-      print( "   seedRadBinWidth      : ", self._seedRadBinWidth )     # noqa: ATL901
-      print( "   etaHalfWidth         : ", self._etaHalfWidth )        # noqa: ATL901
-      print( "   phiHalfWidth         : ", self._phiHalfWidth )        # noqa: ATL901
-      print( "   doFullScan           : ", self._doFullScan )          # noqa: ATL901
-      print( "   monPS                : ", self._monPS )               # noqa: ATL901
-      print( "   monPtMin             : ", self._monPtMin )            # noqa: ATL901
-
-
-#Tracking configuration for different signatures
-class _Tracking_electron( _Settings ):
+
+
+# Function that returns specific signature setting/configuration
+# Rename to InDetTrigSignatureConfig ?
+def getInDetTrigConfig( name ):
+   if name in _ConfigSettings :
+      config = _ConfigSettings[name]
+      # keep a record of the configuration that is input
+      # will use this to uniquely identify the algorithms
+      config._input_name = name
+      return config
+   else :
+      #       don't just return None, and do nothing as this
+      #       will just hide the error until people try to use
+      #       the bad slice configuration
+      raise Exception( "getInDetTrigConfig() called with non existent slice: "+name )
+      return None
+
+
+class _ConfigSettings_electron( _ConfigSettingsBase ):
    def __init__( self ):
-      _Settings.__init__(self)
+      _ConfigSettingsBase.__init__(self)
+      self._name      = "electron"
+      self._suffix    = "Electron"
+      self._roi       = "HLT_Roi_Electron" 
       self._doCloneRemoval      = True #Previously False in Run2!
-      self._checkRedundantSeeds = True
+      self._doSeedRedundancyCheck = True
       self._doTRT               = True
       self._keepTrackParameters = True
 
-class _Tracking_tauCore( _Settings ):
+
+class _ConfigSettings_muon( _ConfigSettingsBase ):
    def __init__( self ):
-      _Settings.__init__(self)
-      self._doTRT           = True
+      _ConfigSettingsBase.__init__(self)
+      self._name      = "muon"
+      self._suffix    = "Muon"
+      self._roi       = "HLT_Roi_Muon"
+      self._Triplet_D0Max         = 10.0
+      self._doResMon            = True
+      self._DoPhiFiltering    = False
+      self._doSeedRedundancyCheck = True
+      self._monPtMin            = 12*GeV
+
 
-class _Tracking_tauIso( _Settings ):
+class _ConfigSettings_muonIso( _ConfigSettingsBase ):
    def __init__( self ):
-      _Settings.__init__(self)
-      self._etaHalfWidth       = 0.4
-      self._phiHalfWidth       = 0.4
-      self._doTRT               = True
+      _ConfigSettingsBase.__init__(self)
+      self._name      = "muonIso"
+      self._suffix    = "MuonIso"
+      self._roi       = "HLT_Roi_MuonIso"
+      self._etaHalfWidth        = 0.35
+      self._phiHalfWidth        = 0.35
+
 
-class _Tracking_tau( _Settings ):
+class _ConfigSettings_tau( _ConfigSettingsBase ):
    def __init__( self ):
-      _Settings.__init__(self)
+      _ConfigSettingsBase.__init__(self)
+      self._name     = "tau"
+      self._suffix   = "Tau"
+      self._roi      = "HLT_Roi_Tau"
+      self._vertex   = "HLT_IDVertex_Tau"
+      self._adaptiveVertex  = True
       self._pTmin           = 0.8*GeV
       self._etaHalfWidth    = 0.4
       self._phiHalfWidth    = 0.4
-      self._doTRT               = True
+      self._doTRT           = True
 
-class _Tracking_muon( _Settings ):
-   def __init__( self ):
-      _Settings.__init__(self)
-      self._d0SeedMax           = 10.0
-      self._doResMon            = True
-      self._doSpPhiFiltering    = False
-      self._checkRedundantSeeds = True
-      self._monPtMin            = 12*GeV
-      self._doTRT               = False
 
-class _Tracking_muonCore( _Settings ):
-   def __init__( self ):
-      _Settings.__init__(self)
-      self._d0SeedMax           = 10.0
-      self._doSpPhiFiltering    = False
-      self._checkRedundantSeeds = True
-      self._doTRT               = False
+class _ConfigSettings_tauCore( _ConfigSettingsBase ):
+    def __init__( self ):
+       _ConfigSettingsBase.__init__(self)
+       self._name     = "tauCore"
+       self._suffix   = "TauCore"
+       self._roi      = "HLT_Roi_TauCore"
+       self._doTRT    = True
+       self._holeSearch_FTF = True
+
+class _ConfigSettings_tauIso( _ConfigSettingsBase ):
+   def __init__( self ):
+      _ConfigSettingsBase.__init__(self)
+      self._name     = "tauIso"
+      self._suffix   = "TauIso"
+      self._roi      = "RoiForTauIso" 
+      self._etaHalfWidth   = 0.4
+      self._phiHalfWidth   = 0.4
+      self._doTRT          = True
+      self._adaptiveVertex = True
+      self._addSingleTrackVertices = True
+      self._vertex         = "HLT_IDVertex_Tau"
 
-class _Tracking_muonIso( _Settings ):
-   def __init__( self ):
-      _Settings.__init__(self)
-      self._etaHalfWidth        = 0.35
-      self._phiHalfWidth        = 0.35
-      self._doTRT               = False
+   def tracks_IDTrig(self):
+      if self._doRecord:
+         return recordable('HLT_IDTrack_Tau_IDTrig')
+      else:
+         return 'HLT_IDTrack_Tau_IDTrig'
+
+     
 
-class _Tracking_bjet( _Settings ):
+class _ConfigSettings_bjet( _ConfigSettingsBase ):
    def __init__( self ):
-      _Settings.__init__(self)
+      _ConfigSettingsBase.__init__(self)
+      self._name     = "bjet"
+      self._suffix   = "Bjet"
+      self._roi      = "HLT_Roi_Bjet"
       self._etaHalfWidth    = 0.4
       self._phiHalfWidth    = 0.4
+
+
+
+class _ConfigSettings_minBias( _ConfigSettingsBase ):
+   def __init__( self ):
+      _ConfigSettingsBase.__init__(self)
+      self._name     = "minBias"
+      self._suffix   = "MinBias"
+      self._roi      = "HLT_Roi_MinBias"
+      self._doFullScan      = True
+      self._pTmin           = 0.2*GeV # TODO: double check
+      self._etaHalfWidth    = 3
+      self._phiHalfWidth    = 3.14159
+      self._doZFinder       = True
+      self._doZFinderOnly   = True
+      
+
+
+class _ConfigSettings_beamSpot( _ConfigSettingsBase ):
+   def __init__( self ):
+      _ConfigSettingsBase.__init__(self)
+      self._name     = "beamSpot"
+      self._suffix   = "BeamSpot"
+      self._roi      = "HLT_Roi_FS" 
+      self._doFullScan      = True
+      self._doZFinder       = True
+      self._DoubletDR_Max   = 200
+      self._SeedRadBinWidth = 10
+      self._etaHalfWidth    = 3
+      self._phiHalfWidth    = 3.14159
       self._doTRT           = False
+      self._doSeedRedundancyCheck = True
+      self._doRecord        = False
+
 
-class _Tracking_fullScan( _Settings ):
+class _ConfigSettings_fullScan( _ConfigSettingsBase ):
    def __init__( self ):
-      _Settings.__init__(self)
+      _ConfigSettingsBase.__init__(self)
+      self._name     = "fullScan"
+      self._suffix   = "FS"
+      self._roi      = "HLT_Roi_FS"
+      self._vertex          = "HLT_IDVertex_FS" 
+      self._adaptiveVertex  = False
+      self._vertex_jet          = "HLT_IDVertex_ITFS" 
+      self._adaptiveVertex_jet  = False
+      self._doFullScan      = True
       self._etaHalfWidth    = 3.
       self._phiHalfWidth    = 3.14159
       self._doTRT           = False
-      self._dRdoubletMax    = 200
-      self._seedRadBinWidth = 10
+      self._DoubletDR_Max   = 200
+      self._SeedRadBinWidth = 10
       self._doPPS           = False
       self._minCluster      = 8
       self._roadWidth       = 5
+      
 
-class _Tracking_fullScanUTT( _Settings ):
+class _ConfigSettings_beamSpotFS( _ConfigSettingsBase ):
    def __init__( self ):
-      _Settings.__init__(self)
+      _ConfigSettingsBase.__init__(self)
+      self._name     = "fullScan"
+      self._suffix   = "FS"
+      self._roi      = "HLT_Roi_FS"
+      self._doFullScan      = True
       self._etaHalfWidth    = 3.
       self._phiHalfWidth    = 3.14159
       self._doTRT           = False
-      self._dRdoubletMax    = 200
-      self._seedRadBinWidth = 10
+      self._DoubletDR_Max   = 200
+      self._SeedRadBinWidth = 10
       self._doPPS           = False
       self._minCluster      = 8
       self._roadWidth       = 5
+      self._doRecord        = False  
+
 
-class _Tracking_minBias( _Settings ):
+class _ConfigSettings_fullScanPreLRT( _ConfigSettingsBase ):
    def __init__( self ):
-      _Settings.__init__(self)
-      self._doFullScan      = True
-      self._pTmin           = 0.2*GeV # TODO: double check
-      self._etaHalfWidth    = 3
-      self._phiHalfWidth    = 3.14159
-      self._doTRT           = False
+      _ConfigSettingsBase.__init__(self)
+      self._name     = "fullScanPreLRT"
+      self._suffix   = "FS"
+      self._roi      = "HLT_Roi_FS"
+      self._doFullScan = True
+      self._vertex     = "HLT_IDVertex_FS"
 
-class _Tracking_beamSpot( _Settings ):
+
+class _ConfigSettings_fullScanUTT( _ConfigSettingsBase ):
    def __init__( self ):
-      _Settings.__init__(self)
+      _ConfigSettingsBase.__init__(self)
+      self._name     = "fullScanUTT"
+      self._suffix   = "FS"
+      self._roi      = "HLT_Roi_FS"
       self._doFullScan      = True
-      self._doZFinder       = True
-      self._dRdoubletMax    = 200
-      self._seedRadBinWidth = 10
-      self._etaHalfWidth    = 3
+      self._etaHalfWidth    = 3.
       self._phiHalfWidth    = 3.14159
       self._doTRT           = False
+      self._DoubletDR_Max    = 200
+      self._SeedRadBinWidth = 10
+      self._doPPS           = False
+      self._minCluster      = 8
+      self._roadWidth       = 5
+      self._vertex          = "HLT_IDVertex_FS"
+
 
-class _Tracking_cosmic( _Settings ):
+class _ConfigSettings_cosmics( _ConfigSettingsBase ):
    def __init__( self ):
-      _Settings.__init__(self)
+      _ConfigSettingsBase.__init__(self)
+      self._name        = "cosmics"
+      self._suffix      = "Cosmic"
+      self._roi         = "HLT_Roi_Cosmics"
+      self._Triplet_D0Max       = 1000.0
+      self._Triplet_D0_PPS_Max  = 1000.0
+      self._TrackInitialD0Max   = 1000.
+      self._TrackZ0Max          = 1000.
       self._doFullScan      = True
-      self._d0SeedMax       = 1000.0
-      self._d0SeedPPSMax    = 1000.0
       self._etaHalfWidth    = 3
       self._phiHalfWidth    = 3.14159
-      self._doTRT           = False
 
-class _Tracking_bphysics( _Settings ):
+
+class _ConfigSettings_bmumux( _ConfigSettingsBase ):
    def __init__( self ):
-      _Settings.__init__(self)
-      self._d0SeedMax           = 10.
-      self._doSpPhiFiltering    = False
+      _ConfigSettingsBase.__init__(self)
+      self._name      = "bphysics"
+      self._suffix    = "Bmumux"
+      self._roi       = "HLT_Roi_Bmumux"
+      self._Triplet_D0Max       = 10.
+      self._DoPhiFiltering      = False
       self._etaHalfWidth        = 0.75
       self._phiHalfWidth        = 0.75
-      self._checkRedundantSeeds = True
-      self._doTRT               = False
-
-class _Tracking_electronLRT(_Settings):
-    def __init__(self):
-        _Settings.__init__(self)
-        self._usePixelSP = False
-        self._d0SeedMax = 300.
-        self._d0TrackMax = 300.
-        self._z0TrackMax = 500.
-        self._isLRT = True
-
-class _Tracking_muonLRT(_Settings):
-    def __init__(self):
-        _Settings.__init__(self)
-        self._usePixelSP = False
-        self._etaHalfWidth    = 0.2
-        self._phiHalfWidth    = 0.2
-        self._d0SeedMax = 300.
-        self._d0TrackMax = 300.
-        self._z0TrackMax = 500.
-        self._isLRT = True
-
-class _Tracking_tauLRT( _Settings ):
-   def __init__( self ):
-      _Settings.__init__(self)
-      self._pTmin           = 0.8*GeV
-      self._etaHalfWidth    = 0.4
-      self._phiHalfWidth    = 0.4
-      self._doTRT               = True
-      self._usePixelSP = False
-      self._d0SeedMax = 300.
-      self._d0TrackMax = 300.
-      self._z0TrackMax = 500.
-      self._isLRT = True
-
+      self._doSeedRedundancyCheck = True
+
+
+class _ConfigSettings_electronLRT( _ConfigSettingsBase ):
+   def __init__( self ):
+      _ConfigSettingsBase.__init__(self)
+      self._name       = "electronLRT"
+      self._suffix     = "ElectronLRT"
+      self._roi        = "HLT_Roi_Electron"
+      self._UsePixelSpacePoints = False
+      self._Triplet_D0Max       = 300.
+      self._TrackInitialD0Max   = 300.
+      self._TrackZ0Max          = 500.
+      self._isLRT               = True
+
+
+class _ConfigSettings_muonLRT( _ConfigSettingsBase ):
+   def __init__( self ):
+      _ConfigSettingsBase.__init__(self)
+      self._name       = "muonLRT"
+      self._suffix     = "MuonLRT"
+      self._roi        = "HLT_Roi_Muon"
+      self._UsePixelSpacePoints = False
+      self._etaHalfWidth        = 0.2
+      self._phiHalfWidth        = 0.2
+      self._Triplet_D0Max       = 300.
+      self._TrackInitialD0Max   = 300.
+      self._TrackZ0Max          = 500.
+      self._isLRT               = True
+      
 
-class _Tracking_fullScanLRT( _Settings ):
-   def __init__( self ):
-      _Settings.__init__(self)
+class _ConfigSettings_tauLRT( _ConfigSettingsBase ):
+   def __init__( self ):
+      _ConfigSettingsBase.__init__(self)
+      self._name     = "tauLRT"
+      self._suffix   = "TauLRT"
+      self._roi      = "HLT_Roi_TauCore"
+      self._pTmin        = 0.8*GeV
+      self._etaHalfWidth = 0.4
+      self._phiHalfWidth = 0.4
+      self._doTRT        = True
+      self._UsePixelSpacePoints = False
+      self._Triplet_D0Max       = 300.
+      self._TrackInitialD0Max   = 300.
+      self._TrackZ0Max          = 500.
+      self._isLRT               = True
+
+
+class _ConfigSettings_bjetLRT( _ConfigSettingsBase ):
+   def __init__( self ):
+      _ConfigSettingsBase.__init__(self)
+      self._name     = "bjetLRT"
+      self._suffix   = "BjetLRT"
+      self._roi      = "HLT_Roi_Bjet"
+      self._etaHalfWidth = 0.4
+      self._phiHalfWidth = 0.4
+      self._UsePixelSpacePoints = False
+      self._Triplet_D0Max       = 300.
+      self._TrackInitialD0Max   = 300.
+      self._TrackZ0Max          = 500.
+      self._isLRT               = True
+
+
+class _ConfigSettings_fullScanLRT( _ConfigSettingsBase ):
+   def __init__( self ):
+      _ConfigSettingsBase.__init__(self)
+      self._name     = "fullScanLRT"
+      self._suffix   = "FSLRT"
+      self._roi      = "HLT_Roi_FS"
+      self._doFullScan      = True
       self._etaHalfWidth    = 3.
       self._phiHalfWidth    = 3.14159
       self._doTRT           = False
-      self._checkRedundantSeeds = True
-      self._usePixelSP = False
-      self._d0SeedMax = 300.
-      self._d0TrackMax = 300.
-      self._z0TrackMax = 500.
-      self._d0SeedPPSMax = 300.
-      self._doFullScan = True
-      self._isLRT = True
-
-class _Tracking_bjetLRT(_Settings):
-    def __init__(self):
-      _Settings.__init__(self)
-      self._etaHalfWidth    = 0.4
-      self._phiHalfWidth    = 0.4
-      self._doTRT           = False
-      self._usePixelSP = False
-      self._d0SeedMax = 300.
-      self._d0TrackMax = 300.
-      self._z0TrackMax = 500.
-      self._isLRT = True
-
-#Map to retrieve available configurations of Tracking
-_TrackingConfigSettings = {
-    "electron"     : _Tracking_electron(),
-
-    #Muon signatures
-    "muon"         : _Tracking_muon(),
-    "muonIso"      : _Tracking_muonIso(),
-    "muonCore"     : _Tracking_muonCore(),
-
-    "tau"          : _Tracking_tau(),
-    "tauCore"      : _Tracking_tauCore(),
-    "tauIso"       : _Tracking_tauIso(),
-
-    "bjet"         : _Tracking_bjet(),
-    "fullScan"     : _Tracking_fullScan(),
-    "fullScanUTT"  : _Tracking_fullScanUTT(),
-
-    "minBias400"   : _Tracking_minBias(),
-    "beamSpot"     : _Tracking_beamSpot(),
-    "cosmics"      : _Tracking_cosmic(),
-    "bphysics"     : _Tracking_bphysics(),
-
-    "electronLRT"  : _Tracking_electronLRT(),
-    "muonLRT"      : _Tracking_muonLRT(),
-    "tauLRT"       : _Tracking_tauLRT(),
-    "bjetLRT"      : _Tracking_bjetLRT(),
-    "fullScanLRT"  : _Tracking_fullScanLRT(),
-}
-
-
-#Function that returns specific configuration of tracking cuts and flags
-def getInDetTrigTrackingConfig( name ) :
-   if name in _TrackingConfigSettings :
-      return _TrackingConfigSettings[name]
-   else :
-        #       don't just return None, and do nothing as this
-        #       will just hide the error until people try to use
-        #       the bad slice configuration
-      raise Exception( "getInDetTrigTrackingConfig() called with incorrect non existent slice: "+name )
-      return None
-
-
+      self._doSeedRedundancyCheck = True
+      self._UsePixelSpacePoints   = False
+      self._Triplet_D0Max         = 300.
+      self._TrackInitialD0Max     = 300.
+      self._TrackZ0Max            = 500.
+      self._Triplet_D0_PPS_Max    = 300.
+      self._isLRT                 = True
 
 
-#     Full Signature Configuration of ID Trig
-#-----------------------------------------------------------------------------
-
-class _FastTracking():
-   def __init__( self, signatureType, nameSuffix ) :
-      self._signatureType = signatureType #Steer which cuts,flags to load
-      self._config        = getInDetTrigTrackingConfig( signatureType )
-      self._suffix        = nameSuffix
-
-   #Retrieve trackCollection key
-   @makeRecordable #Allows to record collection if doRecord = True
-   def trkTracksFTF(self, doRecord=False):
-      return 'HLT_IDTrkTrack_{}_FTF'.format( self._suffix )
-
-   #Retrieve TrackParticle key
-   @makeRecordable #Allows to record collection if doRecord = True
-   def tracksFTF(self, doRecord = True):
-      return 'HLT_IDTrack_{}_FTF'.format( self._suffix )
-
-   #Retrieve TrackParticle key
-   @property
-   def setting(self):
-      return self._config
-
-   def isSignature(self, signature):
-      return (self._signatureType == signature)
-
-   @property
-   def signatureType(self):
-      return self._signatureType
-
-class _PrecisionTracking():
-   def __init__( self, signatureType, nameSuffix ) :
-      self._signatureType = signatureType #Steer which cuts,flags to load
-      self._config        = getInDetTrigTrackingConfig( signatureType ) #This might not be needed in the future as most likely the setting will be the same between FT and PT
-      self._suffix        = nameSuffix
-
-   #Retrieve final precision trackCollection
-   @makeRecordable
-   def trkTracksPT(self, doRecord = False):
-      return 'HLT_IDTrkTrack_{}_IDTrig'.format( self._suffix )
-
-   #Retrieve final TrackParticle key
-   @makeRecordable
-   def tracksPT(self, doRecord = False):
-      return 'HLT_IDTrack_{}_IDTrig'.format( self._suffix )
 
-   #Retrieve trackCollection from Ambiguity solving stage
-   #AS might not be very descriptive, should we switch to AmbiSol at least?
-   @makeRecordable
-   def trkTracksAS(self, doRecord = False):
-      return 'HLT_IDTrkTrack_{}_AmbSol'.format( self._suffix )
 
-   #Retrieve trackCollection from TRT track extension stage
-   #TE might not be very descriptive, should we switch to TRTExt at least?
-   @makeRecordable
-   def trkTracksTE(self, doRecord = False):
-      return 'HLT_IDTrkTrack_{}_TRTExt'.format( self._suffix )
 
-   #Retrieve TrackParticle key
-   @property
-   def setting(self):
-      return self._config
-
-   def isSignature(self, signature):
-      return (self._signatureType == signature)
-
-class _EFIDTracking():
-   def __init__( self, signatureType, nameSuffix ) :
-      self._signatureType = signatureType #Steer which cuts,flags to load
-      self._config        = getInDetTrigTrackingConfig( signatureType )
-      self._suffix        = nameSuffix
-
-   #Retrieve trackCollection key
-   @makeRecordable #Allows to record collection if doRecord = True
-   def trkTracksEFID(self, doRecord=False):
-      return 'HLT_IDTrkTrack_{}_EFID'.format( self._suffix )
-
-   #Retrieve TrackParticle key
-   @makeRecordable #Allows to record collection if doRecord = True
-   def tracksEFID(self, doRecord = True):
-      return 'HLT_IDTrack_{}_EFID'.format( self._suffix )
-
-   @property
-   def setting(self):
-      return self._config
-
-   def isSignature(self, signature):
-      return (self._signatureType == signature)
+_ConfigSettings = {
+   "electron"     : _ConfigSettings_electron(),
+   "Electron"     : _ConfigSettings_electron(),
 
-   @property
-   def signatureType(self):
-      return self._signatureType
+    "muon"        : _ConfigSettings_muon(),
+    "muonIso"     : _ConfigSettings_muonIso(),
+    "muonCore"    : _ConfigSettings_muon(),
+    "muonFS"      : _ConfigSettings_muon(),
+    "muonLate"    : _ConfigSettings_muon(),
 
-class _GlobalSettings() :
-   def __init__( self ) :
-      self._name      = "" #To be appended to alg names
-      self._roi       = ""
-      self._configFT  =  None #Fast tracking configuration
-      self._configPT  =  None #Precision tracking configuration
-      self._doRecord  = False #Allow recording of track collections
-      self._isLRT     = False
-      self._adaptiveVertex = False
-      self._vertex    = None
-      self._addSingleTrackVertices = False
-
-
-   @property
-   def FT(self):
-      return self._configFT
-
-   @property
-   def PT(self):
-      return self._configPT
-
-   @property
-   def RoI(self):
-      return self._roi
-
-   @property
-   def name(self):
-      return self._name
-
-   @property
-   def isRecordable(self):
-      return self._doRecord
-
-   @property
-   def isLRT(self):
-       return self._isLRT
-
-   @property
-   def adaptiveVertex(self):
-       return self._adaptiveVertex
-
-   @property
-   def vertex(self):
-       return self._vertex
-
-   @property
-   def addSingleTrackVertices(self):
-       return self._addSingleTrackVertices
-
-
-
-class _Settings_electron( _GlobalSettings ):
-   def __init__( self ):
-      _GlobalSettings.__init__(self)
-      self._name      = "electron" #To be appended to alg names
-      self._roi       = "HLT_Roi_Electron" #FIXME ATR-22755
-      self._configFT  = _FastTracking(      signatureType = 'electron', nameSuffix = 'Electron' )
-      self._configPT  = _PrecisionTracking( signatureType = 'electron', nameSuffix = 'Electron' )
-      self._doRecord  = True #Allow recording of track collections
+    "Muon"        : _ConfigSettings_muon(),
+    "MuonIso"     : _ConfigSettings_muonIso(),
+    "MuonCore"    : _ConfigSettings_muon(),
+    "MuonFS"      : _ConfigSettings_muon(),
+    "MuonLate"    : _ConfigSettings_muon(),
 
+    "tau"         : _ConfigSettings_tau(),
+    "tauTau"      : _ConfigSettings_tau(),
+    "tauCore"     : _ConfigSettings_tauCore(),
+    "tauIso"      : _ConfigSettings_tauIso(),
+    "tauIsoBDT"   : _ConfigSettings_tauIso(),
 
-class _Settings_muon( _GlobalSettings ):
-   def __init__( self ):
-      _GlobalSettings.__init__(self)
-      self._name      = "muon" #To be appended to alg names
-      self._roi       = "HLT_Roi_Muon" #FIXME ATR-22755
-      self._configFT  = _FastTracking(      signatureType = 'muon', nameSuffix = 'Muon' )
-      self._configPT  = _PrecisionTracking( signatureType = 'muon', nameSuffix = 'Muon' )
-      self._doRecord  = True #Allow recording of track collections
-
-class _Settings_muonIso( _GlobalSettings ):
-   def __init__( self ):
-      _GlobalSettings.__init__(self)
-      self._name      = "muonIso" #To be appended to alg names
-      self._roi       = "HLT_Roi_MuonIso" #FIXME ATR-22755
-      self._configFT  = _FastTracking(      signatureType = 'muonIso', nameSuffix = 'MuonIso' )
-      self._configPT  = _PrecisionTracking( signatureType = 'muonIso', nameSuffix = 'MuonIso' )
-      self._doRecord  = True #Allow recording of track collections
-
-class _Settings_muonLate( _GlobalSettings ):
-   def __init__( self ):
-      _GlobalSettings.__init__(self)
-      self._name      = "muonLate" #To be appended to alg names
-      self._roi       = "HLT_Roi_Muon"  #FIXME ATR-22755
-      self._configFT  = _FastTracking(      signatureType = 'muon', nameSuffix = 'MuonLate' )
-      self._configPT  = _PrecisionTracking( signatureType = 'muon', nameSuffix = 'MuonLate' )
-      self._doRecord  = True #Allow recording of track collections
-
-class _Settings_muonFS( _GlobalSettings ):
-   def __init__( self ):
-      _GlobalSettings.__init__(self)
-      self._name     = "muonFS" #To be appended to alg names
-      self._roi      = "HLT_Roi_Muon"  #FIXME ATR-22755
-      self._configFT =   _FastTracking(      signatureType = 'muon', nameSuffix = 'MuonFS' )
-      self._configPT =   _PrecisionTracking( signatureType = 'muon', nameSuffix = 'MuonFS' )
-      self._doRecord = True #Allow recording of track collections
-
-class _Settings_muonCore( _GlobalSettings ):
-   def __init__( self ):
-      _GlobalSettings.__init__(self)
-      self._name     = "muonCore" #To be appended to alg names
-      self._roi      = "HLT_Roi_Muon" #FIXME ATR-22755
-      self._configFT = _FastTracking(      signatureType = 'muonCore', nameSuffix = 'MuonCore' )
-      self._configPT = _PrecisionTracking( signatureType = 'muonCore', nameSuffix = 'MuonCore' )
-      self._doRecord = True #Allow recording of track collections
-
-class _Settings_tauTau( _GlobalSettings ):
-   def __init__( self ):
-      _GlobalSettings.__init__(self)
-      self._name     = "tauTau" #To be appended to alg names
-      self._roi      = "HLT_Roi_Tau" #FIXME ATR-22755
-      self._configFT =  _FastTracking(      signatureType = 'tau', nameSuffix = 'Tau' )
-      #There should not be a need for tauCore PT!
-      self._configPT =   _PrecisionTracking( signatureType = 'tau', nameSuffix = 'Tau' )
-      self._doRecord = True #Allow recording of track collections
-      self._vertex   = "HLT_IDVertex_Tau"
-      self._adaptiveVertexing = True
-      
-class _Settings_tauCore( _GlobalSettings ):
-   def __init__( self ):
-      _GlobalSettings.__init__(self)
-      self._name     = "tauCore" #To be appended to alg names
-      self._roi      = "HLT_Roi_TauCore" #FIXME ATR-22755
-      self._configFT =  _FastTracking(      signatureType = 'tauCore', nameSuffix = 'TauCore' )
-      #There should not be a need for tauCore PT!
-      #self._configPT =   #_PrecisionTracking( signatureType = 'tauCore', nameSuffix = 'TauCore' )
-      self._doRecord = True #Allow recording of track collections
-
-class _Settings_tauIso( _GlobalSettings ):
-   def __init__( self ):
-      _GlobalSettings.__init__(self)
-      self._name     = "tauIso" #To be appended to alg names
-      self._roi      = "RoiForTauIso" #FIXME ATR-22755
-      self._configFT = _FastTracking(      signatureType = 'tauIso', nameSuffix = 'TauIso' )
-      self._configPT = _PrecisionTracking( signatureType = 'tauIso', nameSuffix = 'Tau' ) #Final collection is being renamed to just tau apparently...
-      self._doRecord = True #Allow recording of track collections
-      self._vertex  = "HLT_IDVertex_Tau"
-      self._adaptiveVertex = True
-      self._addSingleTrackVertices = True
+    "bjet"        : _ConfigSettings_bjet(),
+    "Bjet"        : _ConfigSettings_bjet(),
 
-#This might be redundant but lets keep them for the time being...
-class _Settings_tauIsoBDT( _GlobalSettings ):
-   def __init__( self ):
-      _GlobalSettings.__init__(self)
-      self._name     = "tauIsoBDT" #To be appended to alg names
-      self._roi      = "HLT_Roi_TauIsoBDT" #FIXME ATR-22755
-      self._configFT = _FastTracking(      signatureType = 'tauIso', nameSuffix = 'TauIso' ) #
-      self._configPT = _PrecisionTracking( signatureType = 'tauIso',    nameSuffix = 'Tau' ) #Final collection is being renamed to just tau apparently...
-      self._doRecord = False #FIXME: Do I need to record these?
-      self._vertex   = "HLT_IDVertex_Tau"
-      self._adaptiveVertexing = True
+    "jet"         : _ConfigSettings_fullScan(),
+    #    "jet"         : _ConfigSettings_bjet(),
+    "fullScan"    : _ConfigSettings_fullScan(),
+    "FS"          : _ConfigSettings_fullScan(),
 
+    "beamSpot"    : _ConfigSettings_beamSpot(),
+    "BeamSpot"    : _ConfigSettings_beamSpot(),
+    "beamSpotFS"  : _ConfigSettings_beamSpotFS(),
 
-class _Settings_bjet( _GlobalSettings ):
-   def __init__( self ):
-      _GlobalSettings.__init__(self)
-      self._name     = "bjet" #To be appended to alg names
-      self._roi      = "HLT_Roi_Bjet" #FIXME ATR-22755
-      self._configFT = _FastTracking(      signatureType = 'bjet',   nameSuffix = 'Bjet' )
-      self._configPT = _PrecisionTracking( signatureType = 'bjet',   nameSuffix = 'Bjet' )
-      self._doRecord = True
-
-class _Settings_jet( _GlobalSettings ):
-   def __init__( self ):
-      _GlobalSettings.__init__(self)
-      self._name     = "jet" #To be appended to alg names
-      self._roi      = "HLT_Roi_jetFS" #FIXME ATR-22755
-      self._configFT = _FastTracking(      signatureType = 'fullScan',  nameSuffix = 'FS' ) #
-      self._configPT = _PrecisionTracking( signatureType = 'fullScan',  nameSuffix = 'FS' ) #Final collection is being renamed to just tau apparently...
-      self._doRecord = True
-      self._vertex   = "HLT_IDVertex_FS"
-      self._adaptiveVertex = False
-
-class _Settings_minBias( _GlobalSettings ):
-   def __init__( self ):
-      _GlobalSettings.__init__(self)
-      self._name     = "minBias" #To be appended to alg names
-      self._roi      = "HLT_Roi_MinBias" #FIXME ATR-22755
-      self._configFT = _FastTracking(      signatureType = 'minBias400',  nameSuffix = 'MinBias' ) #
-      self._configPT = _PrecisionTracking( signatureType = 'minBias400',  nameSuffix = 'MinBias' ) #Final collection is being renamed to just tau apparently...
-      self._doRecord = True
-
-class _Settings_beamSpot( _GlobalSettings ):
-   def __init__( self ):
-      _GlobalSettings.__init__(self)
-      self._name     = "beamSpot" #To be appended to alg names
-      self._roi      = "HLT_Roi_FS" #FIXME ATR-22755
-      self._configFT = _FastTracking(      signatureType = 'beamSpot',  nameSuffix = 'BeamSpot' ) #
-      #PT probably isn't necessary for BS
-      #self._configPT =   _PrecisionTracking( signatureType = 'beamSpot',  nameSuffix = 'BeamSpot' ) #Final collection is being renamed to just tau apparently...
-      self._doRecord = False
-
-class _Settings_fullScan( _GlobalSettings ):
-   def __init__( self ):
-      _GlobalSettings.__init__(self)
-      self._name     = "fullScan" #To be appended to alg names
-      self._roi      = "HLT_Roi_FS" #FIXME ATR-22755
-      self._configFT = _FastTracking(   signatureType = 'fullScan',  nameSuffix = 'FS' ) #
-      self._doRecord = False
-
-class _Settings_fullScanCustomName( _GlobalSettings ):
-   def __init__( self, name ):
-      _GlobalSettings.__init__(self)
-      self._name     = name #To be appended to alg names
-      self._roi      = "HLT_Roi_FS" #FIXME: possibly different!
-      self._configFT = _FastTracking(   signatureType = 'fullScan',  nameSuffix = 'FS' ) #
-      self._doRecord = False
-
-class _Settings_fullScanPreLRT( _GlobalSettings ):
-   def __init__( self ):
-      _GlobalSettings.__init__(self)
-      self._name     = "fullScanPreLRT" #To be appended to alg names
-      self._roi      = "HLT_Roi_FS" #FIXME: possibly different!
-      self._configFT = _FastTracking(   signatureType = 'fullScan',  nameSuffix = 'FS' ) #
-      self._doRecord = False
+    "cosmics"     : _ConfigSettings_cosmics(),
+    "bmumux"      : _ConfigSettings_bmumux(),
+    "bphysics"    : _ConfigSettings_bmumux(),
+    "minBias"     : _ConfigSettings_minBias(),
 
+    "electronLRT"    : _ConfigSettings_electronLRT(),
+    "muonLRT"        : _ConfigSettings_muonLRT(),
+    "tauLRT"         : _ConfigSettings_tauLRT(),
+    "bjetLRT"        : _ConfigSettings_bjetLRT(),
+    "fullScanLRT"    : _ConfigSettings_fullScanLRT(),
+    "fullScanPreLRT" : _ConfigSettings_fullScanPreLRT() }
 
-class _Settings_fullScanUTT( _GlobalSettings ):
-   def __init__( self ):
-      _GlobalSettings.__init__(self)
-      self._name     = "fullScanUTT" #To be appended to alg names
-      self._roi      = "HLT_Roi_FS" #FIXME: possibly different!
-      self._configFT = _FastTracking(   signatureType = 'fullScanUTT',  nameSuffix = 'FS' ) #
-      self._doRecord = False
+   
 
-class _Settings_cosmics( _GlobalSettings ):
-   def __init__( self ):
-      _GlobalSettings.__init__(self)
-      self._name        = "cosmics" #To be appended to alg names
-      self._roi         = "HLT_Roi_Cosmics" #FIXME ATR-22755
-      self._configFT    = _FastTracking(      signatureType = 'cosmics',  nameSuffix = 'Cosmic' )
-      self._configPT    = _PrecisionTracking( signatureType = 'cosmics',  nameSuffix = 'Cosmic' )
-      self._configEFID  = _EFIDTracking(      signatureType = 'cosmics',  nameSuffix = 'Cosmic' )
-      self._doRecord    = True
-
-class _Settings_bmumux( _GlobalSettings ):
-   def __init__( self ):
-      _GlobalSettings.__init__(self)
-      self._name      = "bmumux" #To be appended to alg names
-      self._roi       = "HLT_Roi_Bmumux" #FIXME ATR-22755
-      self._configFT  = _FastTracking(      signatureType = 'bphysics', nameSuffix = 'Bmumux' )
-      self._configPT  = _PrecisionTracking( signatureType = 'bphysics', nameSuffix = 'Bmumux' )
-      self._doRecord  = True #Allow recording of track collections
-
-class _Settings_electronLRT( _GlobalSettings ):
-   def __init__( self ):
-      _GlobalSettings.__init__(self)
-      self._name      = "electronLRT" #To be appended to alg names
-      self._roi       = "HLT_Roi_Electron"
-      self._configFT  = _FastTracking(      signatureType = 'electronLRT', nameSuffix = 'ElectronLRT' )
-      self._configPT  = _PrecisionTracking( signatureType = 'electronLRT', nameSuffix = 'Electron' )
-      self._doRecord  = True #Allow recording of track collections
-      self._isLRT = True
-
-class _Settings_muonLRT( _GlobalSettings ):
-   def __init__( self ):
-      _GlobalSettings.__init__(self)
-      self._name      = "muonLRT" #To be appended to alg names
-      self._roi       = "HLT_Roi_Muon" #FIXME ATR-22755
-      self._configFT  = _FastTracking(      signatureType = 'muonLRT', nameSuffix = 'MuonLRT' )
-      self._configPT  = _PrecisionTracking( signatureType = 'muonLRT', nameSuffix = 'Muon' )
-      self._doRecord  = True #Allow recording of track collections
-      self._isLRT      = True
-
-class _Settings_tauLRT( _GlobalSettings ):
-   def __init__( self ):
-      _GlobalSettings.__init__(self)
-      self._name     = "tauLRT" #To be appended to alg names
-      self._roi      = "HLT_Roi_TauCore" #FIXME ATR-22755
-      self._configFT =  _FastTracking(      signatureType = 'tauLRT', nameSuffix = 'TauLRT' )
-      #There should not be a need for tauCore PT!
-      #self._configPT =   #_PrecisionTracking( signatureType = 'tauCore', nameSuffix = 'TauCore' )
-      self._doRecord = True #Allow recording of track collections
-      self._isLRT = True
-
-class _Settings_bjetLRT( _GlobalSettings ):
-   def __init__( self ):
-      _GlobalSettings.__init__(self)
-      self._name     = "bjetLRT" #To be appended to alg names
-      self._roi      = "HLT_Roi_Bjet" #FIXME ATR-22755
-      self._configFT = _FastTracking(      signatureType = 'bjetLRT',   nameSuffix = 'BjetLRT' )
-      self._configPT = _PrecisionTracking( signatureType = 'bjetLRT',   nameSuffix = 'BjetLRT' )
-      self._isLRT = True
-      self._doRecord = True
-
-class _Settings_fullScanLRT( _GlobalSettings ):
-   def __init__( self ):
-      _GlobalSettings.__init__(self)
-      self._name     = "fullScanLRT" #To be appended to alg names
-      self._roi      = "HLT_Roi_FS" #FIXME ATR-22755
-      self._configFT = _FastTracking(   signatureType = 'fullScanLRT',  nameSuffix = 'FSLRT' ) #
-      self._doRecord = True #record track collections
-      self._isLRT    = True
 
-_ConfigSettings = {
-   "electron"     : _Settings_electron(),
-
-    "muon"        : _Settings_muon(),
-    "muonIso"     : _Settings_muonIso(),
-    "muonCore"    : _Settings_muonCore(),
-    "muonFS"      : _Settings_muonFS(),
-    "muonLate"    : _Settings_muonLate(),
-
-    "tauTau"      : _Settings_tauTau(),
-    "tauCore"     : _Settings_tauCore(),
-    "tauIso"      : _Settings_tauIso(),
-    "tauIsoBDT"   : _Settings_tauIsoBDT(),
-
-    "bjet"        : _Settings_bjet(),
-    "jet"         : _Settings_jet(),
-
-    "fullScan"    : _Settings_fullScan(),
-    "fullScanPreLRT": _Settings_fullScanPreLRT(),
-
-    "beamSpot"    : _Settings_beamSpot(),
-    "beamSpotFS"  : _Settings_fullScanCustomName("beamSpotFS"),
-    "cosmics"     : _Settings_cosmics(),
-    "bmumux"      : _Settings_bmumux(),
-    "minBias"     : _Settings_minBias(),
-
-    "electronLRT" : _Settings_electronLRT(),
-    "muonLRT"     : _Settings_muonLRT(),
-    "tauLRT"      : _Settings_tauLRT(),
-    "bjetLRT"     : _Settings_bjetLRT(),
-    "fullScanLRT" : _Settings_fullScanLRT(),
-                  }
-
-#FTF Remap which eventually will be dropped once naming is aligned with signature settings
-remap  = {
-   "FS"       : "fullScan",
-   "BeamSpot" : "beamSpot",
-}
-
-def remap_type( signature ):
-   if signature in remap:
-      return remap[signature]
-   else:
-      return signature
-
-
-
-#Function that returns specific signature setting/configuration
-#Rename to InDetTrigSignatureConfig ?
-def getInDetTrigConfig( name ):
-#Most of the remapping has been removed, should we also replace FS & BeamSpot?
-   rName = remap_type( name )
 
-   if rName in _ConfigSettings :
-      return _ConfigSettings[rName]
-   else :
-    #       don't just return None, and do nothing as this
-    #       will just hide the error until people try to use
-    #       the bad slice configuration
-      raise Exception( "getInDetTrigConfig() called with incorrect non existent slice: "+rName )
-      return None
diff --git a/Trigger/TrigTools/TrigInDetConfig/python/ConfigSettingsBase.py b/Trigger/TrigTools/TrigInDetConfig/python/ConfigSettingsBase.py
new file mode 100644
index 0000000000000000000000000000000000000000..4613fe24e886d599da4eeb8e2a53bd8f836e96b4
--- /dev/null
+++ b/Trigger/TrigTools/TrigInDetConfig/python/ConfigSettingsBase.py
@@ -0,0 +1,264 @@
+#  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
+
+__author__ = "Mark Sutton, Matous Vozak"
+__doc__    = "ConfigSettingsBase"
+
+
+
+
+from TrigEDMConfig.TriggerEDMRun3 import recordable
+from AthenaCommon.SystemOfUnits import GeV
+
+class _ConfigSettingsBase() :
+   def __init__( self ) :
+     # default values
+      self._input_name          = None
+      self._name                = None
+      self._suffix              = None
+      self._pTmin               = 1.*GeV
+      self._TripletDoPPS        = True
+      self._Triplet_D0Max       = 4.0
+      self._Triplet_D0_PPS_Max  = 1.7
+      self._DoPhiFiltering      = True
+      self._doZFinder           = False
+      self._doZFinderOnly       = False
+      self._doResMon            = False
+      self._doCloneRemoval      = True
+      self._doSeedRedundancyCheck = False
+      self._DoubletDR_Max       = 270
+      self._SeedRadBinWidth     = 2
+      self._holeSearch_FTF      = False
+      self._etaHalfWidth        = 0.1
+      self._phiHalfWidth        = 0.1
+      self._doFullScan          = False
+      self._monPS               = 1
+      self._monPtMin            = 1*GeV
+      self._doTRT               = False #Apply TRT extension sequence after ambiguity solving
+      self._keepTrackParameters = False #Keep track parameters in conversion to TrackParticles
+      self._UsePixelSpacePoints = True
+      self._TrackInitialD0Max   = 20.0
+      self._TrackZ0Max          = 300.0
+      self._isLRT               = False
+      self._roi                 = None
+      self._isLRT               = False
+      self._doRecord            = True
+      self._adaptiveVertex      = False
+      self._vertex              = None
+      self._adaptiveVertex_jet  = False
+      self._vertex_jet          = None
+      self._addSingleTrackVertices = False
+
+   def tracks_FTF(self):
+      if self._suffix is None:
+         raise Exception( "ID Trigger configuration:  called with non existent slice: ", self._name, self._input_name  )
+      if self._doRecord: 
+         return recordable('HLT_IDTrack_{}_FTF'.format( self._suffix ))
+      else:
+         return 'HLT_IDTrack_{}_FTF'.format( self._suffix )
+
+   def tracks_IDTrig(self):
+      if self._doRecord:
+         return recordable('HLT_IDTrack_{}_IDTrig'.format( self._suffix ))
+      else:
+         return 'HLT_IDTrack_{}_IDTrig'.format( self._suffix )
+
+
+   def trkTracks_FTF(self):
+         return 'HLT_IDTrkTrack_{}_FTF'.format( self._suffix )
+
+   def trkTracks_IDTrig(self):
+         return 'HLT_IDTrkTrack_{}_IDTrig'.format( self._suffix )
+
+   def tracks_EFID(self):
+      if self._doRecord:
+         return recordable('HLT_IDTrack_{}_EFID'.format( self._suffix ))
+      else:
+         return 'HLT_IDTrack_{}_EFID'.format( self._suffix )
+
+   def trkTracks_EFID(self):
+      return 'HLT_IDTrkTrack_{}_EFID'.format( self._suffix )
+
+
+   @property
+   def name(self):
+      return self._name
+
+   @property
+   def input_name(self):
+      return self._input_name
+
+   @property
+   def suffix(self):
+      return self._suffix
+
+   @property
+   def pTmin(self):
+      return self._pTmin
+
+   @property
+   def TripletDoPPS(self):
+      return self._TripletDoPPS
+
+   @property
+   def Triplet_D0Max(self):
+      return self._Triplet_D0Max
+
+   @property
+   def Triplet_D0_PPS_Max(self):
+      return self._Triplet_D0_PPS_Max
+
+   @property
+   def DoPhiFiltering(self):
+      return self._DoPhiFiltering
+
+   @property
+   def doZFinder(self):
+      return self._doZFinder
+
+   @property
+   def doZFinderOnly(self):
+      return self._doZFinderOnly
+
+   @property
+   def doResMon(self):
+      return self._doResMon
+
+   @property
+   def doCloneRemoval(self):
+      return self._doCloneRemoval
+
+   @property
+   def doSeedRedundancyCheck(self):
+      return self._doSeedRedundancyCheck
+
+   @property
+   def DoubletDR_Max(self):
+      return self._DoubletDR_Max
+
+   @property
+   def SeedRadBinWidth(self):
+      return self._SeedRadBinWidth
+
+   @property
+   def etaHalfWidth(self):
+      return self._etaHalfWidth
+
+   @property
+   def phiHalfWidth(self):
+      return self._phiHalfWidth
+
+   @property
+   def doFullScan(self):
+      return self._doFullScan
+
+   @property
+   def monPS(self):
+      return self._monPS
+
+   @property
+   def monPtMin(self):
+      return self._monPtMin
+
+   @property
+   def doTRT(self):
+      return self._doTRT
+
+   @property
+   def keepTrackParameters(self):
+      return self._keepTrackParameters
+
+   @property
+   def UsePixelSpacePoints(self):
+       return self._UsePixelSpacePoints
+
+   @property
+   def TrackInitialD0Max(self):
+       return self._TrackInitialD0Max
+
+   @property
+   def holeSearch_FTF(self):
+       return self._holeSearch_FTF
+
+   @property
+   def TrackZ0Max(self):
+       return self._TrackZ0Max
+
+   @property
+   def isLRT(self):
+       return self._isLRT
+
+   @property
+   def roi(self):
+      return self._roi
+
+   @property
+   def isRecordable(self):
+      return self._doRecord
+
+   @property
+   def doRecord(self):
+      return self._doRecord
+
+   @property
+   def vertex(self):
+      if self._vertex is None:
+         raise Exception( "ID Trigger configuration: vertex not defined for slice: ", self._name, self._input_name  )
+      if self._doRecord: 
+         return recordable(self._vertex)
+      else:
+         return self._vertex
+
+   @property
+   def vertex_jet(self):
+      if self._vertex_jet is None:
+         raise Exception( "ID Trigger configuration: vertex_jet not defined for slice: ", self._name, self._input_name  )
+      if self._doRecord: 
+         return recordable(self._vertex_jet)
+      else:
+         return self._vertex_jet
+
+   @property
+   def adaptiveVertex(self):
+       return self._adaptiveVertex
+
+   @property
+   def addSingleTrackVertices(self):
+       return self._addSingleTrackVertices
+
+
+   def printout(self):
+      from AthenaCommon.Logging import logging
+      log = logging.getLogger("InDetTrigConfig: ")
+
+      log.info( " {} :".format( self._name ) )                               # noqa: ATL901
+      log.info( " {} :".format( self._input_name ) )                         # noqa: ATL901
+      log.info( "   pTmin                 : {}".format( self._pTmin ) )                 # noqa: ATL901
+      log.info( "   TripletDoPPS          : {}".format( self._TripletD0PPS ) )          # noqa: ATL901
+      log.info( "   Triplet_D0Max         : {}".format( self._Triplet_D0Max ) )         # noqa: ATL901
+      log.info( "   Triplet_D0_PPS_Max    : {}".format( self._Triplet_D0_PPS_Max ) )    # noqa: ATL901
+      log.info( "   doZFinder             : {}".format( self._doZFinder ) )             # noqa: ATL901
+      log.info( "   doResMon              : {}".format( self._doResMon ) )              # noqa: ATL901
+      log.info( "   DoPhiFiltering        : {}".format( self._DoPhiFiltering ) )        # noqa: ATL901
+      log.info( "   doCloneRemoval        : {}".format( self._doCloneRemoval ) )        # noqa: ATL901
+      log.info( "   doSeedRedundancyCheck : {}".format( self._doSeedRedundancyCheck ) ) # noqa: ATL901
+      log.info( "   DoubletDR_Max         : {}".format( self._DoubletDR_Max ) )         # noqa: ATL901
+      log.info( "   SeedRadBinWidth       : {}".format( self._SeedRadBinWidth ) )       # noqa: ATL901
+      log.info( "   etaHalfWidth          : {}".format( self._etaHalfWidth ) )          # noqa: ATL901
+      log.info( "   phiHalfWidth          : {}".format( self._phiHalfWidth ) )          # noqa: ATL901
+      log.info( "   doFullScan            : {}".format( self._doFullScan ) )            # noqa: ATL901
+      log.info( "   monPS                 : {}".format( self._monPS ) )                 # noqa: ATL901
+      log.info( "   monPtMin              : {}".format( self._monPtMin ) )              # noqa: ATL901
+      log.info( "   doTRT                 : {}".format( self._doTRT ) )
+      log.info( "   keepTrackParameters   : {}".format( self._keepTrackParameters ) )
+      log.info( "   UsePixelSpacePoints   : {}".format( self._UsePixelSpacePoints ) )
+      log.info( "   TrackInitialD0Max     : {}".format( self._TrackInitialD0Max ) )
+      log.info( "   TrackZ0Max            : {}".format( self._TrackZ0Max ) )
+      log.info( "   adaptiveVertex        : {}".format( self._adaptiveVertex ) )
+      log.info( "   isLRT                 : {}".format( self._isLRT ) )
+      log.info( "   doJseedHitDV          : {}".format( self._doJseedHitDV ) )
+      log.info( "   nClustersMin          : {}".format( self._nClustersMin ) )
+      log.info( "   useBremModel          : {}".format( self._useBremModel ) )
+      log.info( "   suffix                : {}".format( self._suffix ) )
+      log.info( "   record                : {}".format( self._record ) )
+      log.info( "   Roi                   : {}".format( self._Roi ) )
+      log.info( "   addSingleTrackVertices: {}".format( self._addSingleTrackVertices ) )
diff --git a/Trigger/TrigTools/TrigInDetConfig/python/EFIDTracking.py b/Trigger/TrigTools/TrigInDetConfig/python/EFIDTracking.py
index 8e5f068c0c18a5cca28681a71b3a44be1a12730c..510f73c468ec41a0be33b973a2e438ff92dac00e 100644
--- a/Trigger/TrigTools/TrigInDetConfig/python/EFIDTracking.py
+++ b/Trigger/TrigTools/TrigInDetConfig/python/EFIDTracking.py
@@ -84,7 +84,7 @@ def makeInDetPatternRecognition( config, verifier = 'IDTrigViewDataVerifier'  ):
 
       dataVerifier = None
       if verifier:
-         dataVerifier = get_idtrig_view_verifier(verifier+config.name)
+         dataVerifier = get_idtrig_view_verifier(verifier+config.input_name)
          viewAlgs.append( dataVerifier )
 
       #FIXME:  eventually adapt the cuts in the configsetting ATR-22755
@@ -153,12 +153,12 @@ def makeInDetPatternRecognition( config, verifier = 'IDTrigViewDataVerifier'  ):
 
 
          from .InDetTrigCommon import siSPSeededTrackFinder_builder, get_full_name
-         siSPSeededTrackFinder = siSPSeededTrackFinder_builder( name                  = get_full_name( 'siSPSeededTrackFinder', config.name ),
+         siSPSeededTrackFinder = siSPSeededTrackFinder_builder( name                  = get_full_name( 'siSPSeededTrackFinder', config.input_name ),
                                                                 config                = config,
-                                                                outputTracks          = config.PT.trkTracksPT(), 
+                                                                outputTracks          = config.trkTracks_IDTrig(), 
                                                                 trackingCuts          = trackingCuts,
                                                                 usePrdAssociationTool = usePrdAssociationTool,
-                                                                nameSuffix            = config.name )
+                                                                nameSuffix            = config.input_name )
 
          viewAlgs.append( siSPSeededTrackFinder )
 
@@ -170,8 +170,8 @@ def makeInDetPatternRecognition( config, verifier = 'IDTrigViewDataVerifier'  ):
       #from .InDetTrigCommon import trackParticleCnv_builder
       #trackParticleCnvAlg = trackParticleCnv_builder(name                 = get_full_name( 'xAODParticleCreatorAlg',config.name + '_EFID' ), 
       #                                               config               = config,
-      #                                               inTrackCollectionKey = config.PT.trkTracksPT(),#config.EFID.trkTracksEFID(),
-      #                                               outTrackParticlesKey = config.EFID.tracksEFID( doRecord = config.isRecordable),
+      #                                               inTrackCollectionKey = config.trkTracks_IDTrig(),
+      #                                               outTrackParticlesKey = config.tracks_EFID(),
       #                                               )
 
       #-----------------------------------------------------------------------------
@@ -180,7 +180,7 @@ def makeInDetPatternRecognition( config, verifier = 'IDTrigViewDataVerifier'  ):
       #Verifier should not be necessary when both patt. rec. and PT runs in the same view -> None
       #Also provides particle cnv alg inside
       precisionAlgs = ambiguitySolverForIDPatternRecognition(config      = config,
-                                                             inputTracks = config.PT.trkTracksPT(), 
+                                                             inputTracks = config.trkTracks_IDTrig(), 
                                                              verifier    = None )
 
 
@@ -205,18 +205,18 @@ def ambiguitySolverForIDPatternRecognition( config, inputTracks,verifier = None
    #                        Ambiguity solving stage
    from .InDetTrigCommon import ambiguityScoreAlg_builder, ambiguitySolverAlg_builder, get_full_name, get_scoremap_name
    
-   ambiguityScoreAlg = ambiguityScoreAlg_builder( name                  = get_full_name(  core = 'TrkAmbiguityScore', suffix  = config.name ),
+   ambiguityScoreAlg = ambiguityScoreAlg_builder( name                  = get_full_name(  core = 'TrkAmbiguityScore', suffix  = config.input_name ),
                                                   config                = config,
                                                   inputTrackCollection  = inputTracks,
-                                                  outputTrackScoreMap   = get_scoremap_name( config.name ), #Map of tracks and their scores
+                                                  outputTrackScoreMap   = get_scoremap_name( config.input_name ), #Map of tracks and their scores
                                                  )
    ptAlgs.append( ambiguityScoreAlg )
    
    #FIXME: these alg internally don't expect EFID setting (but FTF), have to take into consideration
-   ambiguitySolverAlg = ambiguitySolverAlg_builder( name                  = get_full_name( core = 'TrkAmbiguitySolver', suffix = config.name ),
+   ambiguitySolverAlg = ambiguitySolverAlg_builder( name                  = get_full_name( core = 'TrkAmbiguitySolver', suffix = config.input_name ),
                                                     config                = config,
-                                                    inputTrackScoreMap    = get_scoremap_name( config.name ), #Map of tracks and their scores, 
-                                                    outputTrackCollection = config.PT.trkTracksPT()+"_Amb" )  #FIXME: for now keep PT but if TRT added this will ahve to become intermediate collection
+                                                    inputTrackScoreMap    = get_scoremap_name( config.input_name ), #Map of tracks and their scores, 
+                                                    outputTrackCollection = config.trkTracks_IDTrig()+"_Amb" )  #FIXME: for now keep PT but if TRT added this will ahve to become intermediate collection
 
    ptAlgs.append( ambiguitySolverAlg )
    
@@ -225,8 +225,8 @@ def ambiguitySolverForIDPatternRecognition( config, inputTracks,verifier = None
    from .InDetTrigCommon import trackParticleCnv_builder
    trackParticleCnvAlg = trackParticleCnv_builder(name                 = get_full_name( 'xAODParticleCreatorAlg',config.name + '_IDTrig' ), 
                                                   config               = config,
-                                                  inTrackCollectionKey = config.PT.trkTracksPT()+"_Amb",
-                                                  outTrackParticlesKey = config.PT.tracksPT( doRecord = config.isRecordable),
+                                                  inTrackCollectionKey = config.trkTracks_IDTrig()+"_Amb",
+                                                  outTrackParticlesKey = config.tracks_IDTrig(),
                                                   )
    
    ptAlgs.append( trackParticleCnvAlg )
diff --git a/Trigger/TrigTools/TrigInDetConfig/python/InDetPT.py b/Trigger/TrigTools/TrigInDetConfig/python/InDetPT.py
index 3d289dbc5005dead242873969053240ec07f0ac9..5428ba12a3b09bef1a5cd00e19469edc2a3fcfcf 100644
--- a/Trigger/TrigTools/TrigInDetConfig/python/InDetPT.py
+++ b/Trigger/TrigTools/TrigInDetConfig/python/InDetPT.py
@@ -24,16 +24,16 @@ def makeInDetPrecisionTracking( config = None,
 
   #-----------------------------------------------------------------------------
   #                        Naming conventions
-  doTRT = config.PT.setting.doTRT
+  doTRT = config.doTRT
 
   algNamePrefix = "InDetTrigMT" 
   #Add suffix to the algorithms
-  signature =  "_{}".format( config.name )
+  signature =  "_{}".format( config.input_name )
 
   #Name settings for output Tracks/TrackParticles
-  outTrkTracks        = config.PT.trkTracksPT() #Final output Track collection
-  outTrackParticles   = config.PT.tracksPT( doRecord = config.isRecordable ) #Final output xAOD::TrackParticle collection
-  ambiTrackCollection = config.PT.trkTracksAS()  #Ambiguity solver tracks
+  outTrkTracks        = config.trkTracks_IDTrig() #Final output Track collection
+  outTrackParticles   = config.tracks_IDTrig() #Final output xAOD::TrackParticle collection
+  ambiTrackCollection = config.trkTracks_IDTrig()+"_Amb"  #Ambiguity solver tracks
 
   #Atm there are mainly two output track collections one from ambiguity solver stage and one from trt,
   #we want to have the output name of the track collection the same whether TRT was run or not,
@@ -49,7 +49,7 @@ def makeInDetPrecisionTracking( config = None,
   #NOTE: this seems necessary only when PT is called from a different view than FTF otherwise causes stalls
   if verifier:
     verifier.DataObjects += [( 'InDet::PixelGangedClusterAmbiguities' , 'StoreGateSvc+' + TrigPixelKeys.PixelClusterAmbiguitiesMap ),
-                             ( 'TrackCollection' , 'StoreGateSvc+' + config.FT.trkTracksFTF() )]
+                             ( 'TrackCollection' , 'StoreGateSvc+' + config.trkTracks_FTF() )]
   
   from AthenaCommon.AppMgr import ToolSvc
 
@@ -84,15 +84,15 @@ def makeInDetPrecisionTracking( config = None,
   #                        Ambiguity solving stage
   from .InDetTrigCommon import ambiguityScoreAlg_builder, ambiguitySolverAlg_builder, get_full_name,  get_scoremap_name
   ambSolvingStageAlgs = [
-                           ambiguityScoreAlg_builder( name                  = get_full_name(  core = 'TrkAmbiguityScore', suffix  = config.name ),
+                           ambiguityScoreAlg_builder( name                  = get_full_name(  core = 'TrkAmbiguityScore', suffix  = config.input_name ),
                                                       config                = config,
-                                                      inputTrackCollection  = config.FT.trkTracksFTF(),
-                                                      outputTrackScoreMap   = get_scoremap_name( config.name ), #Map of tracks and their scores
+                                                      inputTrackCollection  = config.trkTracks_FTF(),
+                                                      outputTrackScoreMap   = get_scoremap_name( config.input_name ), #Map of tracks and their scores
                                                     ),
   
-                           ambiguitySolverAlg_builder( name                  = get_full_name( core = 'TrkAmbiguitySolver', suffix = config.name ),
+                           ambiguitySolverAlg_builder( name                  = get_full_name( core = 'TrkAmbiguitySolver', suffix = config.input_name ),
                                                        config                = config,
-                                                       inputTrackScoreMap    = get_scoremap_name( config.name ), #Map of tracks and their scores, 
+                                                       inputTrackScoreMap    = get_scoremap_name( config.input_name ), #Map of tracks and their scores, 
                                                        outputTrackCollection = ambiTrackCollection  )
                         ]
    
@@ -147,15 +147,14 @@ def makeInDetPrecisionTracking( config = None,
 
             from InDetTrigRecExample.InDetTrigCommonTools import  InDetTrigTRT_DriftCircleTool
  
-            #from InDetTrigRecExample.InDetTrigSliceSettings import InDetTrigSliceSettings
             from InDetPrepRawDataFormation.InDetPrepRawDataFormationConf import InDet__TRT_RIO_Maker
             InDetTrigTRTRIOMaker = InDet__TRT_RIO_Maker( name = "%sTRTDriftCircleMaker%s"%(algNamePrefix, signature),
                                                      TRTRIOLocation = TrigTRTKeys.DriftCircles,
                                                      TRTRDOLocation = TRT_RDO_Key,
                                                      #FIXME:
-                                                     #EtaHalfWidth = InDetTrigSliceSettings[('etaHalfWidth',signature)],
-                                                     #PhiHalfWidth = InDetTrigSliceSettings[('phiHalfWidth',signature)],
-                                                     #doFullScan =   InDetTrigSliceSettings[('doFullScan',signature)],
+                                                     # EtaHalfWidth = config.etaHalfWidth
+                                                     # PhiHalfWidth = config.phiHalfWidth 
+                                                     # doFullScan   = configdoFullScan
                                                      TRT_DriftCircleTool = InDetTrigTRT_DriftCircleTool )
             InDetTrigTRTRIOMaker.isRoI_Seeded = True
             InDetTrigTRTRIOMaker.RoIs = rois
@@ -252,7 +251,7 @@ def makeInDetPrecisionTracking( config = None,
                                                                   DriftCircleCutTool = InDetTrigTRTDriftCircleCut,
                                                                   )
 
-            InDetTrigExtScoringTool.minPt = config.PT.setting.pTmin 
+            InDetTrigExtScoringTool.minPt = config.pTmin 
 
             ToolSvc += InDetTrigExtScoringTool
 
@@ -283,7 +282,7 @@ def makeInDetPrecisionTracking( config = None,
   #
   #
   from .InDetTrigCommon import trackParticleCnv_builder
-  trackParticleCnvAlg = trackParticleCnv_builder(name                 = get_full_name( 'xAODParticleCreatorAlg',config.name + '_IDTrig' ), #IDTrig suffix signifies that this is for precision tracking
+  trackParticleCnvAlg = trackParticleCnv_builder(name                 = get_full_name( 'xAODParticleCreatorAlg',config.input_name + '_IDTrig' ), #IDTrig suffix signifies that this is for precision tracking
                                                  config               = config,
                                                  inTrackCollectionKey = outTrkTracks,
                                                  outTrackParticlesKey = outTrackParticles,
diff --git a/Trigger/TrigTools/TrigInDetConfig/python/InDetSetup.py b/Trigger/TrigTools/TrigInDetConfig/python/InDetSetup.py
index 17b314032cc4d44d557eceeaefa87fd73361f3c6..5ca8c5732e54c8bb90540f0c56262f1500e00509 100644
--- a/Trigger/TrigTools/TrigInDetConfig/python/InDetSetup.py
+++ b/Trigger/TrigTools/TrigInDetConfig/python/InDetSetup.py
@@ -20,7 +20,7 @@ def makeInDetAlgs( config = None, rois = 'EMViewRoIs', doFTF = True, viewVerifie
   if config is None :
     raise ValueError('makeInDetAlgs() No config provided!')
   #Add suffix to the algorithms
-  signature =  '_{}'.format( config.name )
+  signature =  '_{}'.format( config.input_name )
 
   #Global keys/names for Trigger collections
   from .InDetTrigCollectionKeys import  TrigPixelKeys, TrigSCTKeys
@@ -45,7 +45,7 @@ def makeInDetAlgs( config = None, rois = 'EMViewRoIs', doFTF = True, viewVerifie
                                     ( 'IDCInDetBSErrContainer_Cache' , InDetCacheNames.SCTFlaggedCondCacheKey ),
                                     ( 'xAOD::EventInfo' , 'StoreGateSvc+EventInfo' ),
                                     ( 'TagInfo' , 'DetectorStore+ProcessingTags' )]
-    if doFTF and config.FT.signatureType == 'fullScanUTT' :
+    if doFTF and config.name == 'fullScanUTT' :
       ViewDataVerifier.DataObjects += [ ( 'DataVector< LVL1::RecJetRoI >' , 'StoreGateSvc+HLT_RecJETRoIs' ) ]
 
 
@@ -301,72 +301,57 @@ def makeInDetAlgs( config = None, rois = 'EMViewRoIs', doFTF = True, viewVerifie
   #FIXME have a flag for now set for True( as most cases call FTF) but potentially separate
   #do not add if the config is LRT
   if doFTF:
-      #Load signature configuration (containing cut values, names of collections, etc)
-      #from .InDetTrigConfigSettings import getInDetTrigConfig
-      #configSetting = getInDetTrigConfig( whichSignature )
+
       if config is None:
             raise ValueError('makeInDetAlgs() No signature config specified')
 
       from TrigFastTrackFinder.TrigFastTrackFinder_Config import TrigFastTrackFinderBase
       #TODO: eventually adapt IDTrigConfig also in FTF configuration (pass as additional param)
-      theFTF = TrigFastTrackFinderBase("TrigFastTrackFinder_" + signature, config.FT.signatureType,
+      theFTF = TrigFastTrackFinderBase("TrigFastTrackFinder_" + signature, config.input_name,
                                        conditionsTool = InDetSCT_ConditionsSummaryToolWithoutFlagged )
       theFTF.RoIs           = rois
-      theFTF.TracksName     = config.FT.trkTracksFTF()
-      theFTF.doCloneRemoval = config.FT.setting.doCloneRemoval
-      if config.FT.signatureType == 'fullScanUTT' :
-        theFTF.RecJetRoI      = "HLT_RecJETRoIs"
-        theFTF.HitDVSeed      = "HLT_HitDVSeed"
-        theFTF.HitDVTrk       = "HLT_HitDVTrk"
-        theFTF.HitDVSP        = "HLT_HitDVSP"
-        theFTF.dEdxTrk        = "HLT_dEdxTrk"
-        theFTF.dEdxHit        = "HLT_dEdxHit"
-
 
       viewAlgs.append(theFTF)
 
-
-      from TrigInDetConf.TrigInDetPostTools import  InDetTrigParticleCreatorToolFTF
-      from InDetTrigParticleCreation.InDetTrigParticleCreationConf import InDet__TrigTrackingxAODCnvMT
-
-
-
-      theTrackParticleCreatorAlg = InDet__TrigTrackingxAODCnvMT(name = "InDetTrigTrackParticleCreatorAlg" + signature,
-                                                                TrackName = config.FT.trkTracksFTF(),
-                                                                ParticleCreatorTool = InDetTrigParticleCreatorToolFTF)
-
-
-      #In general all FTF trackParticle collections are recordable except beamspot to save space
-      theTrackParticleCreatorAlg.TrackParticlesName = config.FT.tracksFTF( doRecord = config.isRecordable )
-
-      viewAlgs.append(theTrackParticleCreatorAlg)
-
-      if secondStageConfig is not None:
-        #have been supplied with a second stage config, create another instance of FTF
-        theFTF2 = TrigFastTrackFinderBase("TrigFastTrackFinder_" + secondStageConfig.name, secondStageConfig.FT.signatureType,
-                                          conditionsTool = InDetSCT_ConditionsSummaryToolWithoutFlagged )
-        theFTF2.RoIs           = rois
-        theFTF2.TracksName     = secondStageConfig.FT.trkTracksFTF()
-        theFTF2.inputTracksName = config.FT.trkTracksFTF()
-        theFTF2.doCloneRemoval = secondStageConfig.FT.setting.doCloneRemoval
-
-        viewAlgs.append(theFTF2)
-
+      if not config.doZFinderOnly: 
 
         from TrigInDetConf.TrigInDetPostTools import  InDetTrigParticleCreatorToolFTF
         from InDetTrigParticleCreation.InDetTrigParticleCreationConf import InDet__TrigTrackingxAODCnvMT
 
-
-
-        theTrackParticleCreatorAlg2 = InDet__TrigTrackingxAODCnvMT(name = "InDetTrigTrackParticleCreatorAlg_" + secondStageConfig.FT.signatureType,
-                                                                  TrackName = secondStageConfig.FT.trkTracksFTF(),
+        theTrackParticleCreatorAlg = InDet__TrigTrackingxAODCnvMT(name = "InDetTrigTrackParticleCreatorAlg" + signature,
+                                                                  TrackName = config.trkTracks_FTF(),
                                                                   ParticleCreatorTool = InDetTrigParticleCreatorToolFTF)
 
-
         #In general all FTF trackParticle collections are recordable except beamspot to save space
-        theTrackParticleCreatorAlg2.TrackParticlesName = secondStageConfig.FT.tracksFTF( doRecord = secondStageConfig.isRecordable )
-
-        viewAlgs.append(theTrackParticleCreatorAlg2)
+        theTrackParticleCreatorAlg.TrackParticlesName = config.tracks_FTF()
+
+        viewAlgs.append(theTrackParticleCreatorAlg)
+
+        if secondStageConfig is not None:
+          #have been supplied with a second stage config, create another instance of FTF
+          theFTF2 = TrigFastTrackFinderBase("TrigFastTrackFinder_" + secondStageConfig.input_name, secondStageConfig.input_name,
+                                            conditionsTool = InDetSCT_ConditionsSummaryToolWithoutFlagged )
+          theFTF2.RoIs           = rois
+          theFTF2.inputTracksName = config.trkTracks_FTF()
+        
+          
+          viewAlgs.append(theFTF2)
+
+          
+          from TrigInDetConf.TrigInDetPostTools import  InDetTrigParticleCreatorToolFTF
+          from InDetTrigParticleCreation.InDetTrigParticleCreationConf import InDet__TrigTrackingxAODCnvMT
+          
+          
+          
+          theTrackParticleCreatorAlg2 = InDet__TrigTrackingxAODCnvMT(name = "InDetTrigTrackParticleCreatorAlg_" + secondStageConfig.input_name,
+                                                                  TrackName = secondStageConfig.trkTracks_FTF(),
+                                                                     ParticleCreatorTool = InDetTrigParticleCreatorToolFTF)
+          
+          
+          #In general all FTF trackParticle collections are recordable except beamspot to save space
+          theTrackParticleCreatorAlg2.TrackParticlesName = secondStageConfig.tracks_FTF()
+          
+          viewAlgs.append(theTrackParticleCreatorAlg2)
 
 
   return viewAlgs, ViewDataVerifier
diff --git a/Trigger/TrigTools/TrigInDetConfig/python/InDetTrigCommon.py b/Trigger/TrigTools/TrigInDetConfig/python/InDetTrigCommon.py
index 049f1be1cb055c1fede2a65a498142a665c20bd8..985ead1cd772af5ade93e0bf160af2a51a5c4101 100644
--- a/Trigger/TrigTools/TrigInDetConfig/python/InDetTrigCommon.py
+++ b/Trigger/TrigTools/TrigInDetConfig/python/InDetTrigCommon.py
@@ -60,8 +60,8 @@ def trackParticleCreatorTool_builder(name, config):
   """Tool with functionality to convert Trk:Tracks into xAOD::TrackParticles"""
   from TrkParticleCreator.TrkParticleCreatorConf import Trk__TrackParticleCreatorTool
   return Trk__TrackParticleCreatorTool(name             = name,
-                                       KeepParameters   = config.PT.setting.keepTrackParameters,
-                                       TrackSummaryTool = trackSummaryTool_getter( config.PT.setting.doTRT ) )
+                                       KeepParameters   = config.keepTrackParameters,
+                                       TrackSummaryTool = trackSummaryTool_getter( config.doTRT ) )
 
 
 @makePublicTool
@@ -102,10 +102,10 @@ def getTrackingSuffix( name ):
 def trackParticleCnv_builder(name, config, inTrackCollectionKey, outTrackParticlesKey ):
   """Alg that stages conversion of Trk::TrackCollection into xAOD::TrackParticle container"""
 
-  trackParticleCreatorTool =  trackParticleCreatorTool_builder( name   = get_full_name( 'TrackParticleCreatorTool',config.name),
+  trackParticleCreatorTool =  trackParticleCreatorTool_builder( name   = get_full_name( 'TrackParticleCreatorTool',config.input_name),
                                                                 config = config )
 
-  trackCollectionCnvTool   =  trackCollectionCnvTool_builder( name                     = get_full_name( 'xAODTrackCollectionCnvTool',config.name),
+  trackCollectionCnvTool   =  trackCollectionCnvTool_builder( name                     = get_full_name( 'xAODTrackCollectionCnvTool',config.input_name),
                                                               trackParticleCreatorTool = trackParticleCreatorTool,
                                                               config                   = config )
 
@@ -119,7 +119,7 @@ def trackParticleCnv_builder(name, config, inTrackCollectionKey, outTrackParticl
                                            TrackParticleCreator                      = trackParticleCreatorTool,
                                            #Add track monitoring
                                            DoMonitoring                              = True,
-                                           TrackMonTool                              = trackMonitoringTool_builder( config.name + getTrackingSuffix(name) ),
+                                           TrackMonTool                              = trackMonitoringTool_builder( config.input_name + getTrackingSuffix(name) ),
                                            # Properties below are used for obsolete: Rec:TrackParticle, aod -> xAOD::TrackParticle (Turn off)
                                            ConvertTrackParticles = False,  # Retrieve of Rec:TrackParticle, don't need this atm
                                            xAODContainerName                         = '',
@@ -159,9 +159,9 @@ def ambiguityScoringTool_builder(name, config):
     kwargs = setDefaults( kwargs,
                           Extrapolator        = InDetTrigExtrapolator,
                           DriftCircleCutTool  = InDetTrigTRTDriftCircleCut,
-                          SummaryTool         = trackSummaryTool_getter( config.PT.setting.doTRT ),
+                          SummaryTool         = trackSummaryTool_getter( config.doTRT ),
                           #to have a steeper turn-n curve
-                          minPt               = config.PT.setting.pTmin, #TODO: double check values, implement 0.95 for MinBias?  #InDetTrigCutValues.minPT(), #config.pTmin(),
+                          minPt               = config.pTmin, #TODO: double check values, implement 0.95 for MinBias?  #InDetTrigCutValues.minPT(), #config.pTmin(),
                           maxRPhiImp          = InDetTrigCutValues.maxPrimaryImpact(),
                           maxZImp             = InDetTrigCutValues.maxZImpact(),
                           maxEta              = InDetTrigCutValues.maxEta(),
@@ -179,7 +179,7 @@ def ambiguityScoringTool_builder(name, config):
                          )
 
     #Change some of the parameters in case of beamgas signature
-    if config.PT.isSignature('beamgas'):
+    if config.name == 'beamgas':
         from InDetTrigRecExample.ConfiguredNewTrackingTrigCuts import EFIDTrackingCutsBeamGas
         kwargs = setDefaults( kwargs,
                               minPt          = EFIDTrackingCutsBeamGas.minPT(),
@@ -275,12 +275,12 @@ def ambiguityProcessorTool_builder( name, config):
    #Set/Get subtools
    #trackFitterTool    = trackFitterTool_getter(config),
 
-   scoringTool        = ambiguityScoringTool_getter(  name   = get_full_name( 'AmbiguityScoringTool',config.name),
+   scoringTool        = ambiguityScoringTool_getter(  name   = get_full_name( 'AmbiguityScoringTool',config.input_name),
                                                       config = config)
 
    associationTool    = associationTool_getter()
 
-   trackSummaryTool   = trackSummaryTool_getter( config.PT.setting.doTRT )
+   trackSummaryTool   = trackSummaryTool_getter( config.doTRT )
 
    trackSelectionTool = trackSelectionTool_getter(config)
 
@@ -317,7 +317,7 @@ from TrkAmbiguitySolver.TrkAmbiguitySolverConf import Trk__TrkAmbiguitySolver
 def ambiguitySolverAlg_builder(name, config, inputTrackScoreMap, outputTrackCollection):
 
       #Set/Get subtools
-      ambiguityProcessor = ambiguityProcessorTool_builder( name   = get_full_name( 'AmbiguityProcessor', config.name),
+      ambiguityProcessor = ambiguityProcessorTool_builder( name   = get_full_name( 'AmbiguityProcessor', config.input_name),
                                                            config = config )
 
       return Trk__TrkAmbiguitySolver( name               = name,
@@ -336,7 +336,7 @@ def ambiguityScoreProcessorTool_builder( name, config):
 
       #-----------------------
       #Set/Get subtools
-      scoringTool = ambiguityScoringTool_getter(  name   = get_full_name( 'AmbiguityScoringTool',config.name ),
+      scoringTool = ambiguityScoringTool_getter(  name   = get_full_name( 'AmbiguityScoringTool',config.input_name ),
                                                   config = config)
 
       associationTool    = associationTool_getter()
@@ -359,7 +359,7 @@ def ambiguityScoreAlg_builder(name, config, inputTrackCollection, outputTrackSco
       #-----------------------
       #Disable processor, see: https://gitlab.cern.ch/atlas/athena/-/merge_requests/36431
       #Set/Get subtools
-      #ambiguityScoreProcessor = ambiguityScoreProcessorTool_builder( name   = get_full_name( 'AmbiguityScoreProcessorTool', config.name()),
+      #ambiguityScoreProcessor = ambiguityScoreProcessorTool_builder( name   = get_full_name( 'AmbiguityScoreProcessorTool', config.input_name()),
       #                                                               config = config )
 
       return Trk__TrkAmbiguityScore(   name                    = name,
diff --git a/Trigger/TrigTools/TrigInDetConfig/python/TrigInDetConfig.py b/Trigger/TrigTools/TrigInDetConfig/python/TrigInDetConfig.py
index 407f002da6ef2711a443ffd6bef8e9dd45947f78..258036ee16899353f266b31ac73228c29cb43b4b 100644
--- a/Trigger/TrigTools/TrigInDetConfig/python/TrigInDetConfig.py
+++ b/Trigger/TrigTools/TrigInDetConfig/python/TrigInDetConfig.py
@@ -4,7 +4,6 @@
 
 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
 from AthenaConfiguration.ComponentFactory import CompFactory
-from TrigEDMConfig.TriggerEDMRun3 import recordable
 from InDetRecExample.InDetKeys import InDetKeys
 
 
@@ -563,9 +562,6 @@ def spacePointsMakingCfg(flags, signature):
   return acc
 
 
-def __trackCollName(signatureName):
-    return "HLT_IDTrkTrack_"+signatureName+"_FTF"
-
 def ftfCfg(flags, roisKey, signature, signatureName):
   acc = ComponentAccumulator()
 
@@ -579,6 +575,7 @@ def ftfCfg(flags, roisKey, signature, signatureName):
   pixRegSelTool = acc.popToolsAndMerge( regSelTool_Pixel_Cfg( flags) )
   sctRegSelTool = acc.popToolsAndMerge( regSelTool_SCT_Cfg( flags) )
 
+
   from TrkConfig.AtlasTrackingGeometrySvcConfig import TrackingGeometrySvcCfg
   acc.merge( TrackingGeometrySvcCfg( flags ) )
   acc.addPublicTool( CompFactory.TrigL2LayerNumberTool( name = "TrigL2LayerNumberTool_FTF",
@@ -601,6 +598,9 @@ def ftfCfg(flags, roisKey, signature, signatureName):
                                                                          ReadKey  = "PixelDetectorElementCollection",
                                                                          WriteKey = "PixelDetElementBoundaryLinks_xk") )
 
+  from TrigInDetConfig.ConfigSettings import getInDetTrigConfig
+  config = getInDetTrigConfig(signatureName)
+
   ftf = CompFactory.TrigFastTrackFinder( name = "TrigFastTrackFinder_" + signature,
                                          LayerNumberTool          = acc.getPublicTool( "TrigL2LayerNumberTool_FTF" ),
                                          SpacePointProviderTool   = acc.getPublicTool( "TrigSpacePointConversionTool" + signature ),
@@ -613,7 +613,7 @@ def ftfCfg(flags, roisKey, signature, signatureName):
                                          doZFinder                = False,
                                          SeedRadBinWidth          =  flags.InDet.Tracking.seedRadBinWidth,
                                          TrackInitialD0Max        = 1000. if flags.InDet.Tracking.extension == 'cosmics' else 20.0,
-                                         TracksName               = __trackCollName(signatureName),
+                                         TracksName               = config.trkTracks_FTF(),
                                          TripletDoPSS             = False,
                                          Triplet_D0Max            = flags.InDet.Tracking.d0SeedMax,
                                          Triplet_D0_PPS_Max       = flags.InDet.Tracking.d0SeedPPSMax,
@@ -648,6 +648,9 @@ def TrigTrackToVertexCfg(flags, name = 'TrigTrackToVertexTool', **kwargs ):
 def trackConverterCfg(flags, signature, signatureName):
   acc = ComponentAccumulator()
 
+  from TrigInDetConfig.ConfigSettings import getInDetTrigConfig
+  config = getInDetTrigConfig(signatureName)
+
   acc.merge( TrackSummaryToolCfg(flags, name="InDetTrigFastTrackSummaryTool") )
   track_to_vertex = acc.popToolsAndMerge( TrigTrackToVertexCfg(flags) )
   creatorTool = CompFactory.Trk.TrackParticleCreatorTool( name = "InDetTrigParticleCreatorToolFTF",
@@ -658,8 +661,8 @@ def trackConverterCfg(flags, signature, signatureName):
                                                           ExtraSummaryTypes     = ['eProbabilityComb', 'eProbabilityHT', 'TRTTrackOccupancy', 'TRTdEdx', 'TRTdEdxUsedHits'])
   acc.addPublicTool(creatorTool)
   trackParticleCnv=CompFactory.InDet.TrigTrackingxAODCnvMT(name = "InDetTrigTrackParticleCreatorAlg" + signature,
-                                                          TrackName           = __trackCollName(signatureName),
-                                                          TrackParticlesName  = recordable("HLT_IDTrack_"+signatureName+"_FTF"),
+                                                          TrackName           = config.trkTracks_FTF(),
+                                                          TrackParticlesName  = config.tracks_FTF(),
                                                           ParticleCreatorTool = creatorTool)
 
   acc.addEventAlgo(trackParticleCnv)
diff --git a/Trigger/TrigTools/TrigInDetConfig/python/TrigInDetPriVtxConfig.py b/Trigger/TrigTools/TrigInDetConfig/python/TrigInDetPriVtxConfig.py
index 8371b1f3229b6eb9ce9024bf8b331985e9be8f9f..08d48f813cadaa7607d6f78897c9b7c50ecd673a 100644
--- a/Trigger/TrigTools/TrigInDetConfig/python/TrigInDetPriVtxConfig.py
+++ b/Trigger/TrigTools/TrigInDetConfig/python/TrigInDetPriVtxConfig.py
@@ -317,7 +317,7 @@ def adaptiveMultiVertexFinderTool_builder( signature ) :
     from InDetPriVxFinderTool.InDetPriVxFinderToolConf import InDet__InDetAdaptiveMultiPriVxFinderTool
 
     from TrigInDetConfig.ConfigSettings import getInDetTrigConfig
-    singleTrackVertices= getInDetTrigConfig( signature ).addSingleTrackVertices 
+    singleTrackVertices = getInDetTrigConfig( signature ).addSingleTrackVertices 
 
 
     vertexFinderTool = InDet__InDetAdaptiveMultiPriVxFinderTool(name              = "InDetTrigAdaptiveMultiPriVxFinderTool" + signature,
diff --git a/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_v1Dev_build.ref b/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_v1Dev_build.ref
index 4867a23e0987fd484d556125855c771cc9e696f4..86a0d0bb0536820f8402350d1310da21fb2917aa 100644
--- a/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_v1Dev_build.ref
+++ b/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_v1Dev_build.ref
@@ -157,7 +157,7 @@ HLT_2j35_ftf_bmv2c1060_split_3j35_ftf_0eta320_L15J15p0ETA25:
   stepFeatures:
     0: 4
     1: 51
-    2: 8
+    2: 9
 HLT_2j35_ftf_bmv2c1070_split_2j35_ftf_bmv2c1085_split_L14J15p0ETA25:
   eventCount: 5
   stepCounts:
@@ -167,37 +167,37 @@ HLT_2j35_ftf_bmv2c1070_split_2j35_ftf_bmv2c1085_split_L14J15p0ETA25:
   stepFeatures:
     0: 6
     1: 81
-    2: 37
+    2: 36
 HLT_2j35_pf_ftf_bdl1r60_split_3j35_pf_ftf_0eta320_L15J15p0ETA25:
-  eventCount: 1
+  eventCount: 2
   stepCounts:
     0: 4
     1: 2
-    2: 1
+    2: 2
   stepFeatures:
     0: 4
     1: 33
-    2: 3
+    2: 6
 HLT_2j35_pf_ftf_bdl1r70_split_2j35_pf_ftf_bdl1r85_split_L14J15p0ETA25:
-  eventCount: 2
+  eventCount: 3
   stepCounts:
     0: 6
     1: 3
-    2: 2
+    2: 3
   stepFeatures:
     0: 6
     1: 48
-    2: 24
+    2: 26
 HLT_2j45_ftf_bmv2c1050_split_2j45_ftf_0eta320_L14J15p0ETA25:
-  eventCount: 3
+  eventCount: 4
   stepCounts:
     0: 6
     1: 4
-    2: 3
+    2: 4
   stepFeatures:
     0: 6
     1: 54
-    2: 9
+    2: 10
 HLT_2j45_ftf_bmv2c1060_split_3j45_ftf_0eta320_L15J15p0ETA25:
   eventCount: 2
   stepCounts:
@@ -207,17 +207,17 @@ HLT_2j45_ftf_bmv2c1060_split_3j45_ftf_0eta320_L15J15p0ETA25:
   stepFeatures:
     0: 4
     1: 30
-    2: 5
+    2: 6
 HLT_2j45_pf_ftf_bdl1r60_split_3j45_pf_ftf_0eta320_L15J15p0ETA25:
-  eventCount: 1
+  eventCount: 2
   stepCounts:
     0: 4
     1: 2
-    2: 1
+    2: 2
   stepFeatures:
     0: 4
     1: 30
-    2: 3
+    2: 5
 HLT_2j55_ftf_bmv2c1060_split_2j55_ftf_0eta320_L14J15p0ETA25:
   eventCount: 2
   stepCounts:
@@ -227,7 +227,7 @@ HLT_2j55_ftf_bmv2c1060_split_2j55_ftf_0eta320_L14J15p0ETA25:
   stepFeatures:
     0: 6
     1: 27
-    2: 7
+    2: 5
 HLT_2j55_pf_ftf_bdl1r60_split_2j55_pf_ftf_0eta320_L14J15p0ETA25:
   eventCount: 2
   stepCounts:
@@ -237,7 +237,7 @@ HLT_2j55_pf_ftf_bdl1r60_split_2j55_pf_ftf_0eta320_L14J15p0ETA25:
   stepFeatures:
     0: 6
     1: 27
-    2: 5
+    2: 6
 HLT_2j60_L1J15:
   eventCount: 0
 HLT_2mu10_bJpsimumu_L12MU10:
@@ -549,7 +549,7 @@ HLT_3j35_ftf_bmv2c1070_split_j35_ftf_0eta320_L14J15p0ETA25:
   stepFeatures:
     0: 6
     1: 81
-    2: 15
+    2: 14
 HLT_3j35_pf_ftf_bdl1r70_split_j35_pf_ftf_0eta320_L14J15p0ETA25:
   eventCount: 3
   stepCounts:
@@ -559,7 +559,7 @@ HLT_3j35_pf_ftf_bdl1r70_split_j35_pf_ftf_0eta320_L14J15p0ETA25:
   stepFeatures:
     0: 6
     1: 48
-    2: 11
+    2: 12
 HLT_3j65_ftf_bmv2c1077_split_L1J20:
   eventCount: 3
   stepCounts:
@@ -569,17 +569,17 @@ HLT_3j65_ftf_bmv2c1077_split_L1J20:
   stepFeatures:
     0: 19
     1: 14
-    2: 13
+    2: 12
 HLT_3j65_pf_ftf_bdl1r77_split_L1J20:
-  eventCount: 2
+  eventCount: 3
   stepCounts:
     0: 19
     1: 4
-    2: 2
+    2: 3
   stepFeatures:
     0: 19
     1: 15
-    2: 11
+    2: 13
 HLT_3mu4_bJpsi_L13MU4:
   eventCount: 0
 HLT_3mu4_bPhi_L13MU4:
@@ -611,25 +611,25 @@ HLT_4j120_subresjesgscIS_ftf_L13J50:
   stepFeatures:
     0: 1
 HLT_4j35_ftf_bmv2c1077_split_L1J20:
-  eventCount: 2
+  eventCount: 1
   stepCounts:
     0: 19
     1: 13
-    2: 2
+    2: 1
   stepFeatures:
     0: 19
     1: 68
-    2: 33
+    2: 31
 HLT_4j35_pf_ftf_bdl1r77_split_L1J20:
-  eventCount: 1
+  eventCount: 2
   stepCounts:
     0: 19
     1: 8
-    2: 1
+    2: 2
   stepFeatures:
     0: 19
     1: 39
-    2: 20
+    2: 21
 HLT_4mu4_L14MU4:
   eventCount: 0
 HLT_4mu4_bDimu6000_L14MU4:
@@ -709,29 +709,29 @@ HLT_6j25_ftf_0eta240_L14J15:
     0: 9
     1: 85
 HLT_6j25_pf_ftf_0eta240_010jvt_L14J15:
-  eventCount: 4
+  eventCount: 5
   stepCounts:
     0: 9
-    1: 4
+    1: 5
   stepFeatures:
     0: 9
-    1: 30
+    1: 34
 HLT_6j25_pf_ftf_0eta240_020jvt_L14J15:
-  eventCount: 4
+  eventCount: 3
   stepCounts:
     0: 9
-    1: 4
+    1: 3
   stepFeatures:
     0: 9
-    1: 29
+    1: 22
 HLT_6j25_pf_ftf_0eta240_050jvt_L14J15:
-  eventCount: 4
+  eventCount: 3
   stepCounts:
     0: 9
-    1: 4
+    1: 3
   stepFeatures:
     0: 9
-    1: 27
+    1: 21
 HLT_6j25_pf_ftf_0eta240_L14J15:
   eventCount: 5
   stepCounts:
@@ -739,7 +739,7 @@ HLT_6j25_pf_ftf_0eta240_L14J15:
     1: 5
   stepFeatures:
     0: 9
-    1: 37
+    1: 35
 HLT_6j35_0eta240_L14J15:
   eventCount: 1
   stepCounts:
@@ -2386,15 +2386,15 @@ HLT_j0_fbdjshared_L1J20:
 HLT_j0_perf_L1J12_EMPTY:
   eventCount: 0
 HLT_j110_subjesgscIS_ftf_bdl1r60_split_j45_subjesgscIS_ftf_bdl1r70_split_L1J50:
-  eventCount: 2
+  eventCount: 3
   stepCounts:
     0: 14
     1: 6
-    2: 2
+    2: 3
   stepFeatures:
     0: 14
     1: 53
-    2: 13
+    2: 18
 HLT_j110_subjesgscIS_ftf_j45_subjesgscIS_ftf_L1J50:
   eventCount: 6
   stepCounts:
@@ -2412,15 +2412,15 @@ HLT_j150_ftf_0eta320_2j55_ftf_bmv2c1070_split_L1J85_3J30:
   stepFeatures:
     0: 3
 HLT_j150_pf_ftf_0eta320_2j55_pf_ftf_bdl1r70_split_L1J85_3J30:
-  eventCount: 2
+  eventCount: 1
   stepCounts:
     0: 3
-    1: 2
-    2: 2
+    1: 1
+    2: 1
   stepFeatures:
     0: 3
-    1: 16
-    2: 5
+    1: 7
+    2: 3
 HLT_j150_subresjesgscIS_ftf_2j55_subresjesgscIS_ftf_L1J85_3J30:
   eventCount: 0
   stepCounts:
@@ -2590,7 +2590,7 @@ HLT_j45_pf_ftf_010jvt_L1J15:
     1: 19
   stepFeatures:
     0: 20
-    1: 56
+    1: 57
 HLT_j45_pf_ftf_020jvt_L1J15:
   eventCount: 19
   stepCounts:
@@ -2598,7 +2598,7 @@ HLT_j45_pf_ftf_020jvt_L1J15:
     1: 19
   stepFeatures:
     0: 20
-    1: 56
+    1: 57
 HLT_j45_pf_ftf_050jvt_L1J15:
   eventCount: 19
   stepCounts:
@@ -2606,7 +2606,7 @@ HLT_j45_pf_ftf_050jvt_L1J15:
     1: 19
   stepFeatures:
     0: 20
-    1: 54
+    1: 55
 HLT_j45_pf_ftf_L1J15:
   eventCount: 19
   stepCounts:
@@ -2614,7 +2614,7 @@ HLT_j45_pf_ftf_L1J15:
     1: 19
   stepFeatures:
     0: 20
-    1: 57
+    1: 58
 HLT_j45_pf_ftf_preselj20_L1J15:
   eventCount: 19
   stepCounts:
@@ -2622,7 +2622,7 @@ HLT_j45_pf_ftf_preselj20_L1J15:
     1: 19
   stepFeatures:
     0: 20
-    1: 57
+    1: 58
 HLT_j45_pf_nojcalib_ftf_L1J15:
   eventCount: 18
   stepCounts:
@@ -2640,15 +2640,15 @@ HLT_j45_pf_subjesgscIS_ftf_L1J15:
     0: 20
     1: 51
 HLT_j45_pf_subjesgscIS_ftf_bdl1r70_split_L1J20:
-  eventCount: 10
+  eventCount: 11
   stepCounts:
     0: 19
     1: 18
-    2: 10
+    2: 11
   stepFeatures:
     0: 19
     1: 48
-    2: 22
+    2: 25
 HLT_j45_pf_subjesgscIS_ftf_boffperf_split_L1J20:
   eventCount: 18
   stepCounts:
@@ -2674,7 +2674,7 @@ HLT_j45_pf_subresjesgsc_ftf_L1J15:
     1: 19
   stepFeatures:
     0: 20
-    1: 57
+    1: 58
 HLT_j45_sk_nojcalib_L1J15:
   eventCount: 15
   stepCounts:
@@ -2722,15 +2722,15 @@ HLT_j45_subjesgscIS_ftf_L1J15:
     0: 20
     1: 47
 HLT_j45_subjesgscIS_ftf_bdl1r70_split_L1J20:
-  eventCount: 9
+  eventCount: 10
   stepCounts:
     0: 19
     1: 19
-    2: 9
+    2: 10
   stepFeatures:
     0: 19
     1: 46
-    2: 18
+    2: 22
 HLT_j45_subjesgscIS_ftf_bmv2c1070_split_L1J20:
   eventCount: 14
   stepCounts:
@@ -2740,7 +2740,7 @@ HLT_j45_subjesgscIS_ftf_bmv2c1070_split_L1J20:
   stepFeatures:
     0: 19
     1: 46
-    2: 27
+    2: 26
 HLT_j45_subjesgscIS_ftf_boffperf_split_L1J20:
   eventCount: 19
   stepCounts:
@@ -2928,7 +2928,7 @@ HLT_j80_pf_ftf_j55_pf_ftf_j28_pf_ftf_j20_pf_ftf_L1J45p0ETA21_3J15p0ETA25:
     1: 6
   stepFeatures:
     0: 7
-    1: 215
+    1: 218
 HLT_j80_pf_ftf_j55_pf_ftf_j28_pf_ftf_j20_pf_ftf_L1MU10_2J15_J20:
   eventCount: 5
   stepCounts:
@@ -2936,7 +2936,7 @@ HLT_j80_pf_ftf_j55_pf_ftf_j28_pf_ftf_j20_pf_ftf_L1MU10_2J15_J20:
     1: 5
   stepFeatures:
     0: 8
-    1: 218
+    1: 210
 HLT_j80_pf_ftf_j55_pf_ftf_j28_pf_ftf_j20_pf_ftf_L1MU20:
   eventCount: 5
   stepCounts:
@@ -2944,7 +2944,7 @@ HLT_j80_pf_ftf_j55_pf_ftf_j28_pf_ftf_j20_pf_ftf_L1MU20:
     1: 5
   stepFeatures:
     0: 8
-    1: 218
+    1: 210
 HLT_j85_050momemfrac100SEPmomhecfrac010_L1J20:
   eventCount: 9
   stepCounts:
@@ -4588,21 +4588,21 @@ HLT_xe110_mht_L1XE50:
   stepFeatures:
     0: 6
 HLT_xe110_pfsum_L1XE50:
-  eventCount: 5
+  eventCount: 4
   stepCounts:
     0: 10
-    1: 5
+    1: 4
   stepFeatures:
     0: 10
-    1: 5
+    1: 4
 HLT_xe110_pfsum_cssk_L1XE50:
-  eventCount: 3
+  eventCount: 2
   stepCounts:
     0: 10
-    1: 3
+    1: 2
   stepFeatures:
     0: 10
-    1: 3
+    1: 2
 HLT_xe110_pfsum_vssk_L1XE50:
   eventCount: 3
   stepCounts:
diff --git a/Trigger/TrigValidation/TriggerTest/share/ref_data_v1Dev_build.ref b/Trigger/TrigValidation/TriggerTest/share/ref_data_v1Dev_build.ref
index 3982d2553a513e7ddc2be5d6ecc017a0de579513..ffb87de9253685e00f284d293ee2d40f8a452e87 100644
--- a/Trigger/TrigValidation/TriggerTest/share/ref_data_v1Dev_build.ref
+++ b/Trigger/TrigValidation/TriggerTest/share/ref_data_v1Dev_build.ref
@@ -264,6 +264,7 @@ HLT_3j35_ftf_bmv2c1070_split_j35_ftf_0eta320_L14J15p0ETA25:
   stepFeatures:
     0: 20
     1: 11
+    2: 1
 HLT_3j35_pf_ftf_bdl1r70_split_j35_pf_ftf_0eta320_L14J15p0ETA25:
   eventCount: 0
   stepCounts:
@@ -1376,13 +1377,13 @@ HLT_j45_pf_nojcalib_ftf_L1J15:
     0: 7
     1: 4
 HLT_j45_pf_subjesgscIS_ftf_L1J15:
-  eventCount: 7
+  eventCount: 6
   stepCounts:
     0: 7
-    1: 7
+    1: 6
   stepFeatures:
     0: 7
-    1: 7
+    1: 6
 HLT_j45_pf_subjesgscIS_ftf_bdl1r70_split_L1J20:
   eventCount: 0
   stepCounts:
@@ -1402,13 +1403,13 @@ HLT_j45_pf_subjesgscIS_ftf_boffperf_split_L1J20:
     1: 5
     2: 5
 HLT_j45_pf_subjesgsc_ftf_L1J15:
-  eventCount: 7
+  eventCount: 6
   stepCounts:
     0: 7
-    1: 7
+    1: 6
   stepFeatures:
     0: 7
-    1: 7
+    1: 6
 HLT_j45_pf_subresjesgsc_ftf_L1J15:
   eventCount: 7
   stepCounts:
diff --git a/Trigger/TriggerCommon/TrigEDMConfig/python/TriggerEDMRun3.py b/Trigger/TriggerCommon/TrigEDMConfig/python/TriggerEDMRun3.py
index 2720e72a95eba9e4c132214d8f33e09dca6761bb..814598b767b0b9cc2bc400cb10b4844a12fc7b9e 100644
--- a/Trigger/TriggerCommon/TrigEDMConfig/python/TriggerEDMRun3.py
+++ b/Trigger/TriggerCommon/TrigEDMConfig/python/TriggerEDMRun3.py
@@ -211,20 +211,12 @@ TriggerHLTListRun3 = [
     # Muon
 
     # Id track particles
-    ('xAOD::TrackParticleContainer#HLT_IDTrack_Muon_FTF',                 'BS ESD AODFULL', 'Muon', 'inViews:MUCombViewRoIs'),
+    ('xAOD::TrackParticleContainer#HLT_IDTrack_Muon_FTF',                 'BS ESD AODFULL', 'Muon', 'inViews:MUCombViewRoIs,MUCBFSViews,MUEFLATEViewRoIs'),
     ('xAOD::TrackParticleAuxContainer#HLT_IDTrack_Muon_FTFAux.',          'BS ESD AODFULL', 'Muon'),
 
-    ('xAOD::TrackParticleContainer#HLT_IDTrack_MuonLRT_FTF',                 'BS ESD AODFULL', 'Muon', 'inViews:MUCombLRTViewRoIs'),
-    ('xAOD::TrackParticleAuxContainer#HLT_IDTrack_MuonLRT_FTFAux.',          'BS ESD AODFULL', 'Muon'),
-
-    ('xAOD::TrackParticleContainer#HLT_IDTrack_Muon_IDTrig',                 'BS ESD AODFULL AODSLIM', 'Muon', 'inViews:MUEFCBViewRoIs'),
+    ('xAOD::TrackParticleContainer#HLT_IDTrack_Muon_IDTrig',                 'BS ESD AODFULL AODSLIM', 'Muon', 'inViews:MUEFCBViewRoIs,MUCBFSViews,MUEFLATEViewRoIs'),
     ('xAOD::TrackParticleAuxContainer#HLT_IDTrack_Muon_IDTrigAux.',          'BS ESD AODFULL AODSLIM', 'Muon'),
 
-    ('xAOD::TrackParticleContainer#HLT_IDTrack_MuonFS_FTF',                 'BS ESD AODFULL', 'Muon', 'inViews:MUCBFSViews'),
-    ('xAOD::TrackParticleAuxContainer#HLT_IDTrack_MuonFS_FTFAux.',          'BS ESD AODFULL', 'Muon'),
-
-    ('xAOD::TrackParticleContainer#HLT_IDTrack_MuonFS_IDTrig',              'BS ESD AODFULL', 'Muon', 'inViews:MUCBFSViews'),
-    ('xAOD::TrackParticleAuxContainer#HLT_IDTrack_MuonFS_IDTrigAux.',       'BS ESD AODFULL', 'Muon'),
 
     ('xAOD::TrackParticleContainer#HLT_IDTrack_MuonIso_FTF',                 'BS ESD AODFULL', 'Muon', 'inViews:MUEFIsoViewRoIs'),
     ('xAOD::TrackParticleAuxContainer#HLT_IDTrack_MuonIso_FTFAux.',          'BS ESD AODFULL', 'Muon'),
@@ -232,12 +224,27 @@ TriggerHLTListRun3 = [
     ('xAOD::TrackParticleContainer#HLT_IDTrack_MuonIso_IDTrig',              'BS ESD AODFULL', 'Muon', 'inViews:MUEFIsoViewRoIs'),
     ('xAOD::TrackParticleAuxContainer#HLT_IDTrack_MuonIso_IDTrigAux.',       'BS ESD AODFULL', 'Muon'),
 
-    ('xAOD::TrackParticleContainer#HLT_IDTrack_MuonLate_FTF',                 'BS ESD AODFULL', 'Muon', 'inViews:MUEFLATEViewRoIs'),
-    ('xAOD::TrackParticleAuxContainer#HLT_IDTrack_MuonLate_FTFAux.',          'BS ESD AODFULL', 'Muon'),
 
+    ('xAOD::TrackParticleContainer#HLT_IDTrack_MuonLRT_FTF',                 'BS ESD AODFULL', 'Muon', 'inViews:MUCombLRTViewRoIs'),
+    ('xAOD::TrackParticleAuxContainer#HLT_IDTrack_MuonLRT_FTFAux.',          'BS ESD AODFULL', 'Muon'),
+
+
+# These extra muon collections have all be removed now, as they all have identical 
+# reconstruction as the standard Muon collections so unique collections names should
+# not be needed. Once we are sure that there are no affected clients these commented
+# collections can be removed 
+
+#    ('xAOD::TrackParticleContainer#HLT_IDTrack_MuonFS_FTF',                 'BS ESD AODFULL', 'Muon', 'inViews:MUCBFSViews'),
+#    ('xAOD::TrackParticleAuxContainer#HLT_IDTrack_MuonFS_FTFAux.',          'BS ESD AODFULL', 'Muon'),
+
+#    ('xAOD::TrackParticleContainer#HLT_IDTrack_MuonFS_IDTrig',              'BS ESD AODFULL', 'Muon', 'inViews:MUCBFSViews'),
+#    ('xAOD::TrackParticleAuxContainer#HLT_IDTrack_MuonFS_IDTrigAux.',       'BS ESD AODFULL', 'Muon'),
+
+#    ('xAOD::TrackParticleContainer#HLT_IDTrack_MuonLate_FTF',                 'BS ESD AODFULL', 'Muon', 'inViews:MUEFLATEViewRoIs'),
+#    ('xAOD::TrackParticleAuxContainer#HLT_IDTrack_MuonLate_FTFAux.',          'BS ESD AODFULL', 'Muon'),
 
-    ('xAOD::TrackParticleContainer#HLT_IDTrack_MuonLate_IDTrig',              'BS ESD AODFULL', 'Muon', 'inViews:MUEFLATEViewRoIs'),
-    ('xAOD::TrackParticleAuxContainer#HLT_IDTrack_MuonLate_IDTrigAux.',       'BS ESD AODFULL', 'Muon'),
+#    ('xAOD::TrackParticleContainer#HLT_IDTrack_MuonLate_IDTrig',              'BS ESD AODFULL', 'Muon', 'inViews:MUEFLATEViewRoIs'),
+#    ('xAOD::TrackParticleAuxContainer#HLT_IDTrack_MuonLate_IDTrigAux.',       'BS ESD AODFULL', 'Muon'),
 
 
     # Bphysics Dimuon chains
@@ -580,11 +587,6 @@ TriggerHLTListRun3 = [
     ('xAOD::TrackParticleContainer#HLT_IDTrack_Cosmic_IDTrig',               'BS ESD AODFULL', 'Cosmic'),
     ('xAOD::TrackParticleAuxContainer#HLT_IDTrack_Cosmic_IDTrigAux.',        'BS ESD AODFULL', 'Cosmic'),
 
-    # ID
-    # Requested by TrigUpgradeTest/IDCalo.py
-    # what are these ???
-    ('xAOD::TrackParticleContainer#HLT_IDTrack',                        'BS ESD AODFULL', 'ID'),
-    ('xAOD::TrackParticleAuxContainer#HLT_IDTrackAux.',                 'BS ESD AODFULL', 'ID'),
 
     ('ROIB::RoIBResult#*',                         'ESD', 'Misc'),
 
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/CalibCosmicMon/BeamspotChainConfiguration.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/CalibCosmicMon/BeamspotChainConfiguration.py
index 5ad3b0f0d02e13438b76a216b61547a3696718a6..ede1b85b91abaa4c65277472299757616788dfb0 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/CalibCosmicMon/BeamspotChainConfiguration.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/CalibCosmicMon/BeamspotChainConfiguration.py
@@ -45,7 +45,7 @@ def allTE_trkfast( signature="FS" ):
         viewAlgs, viewVerify  = makeInDetAlgs( config = IDTrigConfig,  rois=inputMakerAlg.InViewRoIs)
 
         vertexAlg = T2VertexBeamSpot_activeAllTE( "vertex_"+signature )
-        vertexAlg.TrackCollection = IDTrigConfig.FT.trkTracksFTF()
+        vertexAlg.TrackCollection = IDTrigConfig.trkTracks_FTF()
 
         viewVerify.DataObjects += [( 'TrigRoiDescriptorCollection' , 'StoreGateSvc+beamspotViewRoI_'+signature ),
                                    ( 'xAOD::EventInfo' , 'StoreGateSvc+EventInfo' ),
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Jet/JetTrackingConfig.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Jet/JetTrackingConfig.py
index b9d5b83ef4b0f5bfd882c86a616243ed376cace1..112ba553331239356e281463efdff4e4f03a3a3c 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Jet/JetTrackingConfig.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Jet/JetTrackingConfig.py
@@ -23,7 +23,7 @@ def JetTrackingSequence(dummyFlags,trkopt,RoIs):
         from TrigInDetConfig.InDetSetup import makeInDetAlgsNoView
         viewAlgs = makeInDetAlgsNoView( config = IDTrigConfig, rois=RoIs)
         jetTrkSeq += viewAlgs
-        tracksname =  IDTrigConfig.FT.tracksFTF( doRecord = IDTrigConfig.isRecordable ) 
+        tracksname =  IDTrigConfig.tracks_FTF() 
         if IDTrigConfig.vertex is not None: 
             verticesname = recordable(IDTrigConfig.vertex)
 
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Muon/generateMuon.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Muon/generateMuon.py
index 1e6ff10965b35fb9b97d8f1b5b2751bd6a26c082..e0d53da27cbde0907b5f7d84fbb91ca76ae15366 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Muon/generateMuon.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Muon/generateMuon.py
@@ -32,6 +32,9 @@ from MuonCombinedConfig.MuonCombinedReconstructionConfig import MuonCombinedInDe
 from TrigMuonEF.TrigMuonEFConfig_newJO import TrigMuonEFTrackIsolationAlgCfg, MuonFilterAlgCfg, MergeEFMuonsAlgCfg
 from AthenaCommon.CFElements import seqAND, parOR, seqOR
 
+from TrigInDetConfig.ConfigSettings import getInDetTrigConfig
+
+
 import pprint
 from AthenaCommon.Logging import logging
 log = logging.getLogger( 'TriggerMenuMT.HLTMenuConfig.Muon.generateMuon' )
@@ -41,6 +44,7 @@ def fakeHypoAlgCfg(flags, name="FakeHypoForMuon"):
     return HLTTest__TestHypoAlg( name, Input="" )
 
 def EFMuonCBViewDataVerifierCfg(name):
+    config = getInDetTrigConfig( "muon" )
     EFMuonCBViewDataVerifier =  CompFactory.AthViews.ViewDataVerifier("VDVEFCBMuon_"+name)
     EFMuonCBViewDataVerifier.DataObjects = [( 'Muon::MdtPrepDataContainer' , 'StoreGateSvc+MDT_DriftCircles' ),  
                                             ( 'Muon::TgcPrepDataContainer' , 'StoreGateSvc+TGC_Measurements' ),
@@ -53,7 +57,7 @@ def EFMuonCBViewDataVerifierCfg(name):
         EFMuonCBViewDataVerifier.DataObjects += [( 'MuonCandidateCollection' , 'StoreGateSvc+MuonCandidates_FS' )]
     else:
         EFMuonCBViewDataVerifier.DataObjects += [( 'MuonCandidateCollection' , 'StoreGateSvc+MuonCandidates' ),
-                                                 ( 'xAOD::TrackParticleContainer' , 'StoreGateSvc+HLT_IDTrack_Muon_FTF' ),
+                                                 ( 'xAOD::TrackParticleContainer' , 'StoreGateSvc+'+config.tracks_FTF() ),
                                                  ( 'IDCInDetBSErrContainer' , 'StoreGateSvc+SCT_FlaggedCondData' ),
                                                  ( 'IDCInDetBSErrContainer' , 'StoreGateSvc+PixelByteStreamErrs' ),
                                                  ( 'IDCInDetBSErrContainer' , 'StoreGateSvc+SCT_ByteStreamErrs' )]
@@ -389,10 +393,13 @@ def muEFCBStep(flags, chainDict, name='RoI'):
     #EF combined muons
     selAccEFCB = SelectionCA("EFCBMuon_"+name)
 
+    config = getInDetTrigConfig( "muon" )
+
     viewName = 'EFMuCBReco_'+name                                                       
-    trackName = "HLT_IDTrack_Muon_FTF"
+    trackName = config.tracks_FTF()
     muonCandName = "MuonCandidates"
     if 'FS' in name:
+        config = getInDetTrigConfig( "muonFS" )
         muonCandName = "MuonCandidates_FS"
         ViewCreatorCentredOnIParticleROITool=CompFactory.ViewCreatorCentredOnIParticleROITool
         roiTool         = ViewCreatorCentredOnIParticleROITool(RoisWriteHandleKey="MuonCandidates_FS_ROIs")
@@ -410,7 +417,7 @@ def muEFCBStep(flags, chainDict, name='RoI'):
         recoCB = InViewRecoCA("EFMuCBReco_"+name, viewMaker=viewMakerAlg)
         #ID tracking
         recoCB.mergeReco(trigInDetFastTrackingCfg( flags, roisKey=recoCB.inputMaker().InViewRoIs, signatureName="MuonFS" ))
-        trackName = "HLT_IDTrack_MuonFS_FTF"
+        trackName = config.tracks_FTF()
     else:
         recoCB = InViewRecoCA(viewName)
         recoCB.inputMaker().RequireParentView = True
@@ -488,9 +495,10 @@ def muEFIsoStep(flags, chainDict):
                                                          ViewNodeName    = viewName+"InView")
     recoIso = InViewRecoCA("EFMuIsoReco", viewMaker=viewMakerAlg)
     #ID tracking
+    config = getInDetTrigConfig( "muonIso" )
     recoIso.mergeReco(trigInDetFastTrackingCfg( flags, roisKey=recoIso.inputMaker().InViewRoIs, signatureName="MuonIso" ))
     recoIso.mergeReco(MuIsoViewDataVerifierCfg())
-    recoIso.mergeReco(TrigMuonEFTrackIsolationAlgCfg(flags, IdTrackParticles="HLT_IDTrack_MuonIso_FTF", MuonEFContainer="InViewIsoMuons", ptcone02Name="InViewIsoMuons.ptcone02", ptcone03Name="InViewIsoMuons.ptcone03"))
+    recoIso.mergeReco(TrigMuonEFTrackIsolationAlgCfg(flags, IdTrackParticles=config.tracks_FTF(), MuonEFContainer="InViewIsoMuons", ptcone02Name="InViewIsoMuons.ptcone02", ptcone03Name="InViewIsoMuons.ptcone03"))
 
     selAccEFIso.mergeReco(recoIso)
     efmuIsoHypo = efMuIsoHypoCfg( flags,
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Tau/TauRecoSequences.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Tau/TauRecoSequences.py
index d65bc0d0cd2455c0997b8cb38e5cb6312a270d94..c898c70df752c2581a8b93f53e344ba02cd51616 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Tau/TauRecoSequences.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Tau/TauRecoSequences.py
@@ -244,10 +244,10 @@ def preSelSequence( RoIs, name):
     tauPreSelSequence += ViewVerifyPreSel
 
     if "TrackInView" in name:
-      tauPreselectionAlg = _algoTauPreselection(inputRoIs = RoIs, tracks = IDTrigConfig.FT.tracksFTF(), step = "Track")
+      tauPreselectionAlg = _algoTauPreselection(inputRoIs = RoIs, tracks = IDTrigConfig.tracks_FTF(), step = "Track")
       ViewVerifyPreSel.DataObjects += [( 'xAOD::TrackParticleContainer' , 'StoreGateSvc+HLT_IDTrack_Tau_FTF' )]
     if "TrackTwo" in name:
-      tauPreselectionAlg = _algoTauPreselection(inputRoIs = RoIs, tracks = IDTrigConfig.FT.tracksFTF(), step = "TrackTwo")
+      tauPreselectionAlg = _algoTauPreselection(inputRoIs = RoIs, tracks = IDTrigConfig.tracks_FTF(), step = "TrackTwo")
       ViewVerifyPreSel.DataObjects += [( 'xAOD::TrackParticleContainer' , 'StoreGateSvc+HLT_IDTrack_TauIso_FTF' )]
 
     tauPreSelSequence += tauPreselectionAlg
@@ -271,24 +271,24 @@ def tauIdSequence( RoIs, name):
                                 ( 'SG::AuxElement' , 'StoreGateSvc+EventInfo.averageInteractionsPerCrossing'   ),
                                 ( 'xAOD::TauTrackContainer' , 'StoreGateSvc+HLT_tautrack_dummy' ),
                                 ( 'xAOD::TauJetContainer' , 'StoreGateSvc+HLT_TrigTauRecMerged_CaloOnly' ),
-                                ( 'xAOD::TrackParticleContainer' , 'StoreGateSvc+'+IDTrigConfig.PT.tracksPT() )]
+                                ( 'xAOD::TrackParticleContainer' , 'StoreGateSvc+'+IDTrigConfig.tracks_IDTrig() )]
 
     tauIdSequence+= ViewVerifyId
 
     tauPrecisionAlg = ""
 
     if "TrackInView" in name:
-      tauPrecisionAlg = _algoTauPrecision(inputRoIs = RoIs, tracks = IDTrigConfig.PT.tracksPT(), step = "Track")
+      tauPrecisionAlg = _algoTauPrecision(inputRoIs = RoIs, tracks = IDTrigConfig.tracks_IDTrig(), step = "Track")
       ViewVerifyId.DataObjects += [( 'xAOD::TauTrackContainer' , 'StoreGateSvc+HLT_tautrack_Presel'),
                                    ( 'xAOD::TauJetContainer' , 'StoreGateSvc+HLT_TrigTauRecMerged_Presel' )]
     elif "TrackTwo" in name:
-      tauPrecisionAlg = _algoTauPrecision(inputRoIs = RoIs, tracks = IDTrigConfig.PT.tracksPT(), step = "TrackTwo")
+      tauPrecisionAlg = _algoTauPrecision(inputRoIs = RoIs, tracks = IDTrigConfig.tracks_IDTrig(), step = "TrackTwo")
       ViewVerifyId.DataObjects += [( 'xAOD::TauTrackContainer' , 'StoreGateSvc+HLT_tautrack_Presel'),
                                    ( 'xAOD::TauJetContainer' , 'StoreGateSvc+HLT_TrigTauRecMerged_Presel' )]
     elif "EF" in name:
-      tauPrecisionAlg = _algoTauPrecision(inputRoIs = RoIs, tracks = IDTrigConfig.PT.tracksPT(), step = "EF")
+      tauPrecisionAlg = _algoTauPrecision(inputRoIs = RoIs, tracks = IDTrigConfig.tracks_IDTrig(), step = "EF")
     elif "MVA" in name:
-      tauPrecisionAlg = _algoTauPrecisionMVA(inputRoIs = RoIs, tracks = IDTrigConfig.PT.tracksPT(), step = "PrecisionMVA")
+      tauPrecisionAlg = _algoTauPrecisionMVA(inputRoIs = RoIs, tracks = IDTrigConfig.tracks_IDTrig(), step = "PrecisionMVA")
 
     tauIdSequence += tauPrecisionAlg
 
@@ -304,14 +304,14 @@ def precTrackSequence( RoIs , name):
     IDTrigConfig = getInDetTrigConfig( signatureNameID )
 
     ViewVerifyTrk = CfgMgr.AthViews__ViewDataVerifier("tauViewDataVerifier_"+signatureName)
-    ViewVerifyTrk.DataObjects = [( 'xAOD::TrackParticleContainer' , 'StoreGateSvc+%s' % IDTrigConfig.FT.tracksFTF() ),
+    ViewVerifyTrk.DataObjects = [( 'xAOD::TrackParticleContainer' , 'StoreGateSvc+%s' % IDTrigConfig.tracks_FTF() ),
                                  ( 'SG::AuxElement' , 'StoreGateSvc+EventInfo.averageInteractionsPerCrossing' ),
                                  ( 'TrigRoiDescriptorCollection' , 'StoreGateSvc+%s' % RoIs ),
                                  ( 'TrigRoiDescriptorCollection' , 'StoreGateSvc+HLT_TAURoI' ),
                                  ( 'xAOD::TauTrackContainer' , 'StoreGateSvc+HLT_tautrack_dummy' ),
                                  ( 'xAOD::TauJetContainer' , 'StoreGateSvc+HLT_TrigTauRecMerged_CaloOnly' ),    
                                  ( 'IDCInDetBSErrContainer' , 'StoreGateSvc+SCT_FlaggedCondData_TRIG' ),
-                                 ( 'xAOD::IParticleContainer' , 'StoreGateSvc+%s' % IDTrigConfig.FT.tracksFTF() )]
+                                 ( 'xAOD::IParticleContainer' , 'StoreGateSvc+%s' % IDTrigConfig.tracks_FTF() )]
 
     # Make sure the required objects are still available at whole-event level
     from AthenaCommon.AlgSequence import AlgSequence
@@ -336,7 +336,7 @@ def precTrackSequence( RoIs , name):
 
     from TrigInDetConfig.TrigInDetPriVtxConfig import makeVertices
     vtxAlg = makeVertices( whichSignature       = signatureName, 
-                           inputTrackCollection = IDTrigConfig.PT.tracksPT(), 
+                           inputTrackCollection = IDTrigConfig.tracks_IDTrig(), 
                            outputVtxCollection  = IDTrigConfig.vertex, 
                            config               = IDTrigConfig, 
                            adaptiveVertexing    = True )
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/UnconventionalTracking/FullScanLRTTrackingConfiguration.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/UnconventionalTracking/FullScanLRTTrackingConfiguration.py
index f35648ecf45460fff5dc95cacec2f79831ff67aa..f51ba7ff4e8263276d34246b3799b3bbddf8a87d 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/UnconventionalTracking/FullScanLRTTrackingConfiguration.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/UnconventionalTracking/FullScanLRTTrackingConfiguration.py
@@ -21,7 +21,7 @@ def FullScanLRTTriggerSequence(ConfigFlags):
 
 
     TrkSeq = parOR("UncTrkrecoSeqFSLRT", [im_alg, reco_algs])
-    sequenceOut = lrtcfg.FT.tracksFTF( doRecord = lrtcfg.isRecordable )
+    sequenceOut = lrtcfg.tracks_FTF()
 
     return (TrkSeq,im_alg, sequenceOut)
 
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/UnconventionalTracking/IsoHighPtTrackTriggerConfiguration.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/UnconventionalTracking/IsoHighPtTrackTriggerConfiguration.py
index 18da83ea13ea8578d280031eb669fc58318a4cd8..8c73c81c3d2b8dbecf8c2ae3072721e388a91da6 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/UnconventionalTracking/IsoHighPtTrackTriggerConfiguration.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/UnconventionalTracking/IsoHighPtTrackTriggerConfiguration.py
@@ -23,11 +23,11 @@ def FTFTrackSequence(ConfigFlags):
     from TrigInDetConfig.TrigInDetPriVtxConfig import makeVertices
 
     verticesname = recordable("HLT_IDVertex_FS")
-    vtxAlgs = makeVertices( "jet", IDTrigConfig.FT.tracksFTF( doRecord = IDTrigConfig.isRecordable ) , verticesname, IDTrigConfig )
+    vtxAlgs = makeVertices( "jet", IDTrigConfig.tracks_FTF() , verticesname, IDTrigConfig )
     prmVtx = vtxAlgs[-1]
 
     TrkSeq =  [InputMakerAlg,TrkInputNoViewAlg, prmVtx]
-    sequenceOut = IDTrigConfig.FT.tracksFTF( doRecord = IDTrigConfig.isRecordable )
+    sequenceOut = IDTrigConfig.tracks_FTF()
 
     return (TrkSeq, InputMakerAlg, sequenceOut)
 
@@ -42,7 +42,7 @@ def IsoHPtTrackTriggerHypoSequence():
         # Get sequence name
         from TrigInDetConfig.ConfigSettings import getInDetTrigConfig
         IDTrigConfig = getInDetTrigConfig( 'jet' )
-        sequenceOut = IDTrigConfig.FT.tracksFTF( doRecord = IDTrigConfig.isRecordable )
+        sequenceOut = IDTrigConfig.tracks_FTF()
 
         #Setup the hypothesis algorithm
         theIsoHPtTrackTriggerHypo = TrigIsoHPtTrackTriggerHypoAlgMT("L2IsoHPtTrack")