diff --git a/Simulation/SimulationJobOptions/share/cavern/preInclude.G4ReadCavern.py b/Simulation/SimulationJobOptions/share/cavern/preInclude.G4ReadCavern.py
index 2754a7fbc8e83b10f6744dbbcba8f89a80d1a0a8..d6140fd9f207c989daac67df017f28358b1556b1 100644
--- a/Simulation/SimulationJobOptions/share/cavern/preInclude.G4ReadCavern.py
+++ b/Simulation/SimulationJobOptions/share/cavern/preInclude.G4ReadCavern.py
@@ -13,11 +13,10 @@ ServiceMgr += PartPropSvc()
 
 from AthenaCommon.AlgSequence import AlgSequence
 topSequence = AlgSequence()
-from CosmicGenerator.CosmicGeneratorConf import CosmicGenerator
-topSequence += CosmicGenerator()
-topSequence.CosmicGenerator.TRSmearing = -1 #in millimeters, e.g. 10
-topSequence.CosmicGenerator.TRPSmearing = -1 #in radians, e.g. 0.01
-topSequence.CosmicGenerator.TRCollection = "NeutronBG"
-topSequence.CosmicGenerator.ReadTR = True
-topSequence.CosmicGenerator.AtRndmGenSvc = simFlags.RandomSvc.get_Value()
+from TrackRecordGenerator.TrackRecordGeneratorConf import TrackRecordGenerator
+topSequence += TrackRecordGenerator()
+topSequence.TrackRecordGenerator.TRSmearing = -1 #in millimeters, e.g. 10
+topSequence.TrackRecordGenerator.TRPSmearing = -1 #in radians, e.g. 0.01
+topSequence.TrackRecordGenerator.TRCollection = "NeutronBG"
+topSequence.TrackRecordGenerator.AtRndmGenSvc = simFlags.RandomSvc.get_Value()
 simFlags.RandomSeedList.addSeed( "COSMICS", 2040160768, 80 )
diff --git a/Simulation/SimulationJobOptions/share/cosmics/preInclude.TRsmear10.py b/Simulation/SimulationJobOptions/share/cosmics/preInclude.TRsmear10.py
index ef8a332b2b125140a780ccb45fb5e955cf854dda..2f63d48163be7d59ac9efded9db61626b7a2fc9c 100644
--- a/Simulation/SimulationJobOptions/share/cosmics/preInclude.TRsmear10.py
+++ b/Simulation/SimulationJobOptions/share/cosmics/preInclude.TRsmear10.py
@@ -10,8 +10,8 @@
 #
 #########################################################
 
-from CosmicGenerator.CosmicGeneratorConf import CosmicGenerator
-cg = CosmicGenerator()
+from TrackRecordGenerator.TrackRecordGeneratorConf import TrackRecordGenerator
+cg = TrackRecordGenerator()
 cg.TRSmearing = 10 #in millimeters
 cg.TRPSmearing = 0.001 #in radians
 
diff --git a/Simulation/SimulationJobOptions/share/g4/preInclude.ParticleID.py b/Simulation/SimulationJobOptions/share/g4/preInclude.ParticleID.py
index 75837e9048f5074096f438e54a5662efab60d311..b773abd475f9ef0b3291d114904a2268935752d6 100644
--- a/Simulation/SimulationJobOptions/share/g4/preInclude.ParticleID.py
+++ b/Simulation/SimulationJobOptions/share/g4/preInclude.ParticleID.py
@@ -13,11 +13,13 @@ def particleid_setupcalos():
     plar = AtlasG4Eng.G4Eng.Dict_DetConfig.get('PyLArG4RunControl')
     plar.LArG4GlobalOptions.SetDoCalibHitParticleID(True)
     plar.LArG4GlobalOptions.printMe()
-    #atlasG4log.info("ParticleID Setting new TileG4SimOptions")
-    ptile = AtlasG4Eng.G4Eng.Dict_DetConfig.get('PyTileSimUtils')
-    ptile.TileG4SimOptions.SetDoCalibHitParticleID(True)
-    ptile.TileG4SimOptions.printMe()
+    from G4AtlasApps.SimFlags import simFlags
+    if not hasattr(simFlags, "ParticleID"):
+        #atlasG4log.info("ParticleID Setting new TileG4SimOptions")
+        ptile = AtlasG4Eng.G4Eng.Dict_DetConfig.get('PyTileSimUtils')
+        ptile.TileG4SimOptions.SetDoCalibHitParticleID(True)
+        ptile.TileG4SimOptions.printMe()
 
 from G4AtlasApps.SimFlags import simFlags
 simFlags.InitFunctions.add_function("preInitDetFacility", particleid_setupcalos)
-
+if hasattr(simFlags, "ParticleID"): simFlags.ParticleID=True
diff --git a/Simulation/SimulationJobOptions/share/specialConfig/preInclude.AMSB.py b/Simulation/SimulationJobOptions/share/specialConfig/preInclude.AMSB.py
index c51574f32026092c63628b925a6a116a863912a8..5e9a0769c8f9075bc4542771509e9e8375f1b0d8 100644
--- a/Simulation/SimulationJobOptions/share/specialConfig/preInclude.AMSB.py
+++ b/Simulation/SimulationJobOptions/share/specialConfig/preInclude.AMSB.py
@@ -1,10 +1,5 @@
-#################################################################
-#	preInclude.AMSB.py - Chiara Debenedetti, 3 Jun 2011	#
-#################################################################
-
-
 def get_and_fix_PDGTABLE(replace):
-    import os, shutil
+    import os, shutil, re
 
     # Download generic PDGTABLE (overwrite existing one if it exists)
     os.system('get_files -remove -data PDGTABLE.MeV')
@@ -13,28 +8,27 @@ def get_and_fix_PDGTABLE(replace):
     # an example line to illustrate the fixed format, see PDGTABLE.MeV for more details
     # M 1000022                          0.E+00         +0.0E+00 -0.0E+00 ~chi(0,1)     0
 
+    lines = open('PDGTABLE.MeV.org').readlines()
+    for pdgid,mass,name,charge in replace:
+        if not re.search(r'[MW]\s+'+str(pdgid)+'\s+\S+', ''.join(lines)):
+            lines.append('M' + str(pdgid).rjust(8) +''.ljust(26) +
+                         ('%11.5E' % mass).ljust(15) +
+                         '+0.0E+00'.ljust(9) + '-0.0E+00'.ljust(9) +
+                         name.strip() + ''.ljust(6) + charge.strip() + '\n')
+            lines.append('W' + str(pdgid).rjust(8) +''.ljust(26) +
+                         '0.E+00'.ljust(15) + '+0.0E+00'.ljust(9) + '-0.0E+00'.ljust(9) +
+                         name.strip() + ''.ljust(6) + charge.strip() + '\n')
+        else:
+            for i in xrange(len(lines)):
+                if re.search(r'M\s+'+str(pdgid)+'\s+\S+', lines[i]):
+                    l = lines[i]
+                    lines[i] = l[0:35] + ('%11.5E' % mass).ljust(14) + l[49:]
+
     update = open('PDGTABLE.MeV', 'w')
-    for l in open('PDGTABLE.MeV.org'):
-
-        for r in replace:
-            if l.find(r[1]) > -1:
-                ll = l.split()
-            
-                if ll[0] == r[0] and ll[1] == r[1]:
-                    l = l[0:35] + ('%11.5E' % r[2]).strip().ljust(14) + l[49:]
-                    continue
-        
-        update.write(l)
+    update.write(''.join(lines))
     update.close()
 
 
-def load_files_for_AMSB_scenario(simdict):
-    C1Mass = eval(simdict["AMSBC1Mass"])
-    N1Mass = eval(simdict["AMSBN1Mass"])
-    # patching PDGTABLE
-    get_and_fix_PDGTABLE([('M', '1000022', N1Mass), ('M', '1000024', C1Mass)])
-
-
 doG4SimConfig = True
 from AthenaCommon.AthenaCommonFlags import athenaCommonFlags
 import PyUtils.AthFile as af
@@ -52,14 +46,17 @@ except:
     from G4AtlasApps import AtlasG4Eng
     simdict = AtlasG4Eng.G4Eng.Dict_SpecialConfiguration
 
-load_files_for_AMSB_scenario(simdict)
+C1Mass = eval(simdict["AMSBC1Mass"])
+N1Mass = eval(simdict["AMSBN1Mass"])
+# patching PDGTABLE
+get_and_fix_PDGTABLE([(1000022, N1Mass, '~chi(0,1)', '0'), (1000024, C1Mass, '~chi(+,1)', '+')])
 
 if doG4SimConfig:
     from G4AtlasApps.SimFlags import simFlags
     def amsb_processlist():
         from G4AtlasApps import AtlasG4Eng
         AtlasG4Eng.G4Eng.gbl.G4Commands().process.list()
-	
+
     simFlags.InitFunctions.add_function("postInit", amsb_processlist)
 
     def amsb_setparams():
diff --git a/Simulation/SimulationJobOptions/share/susy/preInclude.ReadStoppedParticles.py b/Simulation/SimulationJobOptions/share/susy/preInclude.ReadStoppedParticles.py
index b86a0624b2253ae9a50dcab8800b511e3af567f8..656de60436355ba340526baffa9fef623ea20a98 100644
--- a/Simulation/SimulationJobOptions/share/susy/preInclude.ReadStoppedParticles.py
+++ b/Simulation/SimulationJobOptions/share/susy/preInclude.ReadStoppedParticles.py
@@ -28,16 +28,15 @@ def readStoppedParticles():
         simFlags.RandomSeedList.addSeed( "COSMICS", 2040160768, 443921183 )
     from AthenaCommon.AlgSequence import AlgSequence
     topSequence = AlgSequence()
-    if not hasattr(topSequence, 'CosmicGenerator'):
-        from CosmicGenerator.CosmicGeneratorConf import CosmicGenerator
-        topSequence += CosmicGenerator()
+    if not hasattr(topSequence, 'TrackRecordGenerator'):
+        from TrackRecordGenerator.TrackRecordGeneratorConf import TrackRecordGenerator
+        topSequence += TrackRecordGenerator()
         
-    topSequence.CosmicGenerator.TRSmearing = -1 #in millimeters, e.g. 10
-    topSequence.CosmicGenerator.TRPSmearing = -1 #in radians, e.g. 0.01
-    topSequence.CosmicGenerator.TRCollection = "StoppingPositions"
-    topSequence.CosmicGenerator.ReadTR = True
-    topSequence.CosmicGenerator.StopParticles = True
-    topSequence.CosmicGenerator.AtRndmGenSvc = simFlags.RandomSvc.get_Value()
+    topSequence.TrackRecordGenerator.TRSmearing = -1 #in millimeters, e.g. 10
+    topSequence.TrackRecordGenerator.TRPSmearing = -1 #in radians, e.g. 0.01
+    topSequence.TrackRecordGenerator.TRCollection = "StoppingPositions"
+    topSequence.TrackRecordGenerator.StopParticles = True
+    topSequence.TrackRecordGenerator.AtRndmGenSvc = simFlags.RandomSvc.get_Value()
     
 simFlags.InitFunctions.add_function("preInit", readStoppedParticles)