diff --git a/Trigger/TrigTools/TrigInDetConfig/python/TrigInDetConfig.py b/Trigger/TrigTools/TrigInDetConfig/python/TrigInDetConfig.py
index 5d64658e51e1f5003e97685aaa801c683140d07e..51d8b9090763ace63a9d5d95fd00a48863c7dc9c 100644
--- a/Trigger/TrigTools/TrigInDetConfig/python/TrigInDetConfig.py
+++ b/Trigger/TrigTools/TrigInDetConfig/python/TrigInDetConfig.py
@@ -5,6 +5,8 @@
 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
 from AthenaConfiguration.ComponentFactory import CompFactory
 from TrigEDMConfig.TriggerEDMRun3 import recordable
+from InDetRecExample.InDetKeys import InDetKeys
+
 
 def RungeKuttaPropagatorCfg(flags, **kwargs):
   acc = ComponentAccumulator()
@@ -260,20 +262,18 @@ def InDetIDCCacheCreatorCfg():
   return acc
 
 
-
-
-#Set up conditions algorithms
-def TrigInDetCondCfg( flags ):
-
+def geoModelCfg(flags):
   acc = ComponentAccumulator()
   from BeamPipeGeoModel.BeamPipeGMConfig import BeamPipeGeometryCfg
   acc.merge( BeamPipeGeometryCfg( flags ) )
   from AtlasGeoModel.InDetGMConfig import InDetGeometryCfg
   acc.merge( InDetGeometryCfg( flags ) )
-  #acc.merge(InDetGMConfig(flags))
 
+  return acc
 
 
+def sctCondCfg(flags):
+  acc = ComponentAccumulator()
   from IOVDbSvc.IOVDbSvcConfig import addFoldersSplitOnline, addFolders
   acc.merge(addFoldersSplitOnline(flags, "INDET","/Indet/Onl/AlignL1/ID","/Indet/AlignL1/ID",className="CondAttrListCollection"))
   acc.merge(addFoldersSplitOnline(flags, "INDET","/Indet/Onl/AlignL2/PIX","/Indet/AlignL2/PIX",className="CondAttrListCollection"))
@@ -300,18 +300,11 @@ def TrigInDetCondCfg( flags ):
                                            ReadKeyMur = murFolder))
   acc.merge(addFolders(flags, [channelFolder, moduleFolder, murFolder], "SCT", className="CondAttrListVec"))
 
-
-  from SiLorentzAngleTool.SCT_LorentzAngleConfig import SCT_LorentzAngleCfg
-  SCTLorentzAngleTool =  acc.popToolsAndMerge( SCT_LorentzAngleCfg( flags ) )
-  acc.addPublicTool(SCTLorentzAngleTool)
-
-  acc.merge(addFoldersSplitOnline(flags, "INDET", "/Indet/Onl/Beampos", "/Indet/Beampos", className="AthenaAttributeList"))
-  acc.merge(addFolders(flags, "/TRT/Onl/ROD/Compress","TRT_ONL", className='CondAttrListCollection'))
-  acc.merge(addFoldersSplitOnline(flags, "TRT","/TRT/Onl/Calib/RT","/TRT/Calib/RT",className="TRTCond::RtRelationMultChanContainer"))
-  acc.merge(addFoldersSplitOnline(flags, "TRT","/TRT/Onl/Calib/T0","/TRT/Calib/T0",className="TRTCond::StrawT0MultChanContainer"))
-  acc.merge(addFoldersSplitOnline (flags, "TRT","/TRT/Onl/Calib/errors","/TRT/Calib/errors",className="TRTCond::RtRelationMultChanContainer"))
+  return acc
 
 
+def pixelCondCfg(flags):
+  acc = ComponentAccumulator()
   ###############
   # Pixel setup #
   ###############
@@ -357,152 +350,143 @@ def TrigInDetCondCfg( flags ):
   acc.popToolsAndMerge(PixelLorentzAngleCfg(flags))
   acc.merge(PixelCablingSvcCfg(flags))
 
+  return acc
 
-  BeamSpotCondAlg=CompFactory.BeamSpotCondAlg
-  acc.addCondAlgo(BeamSpotCondAlg( "BeamSpotCondAlg" ))
-
+def trtCondCfg(flags):
+  acc = ComponentAccumulator()
+  from IOVDbSvc.IOVDbSvcConfig import addFoldersSplitOnline, addFolders
+  acc.merge(addFolders(flags, "/TRT/Onl/ROD/Compress","TRT_ONL", className='CondAttrListCollection'))
+  acc.merge(addFoldersSplitOnline(flags, "TRT","/TRT/Onl/Calib/RT","/TRT/Calib/RT",className="TRTCond::RtRelationMultChanContainer"))
+  acc.merge(addFoldersSplitOnline(flags, "TRT","/TRT/Onl/Calib/T0","/TRT/Calib/T0",className="TRTCond::StrawT0MultChanContainer"))
+  acc.merge(addFoldersSplitOnline (flags, "TRT","/TRT/Onl/Calib/errors","/TRT/Calib/errors",className="TRTCond::RtRelationMultChanContainer"))
 
-  from MagFieldServices.MagFieldServicesConfig import MagneticFieldSvcCfg
-  mfsc = MagneticFieldSvcCfg(flags)
-  acc.merge( mfsc )
   return acc
 
-def trigInDetCfg( inflags, roisKey="EMRoIs", signatureName='' ):
-
-  # redirect InDet.Tracking flags to point to a specific trigger setting
-  flags = inflags.cloneAndReplace("InDet.Tracking", "Trigger.InDetTracking."+signatureName)
+def beamposCondCfg(flags):
+  acc = ComponentAccumulator()
+  from IOVDbSvc.IOVDbSvcConfig import addFoldersSplitOnline
+  acc.merge(addFoldersSplitOnline(flags, "INDET", "/Indet/Onl/Beampos", "/Indet/Beampos", className="AthenaAttributeList"))
+  BeamSpotCondAlg=CompFactory.BeamSpotCondAlg
+  acc.addCondAlgo(BeamSpotCondAlg( "BeamSpotCondAlg" ))
 
-  #If signature specified add suffix to the name of each algorithms
-  signature =  ("_" + signatureName if signatureName else '').lower()
+  return acc
 
+def magFieldCfgCfg(flags):
   acc = ComponentAccumulator()
-  acc.merge(TrigInDetCondCfg(flags))
 
-  from InDetRecExample.InDetKeys import InDetKeys
+  acc.merge(geoModelCfg(flags))
+  from MagFieldServices.MagFieldServicesConfig import MagneticFieldSvcCfg
+  acc.merge( MagneticFieldSvcCfg(flags) )
+
+  return acc
 
-  # Region selector tools for Pixel, SCT and TRT
 
+def pixelDataPrepCfg(flags, roisKey, signature):
+  acc = ComponentAccumulator()
+  acc.merge(pixelCondCfg(flags))
   from RegionSelector.RegSelToolConfig import regSelTool_Pixel_Cfg
   RegSelTool_Pixel = acc.popToolsAndMerge(regSelTool_Pixel_Cfg(flags))
 
-  from RegionSelector.RegSelToolConfig import regSelTool_SCT_Cfg
-  RegSelTool_SCT   = acc.popToolsAndMerge(regSelTool_SCT_Cfg(flags))
-
-  from RegionSelector.RegSelToolConfig import regSelTool_TRT_Cfg
-  RegSelTool_TRT = acc.popToolsAndMerge(regSelTool_TRT_Cfg(flags))
-
-
-  verifier = CompFactory.AthViews.ViewDataVerifier( name = 'VDVInDet'+signature,
-                                                    DataObjects= [('xAOD::EventInfo', 'StoreGateSvc+EventInfo'),
-                                                                  ('InDet::PixelClusterContainerCache', 'PixelTrigClustersCache'),
-                                                                  ('PixelRDO_Cache', 'PixRDOCache'),
-                                                                  ('InDet::SCT_ClusterContainerCache', 'SCT_ClustersCache'),
-                                                                  ('SCT_RDO_Cache', 'SctRDOCache'),
-                                                                  ('SpacePointCache', 'PixelSpacePointCache'),
-                                                                  ('SpacePointCache', 'SctSpacePointCache'),
-                                                                  ('IDCInDetBSErrContainer_Cache', 'PixelBSErrCache'),
-                                                                  ('IDCInDetBSErrContainer_Cache', 'SctBSErrCache'),
-                                                                  ('IDCInDetBSErrContainer_Cache', 'SctFlaggedCondCache'),
-                                                                  ('xAOD::EventInfo', 'EventInfo'),
-                                                                  ('TrigRoiDescriptorCollection', roisKey),
-                                                                  ( 'TagInfo' , 'DetectorStore+ProcessingTags' )] )
-
-  acc.addEventAlgo(verifier)
-
-  #Only add raw data decoders if we're running over raw data
-  isMC = flags.Input.isMC
-  if not isMC:
-    #Pixel
-
-    PixelRodDecoder=CompFactory.PixelRodDecoder
-    InDetPixelRodDecoder = PixelRodDecoder(name = "InDetPixelRodDecoder"+ signature)
-    # Disable duplcated pixel check for data15 because duplication mechanism was used.
-    if len(flags.Input.ProjectName)>=6 and flags.Input.ProjectName[:6]=="data15":
-      InDetPixelRodDecoder.CheckDuplicatedPixel=False
-    acc.addPublicTool(InDetPixelRodDecoder)
-
-    PixelRawDataProviderTool=CompFactory.PixelRawDataProviderTool
-    InDetPixelRawDataProviderTool = PixelRawDataProviderTool(name    = "InDetPixelRawDataProviderTool"+ signature,
-                                                             Decoder = InDetPixelRodDecoder)
-    acc.addPublicTool(InDetPixelRawDataProviderTool)
-
-
-    # load the PixelRawDataProvider
-    PixelRawDataProvider=CompFactory.PixelRawDataProvider
-    InDetPixelRawDataProvider = PixelRawDataProvider(name         = "InDetPixelRawDataProvider"+ signature,
-                                                     RDOKey       = InDetKeys.PixelRDOs(),
-                                                     ProviderTool = InDetPixelRawDataProviderTool )
+  PixelRodDecoder=CompFactory.PixelRodDecoder
+  InDetPixelRodDecoder = PixelRodDecoder(name = "InDetPixelRodDecoder"+ signature)
+  # Disable duplcated pixel check for data15 because duplication mechanism was used.
+  if len(flags.Input.ProjectName)>=6 and flags.Input.ProjectName[:6]=="data15":
+    InDetPixelRodDecoder.CheckDuplicatedPixel=False
+  acc.addPublicTool(InDetPixelRodDecoder)
+
+  PixelRawDataProviderTool=CompFactory.PixelRawDataProviderTool
+  InDetPixelRawDataProviderTool = PixelRawDataProviderTool(name    = "InDetPixelRawDataProviderTool"+ signature,
+                                                           Decoder = InDetPixelRodDecoder)
+  acc.addPublicTool(InDetPixelRawDataProviderTool)
+
+   # load the PixelRawDataProvider
+  PixelRawDataProvider=CompFactory.PixelRawDataProvider
+  InDetPixelRawDataProvider = PixelRawDataProvider(name         = "InDetPixelRawDataProvider"+ signature,
+                                                   RDOKey       = InDetKeys.PixelRDOs(),
+                                                   ProviderTool = InDetPixelRawDataProviderTool,
+                                                   isRoI_Seeded = True,
+                                                   RoIs         = roisKey,
+                                                   RDOCacheKey  = InDetCacheNames.PixRDOCacheKey,
+                                                   RegSelTool   = RegSelTool_Pixel)
+
+  acc.addEventAlgo(InDetPixelRawDataProvider)
 
-    InDetPixelRawDataProvider.isRoI_Seeded = True
-    InDetPixelRawDataProvider.RoIs = roisKey
-    InDetPixelRawDataProvider.RDOCacheKey = InDetCacheNames.PixRDOCacheKey
+  return acc
 
-#   from RegionSelector.RegSelToolConfig import makeRegSelTool_Pixel
-#   InDetPixelRawDataProvider.RegSelTool = makeRegSelTool_Pixel()
+def sctDataPrepCfg(flags, roisKey, signature):
+  acc = ComponentAccumulator()
 
-    InDetPixelRawDataProvider.RegSelTool = RegSelTool_Pixel
+  acc.merge(sctCondCfg(flags))
 
-    acc.addEventAlgo(InDetPixelRawDataProvider)
+  from RegionSelector.RegSelToolConfig import regSelTool_SCT_Cfg
+  RegSelTool_SCT   = acc.popToolsAndMerge(regSelTool_SCT_Cfg(flags))
 
+  # load the SCTRawDataProvider
 
+  from SCT_RawDataByteStreamCnv.SCT_RawDataByteStreamCnvConfig import SCTRawDataProviderCfg
+  sctProviderArgs = {}
+  sctProviderArgs["RDOKey"] = InDetKeys.SCT_RDOs()
+  sctProviderArgs["isRoI_Seeded"] = True
+  sctProviderArgs["RoIs"] = roisKey
+  sctProviderArgs["RDOCacheKey"] = InDetCacheNames.SCTRDOCacheKey
+  sctProviderArgs["RegSelTool"] = RegSelTool_SCT
+  acc.merge(SCTRawDataProviderCfg(flags, suffix=signature, **sctProviderArgs))
+  # load the SCTEventFlagWriter
+  from SCT_RawDataByteStreamCnv.SCT_RawDataByteStreamCnvConfig import SCTEventFlagWriterCfg
+  acc.merge(SCTEventFlagWriterCfg(flags, suffix=signature))
 
+  return acc
 
-    #SCT
-    # load the SCTRawDataProvider
-    from SCT_RawDataByteStreamCnv.SCT_RawDataByteStreamCnvConfig import SCTRawDataProviderCfg
-    sctProviderArgs = {}
-    sctProviderArgs["RDOKey"] = InDetKeys.SCT_RDOs()
-    sctProviderArgs["isRoI_Seeded"] = True
-    sctProviderArgs["RoIs"] = roisKey
-    sctProviderArgs["RDOCacheKey"] = InDetCacheNames.SCTRDOCacheKey
-    sctProviderArgs["RegSelTool"] = RegSelTool_SCT
-    acc.merge(SCTRawDataProviderCfg(flags, suffix=signature, **sctProviderArgs))
 
-    # load the SCTEventFlagWriter
-    from SCT_RawDataByteStreamCnv.SCT_RawDataByteStreamCnvConfig import SCTEventFlagWriterCfg
-    acc.merge(SCTEventFlagWriterCfg(flags, suffix=signature))
 
 
-    #TRT
+def trtDataPrep(flags, roisKey, signature):
+  acc = ComponentAccumulator()
 
+  acc.merge(trtCondCfg(flags))
 
-    TRT_RodDecoder=CompFactory.TRT_RodDecoder
-    InDetTRTRodDecoder = TRT_RodDecoder(name = "InDetTRTRodDecoder",
-                                        LoadCompressTableDB = True)#(globalflags.DataSource() != 'geant4'))
-    acc.addPublicTool(InDetTRTRodDecoder)
+  from RegionSelector.RegSelToolConfig import regSelTool_TRT_Cfg
+  RegSelTool_TRT = acc.popToolsAndMerge(regSelTool_TRT_Cfg(flags))
 
-    TRTRawDataProviderTool=CompFactory.TRTRawDataProviderTool
-    InDetTRTRawDataProviderTool = TRTRawDataProviderTool(name    = "InDetTRTRawDataProviderTool"+ signature,
-                                                         Decoder = InDetTRTRodDecoder)
-    acc.addPublicTool(InDetTRTRawDataProviderTool)
+  TRT_RodDecoder=CompFactory.TRT_RodDecoder
+  InDetTRTRodDecoder = TRT_RodDecoder(name = "InDetTRTRodDecoder",
+                                      LoadCompressTableDB = True)#(globalflags.DataSource() != 'geant4'))
+  acc.addPublicTool(InDetTRTRodDecoder)
 
+  TRTRawDataProviderTool=CompFactory.TRTRawDataProviderTool
+  InDetTRTRawDataProviderTool = TRTRawDataProviderTool(name    = "InDetTRTRawDataProviderTool"+ signature,
+                                                       Decoder = InDetTRTRodDecoder)
+  acc.addPublicTool(InDetTRTRawDataProviderTool)
 
-    # load the TRTRawDataProvider
-    TRTRawDataProvider=CompFactory.TRTRawDataProvider
-    InDetTRTRawDataProvider = TRTRawDataProvider(name         = "InDetTRTRawDataProvider"+ signature,
-                                                 RDOKey       = "TRT_RDOs",
-                                                 ProviderTool = InDetTRTRawDataProviderTool)
-    InDetTRTRawDataProvider.isRoI_Seeded = True
-    InDetTRTRawDataProvider.RoIs = roisKey
+   # load the TRTRawDataProvider
+  TRTRawDataProvider=CompFactory.TRTRawDataProvider
+  InDetTRTRawDataProvider = TRTRawDataProvider(name         = "InDetTRTRawDataProvider"+ signature,
+                                               RDOKey       = "TRT_RDOs",
+                                               ProviderTool = InDetTRTRawDataProviderTool,
+                                               RegSelTool   = RegSelTool_TRT,
+                                               isRoI_Seeded = True,
+                                               RoIs         = roisKey)
 
-#   from RegionSelector.RegSelToolConfig import makeRegSelTool_TRT
-#   InDetTRTRawDataProvider.RegSelTool_TRT = makeRegSelTool_TRT()
+  acc.addEventAlgo(InDetTRTRawDataProvider)
 
-    InDetTRTRawDataProvider.RegSelTool = RegSelTool_TRT
+  return acc
 
-    acc.addEventAlgo(InDetTRTRawDataProvider)
 
+def pixelClusterizationCfg(flags, roisKey, signature):
+  acc = ComponentAccumulator()
+  from RegionSelector.RegSelToolConfig import regSelTool_Pixel_Cfg
+  RegSelTool_Pixel = acc.popToolsAndMerge(regSelTool_Pixel_Cfg(flags))
 
   #Pixel clusterisation
   InDet__ClusterMakerTool=CompFactory.InDet.ClusterMakerTool
-  InDetClusterMakerTool = InDet__ClusterMakerTool(name                 = "InDetClusterMakerTool"+ signature)
+  InDetClusterMakerTool = InDet__ClusterMakerTool(name = "InDetClusterMakerTool"+ signature)
 
   acc.addPublicTool(InDetClusterMakerTool)
 
 
   InDet__MergedPixelsTool=CompFactory.InDet.MergedPixelsTool
-  InDetMergedPixelsTool = InDet__MergedPixelsTool(name                    = "InDetMergedPixelsTool"+ signature,
-                                                  globalPosAlg            = InDetClusterMakerTool)
+  InDetMergedPixelsTool = InDet__MergedPixelsTool(name = "InDetMergedPixelsTool"+ signature,
+                                                  globalPosAlg = InDetClusterMakerTool)
   # Enable duplcated RDO check for data15 because duplication mechanism was used.
 
   if len(flags.Input.ProjectName)>=6 and flags.Input.ProjectName[:6]=="data15":
@@ -514,25 +498,33 @@ def trigInDetCfg( inflags, roisKey="EMRoIs", signatureName='' ):
   acc.addPublicTool(InDetPixelGangedAmbiguitiesFinder)
 
   InDet__PixelClusterization=CompFactory.InDet.PixelClusterization
-  InDetPixelClusterization = InDet__PixelClusterization(name                    = "InDetPixelClusterization"+ signature,
-                                                        clusteringTool          = InDetMergedPixelsTool,
-                                                        gangedAmbiguitiesFinder = InDetPixelGangedAmbiguitiesFinder,
-                                                        DataObjectName          = InDetKeys.PixelRDOs(),
-                                                        AmbiguitiesMap          = 'TrigPixelClusterAmbiguitiesMap',
-                                                        ClustersName            = "PixelTrigClusters",)
+  InDetPixelClusterization = InDet__PixelClusterization(name                     = "InDetPixelClusterization"+ signature,
+                                                        clusteringTool           = InDetMergedPixelsTool,
+                                                        gangedAmbiguitiesFinder  = InDetPixelGangedAmbiguitiesFinder,
+                                                        DataObjectName           = InDetKeys.PixelRDOs(),
+                                                        AmbiguitiesMap           = 'TrigPixelClusterAmbiguitiesMap',
+                                                        ClustersName             = "PixelTrigClusters",
+                                                        RegSelTool               = RegSelTool_Pixel,
+                                                        isRoI_Seeded             = True,
+                                                        RoIs                     = roisKey,
+                                                        ClusterContainerCacheKey = InDetCacheNames.Pixel_ClusterKey)
+
+  acc.addEventAlgo(InDetPixelClusterization)
 
-  InDetPixelClusterization.isRoI_Seeded = True
-  InDetPixelClusterization.RoIs = roisKey
-  InDetPixelClusterization.ClusterContainerCacheKey = InDetCacheNames.Pixel_ClusterKey
+  return acc
 
-  #  from RegionSelector.RegSelToolConfig import makeRegSelTool_Pixel
-  InDetPixelClusterization.RegSelTool = RegSelTool_Pixel
+def sctClusterizationCfg(flags, roisKey, signature):
+  acc = ComponentAccumulator()
 
-  acc.addEventAlgo(InDetPixelClusterization)
+  from RegionSelector.RegSelToolConfig import regSelTool_SCT_Cfg
+  RegSelTool_SCT   = acc.popToolsAndMerge(regSelTool_SCT_Cfg(flags))
 
   from InDetConfig.InDetRecToolConfig import InDetSCT_ConditionsSummaryToolCfg
-  InDetSCT_ConditionsSummaryToolWithoutFlagged = acc.popToolsAndMerge(InDetSCT_ConditionsSummaryToolCfg(flags,withFlaggedCondTool=False, withTdaqTool=False))
+  InDetSCT_ConditionsSummaryToolWithoutFlagged = acc.popToolsAndMerge(InDetSCT_ConditionsSummaryToolCfg(flags, withFlaggedCondTool = False, withTdaqTool = False))
 
+  InDet__ClusterMakerTool=CompFactory.InDet.ClusterMakerTool
+  InDetClusterMakerTool = InDet__ClusterMakerTool(name = "InDetClusterMakerTool"+ signature)
+  acc.addPublicTool(InDetClusterMakerTool)
 
   #
   # --- SCT_ClusteringTool (public)
@@ -546,22 +538,25 @@ def trigInDetCfg( inflags, roisKey="EMRoIs", signatureName='' ):
   #
 
   InDet__SCT_Clusterization=CompFactory.InDet.SCT_Clusterization
-  InDetSCT_Clusterization = InDet__SCT_Clusterization(name                    = "InDetSCT_Clusterization"+ signature,
-                                                      clusteringTool          = InDetSCT_ClusteringTool,
-                                                      # ChannelStatus         = InDetSCT_ChannelStatusAlg,
-                                                      DataObjectName          = InDetKeys.SCT_RDOs(),
-                                                      ClustersName            = "SCT_TrigClusters",
-                                                      conditionsTool          = InDetSCT_ConditionsSummaryToolWithoutFlagged)
-  InDetSCT_Clusterization.isRoI_Seeded = True
-  InDetSCT_Clusterization.RoIs = roisKey
-  InDetSCT_Clusterization.ClusterContainerCacheKey = InDetCacheNames.SCT_ClusterKey
-  InDetSCT_Clusterization.FlaggedCondCacheKey = InDetCacheNames.SCTFlaggedCondCacheKey
-
-  InDetSCT_Clusterization.RegSelTool = RegSelTool_SCT
+  InDetSCT_Clusterization = InDet__SCT_Clusterization(name                     = "InDetSCT_Clusterization"+ signature,
+                                                      clusteringTool           = InDetSCT_ClusteringTool,
+                                                      # ChannelStatus          = InDetSCT_ChannelStatusAlg,
+                                                      DataObjectName           = InDetKeys.SCT_RDOs(),
+                                                      ClustersName             = "SCT_TrigClusters",
+                                                      conditionsTool           = InDetSCT_ConditionsSummaryToolWithoutFlagged,
+                                                      isRoI_Seeded             = True,
+                                                      RoIs                     = roisKey,
+                                                      ClusterContainerCacheKey = InDetCacheNames.SCT_ClusterKey,
+                                                      FlaggedCondCacheKey      = InDetCacheNames.SCTFlaggedCondCacheKey,
+                                                      RegSelTool               = RegSelTool_SCT)
+
   acc.addEventAlgo(InDetSCT_Clusterization)
 
+  return acc
 
-  #Space points and FTF
+def spacePointsMakingCfg(flags, signature):
+  acc = ComponentAccumulator()
+  #Space points
 
   InDet__SiSpacePointMakerTool=CompFactory.InDet.SiSpacePointMakerTool
   InDetSiSpacePointMakerTool = InDet__SiSpacePointMakerTool(name = "InDetSiSpacePointMakerTool"+ signature)
@@ -580,15 +575,21 @@ def trigInDetCfg( inflags, roisKey="EMRoIs", signatureName='' ):
                                                                     ProcessPixels          = flags.Detector.RecoPixel,
                                                                     ProcessSCTs            = flags.Detector.RecoSCT,
                                                                     ProcessOverlaps        = flags.Detector.RecoSCT,
-                                                                    SpacePointCacheSCT = InDetCacheNames.SpacePointCacheSCT,
-                                                                    SpacePointCachePix = InDetCacheNames.SpacePointCachePix,)
+                                                                    SpacePointCacheSCT     = InDetCacheNames.SpacePointCacheSCT,
+                                                                    SpacePointCachePix     = InDetCacheNames.SpacePointCachePix,)
   acc.addEventAlgo(InDetSiTrackerSpacePointFinder)
 
-  acc.addPublicTool( CompFactory.TrigL2LayerNumberTool( "TrigL2LayerNumberTool_FTF" ) )
+  return acc
+
+
+def __trackCollName(signatureName):
+    return "HLT_IDTrkTrack_"+signatureName+"_FTF"
+
+def ftfCfg(flags, roisKey, signature, signatureName):
+  acc = ComponentAccumulator()
 
   acc.merge( TrackSummaryToolCfg(flags, name="InDetTrigFastTrackSummaryTool") )
 
-#  acc.addPublicTool( CompFactory.TrigL2ResidualCalculator( "TrigL2ResidualCalculator" ) )
   acc.merge( SiTrackMaker_xkCfg( flags, name = "InDetTrigSiTrackMaker_FTF"+signature ) )
 
   acc.addPublicTool( CompFactory.TrigInDetTrackFitter( "TrigInDetTrackFitter" ) )
@@ -601,15 +602,15 @@ def trigInDetCfg( inflags, roisKey="EMRoIs", signatureName='' ):
   acc.merge( TrackingGeometrySvcCfg( flags ) )
   acc.addPublicTool( CompFactory.TrigL2LayerNumberTool( name = "TrigL2LayerNumberTool_FTF",
                                                         UseNewLayerScheme = True) )
+  acc.addPublicTool( CompFactory.TrigL2LayerNumberTool( "TrigL2LayerNumberTool_FTF" ) )
 
   acc.addPublicTool( CompFactory.TrigSpacePointConversionTool( "TrigSpacePointConversionTool" + signature,
-                                                                 DoPhiFiltering = True,
-                                                                 UseBeamTilt = False,
+                                                                 DoPhiFiltering    = True,
+                                                                 UseBeamTilt       = False,
                                                                  UseNewLayerScheme = True,
-                                                                 RegSelTool_Pixel = pixRegSelTool,
-                                                                 RegSelTool_SCT   = sctRegSelTool,
-                                                                 layerNumberTool  = acc.getPublicTool("TrigL2LayerNumberTool_FTF") ) )
-
+                                                                 RegSelTool_Pixel  = pixRegSelTool,
+                                                                 RegSelTool_SCT    = sctRegSelTool,
+                                                                 layerNumberTool   = acc.getPublicTool("TrigL2LayerNumberTool_FTF") ) )
 
   # TODO remove once offline configured counterparts are available?
   acc.addCondAlgo( CompFactory.InDet.SiDetElementBoundaryLinksCondAlg_xk(name= "InDetSiDetElementBoundaryLinksSCTCondAlg",
@@ -626,76 +627,114 @@ def trigInDetCfg( inflags, roisKey="EMRoIs", signatureName='' ):
 #                                         TrigL2ResidualCalculator = acc.getPublicTool( "TrigL2ResidualCalculator" ),
                                          initialTrackMaker        = acc.getPublicTool( "InDetTrigSiTrackMaker_FTF" + signature ),
                                          trigInDetTrackFitter     = acc.getPublicTool( "TrigInDetTrackFitter" ),
-                                         RoIs = roisKey,
-                                         trigZFinder = CompFactory.TrigZFinder(),
-                                         doZFinder = False,
-                                         SeedRadBinWidth =  flags.InDet.Tracking.seedRadBinWidth,
-                                         TrackInitialD0Max = 1000. if flags.InDet.Tracking.extension == 'cosmics' else 20.0,
-                                         TracksName = "HLT_IDTrkTrack_"+signatureName+"_FTF",
-                                         OutputCollectionSuffix = signature,
-                                         TripletDoPSS = False,
-                                         Triplet_D0Max = flags.InDet.Tracking.d0SeedMax,
-                                         Triplet_D0_PPS_Max = flags.InDet.Tracking.d0SeedPPSMax,
-                                         Triplet_MaxBufferLength = 3,
-                                         Triplet_MinPtFrac = 1,
-                                         Triplet_nMaxPhiSlice = 53,
-                                         doCloneRemoval = flags.InDet.Tracking.doCloneRemoval,
-                                         doResMon = flags.InDet.Tracking.doResMon,
-                                         doSeedRedundancyCheck = flags.InDet.Tracking.checkRedundantSeeds,
-                                         pTmin = flags.InDet.Tracking.minPT,
-                                         useNewLayerNumberScheme = True,
-                                         MinHits = 5,
-                                         useGPU=False,
-                                         DoubletDR_Max = 270)
+                                         RoIs                     = roisKey,
+                                         trigZFinder              = CompFactory.TrigZFinder(),
+                                         doZFinder                = False,
+                                         SeedRadBinWidth          =  flags.InDet.Tracking.seedRadBinWidth,
+                                         TrackInitialD0Max        = 1000. if flags.InDet.Tracking.extension == 'cosmics' else 20.0,
+                                         TracksName               = __trackCollName(signatureName),
+                                         OutputCollectionSuffix   = signature,
+                                         TripletDoPSS             = False,
+                                         Triplet_D0Max            = flags.InDet.Tracking.d0SeedMax,
+                                         Triplet_D0_PPS_Max       = flags.InDet.Tracking.d0SeedPPSMax,
+                                         Triplet_MaxBufferLength  = 3,
+                                         Triplet_MinPtFrac        = 1,
+                                         Triplet_nMaxPhiSlice     = 53,
+                                         doCloneRemoval           = flags.InDet.Tracking.doCloneRemoval,
+                                         doResMon                 = flags.InDet.Tracking.doResMon,
+                                         doSeedRedundancyCheck    = flags.InDet.Tracking.checkRedundantSeeds,
+                                         pTmin                    = flags.InDet.Tracking.minPT,
+                                         useNewLayerNumberScheme  = True,
+                                         MinHits                  = 5,
+                                         useGPU                   = False,
+                                         DoubletDR_Max            = 270)
   acc.addEventAlgo( ftf )
 
+
+  return acc
+
+
+def trackConverterCfg(flags, signature, signatureName):
+  acc = ComponentAccumulator()
+
+  acc.merge( TrackSummaryToolCfg(flags, name="InDetTrigFastTrackSummaryTool") )
+
   creatorTool = CompFactory.Trk.TrackParticleCreatorTool( name = "InDetTrigParticleCreatorToolFTF",
                                                           Extrapolator = acc.getPublicTool( "InDetTrigExtrapolator" ),
-                                                          TrackSummaryTool = acc.getPublicTool( "InDetTrigFastTrackSummaryTool" ),
-                                                          KeepParameters = True,
+                                                          TrackSummaryTool      = acc.getPublicTool( "InDetTrigFastTrackSummaryTool" ),
+                                                          KeepParameters        = True,
                                                           ComputeAdditionalInfo = True,
-                                                          ExtraSummaryTypes = ['eProbabilityComb', 'eProbabilityHT', 'TRTTrackOccupancy', 'TRTdEdx', 'TRTdEdxUsedHits'])
+                                                          ExtraSummaryTypes     = ['eProbabilityComb', 'eProbabilityHT', 'TRTTrackOccupancy', 'TRTdEdx', 'TRTdEdxUsedHits'])
   acc.addPublicTool(creatorTool)
-
   trackParticleCnv=CompFactory.InDet.TrigTrackingxAODCnvMT(name = "InDetTrigTrackParticleCreatorAlg" + signature,
-                                                          TrackName = ftf.TracksName,
-                                                          TrackParticlesName = recordable("HLT_IDTrack_"+signatureName+"_FTF"),
+                                                          TrackName           = __trackCollName(signatureName),
+                                                          TrackParticlesName  = recordable("HLT_IDTrack_"+signatureName+"_FTF"),
                                                           ParticleCreatorTool = acc.getPublicTool("InDetTrigParticleCreatorToolFTF"))
+
   acc.addEventAlgo(trackParticleCnv)
 
   return acc
-  
+
+def trigInDetCfg( inflags, roisKey="EMRoIs", signatureName='' ):
+
+  # redirect InDet.Tracking flags to point to a specific trigger setting
+  flags = inflags.cloneAndReplace("InDet.Tracking", "Trigger.InDetTracking."+signatureName)
+
+  #If signature specified add suffix to the name of each algorithms
+  signature =  ("_" + signatureName if signatureName else '').lower()
+
+  acc = ComponentAccumulator()
+  acc.merge(magFieldCfgCfg(flags))
+
+  # TODO merge it to the component needing it
+  acc.merge(beamposCondCfg(flags))
+
+
+  verifier = CompFactory.AthViews.ViewDataVerifier( name = 'VDVInDet'+signature,
+                                                    DataObjects= [('xAOD::EventInfo', 'StoreGateSvc+EventInfo'),
+                                                                  ('InDet::PixelClusterContainerCache', 'PixelTrigClustersCache'),
+                                                                  ('PixelRDO_Cache', 'PixRDOCache'),
+                                                                  ('InDet::SCT_ClusterContainerCache', 'SCT_ClustersCache'),
+                                                                  ('SCT_RDO_Cache', 'SctRDOCache'),
+                                                                  ('SpacePointCache', 'PixelSpacePointCache'),
+                                                                  ('SpacePointCache', 'SctSpacePointCache'),
+                                                                  ('IDCInDetBSErrContainer_Cache', 'PixelBSErrCache'),
+                                                                  ('IDCInDetBSErrContainer_Cache', 'SctBSErrCache'),
+                                                                  ('IDCInDetBSErrContainer_Cache', 'SctFlaggedCondCache'),
+                                                                  ('xAOD::EventInfo', 'EventInfo'),
+                                                                  ('TrigRoiDescriptorCollection', roisKey),
+                                                                  ( 'TagInfo' , 'DetectorStore+ProcessingTags' )] )
+
+  acc.addEventAlgo(verifier)
+  #Only add raw data decoders if we're running over raw data
+  isMC = flags.Input.isMC
+  if not isMC:
+    acc.merge(pixelDataPrepCfg(flags, roisKey, signature))
+    acc.merge(sctDataPrepCfg(flags, roisKey, signature))
+    acc.merge(trtDataPrep(flags, roisKey, signature))
+
+  acc.merge(pixelClusterizationCfg(flags, roisKey, signature))
+  acc.merge(sctClusterizationCfg(flags, roisKey, signature))
+  acc.merge(spacePointsMakingCfg(flags, signature))
+  acc.merge(ftfCfg(flags, roisKey, signature, signatureName))
+  acc.merge(trackConverterCfg(flags, signature, signatureName))
+  return acc
+
 if __name__ == "__main__":
     from AthenaCommon.Configurable import Configurable
     Configurable.configurableRun3Behavior=1
 
     from AthenaConfiguration.AllConfigFlags import ConfigFlags
-    ConfigFlags.Input.Files = ["/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/TrigP1Test/data17_13TeV.00327265.physics_EnhancedBias.merge.RAW._lb0100._SFO-1._0001.1"]
-    ConfigFlags.Trigger.LVL1ConfigFile = "LVL1config_Physics_pp_v7.xml"
-    #ConfigFlags.IOVDb.GlobalTag = "CONDBR2-BLKPA-2018-13"
-    ConfigFlags.lock()
-
-    acc = ComponentAccumulator()
-
-    nThreads=1
-
-    SG__HiveMgrSvc=CompFactory.SG.HiveMgrSvc
-    eventDataSvc = SG__HiveMgrSvc("EventDataSvc")
-    eventDataSvc.NSlots = nThreads
-    acc.addService( eventDataSvc )
-    #from AthenaConfiguration.MainServicesConfig import MainServicesCfg
-    #acc.merge( MainServicesCfg( ConfigFlags ) )
-    from L1Decoder.L1DecoderConfig import L1DecoderCfg
-    l1DecoderAcc = L1DecoderCfg( ConfigFlags )
-    acc.merge(l1DecoderAcc)
-    from ByteStreamCnvSvc.ByteStreamConfig import ByteStreamReadCfg
-    acc.merge(ByteStreamReadCfg(ConfigFlags))
+    from AthenaConfiguration.TestDefaults import defaultTestFiles
 
+    ConfigFlags.Input.Files = defaultTestFiles.RAW
+    ConfigFlags.lock()
+    # this configuration is not runable, the test checks if there is no mistake in python scripts above
+    # output can be used by experts to check actual configuration (e.g. here we configure to run on RAW and it should be reflected in settings)
+    from AthenaConfiguration.MainServicesConfig import MainServicesCfg
+    acc = MainServicesCfg( ConfigFlags )
     acc.merge( trigInDetCfg( ConfigFlags, roisKey="ElectronRoIs", signatureName="Electron" ) )
-    from RegionSelector.RegSelConfig import regSelCfg
-    rsc = regSelCfg( ConfigFlags )
-    acc.merge( rsc )
 
-    acc.printConfig()
+    acc.printConfig(withDetails=True, summariseProps=True)
     acc.store( open("test.pkl", "wb") )
     print('All ok')