diff --git a/Simulation/G4Atlas/G4AtlasTools/python/G4PhysicsRegionConfigNew.py b/Simulation/G4Atlas/G4AtlasTools/python/G4PhysicsRegionConfigNew.py
index e9cb1af7008ce6f4b721989646b3d1f8eefc659b..47640887132ab351385a961f555d5bfbd2b3cb9b 100644
--- a/Simulation/G4Atlas/G4AtlasTools/python/G4PhysicsRegionConfigNew.py
+++ b/Simulation/G4Atlas/G4AtlasTools/python/G4PhysicsRegionConfigNew.py
@@ -3,12 +3,14 @@ from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
 from G4AtlasTools.G4AtlasToolsConf import RegionCreator
 
 # Beampipe Regions
-def getBeampipeFwdCutPhysicsRegionTool(name='BeampipeFwdCutPhysicsRegionTool', **kwargs):
+def BeampipeFwdCutPhysicsRegionToolCfg(ConfigFlags, name='BeampipeFwdCutPhysicsRegionTool', **kwargs):
     kwargs.setdefault("RegionName", 'BeampipeFwdCut')
     volumeList = ['BeamPipe::SectionF47', 'BeamPipe::SectionF48', 'BeamPipe::SectionF61']
     kwargs.setdefault("VolumeList",  volumeList)
     from G4AtlasApps.SimFlags import simFlags
-    if simFlags.BeamPipeSimMode() == "FastSim":
+
+    #if simFlags.BeamPipeSimMode() == "FastSim":
+    if True:
         kwargs.setdefault("ElectronCut", 10.)
         kwargs.setdefault("PositronCut", 10.)
         kwargs.setdefault("GammaCut", 10.)
@@ -30,14 +32,14 @@ def getBeampipeFwdCutPhysicsRegionTool(name='BeampipeFwdCutPhysicsRegionTool', *
             kwargs.setdefault("ProtonCut", simFlags.BeamPipeCut())
     return RegionCreator(name, **kwargs)
 
-def getFWDBeamLinePhysicsRegionTool(name='FWDBeamLinePhysicsRegionTool', **kwargs):
+def FWDBeamLinePhysicsRegionToolCfg(ConfigFlags, name='FWDBeamLinePhysicsRegionTool', **kwargs):
     kwargs.setdefault("RegionName", 'FWDBeamLine')
     volumeList = ['BeamPipe::SectionF46']
     kwargs.setdefault("VolumeList",  volumeList)
     return RegionCreator(name, **kwargs)
 
 # Forward Regions
-def getFwdRegionPhysicsRegionTool(name='FwdRegionPhysicsRegionTool', **kwargs):
+def FwdRegionPhysicsRegionToolCfg(ConfigFlags, name='FwdRegionPhysicsRegionTool', **kwargs):
     kwargs.setdefault("RegionName", 'FwdRegion')
     volumeList = ['FwdRegion::ForwardRegionGeoModel']
     kwargs.setdefault("VolumeList",  volumeList)
@@ -47,12 +49,12 @@ def getFwdRegionPhysicsRegionTool(name='FwdRegionPhysicsRegionTool', **kwargs):
     return RegionCreator(name, **kwargs)
 
 # Inner Detector Regions
-def getPixelPhysicsRegionTool(name='PixelPhysicsRegionTool', **kwargs):
+def PixelPhysicsRegionToolCfg(ConfigFlags, name='PixelPhysicsRegionTool', **kwargs):
     kwargs.setdefault("RegionName", 'Pixel')
     volumeList = ['Pixel::siLog', 'Pixel::siBLayLog']
     from AtlasGeoModel.CommonGMJobProperties import CommonGeometryFlags as commonGeoFlags
     from AtlasGeoModel.InDetGMJobProperties import InDetGeometryFlags as geoFlags
-    if (commonGeoFlags.Run() in ["RUN2", "RUN3"]) or (commonGeoFlags.Run()=="UNDEFINED" and geoFlags.isIBL()):
+    if (ConfigFlags.GeoModel.Run in ["RUN2", "RUN3"]) or (commonGeoFlags.Run()=="UNDEFINED" and geoFlags.isIBL()):
         volumeList += ['Pixel::dbmDiamondLog']
     kwargs.setdefault("VolumeList",  volumeList)
     kwargs.setdefault("ElectronCut", 0.05)
@@ -60,7 +62,7 @@ def getPixelPhysicsRegionTool(name='PixelPhysicsRegionTool', **kwargs):
     kwargs.setdefault("GammaCut",    0.05)
     return RegionCreator(name, **kwargs)
 
-def getSCTPhysicsRegionTool(name='SCTPhysicsRegionTool', **kwargs):
+def SCTPhysicsRegionToolCfg(ConfigFlags, name='SCTPhysicsRegionTool', **kwargs):
     kwargs.setdefault("RegionName", 'SCT')
     volumeList = ['SCT::BRLSensor', 'SCT::BRLSensorSS', 'SCT::BRLSensorMS',
                    'SCT::ECSensor0', 'SCT::ECSensor1', 'SCT::ECSensor2',
@@ -71,9 +73,9 @@ def getSCTPhysicsRegionTool(name='SCTPhysicsRegionTool', **kwargs):
     kwargs.setdefault("GammaCut",    0.05)
     return RegionCreator(name, **kwargs)
 
-def getTRTPhysicsRegionTool(name='TRTPhysicsRegionTool', **kwargs):
-    from G4AtlasApps.SimFlags import simFlags
-    rangeCut = simFlags.TRTRangeCut.get_Value()
+def TRTPhysicsRegionToolCfg(ConfigFlags, name='TRTPhysicsRegionTool', **kwargs):
+    #rangeCut = simFlags.TRTRangeCut._Value()
+    rangeCut = 30.0
     kwargs.setdefault("RegionName", 'TRT')
     volumeList = ['TRT::Gas', 'TRT::GasMA']
     kwargs.setdefault("VolumeList",  volumeList)
@@ -83,7 +85,7 @@ def getTRTPhysicsRegionTool(name='TRTPhysicsRegionTool', **kwargs):
     kwargs.setdefault("GammaCut",    0.05)
     return RegionCreator(name, **kwargs)
 
-def getTRT_ArPhysicsRegionTool(name='TRT_ArPhysicsRegionTool', **kwargs):
+def TRT_ArPhysicsRegionToolCfg(ConfigFlags, name='TRT_ArPhysicsRegionTool', **kwargs):
     kwargs.setdefault("RegionName", 'TRT_Ar')
     volumeList = ['TRT::Gas_Ar', 'TRT::GasMA_Ar']
     kwargs.setdefault("VolumeList",  volumeList)
@@ -92,7 +94,7 @@ def getTRT_ArPhysicsRegionTool(name='TRT_ArPhysicsRegionTool', **kwargs):
     kwargs.setdefault("GammaCut",    0.05)
     return RegionCreator(name, **kwargs)
 
-def getTRT_KrPhysicsRegionTool(name='TRT_KrPhysicsRegionTool', **kwargs):
+def TRT_KrPhysicsRegionToolCfg(ConfigFlags, name='TRT_KrPhysicsRegionTool', **kwargs):
     kwargs.setdefault("RegionName", 'TRT_Kr')
     volumeList = ['TRT::Gas_Kr', 'TRT::GasMA_Kr']
     kwargs.setdefault("VolumeList",  volumeList)
@@ -102,7 +104,7 @@ def getTRT_KrPhysicsRegionTool(name='TRT_KrPhysicsRegionTool', **kwargs):
     return RegionCreator(name, **kwargs)
 
 # Calo Regions
-def getEMBPhysicsRegionTool(name='EMBPhysicsRegionTool', **kwargs):
+def EMBPhysicsRegionToolCfg(ConfigFlags, name='EMBPhysicsRegionTool', **kwargs):
     kwargs.setdefault("RegionName", 'EMB')
     volumeList = ['LArMgr::LAr::EMB::STAC']
     kwargs.setdefault("VolumeList",  volumeList)
@@ -115,7 +117,7 @@ def getEMBPhysicsRegionTool(name='EMBPhysicsRegionTool', **kwargs):
     kwargs.setdefault("GammaCut",    rangeEMB)
     return RegionCreator(name, **kwargs)
 
-def getEMECPhysicsRegionTool(name='EMECPhysicsRegionTool', **kwargs):
+def EMECPhysicsRegionToolCfg(ConfigFlags, name='EMECPhysicsRegionTool', **kwargs):
     kwargs.setdefault("RegionName", 'EMEC')
     volumeList = ['LArMgr::LAr::EMEC::Mother']
     kwargs.setdefault("VolumeList",  volumeList)
@@ -128,7 +130,7 @@ def getEMECPhysicsRegionTool(name='EMECPhysicsRegionTool', **kwargs):
     kwargs.setdefault("GammaCut",    rangeEMEC)
     return RegionCreator(name, **kwargs)
 
-def getHECPhysicsRegionTool(name='HECPhysicsRegionTool', **kwargs):
+def HECPhysicsRegionToolCfg(ConfigFlags, name='HECPhysicsRegionTool', **kwargs):
     kwargs.setdefault("RegionName", 'HEC')
     volumeList = ['LArMgr::LAr::HEC::LiquidArgon']
     kwargs.setdefault("VolumeList",  volumeList)
@@ -141,7 +143,7 @@ def getHECPhysicsRegionTool(name='HECPhysicsRegionTool', **kwargs):
     kwargs.setdefault("GammaCut",    rangeHEC)
     return RegionCreator(name, **kwargs)
 
-def getFCALPhysicsRegionTool(name='FCALPhysicsRegionTool', **kwargs):
+def FCALPhysicsRegionToolCfg(ConfigFlags, name='FCALPhysicsRegionTool', **kwargs):
     kwargs.setdefault("RegionName", 'FCAL')
     volumeList = ['LArMgr::LAr::FCAL::LiquidArgonC']
     kwargs.setdefault("VolumeList",  volumeList)
@@ -150,7 +152,7 @@ def getFCALPhysicsRegionTool(name='FCALPhysicsRegionTool', **kwargs):
     kwargs.setdefault("GammaCut",    0.03)
     return RegionCreator(name, **kwargs)
 
-def getEMECParaPhysicsRegionTool(name='EMECParaPhysicsRegionTool', **kwargs):
+def EMECParaPhysicsRegionToolCfg(ConfigFlags, name='EMECParaPhysicsRegionTool', **kwargs):
     kwargs.setdefault("RegionName", 'EMECPara')
     volumeList = ['LArMgr::LAr::EMEC::Pos::InnerWheel', 'LArMgr::LAr::EMEC::Pos::OuterWheel',
                   'LArMgr::LAr::EMEC::Neg::InnerWheel', 'LArMgr::LAr::EMEC::Neg::OuterWheel']
@@ -164,7 +166,7 @@ def getEMECParaPhysicsRegionTool(name='EMECParaPhysicsRegionTool', **kwargs):
     kwargs.setdefault("GammaCut",    rangeEMEC)
     return RegionCreator(name, **kwargs)
 
-def getFCALParaPhysicsRegionTool(name='FCALParaPhysicsRegionTool', **kwargs):
+def FCALParaPhysicsRegionToolCfg(ConfigFlags, name='FCALParaPhysicsRegionTool', **kwargs):
     kwargs.setdefault("RegionName", 'FCALPara')
     volumeList = ['LArMgr::LAr::FCAL::Module1::Absorber']
     kwargs.setdefault("VolumeList",  volumeList)
@@ -173,7 +175,7 @@ def getFCALParaPhysicsRegionTool(name='FCALParaPhysicsRegionTool', **kwargs):
     kwargs.setdefault("GammaCut",    0.03)
     return RegionCreator(name, **kwargs)
 
-def getFCAL2ParaPhysicsRegionTool(name='FCAL2ParaPhysicsRegionTool', **kwargs):
+def FCAL2ParaPhysicsRegionToolCfg(ConfigFlags, name='FCAL2ParaPhysicsRegionTool', **kwargs):
     kwargs.setdefault("RegionName", 'FCAL2Para')
     volumeList = ['LArMgr::LAr::FCAL::Module2::Absorber', 'LArMgr::LAr::FCAL::Module3::Absorber']
     kwargs.setdefault("VolumeList",  volumeList)
@@ -182,13 +184,13 @@ def getFCAL2ParaPhysicsRegionTool(name='FCAL2ParaPhysicsRegionTool', **kwargs):
     kwargs.setdefault("GammaCut",    0.03)
     return RegionCreator(name, **kwargs)
 
-def getPreSampLArPhysicsRegionTool(name='PreSampLArPhysicsRegionTool', **kwargs):
+def PreSampLArPhysicsRegionToolCfg(ConfigFlags, name='PreSampLArPhysicsRegionTool', **kwargs):
     kwargs.setdefault("RegionName", 'PreSampLAr')
     volumeList = ['LArMgr::LAr::Endcap::Presampler::LiquidArgon']
     kwargs.setdefault("VolumeList",  volumeList)
     return RegionCreator(name, **kwargs)
 
-def getDeadMaterialPhysicsRegionTool(name='DeadMaterialPhysicsRegionTool', **kwargs):
+def DeadMaterialPhysicsRegionToolCfg(ConfigFlags, name='DeadMaterialPhysicsRegionTool', **kwargs):
     kwargs.setdefault("RegionName", 'DeadMaterial')
     volumeList = []
     sectionList = range(16,49) # does not include 49
@@ -208,7 +210,7 @@ def getDeadMaterialPhysicsRegionTool(name='DeadMaterialPhysicsRegionTool', **kwa
     return RegionCreator(name, **kwargs)
 
 #Muon Regions
-def getDriftWallPhysicsRegionTool(name='DriftWallPhysicsRegionTool', **kwargs):
+def DriftWallPhysicsRegionToolCfg(ConfigFlags, name='DriftWallPhysicsRegionTool', **kwargs):
     kwargs.setdefault("RegionName", 'DriftWall')
     volumeList = ['Muon::MDTDriftWall']
     kwargs.setdefault("VolumeList",  volumeList)
@@ -216,7 +218,7 @@ def getDriftWallPhysicsRegionTool(name='DriftWallPhysicsRegionTool', **kwargs):
     kwargs.setdefault("PositronCut", 0.05)
     return RegionCreator(name, **kwargs)
 
-def getDriftWall1PhysicsRegionTool(name='DriftWall1PhysicsRegionTool', **kwargs):
+def DriftWall1PhysicsRegionToolCfg(ConfigFlags, name='DriftWall1PhysicsRegionTool', **kwargs):
     kwargs.setdefault("RegionName", 'DriftWall1')
     volumeList = ['Muon::Endplug']
     kwargs.setdefault("VolumeList",  volumeList)
@@ -224,7 +226,7 @@ def getDriftWall1PhysicsRegionTool(name='DriftWall1PhysicsRegionTool', **kwargs)
     kwargs.setdefault("PositronCut", 1.0)
     return RegionCreator(name, **kwargs)
 
-def getDriftWall2PhysicsRegionTool(name='DriftWall2PhysicsRegionTool', **kwargs):
+def DriftWall2PhysicsRegionToolCfg(ConfigFlags, name='DriftWall2PhysicsRegionTool', **kwargs):
     kwargs.setdefault("RegionName", 'DriftWall2')
     volumeList = ['Muon::SensitiveGas']
     kwargs.setdefault("VolumeList",  volumeList)
@@ -232,11 +234,10 @@ def getDriftWall2PhysicsRegionTool(name='DriftWall2PhysicsRegionTool', **kwargs)
     kwargs.setdefault("PositronCut", 1.0)
     return RegionCreator(name, **kwargs)
 
-def getMuonSystemFastPhysicsRegionTool(name='MuonSystemFastPhysicsRegionTool', **kwargs):
+def MuonSystemFastPhysicsRegionToolCfg(ConfigFlags, name='MuonSystemFastPhysicsRegionTool', **kwargs):
     kwargs.setdefault("RegionName", 'MuonSystemFastRegion')
     volumeList = []
-    from G4AtlasApps.SimFlags import simFlags
-    if 'World' in simFlags.CavernBG.get_Value():
+    if ConfigFlags.Sim.CavernBG  == 'World':
         volumeList += ['BeamPipe::BeamPipe', 'IDET::IDET']
     volumeList = ['Muon::MuonSys']
     kwargs.setdefault("VolumeList",  volumeList)
@@ -244,7 +245,7 @@ def getMuonSystemFastPhysicsRegionTool(name='MuonSystemFastPhysicsRegionTool', *
     kwargs.setdefault("PositronCut", 1.0)
     return RegionCreator(name, **kwargs)
 
-def getMuonPhysicsRegionTool(name="MuonPhysicsRegionTool", **kwargs):
+def MuonPhysicsRegionToolCfg(ConfigFlags, name="MuonPhysicsRegionTool", **kwargs):
     kwargs.setdefault("RegionName", 'MuonSys')
     volumeList = ['Muon::MuonSys']
     kwargs.setdefault("VolumeList",  volumeList)
@@ -263,7 +264,7 @@ def SX1PhysicsRegionToolCfg(ConfigFlags, name='SX1PhysicsRegionTool', **kwargs):
     kwargs.setdefault("GammaCut",    2000.)
     return RegionCreator(name, **kwargs)
 
-def getBedrockPhysicsRegionTool(name='BedrockPhysicsRegionTool', **kwargs):
+def BedrockPhysicsRegionToolCfg(ConfigFlags, name='BedrockPhysicsRegionTool', **kwargs):
     kwargs.setdefault("RegionName", 'BEDROCK')
     volumeList = ['CavernInfra::BEDROCK']
     kwargs.setdefault("VolumeList",  volumeList)
@@ -272,7 +273,7 @@ def getBedrockPhysicsRegionTool(name='BedrockPhysicsRegionTool', **kwargs):
     kwargs.setdefault("GammaCut",    1000000.)
     return RegionCreator(name, **kwargs)
 
-def getCavernShaftsConcretePhysicsRegionTool(name='CavernShaftsConcretePhysicsRegionTool', **kwargs):
+def CavernShaftsConcretePhysicsRegionToolCfg(ConfigFlags, name='CavernShaftsConcretePhysicsRegionTool', **kwargs):
     kwargs.setdefault("RegionName", 'CAV_SHAFTS_CONC')
     volumeList = ['CavernInfra::CAV_SHAFTS_CONC']
     kwargs.setdefault("VolumeList",  volumeList)
@@ -292,7 +293,7 @@ def getCavernShaftsConcretePhysicsRegionTool(name='CavernShaftsConcretePhysicsRe
 
 # CTB Regions
 
-def getSCTSiliconPhysicsRegionTool(name='SCTSiliconPhysicsRegionTool', **kwargs):
+def SCTSiliconPhysicsRegionToolCfg(ConfigFlags, name='SCTSiliconPhysicsRegionTool', **kwargs):
     kwargs.setdefault("RegionName", 'SCTSiliconRegion')
     volumeList = ['SCT::ECSensor0']
     kwargs.setdefault("VolumeList",  volumeList)
@@ -328,14 +329,35 @@ if __name__ == '__main__':
   ## Initialize a new component accumulator
   cfg = MainServicesSerialCfg()
 
-  #add the algorithm
-  tool1 = SX1PhysicsRegionToolCfg(ConfigFlags)
-  cfg.addPublicTool(tool1)
-  #cfg.merge(acc1)
+  #add the tools
+  cfg.addPublicTool(BeampipeFwdCutPhysicsRegionToolCfg(ConfigFlags))
+  cfg.addPublicTool(FWDBeamLinePhysicsRegionToolCfg(ConfigFlags))
+  cfg.addPublicTool(FwdRegionPhysicsRegionToolCfg(ConfigFlags))  
+  cfg.addPublicTool(PixelPhysicsRegionToolCfg(ConfigFlags))
+  cfg.addPublicTool(SCTPhysicsRegionToolCfg(ConfigFlags))
+  cfg.addPublicTool(TRTPhysicsRegionToolCfg(ConfigFlags))
+  cfg.addPublicTool(TRT_ArPhysicsRegionToolCfg(ConfigFlags))
+  cfg.addPublicTool(TRT_KrPhysicsRegionToolCfg(ConfigFlags)) 
+  cfg.addPublicTool(EMBPhysicsRegionToolCfg(ConfigFlags))
+  cfg.addPublicTool(EMECPhysicsRegionToolCfg(ConfigFlags))
+  cfg.addPublicTool(HECPhysicsRegionToolCfg(ConfigFlags))
+  cfg.addPublicTool(FCALPhysicsRegionToolCfg(ConfigFlags))
+  cfg.addPublicTool(EMECParaPhysicsRegionToolCfg(ConfigFlags))
+  cfg.addPublicTool(FCALParaPhysicsRegionToolCfg(ConfigFlags))
+  cfg.addPublicTool(FCAL2ParaPhysicsRegionToolCfg(ConfigFlags))
+  cfg.addPublicTool(PreSampLArPhysicsRegionToolCfg(ConfigFlags))
+  cfg.addPublicTool(DeadMaterialPhysicsRegionToolCfg(ConfigFlags))
+  cfg.addPublicTool(DriftWallPhysicsRegionToolCfg(ConfigFlags))
+  cfg.addPublicTool(DriftWall1PhysicsRegionToolCfg(ConfigFlags))
+  cfg.addPublicTool(DriftWall2PhysicsRegionToolCfg(ConfigFlags))
+  cfg.addPublicTool(MuonSystemFastPhysicsRegionToolCfg(ConfigFlags))
+  cfg.addPublicTool(MuonPhysicsRegionToolCfg(ConfigFlags))
+  cfg.addPublicTool(SX1PhysicsRegionToolCfg(ConfigFlags))
+  cfg.addPublicTool(BedrockPhysicsRegionToolCfg(ConfigFlags))
+  cfg.addPublicTool(CavernShaftsConcretePhysicsRegionToolCfg(ConfigFlags))
+  cfg.addPublicTool(SCTSiliconPhysicsRegionToolCfg(ConfigFlags))
+
 
-  #cfg.addEventAlgo(Alg) #Event algo?
-  #cfg.merge(acc)
-  #cfg.addPublicTool(Alg)
 
   # Dump config
   #cfg.getService("StoreGateSvc").Dump = True