diff --git a/InnerDetector/InDetDigitization/FastSiDigitization/share/SiSmearing_noPU_CompletedjO.py b/InnerDetector/InDetDigitization/FastSiDigitization/share/SiSmearing_noPU_CompletedjO.py
deleted file mode 100644
index ee3d95e8ff6a5bf17630da58cc843a6ea5db4caa..0000000000000000000000000000000000000000
--- a/InnerDetector/InDetDigitization/FastSiDigitization/share/SiSmearing_noPU_CompletedjO.py
+++ /dev/null
@@ -1,560 +0,0 @@
-#--------------------------------------------------------------------
-# Perfmon configuration
-#--------------------------------------------------------------------
-from PerfMonComps.PerfMonFlags import jobproperties
-jobproperties.PerfMonFlags.doMonitoring = True
-jobproperties.PerfMonFlags.doMallocMonitoring = True
-jobproperties.PerfMonFlags.doPostProcessing = True
-
-from ISF_FatrasServices.ISF_FatrasJobProperties import ISF_FatrasFlags
-ISF_FatrasFlags.OutputLevelGeneral = INFO
-#--------------------------------------------------------------
-# AthenaCommon configuration
-#--------------------------------------------------------------
-from AthenaCommon.AthenaCommonFlags import athenaCommonFlags
-athenaCommonFlags.SkipEvents=0
-athenaCommonFlags.EvtMax=10
-athenaCommonFlags.PoolHitsInput=["Hits.pool.root"]
-athenaCommonFlags.PoolRDOOutput="DigitizationOutput.pool.root"
-
-# the magnetic field
-from MagFieldServices import SetupField
-from IOVDbSvc.CondDB import conddb
-conddb.addOverride('/GLOBAL/BField/Map','BFieldMap-FullAsym-09-solTil')
-
-from TrkDetDescrSvc.TrkDetDescrJobProperties import TrkDetFlags
-TrkDetFlags.MaterialSource           = 'Input'
-
-#--------------------------------------------------------------
-# Digitiziation and Pileup configuration
-#--------------------------------------------------------------
-from Digitization.DigitizationFlags import digitizationFlags
-digitizationFlags.IOVDbGlobalTag='OFLCOND-SIM-00-00-00'
-
-#--------------------------------------------------------------
-# Global flags. Like eg the DD version:
-#--------------------------------------------------------------
-from AthenaCommon.GlobalFlags import globalflags
-globalflags.DetDescrVersion='ATLAS-PX-ITK-00-00-00'
-
-#--------------------------------------------------------------------
-# DetFlags. Use to turn on/off individual subdetector or LVL1 trigger
-#--------------------------------------------------------------------
-from AthenaCommon.DetFlags import DetFlags
-DetFlags.ID_setOn()
-DetFlags.Calo_setOff()
-DetFlags.Muon_setOff()
-DetFlags.detdescr.Muon_setOff()
-DetFlags.LVL1_setOff()
-DetFlags.Truth_setOn()
-
-include("FastSiDigitization/SiSmearing_jobOptions.py")
-
-DetFlags.pixel_setOff()
-DetFlags.detdescr.pixel_setOn()
-
-DetFlags.SCT_setOff() # setOn to use the standard digi
-DetFlags.detdescr.SCT_setOn()
-
-DetFlags.TRT_setOff() # setOn to use the standard digi
-
-include("Digitization/Digitization.py")
-
-from InDetRecExample.InDetJobProperties import InDetFlags
-
-# --- Set output level threshold (2=DEBUG, 3=VERBOSE, 4=WARNING, 5=ERROR, 6=FATAL )
-OutputLevel     = VERBOSE
-# --- produce an atlantis data file
-doJiveXML       = False
-# --- run the Virtual Point 1 event visualisation
-doVP1           = True
-# --- controls what is written out. ESD includes AOD, so it's normally enough
-doWriteESD      = True
-doWriteAOD      = True
-# --- do auditors ?
-doAuditors      = True
-
-DetFlags.makeRIO.pixel_setOff()
-DetFlags.makeRIO.SCT_setOff()
-
-DetFlags.readRIOPool.pixel_setOn()
-DetFlags.readRIOPool.SCT_setOn()
-
-DetFlags.haveRIO.pixel_on()
-DetFlags.haveRIO.SCT_on()
-
-# --- uncomment to change the default of one of the following options:
-InDetFlags.doTruth       = True
-InDetFlags.doNewTracking           = True
-# --- Turn off track slimming
-#InDetFlags.doSlimming = False
-
-# --- possibility to change the trackfitter
-InDetFlags.trackFitterType = 'KalmanFitter'
-#InDetFlags.trackFitterType = 'GlobalChi2Fitter'
-
-# --- activate monitorings
-InDetFlags.doMonitoringGlobal    = False
-InDetFlags.doMonitoringPrimaryVertexingEnhanced = False
-InDetFlags.doMonitoringPixel     = False
-InDetFlags.doMonitoringSCT       = False
-InDetFlags.doMonitoringTRT       = False
-InDetFlags.doMonitoringAlignment = False
-InDetFlags.doPrintConfigurables  = True 
-InDetFlags.doPseudoTracking         = True 
-InDetFlags.doxAOD = True
-
-from InDetRecExample.InDetKeys import InDetKeys
-InDetKeys.trkValidationNtupleName = 'TrkValidation.root'
-InDetKeys.trkD3PDFileName = 'InDetTrackD3PD.root'
-
-StoreGateSvc = Service("StoreGateSvc")
-StoreGateSvc.Dump = True
-
-from PixelConditionsTools.PixelConditionsToolsConf import PixelRecoDbTool
-ToolSvc += PixelRecoDbTool()
-ToolSvc.PixelRecoDbTool.InputSource = 1
-
-from AthenaCommon.AppMgr import ServiceMgr
-ServiceMgr.MessageSvc.enableSuppression = False
-ServiceMgr.MessageSvc.Format       = "% F%50W%S%7W%R%T %0W%M"
-
-OutputNameString = 'CheckSmearing'
-
-if not hasattr(ServiceMgr, 'THistSvc'):
-    from GaudiSvc.GaudiSvcConf import THistSvc
-    ServiceMgr += THistSvc()
- 
-from AthenaCommon.AlgSequence import AlgSequence
-from AthenaCommon.SystemOfUnits import *
-import math
-
-# load the tracking geometry service
-from TrkDetDescrSvc.AtlasTrackingGeometrySvc import AtlasTrackingGeometrySvc
-
-topSequence = AlgSequence()
-
-topSequence.PixelSmearedDigitization.SiSmearedDigitizationTool.CheckSmear=True
-topSequence.PixelSmearedDigitization.SiSmearedDigitizationTool.OutputLevel=OutputLevel
-#topSequence.PixelSmearedDigitization.SiSmearedDigitizationTool.pitch_X=10.0*micrometer
-#topSequence.PixelSmearedDigitization.SiSmearedDigitizationTool.pitch_X=0.0*micrometer
-#topSequence.PixelSmearedDigitization.SiSmearedDigitizationTool.pitch_Y=55.0*micrometer
-#topSequence.PixelSmearedDigitization.SiSmearedDigitizationTool.pitch_Y=0.0*micrometer
-topSequence.PixelSmearedDigitization.SiSmearedDigitizationTool.TrackingGeometrySvc = AtlasTrackingGeometrySvc
-topSequence.PixelSmearedDigitization.SiSmearedDigitizationTool.UseCustomGeometry = True
-topSequence.PixelSmearedDigitization.SiSmearedDigitizationTool.DetectorElementMapName="Pixel_IdHashDetElementMap"
-topSequence.PixelSmearedDigitization.SiSmearedDigitizationTool.MergeClusters = False
-topSequence.PixelSmearedDigitization.SiSmearedDigitizationTool.PlanarClusterContainerName="Pixel_PlanarClusters"
-topSequence.PixelSmearedDigitization.SiSmearedDigitizationTool.PRD_TruthPlanarContainerName="PRD_MultiTruthPlanarPixel"
-#topSequence.PixelSmearedDigitization.SiSmearedDigitizationTool.Nsigma = 1.0
-
-topSequence.SCTSmearedDigitization.SiSmearedDigitizationTool.CheckSmear=True
-topSequence.SCTSmearedDigitization.SiSmearedDigitizationTool.SmearPixel = False
-topSequence.SCTSmearedDigitization.SiSmearedDigitizationTool.OutputLevel=OutputLevel
-#topSequence.SCTSmearedDigitization.SiSmearedDigitizationTool.pitch_X= 70.0*micrometer
-#topSequence.SCTSmearedDigitization.SiSmearedDigitizationTool.pitch_X= 0.0*micrometer
-topSequence.SCTSmearedDigitization.SiSmearedDigitizationTool.TrackingGeometrySvc = AtlasTrackingGeometrySvc
-topSequence.SCTSmearedDigitization.SiSmearedDigitizationTool.UseCustomGeometry = True
-topSequence.SCTSmearedDigitization.SiSmearedDigitizationTool.DetectorElementMapName="SCT_IdHashDetElementMap"
-topSequence.SCTSmearedDigitization.SiSmearedDigitizationTool.MergeClusters = False
-topSequence.SCTSmearedDigitization.SiSmearedDigitizationTool.PlanarClusterContainerName="SCT_PlanarClusters"
-topSequence.SCTSmearedDigitization.SiSmearedDigitizationTool.PRD_TruthPlanarContainerName="PRD_MultiTruthPlanarSCT"
-
-AlgSequence("Streams").StreamRDO.ItemList += ["iFatras::PlanarClusterContainer#Pixel_PlanarClusters"]
-##AlgSequence("Streams").StreamRDO.ItemList += ["InDet::SiClusterContainer#PixelClusters"]
-AlgSequence("Streams").StreamRDO.ItemList += ["iFatras::PlanarClusterContainer#SCT_PlanarClusters"]
-##AlgSequence("Streams").StreamRDO.ItemList += ["InDet::SiClusterContainer#SCT_Clusters"]
-
-AlgSequence("Streams").StreamRDO.ItemList += ["PRD_MultiTruthCollection#PRD_MultiTruthPlanarPixel"]
-AlgSequence("Streams").StreamRDO.ItemList += ["PRD_MultiTruthCollection#PRD_MultiTruthPlanarSCT"]
-##AlgSequence("Streams").StreamRDO.ItemList += ["PRD_MultiTruthCollection#PRD_MultiTruthPixel"]
-##AlgSequence("Streams").StreamRDO.ItemList += ["PRD_MultiTruthCollection#PRD_MultiTruthSCT"]
-
-#from SiSpacePointTool.SiSpacePointToolConf import InDet__SiSpacePointMakerTool
-#InDetSiSpacePointMakerTool = InDet__SiSpacePointMakerTool(name = "InDetSiSpacePointMakerTool")
-
-#InDetSiSpacePointMakerTool.OutputLevel = VERBOSE
-#ToolSvc += InDetSiSpacePointMakerTool
-#print InDetSiSpacePointMakerTool
-
-#from ISF_FatrasRecoTools.ISF_FatrasRecoToolsConf import iFatras__ISF_SiSpacePointMakerTool
-#ISFSiSpacePointMakerTool = iFatras__ISF_SiSpacePointMakerTool(name = "ISF_SiSpacePointMakerTool")
-
-#ISFSiSpacePointMakerTool.OutputLevel = VERBOSE
-#ToolSvc += ISFSiSpacePointMakerTool
-#print ISFSiSpacePointMakerTool
-   
-##
-## SiTrackerSpacePointFinder algorithm
-##
-#from SiSpacePointFormation.SiSpacePointFormationConf import InDet__SiTrackerSpacePointFinder
-#InDetSiTrackerSpacePointFinder = InDet__SiTrackerSpacePointFinder(name                   = "InDetSiTrackerSpacePointFinder",
-#                                                                  SiSpacePointMakerTool  = InDetSiSpacePointMakerTool,
-#                                                                  ISF_SiSpacePointMakerTool = ISFSiSpacePointMakerTool,
-#                                                                  PixelsClustersName     = InDetKeys.PixelClusters(),                                                                                                         SCT_ClustersName       = InDetKeys.SCT_Clusters(),
-#                                                                  SpacePointsPixelName   = InDetKeys.PixelSpacePoints(),
-#                                                                  SpacePointsSCTName     = InDetKeys.SCT_SpacePoints(),
-#                                                                  SpacePointsOverlapName = InDetKeys.OverlapSpacePoints(),
-#                                                                  ProcessPixels          = True,
-#                                                                  ProcessSCTs            = True,
-#                                                                  ProcessOverlaps        = DetFlags.haveRIO.SCT_on())
-
-#InDetSiTrackerSpacePointFinder.OutputLevel = VERBOSE
-
-#topSequence += InDetSiTrackerSpacePointFinder
-#print InDetSiTrackerSpacePointFinder
-
-#AlgSequence("Streams").StreamRDO.ItemList += ["SpacePointContainer#PixelSpacePoints"]
-#AlgSequence("Streams").StreamRDO.ItemList += ["SpacePointContainer#SCT_SpacePoints"]
-
-from ISF_FatrasRecoTools.ISF_FatrasRecoToolsConf import iFatras__ISF_PRDGeneralTruthTrajectorySorterID
-mysort=iFatras__ISF_PRDGeneralTruthTrajectorySorterID(name="ISFGeneralTruthTrajectorySorter")
-mysort.OutputLevel = OutputLevel
-ToolSvc+=mysort
-print mysort
-
-from ISF_FatrasRecoTools.ISF_FatrasRecoToolsConf import iFatras__PlanarClusterProvider
-PlanarClusterProvider=iFatras__PlanarClusterProvider(name = "PlanarClusterProvider",
-                                                     PlanarClusterContainers=["Pixel_PlanarClusters", "SCT_PlanarClusters"])
-ToolSvc+=PlanarClusterProvider
-PlanarClusterProvider.OutputLevel = OutputLevel
-print PlanarClusterProvider
-
-from ISF_FatrasRecoTools.ISF_FatrasRecoToolsConf import iFatras__PlanarClusterOnTrackTool
-PixelPlanarClusterOnTrackTool = iFatras__PlanarClusterOnTrackTool("PixelPlanarClusterOnTrackTool")
-PixelPlanarClusterOnTrackTool.OutputLevel = OutputLevel
-ToolSvc += PixelPlanarClusterOnTrackTool
-print PixelPlanarClusterOnTrackTool
-
-SCT_PlanarClusterOnTrackTool = iFatras__PlanarClusterOnTrackTool("SCT_PlanarClusterOnTrackTool")
-SCT_PlanarClusterOnTrackTool.OutputLevel = OutputLevel
-ToolSvc += SCT_PlanarClusterOnTrackTool
-print SCT_PlanarClusterOnTrackTool
-
-from TrkRIO_OnTrackCreator.TrkRIO_OnTrackCreatorConf import Trk__RIO_OnTrackCreator
-InDetRotCreator = Trk__RIO_OnTrackCreator(name                = 'InDetRotCreator',
-                                          ToolPixelCluster    = PixelPlanarClusterOnTrackTool,
-                                          ToolSCT_Cluster     = SCT_PlanarClusterOnTrackTool,
-                                          ToolMuonCluster     = None,
-                                          ToolMuonDriftCircle = None,
-                                          ToolMuonMMCluster   = None,       
-                                          ToolTRT_DriftCircle = None,    
-                                          Mode                = 'indet')
-InDetRotCreator.OutputLevel = OutputLevel
-ToolSvc += InDetRotCreator
-
-from TrkRIO_OnTrackCreator.TrkRIO_OnTrackCreatorConf import Trk__RIO_OnTrackCreator
-BroadInDetRotCreator = Trk__RIO_OnTrackCreator(name                = 'BroadInDetRotCreator',
-                                               ToolPixelCluster    = PixelPlanarClusterOnTrackTool,
-                                               ToolSCT_Cluster     = SCT_PlanarClusterOnTrackTool,
-                                               ToolMuonCluster     = None,
-                                               ToolMuonDriftCircle = None,
-                                               ToolMuonMMCluster   = None,       
-                                               ToolTRT_DriftCircle = None,    
-                                               Mode                = 'indet')
-BroadInDetRotCreator.OutputLevel = OutputLevel
-ToolSvc += BroadInDetRotCreator
-
-print InDetRotCreator
-print BroadInDetRotCreator
-
-ScaleHitUncertainty  = 2.5
-InDetRefitRotCreator = InDetRotCreator
-
-from TrkMeasurementUpdator.TrkMeasurementUpdatorConf import Trk__KalmanUpdator
-InDetUpdator = Trk__KalmanUpdator(name = 'InDetUpdator')
-InDetUpdator.OutputLevel = OutputLevel
-ToolSvc += InDetUpdator
-print InDetUpdator
-
-#
-# get propagator
-#
-
-from TrkExRungeKuttaPropagator.TrkExRungeKuttaPropagatorConf import Trk__RungeKuttaPropagator as Propagator
-
-InDetPropagator = Propagator(name = 'InDetPropagator')
-
-ToolSvc += InDetPropagator
-print      InDetPropagator
-
-#
-# Setup the Navigator (default, could be removed)
-#
-
-from TrkExTools.TrkExToolsConf import Trk__Navigator
-InDetNavigator = Trk__Navigator(name                = 'InDetNavigator',
-                                TrackingGeometrySvc = AtlasTrackingGeometrySvc)
-ToolSvc += InDetNavigator
-print      InDetNavigator
-
-#
-# Setup the MaterialEffectsUpdator
-#
-
-from TrkExTools.TrkExToolsConf import Trk__MaterialEffectsUpdator
-InDetMaterialUpdator = Trk__MaterialEffectsUpdator(name = "InDetMaterialEffectsUpdator")
-if not InDetFlags.solenoidOn():
-    InDetMaterialUpdator.EnergyLoss          = False
-    InDetMaterialUpdator.ForceMomentum       = True
-    InDetMaterialUpdator.ForcedMomentumValue = 1000*MeV
-
-ToolSvc += InDetMaterialUpdator
-print InDetMaterialUpdator
-
-# CONFIGURE PROPAGATORS/UPDATORS ACCORDING TO GEOMETRY SIGNATURE
-      
-InDetSubPropagators = []
-InDetSubUpdators    = []
-
-# -------------------- set it depending on the geometry ----------------------------------------------------
-# default for ID is (Rk,Mat)
-InDetSubPropagators += [ InDetPropagator.name() ]
-InDetSubUpdators    += [ InDetMaterialUpdator.name() ]
-
-# default for Calo is (Rk,MatLandau)
-InDetSubPropagators += [ InDetPropagator.name() ]
-InDetSubUpdators    += [ InDetMaterialUpdator.name() ]
-        
-# default for MS is (STEP,Mat)
-#InDetSubPropagators += [ InDetStepPropagator.name() ]
-InDetSubUpdators    += [ InDetMaterialUpdator.name() ]
-# ----------------------------------------------------------------------------------------------------------            
-
-#
-# set up extrapolator
-#
-from TrkExTools.TrkExToolsConf import Trk__Extrapolator
-InDetExtrapolator = Trk__Extrapolator(name                    = 'InDetExtrapolator',
-                                      Propagators             = [ InDetPropagator ], # [ InDetPropagator, InDetStepPropagator ],
-                                      MaterialEffectsUpdators = [ InDetMaterialUpdator ],
-                                      Navigator               = InDetNavigator,
-                                      SubPropagators          = InDetSubPropagators,
-                                      SubMEUpdators           = InDetSubUpdators)
-ToolSvc += InDetExtrapolator
-print      InDetExtrapolator  
-
-from TrkExEngine.AtlasExtrapolationEngine import AtlasExtrapolationEngine
-ATLAS_FatrasExEngine = AtlasExtrapolationEngine(name='Extrapolation', nameprefix='Atlas', ToolOutputLevel=OutputLevel)
-ToolSvc += ATLAS_FatrasExEngine
-print ATLAS_FatrasExEngine
-ATLAS_FatrasExEngine.OutputLevel = OutputLevel
-
-from TrkKalmanFitter.TrkKalmanFitterConf import Trk__ForwardKalmanFitter as PublicFKF
-InDetFKF = PublicFKF(name                   = 'InDetFKF',
-                     StateChi2PerNDFPreCut  = 30.0,
-                     ExtrapolationEngine    = ATLAS_FatrasExEngine,
-                     UseExtrapolationEngine = True)   
-InDetFKF.OutputLevel = OutputLevel
-ToolSvc += InDetFKF
-print InDetFKF
-
-from TrkKalmanFitter.TrkKalmanFitterConf import Trk__KalmanSmoother as PublicBKS
-InDetBKS = PublicBKS(name                        = 'InDetBKS',
-                     InitialCovarianceSeedFactor = 200.,
-                     ExtrapolationEngine         = ATLAS_FatrasExEngine,
-                     UseExtrapolationEngine      = True)
-InDetBKS.OutputLevel = OutputLevel
-ToolSvc += InDetBKS
-print InDetBKS
-
-from TrkKalmanFitter.TrkKalmanFitterConf import Trk__KalmanOutlierLogic as PublicKOL
-InDetKOL = PublicKOL(name                    = 'InDetKOL',
-                     TrackChi2PerNDFCut      = 17.0,
-                     StateChi2PerNDFCut      = 12.5)
-InDetKOL.OutputLevel = OutputLevel
-ToolSvc += InDetKOL
-print InDetKOL
-
-InDetDNAdjustor   = None
-InDetDNASeparator = None
-
-from TrkKalmanFitter.TrkKalmanFitterConf import Trk__KalmanFitter as ConfiguredKalmanFitter
-InDetTrackFitter = ConfiguredKalmanFitter(name                           = 'InDetTrackFitter',
-                                          ExtrapolatorHandle             = InDetExtrapolator,
-                                          RIO_OnTrackCreatorHandle       = InDetRotCreator,
-                                          MeasurementUpdatorHandle       = InDetUpdator,
-                                          ForwardKalmanFitterHandle      = InDetFKF,
-                                          KalmanSmootherHandle           = InDetBKS,
-                                          KalmanOutlierLogicHandle       = InDetKOL,
-                                          DynamicNoiseAdjustorHandle     = InDetDNAdjustor,
-                                          BrempointAnalyserHandle        = InDetDNASeparator,
-                                          AlignableSurfaceProviderHandle = None,
-                                          RecalibratorHandle             = None,                                          
-                                          InternalDAFHandle              = None)
-InDetTrackFitter.OutputLevel = OutputLevel #VERBOSE
-ToolSvc += InDetTrackFitter
-print InDetTrackFitter
-
-from TrkTruthTrackTools.TrkTruthTrackToolsConf import Trk__TruthTrackBuilder
-InDetTruthTrackBuilder = Trk__TruthTrackBuilder(name                = 'InDetTruthTrackBuilder',
-                                                TrackFitter         = InDetTrackFitter,
-                                                ExtrapolationTool   = InDetExtrapolator,
-                                                RotCreatorTool      = InDetRotCreator,
-                                                BroadRotCreatorTool = BroadInDetRotCreator,
-                                                MinDegreesOfFreedom = 1)
-InDetTruthTrackBuilder.OutputLevel = OutputLevel #VERBOSE
-ToolSvc += InDetTruthTrackBuilder
-print InDetTruthTrackBuilder
-
-
-PRD_PlanarMultiTruthColl = []
-PRD_PlanarMultiTruthColl += ["PRD_MultiTruthPlanarPixel","PRD_MultiTruthPlanarSCT"]
-
-from ISF_FatrasRecoTools.ISF_FatrasRecoToolsConf import iFatras__PRD_PlanarTruthTrajectoryBuilder
-# change input collection key if taking only pileup
-ISF_PRD_TruthTrajectoryBuilder=iFatras__PRD_PlanarTruthTrajectoryBuilder(name = 'ISF_PRD_TruthTrajectoryBuilder',
-                                                                         PRD_PlanarMultiTruthCollections = PRD_PlanarMultiTruthColl,
-                                                                         InDetPRD_PlanarClusterProvider  = PlanarClusterProvider,
-                                                                         MinimumPt                       = 400,
-                                                                         PRD_TruthTrajectoryManipulators = [mysort])
-
-ISF_PRD_TruthTrajectoryBuilder.OutputLevel = OutputLevel #VERBOSE
-ToolSvc+=ISF_PRD_TruthTrajectoryBuilder
-print ISF_PRD_TruthTrajectoryBuilder
-
-def getIFS_PRDtoTrackMapTool(**kwargs) :
-    tool_name = 'ISF_PRDtoTrackMapTool'
-    from AthenaCommon.AppMgr import ToolSvc
-    if hasattr(ToolSvc,tool_name) :
-        return getattr(ToolSvc,tool_name)
-
-    from ISF_FatrasRecoTools.ISF_FatrasRecoToolsConf import iFatras__ISF_PRDtoTrackMapTool
-    tool=iFatras__ISF_PRDtoTrackMapTool( name=tool_name, **kwargs)
-    ToolSvc += tool
-    return tool
-
-
-from ISF_FatrasRecoTools.ISF_FatrasRecoToolsConf import iFatras__ISF_TrackSummaryHelperTool
-ISF_TrackSummaryHelperTool = iFatras__ISF_TrackSummaryHelperTool(name         = "ISF_TrackSummaryHelperTool",
-                                                                  AssoTool     = "",
-                                                                  DoSharedHits = True)
-ISF_TrackSummaryHelperTool.OutputLevel = OutputLevel #VERBOSE
-ToolSvc += ISF_TrackSummaryHelperTool
-print ISF_TrackSummaryHelperTool
-
-# @TODO does th  ISF_TrackSummaryHelperTool do hole search and if so is that intedned ?
-from TrkTrackSummaryTool.TrkTrackSummaryToolConf import Trk__TrackSummaryTool
-InDetTrackSummaryTool = Trk__TrackSummaryTool(name = "InDetTrackSummaryTool",
-                                              doSharedHits            = True,
-                                              InDetSummaryHelperTool  = ISF_TrackSummaryHelperTool,
-                                              AddDetailedInDetSummary = False,
-                                              doHolesInDet            = False,
-                                              doHolesMuon             = False,
-                                              MuonSummaryHelperTool   = "",
-                                              AddDetailedMuonSummary  = False,
-                                              TRT_ElectronPidTool     = "",
-                                              PixelToTPIDTool         = "",
-                                              PixelExists             = True)
-InDetTrackSummaryTool.OutputLevel = OutputLevel #VERBOSE
-ToolSvc += InDetTrackSummaryTool
-print InDetTrackSummaryTool
-
-# --- the truth track creation algorithm
-from InDetRecExample.TrackingCommon import getInDetPRDtoTrackMapToolGangedPixels
-from TrkTruthTrackAlgs.TrkTruthTrackAlgsConf import Trk__TruthTrackCreation
-InDetTruthTrackCreation = Trk__TruthTrackCreation(name = 'InDetTruthTrackCreation',
-                                                  PRD_TruthTrajectoryBuilder = ISF_PRD_TruthTrajectoryBuilder,
-                                                  TruthTrackBuilder          = InDetTruthTrackBuilder,
-                                                  OutputTrackCollection      = InDetKeys.PseudoTracks(),
-                                                  AssociationTool            = getIFS_PRDtoTrackMapTool(),
-                                                  TrackSummaryTool           = InDetTrackSummaryTool)
-InDetTruthTrackCreation.OutputLevel = OutputLevel #VERBOSE
-topSequence += InDetTruthTrackCreation
-print InDetTruthTrackCreation
-
-if TrkDetFlags.ISF_FatrasCustomGeometry():
-    InDetKeys.PixelClustersTruth = "PRD_MultiTruthPlanarPixel"
-    InDetKeys.SCT_ClustersTruth = "PRD_MultiTruthPlanarSCT"
-InDetFlags.doPhysValMon = True
-InDetRecTestBLayerTool=None
-
-InDetTrackSummaryToolSharedHits=InDetTrackSummaryTool
-
-InDetKeys.UnslimmedTracks          = InDetKeys.PseudoTracks()
-InDetKeys.UnslimmedTracksTruth     = InDetKeys.PseudoTracksTruth()
-
-InputTrackCollection = InDetKeys.PseudoTracks()
-
-include ("InDetRecExample/ConfiguredInDetTrackTruth.py")
-InDetTracksTruth = ConfiguredInDetTrackTruth(InDetKeys.PseudoTracks(),
-                                             InDetKeys.PseudoDetailedTracksTruth(),
-                                             InDetKeys.PseudoTracksTruth())                                             
-InDetTracksTruth.OutputLevel = OutputLevel #VERBOSE
-
-from TrkTruthToTrack.TrkTruthToTrackConf import Trk__TruthToTrack
-InDetTruthToTrack  = Trk__TruthToTrack(name         = "InDetTruthToTrack",
-                                       Extrapolator = InDetExtrapolator)
-                                       
-ToolSvc += InDetTruthToTrack
-InDetTruthToTrack.OutputLevel = OutputLevel #VERBOSE
-
-# track collection keys for statistics
-if not 'TrackCollectionKeys' in dir():
-    TrackCollectionKeys        = []
-if not 'TrackCollectionTruthKeys' in dir():
-    TrackCollectionTruthKeys   = []
-
-TrackCollectionKeys      += [ InDetKeys.PseudoTracks() ]
-TrackCollectionTruthKeys += [ InDetKeys.PseudoTracksTruth() ]
-
-from xAODTruthCnv.xAODTruthCnvConf import xAODMaker__xAODTruthCnvAlg
-xAODTruthCnvAlg = xAODMaker__xAODTruthCnvAlg( name                   = "xAODTruthCnvAlg",
-                                              AODContainerName       = "TruthEvent",
-                                              WriteInTimePileUpTruth = False,
-                                              WriteAllPileUpTruth    = False)
-xAODTruthCnvAlg.OutputLevel = OutputLevel #VERBOSE  
-topSequence += xAODTruthCnvAlg
-
-print xAODTruthCnvAlg
-
-# register internally used track summary tool
-from TrkTrackSummaryTool.AtlasTrackSummaryTool import AtlasTrackSummaryTool
-AtlasTrackSummaryTool = AtlasTrackSummaryTool()
-ToolSvc += AtlasTrackSummaryTool
-
-include("InDetRecExample/InDetxAODCreator.py") 
-
-public_InDetxAODParticleCreatorTool = getInDetxAODParticleCreatorTool()
-public_InDetxAODParticleCreatorTool.TrackSummaryTool = InDetTrackSummaryTool
-public_InDetxAODParticleCreatorTool.OutputLevel = OutputLevel #VERBOSE
-print public_InDetxAODParticleCreatorTool
-
-# adjust track particle creators
-add_truth_links=[False,True]
-idx=0
-for alg_name in ['InDetTrackParticles',InDetKeys.xAODPseudoTrackParticleContainer()] :
-  if hasattr(topSequence,alg_name) :
-    alg=getattr(topSequence,alg_name)
-    alg.OutputLevel = OutputLevel # VERBOSE
-    if hasattr(alg,"TrackParticleCreator") :
-        alg.TrackParticleCreator.TrackSummaryTool = InDetTrackSummaryTool
-        alg.TrackParticleCreator.OutputLevel = OutputLevel # VERBOSE
-        if add_truth_links[idx] :
-            alg.AddTruthLink = InDetFlags.doTruth()
-    else :
-        print >>sys.stderr,'WARNING the %s algorithm does not contain the expected TrackParticleCreator property.' % alg_name
-    print alg
-  else :
-    import sys
-    print >>sys.stderr,'WARNING top sequence does not contain the expected %s algorithm' % alg_name
-  idx += 1
-
-from OutputStreamAthenaPool.MultipleStreamManager import MSMgr
-xaodStream = MSMgr.NewPoolStream( "StreamAOD", "xAOD.pool.root" )
-#xaodStream.AddItem( "#*" )
-xaodStream.AddItem("xAOD::AuxContainerBase#InDetPseudoTrackParticlesAux.")
-xaodStream.AddItem("xAOD::IParticleContainer#InDetPseudoTrackParticles")
-xaodStream.AddItem("xAOD::TrackParticleContainer#InDetPseudoTrackParticles")
-xaodStream.AddItem("xAOD::TrackParticleAuxContainer#InDetPseudoTrackParticlesAux.")
-xaodStream.AddItem( "xAOD::TruthEventContainer#TruthEvents" )
-xaodStream.AddItem( "xAOD::TruthEventAuxContainer#TruthEventsAux." )
-xaodStream.AddItem( "xAOD::TruthParticleContainer#TruthParticles" ) 
-xaodStream.AddItem( "xAOD::TruthParticleAuxContainer#TruthParticlesAux." )
-
-xaodStream.Print()
-xaodStream.OutputLevel = OutputLevel #VERBOSE
-
-if doVP1:
-    from VP1Algs.VP1AlgsConf import VP1Alg 
-    topSequence += VP1Alg()
diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasRecoTools/CMakeLists.txt b/Simulation/ISF/ISF_Fatras/ISF_FatrasRecoTools/CMakeLists.txt
index 683b6dab65c03776d7998559752a65f180f88db4..8a4324242f85e3eb0c1f35a12e03d3684efd3251 100644
--- a/Simulation/ISF/ISF_Fatras/ISF_FatrasRecoTools/CMakeLists.txt
+++ b/Simulation/ISF/ISF_Fatras/ISF_FatrasRecoTools/CMakeLists.txt
@@ -3,8 +3,21 @@
 # Declare the package name:
 atlas_subdir( ISF_FatrasRecoTools )
 
+# Component(s) in the package:
+atlas_add_library( ISF_FatrasRecoToolsLib
+                   src/*.cxx
+                   PUBLIC_HEADERS ISF_FatrasRecoTools
+                   LINK_LIBRARIES AtlasHepMCLib AthenaBaseComps GeoPrimitives Identifier ISF_FatrasEvent TrkEventPrimitives TrkParameters TrkSpacePoint TrkTrackSummary TrkToolInterfaces AtlasDetDescr EventPrimitives GaudiKernel InDetIdentifier InDetPrepRawData SiSpacePoint ISF_FatrasDetDescrModel TrkDetElementBase TrkCompetingRIOsOnTrack TrkEventUtils TrkPrepRawData TrkRIO_OnTrack TrkTrack TrkTruthData TrkTruthTrackInterfaces )
+
 # Component(s) in the package:
 atlas_add_component( ISF_FatrasRecoTools
                      src/*.cxx
                      src/components/*.cxx
-                     LINK_LIBRARIES AtlasHepMCLib AthenaBaseComps GeoPrimitives Identifier ISF_FatrasEvent TrkEventPrimitives TrkParameters TrkSpacePoint TrkTrackSummary TrkToolInterfaces AtlasDetDescr EventPrimitives GaudiKernel InDetIdentifier InDetPrepRawData SiSpacePoint ISF_FatrasDetDescrModel TrkDetElementBase TrkCompetingRIOsOnTrack TrkEventUtils TrkPrepRawData TrkRIO_OnTrack TrkTrack TrkTruthData TrkTruthTrackInterfaces )
+                     LINK_LIBRARIES ISF_FatrasRecoToolsLib )
+
+# Test(s) in the package:
+atlas_add_test( SiSpacePointMakerTool_test
+                SOURCES test/SiSpacePointMakerTool_test.cxx
+                INCLUDE_DIRS ${ROOT_INCLUDE_DIRS}
+                LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaPoolCnvSvcLib AthenaPoolUtilities AthenaKernel IdDictParser TrkGeometry ISF_FatrasRecoToolsLib TestTools 
+                ENVIRONMENT "JOBOPTSEARCHPATH=${CMAKE_CURRENT_SOURCE_DIR}/share" )
diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasRecoTools/ISF_FatrasRecoTools/PRD_PlanarTruthTrajectoryBuilder.h b/Simulation/ISF/ISF_Fatras/ISF_FatrasRecoTools/ISF_FatrasRecoTools/PRD_PlanarTruthTrajectoryBuilder.h
deleted file mode 100644
index eaecaae9ae4ccdfb030c77825559b12ff4d534f8..0000000000000000000000000000000000000000
--- a/Simulation/ISF/ISF_Fatras/ISF_FatrasRecoTools/ISF_FatrasRecoTools/PRD_PlanarTruthTrajectoryBuilder.h
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-///////////////////////////////////////////////////////////////////
-// PRD_PlanarTruthTrajectoryBuilder.h, (c) ATLAS Detector software
-///////////////////////////////////////////////////////////////////
-
-#ifndef ISF_FATRASRECOTOOLS_PRD_PLANARTRUTHTRAJECTORYBUILDER_H
-#define ISF_FATRASRECOTOOLS_PRD_PLANARTRUTHTRAJECTORYBUILDER_H
-
-// Gaudi
-#include "AthenaBaseComps/AthAlgTool.h"
-#include "GaudiKernel/ToolHandle.h"
-// Trk includes
-#include "TrkTruthTrackInterfaces/IPRD_TruthTrajectoryBuilder.h"
-#include "TrkTruthTrackInterfaces/PRD_TruthTrajectory.h"
-
-class AtlasDetectorID;
-class PRD_MultiTruthCollection;  
-
-#include "AtlasHepMC/GenParticle_fwd.h"
-  
-namespace Trk {
-  class IPRD_Provider;
-  class IPRD_TruthTrajectoryManipulator;
-  class PrepRawData;
-}
- 
-namespace iFatras {   
-  /**
-     @class IPRD_TruthTrajectoryBuilder
-
-     @brief The truth PRD trajectory builder, works with a cache, calling the ID sub-helpers
-
-     It is based on the Trk::PRD_TruthTrajectoryBuilder and is made for working with iFatras::PlanarCluster 
-     to avoid ISF dependencies in the Tracking package
-       
-     The truth PRD trajectory builder, works with a cache, and calls the ID sub-helpers. This is done
-     because it should also run for upgrade layouts and thus not know about dedicated detector technologies.
-     The cache is filled and created in the BeginEvent incident, the accessible PRDs are steered by the PRD multi truth collections
-     and handed forward from the IPRD_Provider (which should use a hash-lookup)
-   
-     A dedicated PRD_TruthTrajectoryManipulator can be used to shape the TruthTrajectories after beeing created
-
-     @author Noemi.Calace -at- cern.ch
-   */
-     
-  class PRD_PlanarTruthTrajectoryBuilder : public extends<AthAlgTool, Trk::IPRD_TruthTrajectoryBuilder> {
-
-     public:     
-        //** Constructor with parameters */
-       PRD_PlanarTruthTrajectoryBuilder( const std::string& t, const std::string& n, const IInterface* p );
- 
-       // Athena algtool's Hooks
-       StatusCode  initialize();
-       StatusCode  finalize();
-
-       /** return a vector of PrepRawData trajectories - uses internal cache**/
-       const std::map< HepMC::ConstGenParticlePtr , Trk::PRD_TruthTrajectory >& truthTrajectories() const;
-
-       /** Event refresh - can't be an IIncident, because it has to run after PRD creation and PRD truth creation */
-       StatusCode refreshEvent();
-
-     private:
-       //! Helper to detect type of sub-detector from PRD->identify().
-       const AtlasDetectorID*                                 m_idHelper;
-       
-       //!< Identifier to PRD relation in the Inner Detector for Planar Clusters
-       ToolHandle<Trk::IPRD_Provider>                         m_idPrdPlanarClusterProvider;  
-       
-       //!< PRD truth tracjectory manipulators
-       ToolHandleArray<Trk::IPRD_TruthTrajectoryManipulator>  m_prdTruthTrajectoryManipulators;   
-       
-       //!< PRD multi truth collection names this builder is working on
-       std::vector<std::string>                               m_prdPlanarMultiTruthCollectionNames;     
-
-       //!< the retrieved PRD muli truth collections
-       std::vector<const PRD_MultiTruthCollection*>           m_prdPlanarMultiTruthCollections;         
-        
-       //!< minimum pT to be even considered
-       double                                                 m_minPt;
-       //!< Track geantinos or not        
-       bool                                                   m_geantinos;
-       //!< the cache for the return (cleared by Incident)
-       mutable std::map<HepMC::ConstGenParticlePtr , Trk::PRD_TruthTrajectory > m_gpPrdTruthTrajectories; 
-  };
-
-} // end of namespace
-
-#endif // ISF_FATRASRECOTOOLS_PRD_PLANARTRUTHTRAJECTORYBUILDER_H
diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasRecoTools/ISF_FatrasRecoTools/PlanarClusterOnTrackTool.h b/Simulation/ISF/ISF_Fatras/ISF_FatrasRecoTools/ISF_FatrasRecoTools/PlanarClusterOnTrackTool.h
deleted file mode 100644
index e23a63e45ad39cf68321eedd8e366c106d3e9cb9..0000000000000000000000000000000000000000
--- a/Simulation/ISF/ISF_Fatras/ISF_FatrasRecoTools/ISF_FatrasRecoTools/PlanarClusterOnTrackTool.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-///////////////////////////////////////////////////////////////////
-//  Header file for class  PlanarClusterOnTrackTool
-///////////////////////////////////////////////////////////////////
-// (c) ATLAS Detector software
-///////////////////////////////////////////////////////////////////
-// Interface for PlanarClusterOnTrack production
-///////////////////////////////////////////////////////////////////
-
-#ifndef ISF_FATRARECOTOOLS_PLANARCLUSTERONTRACKTOOL_H
-#define ISF_FATRARECOTOOLS_PLANARCLUSTERONTRACKTOOL_H
-
-#include "GaudiKernel/ToolHandle.h"
-#include "AthenaBaseComps/AthAlgTool.h"
-#include "GaudiKernel/IIncidentListener.h"
-
-#include "TrkToolInterfaces/IRIO_OnTrackCreator.h"
-#include "ISF_FatrasEvent/PlanarClusterOnTrack.h"
-
-#include "TrkParameters/TrackParameters.h"
-#include "GeoPrimitives/GeoPrimitives.h"
-
-
-class StoreGateSvc;
-class PixelID;
-class IPixelOfflineCalibSvc;
-
-
-namespace iFatras {
-
-  class PlanarClusterOnTrackTool: public extends<AthAlgTool, Trk::IRIO_OnTrackCreator, IIncidentListener>
-  {
-    
-  public:
-    
-    //! AlgTool constructor 
-    PlanarClusterOnTrackTool(const std::string&,const std::string&,
-			     const IInterface*);
-    
-    virtual ~PlanarClusterOnTrackTool ();
-    
-    //! AlgTool initialisation
-    virtual StatusCode initialize();
-    
-    //! AlgTool termination
-    virtual StatusCode finalize  ();
-    
-    virtual const PlanarClusterOnTrack* correct(const Trk::PrepRawData&,
-						const Trk::TrackParameters&) const;
-    /** handle for incident service */
-    void handle(const Incident& inc) ;
-
-  private:
-    bool        m_useDefinedParameters;
-    
-  };
-
-}
-
-#endif // ISF_FATRARECOTOOLS_PLANARCLUSTERONTRACKTOOL_H
diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasRecoTools/ISF_FatrasRecoTools/PlanarClusterProvider.h b/Simulation/ISF/ISF_Fatras/ISF_FatrasRecoTools/ISF_FatrasRecoTools/PlanarClusterProvider.h
deleted file mode 100644
index a7324cd5799d75e07f3f64c170ee8ee5ee5d57fc..0000000000000000000000000000000000000000
--- a/Simulation/ISF/ISF_Fatras/ISF_FatrasRecoTools/ISF_FatrasRecoTools/PlanarClusterProvider.h
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-///////////////////////////////////////////////////////////////////
-// InDetPRD_Provider.h, (c) ATLAS Detector software
-///////////////////////////////////////////////////////////////////
-
-#ifndef ISF_FATRASRECOTOOLS_PLANARCLUSTERPROVIDER_H
-#define ISF_FATRASRECOTOOLS_PLANARCLUSTERPROVIDER_H
-
-// Gaudi
-#include "AthenaBaseComps/AthAlgTool.h"
-#include "GaudiKernel/ToolHandle.h"
-// ISF includes
-#include "ISF_FatrasEvent/PlanarClusterContainer.h"
-// Trk includes
-#include "TrkToolInterfaces/IPRD_Provider.h"
-#include "TrkPrepRawData/PrepRawDataContainer.h"
-#include "TrkPrepRawData/PrepRawDataCollection.h"
-// Identifier
-#include "Identifier/Identifier.h"
-#include "Identifier/IdentifierHash.h"
- 
-class AtlasDetectorID;
-class PixelID;
-class SCT_ID;
-  
-namespace iFatras {
- 
-  /**
-   @class iFatras
-
-   @brief PRD provider for the planar cluster
-       
-   @author Noemi.Calace -at- cern.ch
-   */
-     
-  class PlanarClusterProvider : public extends<AthAlgTool, Trk::IPRD_Provider> {
-    
-  public:     
-    //** Constructor with parameters */
-    PlanarClusterProvider ( const std::string& t, const std::string& n, const IInterface* p );
-    
-    /** Athena algtool's Hooks */
-    StatusCode  initialize();
-    
-    /** finalize */
-    StatusCode  finalize();
-    
-    /** retrieve the PRD collection from StoreGate */
-    StatusCode retrieveCollection();
-    
-    /** return the Prd given the Identifier - make a HashId out of the Id and return the associated PRD */
-    const Trk::PrepRawData* prdFromIdentifier(const Identifier& ide, size_t& ndof ) const;
-    
-  private:
-    /** templated method since used for further developments */
-    template < class PrdT > const Trk::PrepRawData* prdFromIdentifierContainers(
-										std::vector < const Trk::PrepRawDataContainer< Trk::PrepRawDataCollection< PrdT > >* >& coll,
-										const Identifier& ideh, const IdentifierHash& ideHash ) const 
-      {
-	const PrdT* prd = 0;
-	// loop on the containers
-	typename std::vector < const Trk::PrepRawDataContainer< Trk::PrepRawDataCollection< PrdT > >* >::const_iterator pmtVecCollIter  = coll.begin();
-	typename std::vector < const Trk::PrepRawDataContainer< Trk::PrepRawDataCollection< PrdT > >* >::const_iterator pmtVecCollIterE = coll.end();
-	for ( ; pmtVecCollIter != pmtVecCollIterE; ++pmtVecCollIter ){
-	  // find the collection
-	  auto prdCollIter = (*pmtVecCollIter)->indexFindPtr(ideHash);
-	  if (!prdCollIter)
-	    continue;
-	    
-	  const Trk::PrepRawDataCollection< PrdT >* prdCollection = prdCollIter;
-	  // search for the PRD in the collection --- do a loop, can be done better with std::find probably
-	  // iterate through the collections
-	  typename Trk::PrepRawDataCollection< PrdT >::const_iterator prdIter  = prdCollection->begin();
-	  typename Trk::PrepRawDataCollection< PrdT >::const_iterator prdIterE = prdCollection->end();
-	  for ( ; prdIter != prdIterE; ++prdIter ){
-	    if ( (*prdIter)->identify() == ideh ){
-	      prd = (*prdIter);
-	      break;
-	    }
-	  }
-	}
-	
-	// return what you have
-	if (!prd) // if no prd is found
-	  ATH_MSG_VERBOSE("PRD Collection to IdentifierHash could not be found. Return 0.");
-	
-	return prd;
-      }
-    
-    const AtlasDetectorID*                      m_idHelper;                     //! Helper to detect type of sub-detector from PRD->identify().
-    
-    const PixelID*                              m_pixIdHelper;
-    
-    const SCT_ID*                               m_sctIdHelper;                      
-    
-    std::vector<std::string>                                        m_planarClusterContainerNames;          
-    mutable std::vector<const iFatras::PlanarClusterContainer*>*    m_planarClusterContainers;     
-
-    bool                                        m_usePixel;
-    bool                                        m_useSCT;
-    
-  };
-
-
-} // end of namespace
-
-#endif // ISF_FATRASRECOTOOLS_PLANARCLUSTERPROVIDER_H
diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasRecoTools/ISF_FatrasRecoTools/PlanarSiSpacePointMakerTool.h b/Simulation/ISF/ISF_Fatras/ISF_FatrasRecoTools/ISF_FatrasRecoTools/PlanarSiSpacePointMakerTool.h
deleted file mode 100644
index 3d87ffcf6aa5b1854bc751bddbdf2fbbd473588d..0000000000000000000000000000000000000000
--- a/Simulation/ISF/ISF_Fatras/ISF_FatrasRecoTools/ISF_FatrasRecoTools/PlanarSiSpacePointMakerTool.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef ISF_FATRASREOCTOOLS_ISF_SISPACEPOINTMAKERTOOL_H
-#define ISF_FATRASREOCTOOLS_ISF_SISPACEPOINTMAKERTOOL_H
-
-#include "AthenaBaseComps/AthAlgTool.h"
-
-// Cluster and space point collections
-#include "ISF_FatrasEvent/PlanarClusterCollection.h"
-#include "TrkSpacePoint/SpacePointCollection.h"
-#include "TrkSpacePoint/SpacePointOverlapCollection.h"
-#include "GeoPrimitives/GeoPrimitives.h"
-
-namespace iFatras{
-  class PlanarSiSpacePointMakerTool : public AthAlgTool {
-    
-  public:
-    
-    // Constructor 
-    PlanarSiSpacePointMakerTool( const std::string& type, 
-			   const std::string& name, 
-			   const IInterface* parent );
-    
-    virtual ~PlanarSiSpacePointMakerTool();
-    
-    static const InterfaceID& interfaceID();
-    
-    virtual StatusCode initialize();
-    
-    virtual StatusCode finalize();
-    
-    void fillPixelSpacePointCollection(const PlanarClusterCollection* clusters, SpacePointCollection* spacepointCollection);
-            
-  };
-} // end namespace
-
-#endif // ISF_FATRASREOCTOOLS_ISF_SISPACEPOINTMAKERTOOL_H
-
-
diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasRecoTools/share/ISF_FatrasRecoTools_test.txt b/Simulation/ISF/ISF_Fatras/ISF_FatrasRecoTools/share/ISF_FatrasRecoTools_test.txt
new file mode 100644
index 0000000000000000000000000000000000000000..7a62d9fe77da0cf0d0cbc0da69a7694363ba0940
--- /dev/null
+++ b/Simulation/ISF/ISF_Fatras/ISF_FatrasRecoTools/share/ISF_FatrasRecoTools_test.txt
@@ -0,0 +1,2 @@
+ApplicationMgr.Dlls += { "StoreGate", "CLIDComps" };
+ApplicationMgr.ExtSvc += { "StoreGateSvc", "StoreGateSvc/DetectorStore" };
diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasRecoTools/src/PRD_PlanarTruthTrajectoryBuilder.cxx b/Simulation/ISF/ISF_Fatras/ISF_FatrasRecoTools/src/PRD_PlanarTruthTrajectoryBuilder.cxx
deleted file mode 100644
index 2e03f261a8b5888bc71bcdfb4e10ecb733649464..0000000000000000000000000000000000000000
--- a/Simulation/ISF/ISF_Fatras/ISF_FatrasRecoTools/src/PRD_PlanarTruthTrajectoryBuilder.cxx
+++ /dev/null
@@ -1,191 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-///////////////////////////////////////////////////////////////
-// PRD_PlanarTruthTrajectoryBuilder.cxx, (c) ATLAS Detector software
-///////////////////////////////////////////////////////////////////
-
-// package include
-#include "ISF_FatrasRecoTools/PRD_PlanarTruthTrajectoryBuilder.h"
-
-// Trk
-#include "TrkTruthData/PRD_MultiTruthCollection.h"
-#include "TrkToolInterfaces/IPRD_Provider.h"
-#include "TrkTruthTrackInterfaces/IPRD_TruthTrajectoryManipulator.h"
-#include "TrkEventUtils/PrepRawDataComparisonFunction.h"
-
-// DetectorDescription
-#include "AtlasDetDescr/AtlasDetectorID.h"
-
-// HepMC
-#include "AtlasHepMC/GenParticle.h"
-#include "AtlasHepMC/GenVertex.h"
-
-/** Constructor **/
-iFatras::PRD_PlanarTruthTrajectoryBuilder::PRD_PlanarTruthTrajectoryBuilder(const std::string& t, const std::string& n, const IInterface* p) : 
-  base_class(t,n,p),
-  m_idHelper(0),
-  m_idPrdPlanarClusterProvider(""),
-  m_minPt(400.),
-  m_geantinos(false)
-{
-    // the PRD multi truth collections this builder works on
-    declareProperty("PRD_PlanarMultiTruthCollections", m_prdPlanarMultiTruthCollectionNames);
-    // the PRD providers that turn Identifier -> IdentiferHash and get the PRD
-    declareProperty("InDetPRD_PlanarClusterProvider",  m_idPrdPlanarClusterProvider);
-    // the PRD manipulators
-    declareProperty("PRD_TruthTrajectoryManipulators", m_prdTruthTrajectoryManipulators);
-    // Minimum PT cut
-    declareProperty("MinimumPt",         m_minPt);
-    // Track geantinos
-    declareProperty("Geantinos",         m_geantinos);
-}
-
-// Athena algtool's Hooks - initialize
-StatusCode  iFatras::PRD_PlanarTruthTrajectoryBuilder::initialize()
-{
-    ATH_MSG_VERBOSE("Initializing ...");
-    // Set up ATLAS ID helper to be able to identify the PRD's det-subsystem
-    if (detStore()->retrieve(m_idHelper, "AtlasID").isFailure()) {
-         ATH_MSG_ERROR ("Could not get AtlasDetectorID helper. Arborting ...");
-         return StatusCode::FAILURE;
-    } else ATH_MSG_DEBUG ("AtlasDetectorID helper retrieved.");
-    
-    // get the ID PRD Provider
-    if ( !m_idPrdPlanarClusterProvider.empty() && m_idPrdPlanarClusterProvider.retrieve().isFailure()){
-      ATH_MSG_ERROR ("Could not get " << m_idPrdPlanarClusterProvider << ". Arborting ..." );
-      return StatusCode::FAILURE;
-    } else ATH_MSG_DEBUG ("PRD Provider for PlanarClusters retrieved.");
-    
-    // get the manipulators
-    if ( m_prdTruthTrajectoryManipulators.size()  && m_prdTruthTrajectoryManipulators.retrieve().isFailure()){
-      ATH_MSG_ERROR ("Could not get configured " << m_prdTruthTrajectoryManipulators << ". Arborting ..." );
-      return StatusCode::FAILURE;
-    } else ATH_MSG_DEBUG ("TruthTrajectoryManipulator retrieved.");
-    
-    ATH_MSG_VERBOSE("Initialization successfully finished!");
-
-    return StatusCode::SUCCESS;
-}
-
-StatusCode iFatras::PRD_PlanarTruthTrajectoryBuilder::refreshEvent()  {
-
-   ATH_MSG_VERBOSE("Calling refreshEvent() to reset cache and retrieve collections");
-   // clear the cache & reserve
-   m_gpPrdTruthTrajectories.clear();
-   m_prdPlanarMultiTruthCollections.clear();
-   m_prdPlanarMultiTruthCollections.reserve(m_prdPlanarMultiTruthCollectionNames.size());
-   
-   // load the PRD collections from SG for PlanarClusters
-   std::vector< std::string >::iterator pmtPlanarCollNameIter  = m_prdPlanarMultiTruthCollectionNames.begin();
-   std::vector< std::string >::iterator pmtPlanarCollNameIterE = m_prdPlanarMultiTruthCollectionNames.end();
-   for ( ;  pmtPlanarCollNameIter != pmtPlanarCollNameIterE; ++pmtPlanarCollNameIter ) {
-       // try to retrieve the PRD multi truth collection for PlanarClusters
-       const PRD_MultiTruthCollection* curColl = 0;
-       if ( evtStore()->retrieve(curColl,(*pmtPlanarCollNameIter)).isFailure() )
-           ATH_MSG_WARNING("Could not retrieve " << (*pmtPlanarCollNameIter) << ". Ignoring ... ");
-       else if (curColl){
-           ATH_MSG_VERBOSE("Added " << (*pmtPlanarCollNameIter) << " to collection list for truth track creation.");
-           m_prdPlanarMultiTruthCollections.push_back(curColl);
-       }
-   }   
-   
-   // retrieve collection call to the PRD_PlanarClusterProviders
-   if (!m_idPrdPlanarClusterProvider.empty() && m_idPrdPlanarClusterProvider->retrieveCollection().isFailure()){
-     ATH_MSG_ERROR ("Failure in collection retrieval of " << m_idPrdPlanarClusterProvider << ". Arborting ..." );
-     return StatusCode::FAILURE; 
-   }
-   else {
-     ATH_MSG_INFO ("collection retrieval of " << m_idPrdPlanarClusterProvider << ". Done!" );
-   }
-   
-   // all good
-   return StatusCode::SUCCESS;
-   
-}
-
-const std::map< HepMC::ConstGenParticlePtr , Trk::PRD_TruthTrajectory >& iFatras::PRD_PlanarTruthTrajectoryBuilder::truthTrajectories() const {
-    // ndof
-    size_t ndofTotal = 0;
-    size_t ndof      = 0;
-    
-    // PART 1 for Planar clusters--------------------------------------------------------------------------------------------------------
-    // loop over the PRD_MultiTruthCollection, search for the PRD and create (if necessary and entry in the return map)
-    std::vector<const PRD_MultiTruthCollection*>::const_iterator pmtPlanarCollIter  = m_prdPlanarMultiTruthCollections.begin();
-    std::vector<const PRD_MultiTruthCollection*>::const_iterator pmtPlanarCollIterE = m_prdPlanarMultiTruthCollections.end();
-    int first_count = 0;
-    int second_count = 0;
-    for ( ; pmtPlanarCollIter != pmtPlanarCollIterE; ++pmtPlanarCollIter ){
-        // loop over the map and get the identifier, GenParticle relation
-        PRD_MultiTruthCollection::const_iterator prdMtCIter  = (*pmtPlanarCollIter)->begin();
-        PRD_MultiTruthCollection::const_iterator prdMtCIterE = (*pmtPlanarCollIter)->end();
-	ATH_MSG_VERBOSE("  1-Count " << first_count++ );
-	ATH_MSG_VERBOSE("  Coll size =  " << (*pmtPlanarCollIter)->size() );
-        for ( ; prdMtCIter != prdMtCIterE; ++ prdMtCIter ){
-	  ATH_MSG_VERBOSE("  2-Count " << second_count++ );
-            // check if entry exists and if   
-            auto  curGenP       = (*prdMtCIter).second;
-            Identifier                curIdentifier = (*prdMtCIter).first;
-            // apply the min pT cut 
-            if ( curGenP->momentum().perp() < m_minPt ) continue;
-            // skip geantinos if required
-            if (!m_geantinos && std::abs(curGenP->pdg_id())==999) continue;
-            // get the associated PRD from the provider
-            const Trk::PrepRawData* prd = 0;
-	    if (m_idHelper->is_indet(curIdentifier))
-	      prd = m_idPrdPlanarClusterProvider->prdFromIdentifier(curIdentifier,ndof);
-	    // stuff it into the trajectory if you found a PRD
-            if (prd){
-	      ATH_MSG_VERBOSE("  I got the PRD for Id = " << curIdentifier );
-                // try to find the entry for this GenParticle 
-                std::map< HepMC::ConstGenParticlePtr , Trk::PRD_TruthTrajectory >::iterator prdTrajIter = m_gpPrdTruthTrajectories.find(curGenP);
-                if ( prdTrajIter ==  m_gpPrdTruthTrajectories.end() ){
-                    // first PRD associated to this: create PRD_TruthTrajectory object
-                    Trk::PRD_TruthTrajectory newPrdTruthTrajectory;
-                    newPrdTruthTrajectory.prds.push_back(prd);
-                    newPrdTruthTrajectory.nDoF = ndof-5;
-                    // register the GenParticle only once
-                    newPrdTruthTrajectory.genParticle = curGenP;
-                    // fill into map
-                    m_gpPrdTruthTrajectories[curGenP] = newPrdTruthTrajectory;
-                    ndofTotal = ndof;
-                } else {
-                    // this PRD_TruthTrajectory already exists
-                    (prdTrajIter->second).prds.push_back(prd);
-                    (prdTrajIter->second).nDoF += ndof;
-                    ndofTotal = (prdTrajIter->second).nDoF;
-                }
-                ATH_MSG_VERBOSE("  Associating PRD for Planar Cluster with " << ndof << " degrees of freedom, total N.d.o.F : " << ndofTotal );
-                ATH_MSG_VERBOSE("  Associating Identifier " << curIdentifier << " with particle at [ " << curGenP << " ]." );
-            } else ATH_MSG_VERBOSE("  NO PRD for Id = " << curIdentifier );
-        }        
-    }
-
-    // PART 2 --------------------------------------------------------------------------------------------------------
-    // loop through the provided list of manipulators ( sorter is included )
-    std::map< HepMC::ConstGenParticlePtr , Trk::PRD_TruthTrajectory >::iterator prdTruthTrajIter  = m_gpPrdTruthTrajectories.begin();
-    std::map< HepMC::ConstGenParticlePtr , Trk::PRD_TruthTrajectory >::iterator prdTruthTrajIterE = m_gpPrdTruthTrajectories.end();
-    for ( ; prdTruthTrajIter != prdTruthTrajIterE; ++prdTruthTrajIter ){
-        if ( m_prdTruthTrajectoryManipulators.size() ){
-            ToolHandleArray<Trk::IPRD_TruthTrajectoryManipulator>::const_iterator prdTTMIter  = m_prdTruthTrajectoryManipulators.begin();
-            ToolHandleArray<Trk::IPRD_TruthTrajectoryManipulator>::const_iterator prdTTMIterE = m_prdTruthTrajectoryManipulators.end();
-            for ( ; prdTTMIter != prdTTMIterE; ++prdTTMIter ){
-                if ((*prdTTMIter)->manipulateTruthTrajectory((*prdTruthTrajIter).second))
-                    ATH_MSG_VERBOSE("PRD truth trajectory got manipulated by: " << (*prdTTMIter).name() );
-            }
-        }
-    }
-    // return the truth trajectories and leave it to the TruthTrack creation to proceed further
-    return m_gpPrdTruthTrajectories;
-}
-                                    
-StatusCode  iFatras::PRD_PlanarTruthTrajectoryBuilder::finalize()
-{
-    // clear the cache a last time
-    m_gpPrdTruthTrajectories.clear();
-    //m_prdPlanarMultiTruthCollections.clear();    
-    ATH_MSG_VERBOSE("Finalizing ...");
-    return StatusCode::SUCCESS;
-}
-
diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasRecoTools/src/PlanarClusterOnTrackTool.cxx b/Simulation/ISF/ISF_Fatras/ISF_FatrasRecoTools/src/PlanarClusterOnTrackTool.cxx
deleted file mode 100644
index e4894e8b1a3aa43cf275cc355d6051c1947c559e..0000000000000000000000000000000000000000
--- a/Simulation/ISF/ISF_Fatras/ISF_FatrasRecoTools/src/PlanarClusterOnTrackTool.cxx
+++ /dev/null
@@ -1,149 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-///////////////////////////////////////////////////////////////////
-//   Implementation file for class PlanarClusterOnTrackTool
-///////////////////////////////////////////////////////////////////
-// (c) ATLAS Detector software
-///////////////////////////////////////////////////////////////////
-// AlgTool used for PlanarClusterOnTrack object production
-///////////////////////////////////////////////////////////////////
-
-#include "ISF_FatrasRecoTools/PlanarClusterOnTrackTool.h"
-#include "EventPrimitives/EventPrimitives.h"
-#include "ISF_FatrasDetDescrModel/PlanarDetElement.h"
-#include <sstream>
-
-///////////////////////////////////////////////////////////////////
-// Constructor
-///////////////////////////////////////////////////////////////////
-
-namespace iFatras {
-  PlanarClusterOnTrackTool::PlanarClusterOnTrackTool
-  (const std::string& t,const std::string& n,const IInterface* p) :
-    base_class(t,n,p),
-    m_useDefinedParameters(false)
-  {
-    declareProperty("UseDefinedParameters",     m_useDefinedParameters);
-  }
-  
-
-  ///////////////////////////////////////////////////////////////////
-  // Destructor  
-  ///////////////////////////////////////////////////////////////////
-  
-  PlanarClusterOnTrackTool::~PlanarClusterOnTrackTool(){}
-
-  ///////////////////////////////////////////////////////////////////
-  // Initialisation
-  ///////////////////////////////////////////////////////////////////
-  
-  StatusCode PlanarClusterOnTrackTool::initialize()
-  {
-    StatusCode sc = AthAlgTool::initialize(); 
-    
-    msg(MSG::INFO)  << name() << " initialize()" << endmsg;   
-    
-    return sc;
-  }
-  
-  ///////////////////////////////////////////////////////////////////
-  // Finalize
-  ///////////////////////////////////////////////////////////////////
-  
-  StatusCode PlanarClusterOnTrackTool::finalize()
-  {
-    StatusCode sc = AlgTool::finalize(); 
-    return sc;
-  }
-  
-  ///////////////////////////////////////////////////////////////////
-  // iFatras::PlanarClusterOnTrack  production
-  ///////////////////////////////////////////////////////////////////
-  
-  const PlanarClusterOnTrack* PlanarClusterOnTrackTool::correct
-  (const Trk::PrepRawData& rio,const Trk::TrackParameters&) const
-  {
-
-    ATH_MSG_VERBOSE ("PlanarClusterOnTrackTool:: correct()");
-  
-    const PlanarCluster* plc=dynamic_cast<const PlanarCluster*>(&rio);
-  
-    if(plc==0) {
-      ATH_MSG_WARNING("This is not a planar cluster, return 0.");
-      return 0;
-    }
-    
-    // Get pointer to detector element
-    //
-    const iFatras::PlanarDetElement* element = plc->detectorElement(); 
-    if(!element) {
-      ATH_MSG_WARNING ("Cannot access detector element. Aborting cluster correction...");
-      return 0;
-    }
-
-    bool isPixel = element->isPixel();
-    bool isDisc = (element->surface().type() == Trk::Surface::Disc);
-
-    IdentifierHash iH = element->identifyHash();
-  
-    // PlanarCluster global and local position
-    //
-    Amg::Vector3D   glob(plc->globalPosition());
-    Amg::Vector2D locpos = plc->localPosition();    
-    Trk::LocalParameters locpar;
-
-    // Covariance matrix
-    //
-    Amg::MatrixX oldLocalCov = plc->localCovariance();
-    Amg::MatrixX* loce = 0;
-
-    if(!isPixel) { // SCT case
-      // TODO! At the time being the KalmanFitter doesn't understand yet the DefinedParameters
-      // The code is already here when this will be the case
-      if ( m_useDefinedParameters ) {
-	if (isDisc) { // Disc surface with trapezoidal shape
-	  Trk::DefinedParameter par(locpos[Trk::locPhi], Trk::locPhi);
-	  locpar = Trk::LocalParameters(par);
-	  Amg::MatrixX mat(1,1);
-	  mat(0,0) = oldLocalCov(Trk::locPhi, Trk::locPhi);
-	  loce = new Amg::MatrixX(mat);
-	} else { // Planar surface with trapezoidal shape
-	  Trk::DefinedParameter par(locpos[Trk::locX], Trk::locX);
-	  locpar = Trk::LocalParameters(par);
-	  Amg::MatrixX mat(1,1);
-	  mat(0,0) = oldLocalCov(Trk::locX, Trk::locX);
-	  loce = new Amg::MatrixX(mat);
-	}
-      } else {
-	locpar = Trk::LocalParameters(locpos);
-	loce = new Amg::MatrixX(oldLocalCov);
-      }
-    } else { // Pixel case
-      locpar = Trk::LocalParameters(locpos);
-      loce = new Amg::MatrixX(oldLocalCov);
-    }
-      
-    ATH_MSG_DEBUG ("PlanarCluster: Global Position --> "  << glob);  
-    ATH_MSG_DEBUG ("PlanarCluster: Local Position --> "   << locpos);  
-    ATH_MSG_DEBUG ("PlanarCluster: Local Parameters --> " << locpar);  
-    ATH_MSG_DEBUG ("PlanarCluster: Error Matrix --> "     << *loce);  
-
-    iFatras::PlanarClusterOnTrack* pcot = new iFatras::PlanarClusterOnTrack(plc,locpar,*loce,iH,glob);
-
-    std::ostringstream ss;
-    pcot->dump(ss);
-    ATH_MSG_DEBUG ("Planar: Planar Cluster On Track "     << ss.str());
-    
-    return pcot;
-  }
-
-void PlanarClusterOnTrackTool::handle(const Incident& inc) 
-{
-  if ( inc.type() == "EndEvent" ){
-    ATH_MSG_VERBOSE("'EndEvent' incident caught.");
-  }
-}
-
-}
diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasRecoTools/src/PlanarClusterProvider.cxx b/Simulation/ISF/ISF_Fatras/ISF_FatrasRecoTools/src/PlanarClusterProvider.cxx
deleted file mode 100644
index b42847c780b3be4c2a27236372f51e42a04d0339..0000000000000000000000000000000000000000
--- a/Simulation/ISF/ISF_Fatras/ISF_FatrasRecoTools/src/PlanarClusterProvider.cxx
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-///////////////////////////////////////////////////////////////////
-// PlanarClusterProvider.cxx, (c) ATLAS Detector software
-///////////////////////////////////////////////////////////////////
-
-#include "ISF_FatrasRecoTools/PlanarClusterProvider.h"
-// ISF includes
-#include "ISF_FatrasEvent/PlanarCluster.h"
-// AtlasDetDescr  
-#include "AtlasDetDescr/AtlasDetectorID.h"
-// InDetIdentifier
-#include "InDetIdentifier/PixelID.h"
-#include "InDetIdentifier/SCT_ID.h"
-
-iFatras::PlanarClusterProvider::PlanarClusterProvider(const std::string& t, const std::string& n, const IInterface* p):
-  base_class(t,n,p),
-  m_idHelper(0),
-  m_pixIdHelper(0),
-  m_sctIdHelper(0),
-  m_planarClusterContainers(0),
-  m_usePixel(true),
-  m_useSCT(true)
-{
-  // PRD container name
-  declareProperty("PlanarClusterContainers",        m_planarClusterContainerNames);
-  declareProperty("UsePixel",                       m_usePixel);
-  declareProperty("UseSCT",                         m_useSCT);
-  
-}
-
-
-
-StatusCode iFatras::PlanarClusterProvider::initialize()
-{
-
-  ATH_MSG_VERBOSE("Initializing ...");           
-     // Set up ATLAS ID helper to be able to identify the PRD's det-subsystem
-     if (detStore()->retrieve(m_idHelper, "AtlasID").isFailure()) {
-         ATH_MSG_ERROR ("Could not get AtlasDetectorID helper. Aborting ...");
-         return StatusCode::FAILURE;
-     }     
-     
-     // Get Pixel helpers                           
-     if (m_usePixel)
-       if (detStore()->retrieve(m_pixIdHelper, "PixelID").isFailure()) { 
-	 ATH_MSG_ERROR ("Could not get PixelID helper. Aborting ...");
-	 return StatusCode::FAILURE; 
-       }     
-     
-     // Get SCT helpers                                     
-     if (m_useSCT)
-       if (detStore()->retrieve(m_sctIdHelper, "SCT_ID").isFailure()) { 
-         ATH_MSG_ERROR ("Could not get SCT_ID helper. Aborting ...");
-	 return StatusCode::FAILURE; 
-       }     
-     
-     m_planarClusterContainers = new std::vector<const iFatras::PlanarClusterContainer*>();
-     
-     return StatusCode::SUCCESS;
-}           
-
-
-
-StatusCode iFatras::PlanarClusterProvider::finalize()
-{
-     ATH_MSG_VERBOSE("Initializing ...");
-     return StatusCode::SUCCESS;
-}       
-
-
-StatusCode iFatras::PlanarClusterProvider::retrieveCollection() {
-  
-  m_planarClusterContainers->clear();
-  m_planarClusterContainers->reserve(m_planarClusterContainerNames.size());
-  for (const auto& contName : m_planarClusterContainerNames) {
-    const iFatras::PlanarClusterContainer* curCont = 0;
-    if (contName!="" && evtStore()->retrieve(curCont,contName).isFailure()) {
-      ATH_MSG_ERROR("Could not retrieve " << contName << ". Aborting." );
-      return StatusCode::FAILURE;
-    } else if (curCont) {
-      ATH_MSG_VERBOSE("Added " << contName << " to collection list in PlanarClusterProvider");
-      m_planarClusterContainers->push_back(curCont);
-    }
-  }
-  
-  //all good
-  return StatusCode::SUCCESS; 
-}
-
-/** return the Prd given the Identifier - make a HashId out of the Id and return the associated PRD */
-const Trk::PrepRawData* iFatras::PlanarClusterProvider::prdFromIdentifier(const Identifier& ide, size_t& ndof ) const {
-
-  // check validity of the Identifier
-    if (!ide.is_valid()){
-        ATH_MSG_VERBOSE("The identifier is not valid ! Return 0.");
-        return 0;
-    }
-
-    // is pixel case 
-    if ( m_usePixel && m_idHelper->is_pixel(ide) &&  m_planarClusterContainers){
-      ndof = 2;
-      // get the Identifier Hash
-      Identifier idewafer =  m_pixIdHelper->wafer_id(ide);
-      IdentifierHash ideHash = m_pixIdHelper->wafer_hash(idewafer);
-      ATH_MSG_VERBOSE("Pixel Identifier found as transformed to hash identifier " << (unsigned int)ideHash );
-      if (!ideHash.is_valid()){
-	ATH_MSG_VERBOSE("The hash identifier is not valid ! Return 0.");
-	return 0;
-      }
-      ATH_MSG_DEBUG("Returning the PRD for PlanarCluster for Pixel Identifier " << (unsigned int)ideHash );
-      return prdFromIdentifierContainers<iFatras::PlanarCluster>(*m_planarClusterContainers,ide,ideHash);
-    }
-
-    if ( m_useSCT && m_idHelper->is_sct(ide) &&  m_planarClusterContainers){
-      // get the Identifier Hash
-      ndof = 1;
-      Identifier idewafer =  m_sctIdHelper->wafer_id(ide);
-      IdentifierHash ideHash = m_sctIdHelper->wafer_hash(idewafer);
-      ATH_MSG_VERBOSE("SCT Identifier found as transformed to hash identifier " << (unsigned int)ideHash );
-      if (!ideHash.is_valid()){
-	ATH_MSG_VERBOSE("The hash identifier is not valid ! Return 0.");
-	return 0;
-      }
-      ATH_MSG_DEBUG("Returning the PRD for PlanarCluster for SCT Identifier " << (unsigned int)ideHash );
-      return prdFromIdentifierContainers<iFatras::PlanarCluster>(*m_planarClusterContainers,ide,ideHash);
-    }
-    
-    return 0;
-}
diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasRecoTools/src/PlanarSiSpacePointMakerTool.cxx b/Simulation/ISF/ISF_Fatras/ISF_FatrasRecoTools/src/PlanarSiSpacePointMakerTool.cxx
deleted file mode 100644
index 9ea1f3ee350e2f6f3bf3e2151a95911e2754b255..0000000000000000000000000000000000000000
--- a/Simulation/ISF/ISF_Fatras/ISF_FatrasRecoTools/src/PlanarSiSpacePointMakerTool.cxx
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-///////////////////////////////////////////////////////////////////
-// PlanarSiSpacePointMakerTool.cxx, (c) ATLAS Detector software
-///////////////////////////////////////////////////////////////////
-
-#include "ISF_FatrasRecoTools/PlanarSiSpacePointMakerTool.h"
-
-// Space points
-#include "SiSpacePoint/PixelSpacePoint.h"
-
-namespace iFatras{
-
-  static const InterfaceID IID_IPlanarSiSpacePointMakerTool
-  ("PlanarSiSpacePointMakerTool", 252891434, 0);
-  
-  const InterfaceID& PlanarSiSpacePointMakerTool::interfaceID() { 
-    return IID_IPlanarSiSpacePointMakerTool; 
-  }
-
-  // Constructor with parameters:
-  PlanarSiSpacePointMakerTool::PlanarSiSpacePointMakerTool(const std::string &type,
-						       const std::string &name,
-						       const IInterface *parent) :
-    AthAlgTool(type,name,parent){
-    
-    declareInterface< PlanarSiSpacePointMakerTool>( this );
-    
-  }
-  
-  //---------------------------------------------------------------------------
-  //---------------------------------------------------------------------------
-  // virtual destructor
-  PlanarSiSpacePointMakerTool::~PlanarSiSpacePointMakerTool()
-  {}
-  
-  //--------------------------------------------------------------------------
-  StatusCode PlanarSiSpacePointMakerTool::initialize()  {
-    StatusCode sc;
-    sc = AlgTool::initialize();
-    return sc;
-  }
-  
-  //--------------------------------------------------------------------------
-  StatusCode PlanarSiSpacePointMakerTool::finalize() {
-    StatusCode sc = AlgTool::finalize(); 
-    return sc;
-  }
-  
-  void PlanarSiSpacePointMakerTool::fillPixelSpacePointCollection(const PlanarClusterCollection* clusters, SpacePointCollection* spacepointCollection){
-    
-    IdentifierHash idHash = clusters->identifyHash(); 
-    
-    iFatras::PlanarClusterCollection::const_iterator clusStart = clusters->begin(); 
-    iFatras::PlanarClusterCollection::const_iterator clusFinish = clusters->end(); 
-    if ((*clusStart)->detectorElement()!=0) {
-      // Since all the clusters in a PixelClusterCollection and in a pixel PlanarClusterCollection 
-      // are from the same detector element, it is enough to test on the 
-      // first cluster.
-      spacepointCollection->reserve(spacepointCollection->size()+clusters->size());
-      for(; clusStart!=clusFinish; ++clusStart){
-	Trk::SpacePoint* sp(new InDet::PixelSpacePoint(idHash, *clusStart)); 
-	spacepointCollection->push_back(sp);
-      }
-    }
-  }
-  
-  
-}
diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasRecoTools/src/components/ISF_FatrasRecoTools_entries.cxx b/Simulation/ISF/ISF_Fatras/ISF_FatrasRecoTools/src/components/ISF_FatrasRecoTools_entries.cxx
index 03fe2a21ab789d5b6213d37132b1de45e04d9b8d..9e0e1ca9aed48e6c4fe5a2084b9d3e7851cda276 100644
--- a/Simulation/ISF/ISF_Fatras/ISF_FatrasRecoTools/src/components/ISF_FatrasRecoTools_entries.cxx
+++ b/Simulation/ISF/ISF_Fatras/ISF_FatrasRecoTools/src/components/ISF_FatrasRecoTools_entries.cxx
@@ -1,22 +1,13 @@
-#include "ISF_FatrasRecoTools/PlanarClusterOnTrackTool.h"
-#include "ISF_FatrasRecoTools/PlanarSiSpacePointMakerTool.h"
-#include "ISF_FatrasRecoTools/PlanarClusterProvider.h"
 #include "ISF_FatrasRecoTools/ISF_SiSpacePointMakerTool.h"
 #include "ISF_FatrasRecoTools/ISF_PRDGeneralTruthTrajectorySorterID.h"
 #include "ISF_FatrasRecoTools/ISF_PRD_AssociationTool.h"
 #include "../ISF_PRDtoTrackMapTool.h"
 #include "ISF_FatrasRecoTools/ISF_TrackSummaryHelperTool.h"
-#include "ISF_FatrasRecoTools/PRD_PlanarTruthTrajectoryBuilder.h"
 
 using namespace iFatras;
 
-DECLARE_COMPONENT( PlanarClusterOnTrackTool )
-DECLARE_COMPONENT( PlanarSiSpacePointMakerTool )
-DECLARE_COMPONENT( PlanarClusterProvider )
 DECLARE_COMPONENT( ISF_SiSpacePointMakerTool )
 DECLARE_COMPONENT( ISF_PRDGeneralTruthTrajectorySorterID )
 DECLARE_COMPONENT( ISF_PRD_AssociationTool )
 DECLARE_COMPONENT( ISF_PRDtoTrackMapTool )
 DECLARE_COMPONENT( ISF_TrackSummaryHelperTool )
-DECLARE_COMPONENT( PRD_PlanarTruthTrajectoryBuilder )
-
diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasRecoTools/test/SiSpacePointMakerTool_test.cxx b/Simulation/ISF/ISF_Fatras/ISF_FatrasRecoTools/test/SiSpacePointMakerTool_test.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..904da890f8783b2989532fdb479d4f0ba9f3feef
--- /dev/null
+++ b/Simulation/ISF/ISF_Fatras/ISF_FatrasRecoTools/test/SiSpacePointMakerTool_test.cxx
@@ -0,0 +1,234 @@
+#undef NDEBUG
+
+#include "ISF_FatrasRecoTools/ISF_SiSpacePointMakerTool.h"
+#include "ISF_FatrasEvent/PlanarClusterContainer.h"
+#include "ISF_FatrasEvent/PlanarClusterCollection.h"
+#include "InDetIdentifier/PixelID.h"
+#include "InDetIdentifier/SCT_ID.h"
+#include "IdDictParser/IdDictParser.h"
+#include "TrkGeometry/HomogeneousLayerMaterial.h"
+#include "ISF_FatrasDetDescrModel/IdHashDetElementCollection.h"
+#include "GeoPrimitives/GeoPrimitivesHelpers.h"
+#include "StoreGate/StoreGateSvc.h"
+#include "TestTools/initGaudi.h"
+#include "GaudiKernel/MsgStream.h"
+#include "GaudiKernel/ISvcLocator.h"
+#include "TestTools/leakcheck.h"
+#include <cassert>
+#include <iostream>
+
+
+const int NELTS = 10;
+
+struct IDHelpers
+{
+  PixelID* m_pix_id;
+  SCT_ID* m_sct_id;
+  Identifier m_pixel_ids;
+  std::unique_ptr<iFatras::PlanarDetElement> m_pixel_elts;
+  Identifier m_sct_ids;
+  std::unique_ptr<iFatras::PlanarDetElement> m_sct_elts;
+};
+
+std::unique_ptr<iFatras::PlanarDetElement> makeEle(const Identifier& id,
+                                                   const IdentifierHash& idhash,
+                                                   bool isPixel,
+                                                   int o)
+{
+  Amg::Transform3D xform;
+  if (isPixel)
+    xform = Amg::getRotateX3D (0.5+o/100);
+  else
+    xform = Amg::getRotateY3D (0.5+o/100);
+  return std::make_unique<iFatras::PlanarDetElement>
+    (id,
+     idhash,
+     Amg::Vector3D (10.5+o, 11.5+o, 12.5+o),
+     xform,
+     Trk::HomogeneousLayerMaterial(),
+     13.5+o, // thickness
+     14.5+o, // lengthY
+     15.5+o, // lengthXmin
+     16.5+o, // lengthXmax
+     17.5+o, // rMin
+     18.5+o, // rMax
+     19.5+o, // pitchX
+     20.5+o, // pitchY
+     21.5+o, // stereo
+     isPixel,
+     o&1,
+     !(o&1),
+     o&1);
+}
+
+
+
+std::unique_ptr<IDHelpers> make_idhelpers (ISvcLocator* svcLoc)
+{
+  auto helpers = std::make_unique<IDHelpers>();
+  auto pix_id = std::make_unique<PixelID>();
+  auto sct_id = std::make_unique<SCT_ID>();
+  helpers->m_pix_id = pix_id.get();
+  helpers->m_sct_id = sct_id.get();
+
+  IdDictParser parser;
+  parser.register_external_entity ("InnerDetector",
+                                   "IdDictInnerDetector.xml");
+  IdDictMgr& idd = parser.parse ("IdDictParser/ATLAS_IDS.xml");
+  pix_id->initialize_from_dictionary (idd);
+  sct_id->initialize_from_dictionary (idd);
+
+  StoreGateSvc* sg = 0;
+  assert ( svcLoc->service("DetectorStore", sg).isSuccess() );
+  assert ( sg->record (std::move (pix_id), "PixelID") );
+  assert ( sg->record (std::move (sct_id), "SCT_ID") );
+
+  auto pixel_map = std::make_unique<iFatras::IdHashDetElementCollection>();
+  {
+    Identifier id = helpers->m_pix_id->wafer_id (0,
+                                                 1,
+                                                 3,
+                                                 4);
+    IdentifierHash hash = helpers->m_pix_id->wafer_hash (id);
+    std::unique_ptr<iFatras::PlanarDetElement> elt = makeEle(id, hash,
+                                                             true, 0);
+    pixel_map->emplace (hash, elt.get());
+    helpers->m_pixel_ids = id;
+    helpers->m_pixel_elts = std::move(elt);
+  }
+  
+  auto sct_map = std::make_unique<iFatras::IdHashDetElementCollection>();
+  {
+    Identifier id = helpers->m_sct_id->wafer_id (0,
+                                                 1,
+                                                 3,
+                                                 4,
+                                                 0);
+    IdentifierHash hash = helpers->m_sct_id->wafer_hash (id);
+    std::unique_ptr<iFatras::PlanarDetElement> elt = makeEle (id, hash,
+                                                              false, 5);
+    sct_map->emplace (hash, elt.get());
+    helpers->m_sct_ids = id;
+    helpers->m_sct_elts = std::move(elt);
+  }
+  
+  return helpers;
+}
+
+
+void test (iFatras::ISF_SiSpacePointMakerTool& tool, const IDHelpers& helpers)
+{
+  std::cout << "test: "  << tool.name() << "\n";
+  // Creation of PlanarClusterCollection is from PlanarClusterContainerCnv test (by Scott)
+  iFatras::PlanarClusterContainer planarCont (3000);
+  {
+    Identifier wafer_id = helpers.m_pixel_ids;
+    IdentifierHash wafer_hash = helpers.m_pix_id->wafer_hash (wafer_id);
+    auto coll = std::make_unique<iFatras::PlanarClusterCollection> (wafer_hash);
+    for (int i=0; i < NELTS; i++) {
+      int o = i*10;
+
+      Amg::Vector2D locpos (1.5+o, 2.5+o);
+      std::vector<Identifier> rdoList {
+        helpers.m_pix_id->pixel_id (wafer_id,
+                                    21+o,
+                                    32+o),
+        helpers.m_pix_id->pixel_id (wafer_id,
+                                    21+o,
+                                    33+o),
+        helpers.m_pix_id->pixel_id (wafer_id,
+                                    21+o,
+                                    34+o) };
+      InDet::SiWidth width (Amg::Vector2D (1+o, 2+o),
+                            Amg::Vector2D (3.5+o, 4.5+o));
+
+      Amg::MatrixX cov(2,2);
+      for (int i=0; i < 2; i++)
+        for (int j=0; j < 2; j++)
+          cov(i,j) = 100*(i+1)*(j+1) + o;
+
+      auto clus = std::make_unique<iFatras::PlanarCluster>
+        (helpers.m_pix_id->pixel_id (wafer_id,
+                                     21+o,
+                                     31+o),
+         locpos,
+         rdoList,
+         width,
+         helpers.m_pixel_elts.get(),
+         new Amg::MatrixX(cov));
+
+      coll->push_back (std::move (clus));
+    }
+    planarCont.addCollection (coll.release(), wafer_hash).ignore();
+  }
+
+  {
+    Identifier wafer_id = helpers.m_sct_ids;
+    IdentifierHash wafer_hash = helpers.m_sct_id->wafer_hash (wafer_id);
+    auto coll = std::make_unique<iFatras::PlanarClusterCollection> (wafer_hash);
+    for (int i=0; i < NELTS; i++) {
+      int o = i*10+5;
+
+      Amg::Vector2D locpos (1.5+o, 2.5+o);
+      std::vector<Identifier> rdoList {
+        helpers.m_sct_id->strip_id (wafer_id, 42+o),
+        helpers.m_sct_id->strip_id (wafer_id, 43+o),
+        helpers.m_sct_id->strip_id (wafer_id, 44+o) };
+      InDet::SiWidth width (Amg::Vector2D (1+o, 2+o),
+                            Amg::Vector2D (3.5+o, 4.5+o));
+
+      Amg::MatrixX cov(2,2);
+      for (int i=0; i < 2; i++)
+        for (int j=0; j < 2; j++)
+          cov(i,j) = 100*(i+1)*(j+1) + o;
+
+      auto clus = std::make_unique<iFatras::PlanarCluster>
+        (helpers.m_sct_id->strip_id (wafer_id, 41+i),
+         locpos,
+         rdoList,
+         width,
+         helpers.m_sct_elts.get(),
+         new Amg::MatrixX(cov));
+
+      coll->push_back (std::move (clus));
+    }
+    planarCont.addCollection (coll.release(), wafer_hash).ignore();
+  }
+
+  iFatras::PlanarClusterContainer::const_iterator it1 = planarCont.begin();
+  const iFatras::PlanarClusterCollection& coll1 = **it1;
+  std::cout << "Collection size: " << coll1.size() << "\n";
+  
+  IdentifierHash idHash = it1->identifyHash(); 
+  Identifier elementID = it1->identify(); 
+  auto spacepointCollection = std::make_unique< SpacePointCollection >(idHash);
+  spacepointCollection->setIdentifier(elementID); 
+  tool.fillPixelSpacePointCollection(*it1, spacepointCollection.get());
+  std::cout << "coll size  : " << (*it1)->size()  << "\n";
+  std::cout << "space size  : " << spacepointCollection->size()  << "\n";
+
+  assert( (*it1)->size() == spacepointCollection->size() );
+  
+}
+
+
+int main()
+{
+  std::cout << "ISF_FatrasRecoTools/ISF_SiSpacePointMakerTool_test.cxx \n";
+
+
+  ISvcLocator* pSvcLoc;
+  if (!Athena_test::initGaudi("ISF_FatrasRecoTools_test.txt", pSvcLoc)) {
+    std::cerr << "This test can not be run" << std::endl;
+    return 0;
+  }
+
+  std::unique_ptr<IDHelpers> helpers = make_idhelpers (pSvcLoc);
+
+  ToolHandle<iFatras::ISF_SiSpacePointMakerTool> tool ("iFatras::ISF_SiSpacePointMakerTool");
+  assert( tool.retrieve().isSuccess() );
+  
+  test (*tool, *helpers);
+
+  return 0;
+}