diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkEGamma/python/EGammaCommon.py b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkEGamma/python/EGammaCommon.py
index 23e1fa45fa640db11537251c8ee036a2a389fe79..10c4ee48e1e9f6046c8cab92dabe65b580b87024 100644
--- a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkEGamma/python/EGammaCommon.py
+++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkEGamma/python/EGammaCommon.py
@@ -43,7 +43,7 @@ def makeEGammaDFCommon():
     isFullSim = False
     if isMC:
         simulationFlavour = af.fileinfos['metadata']['/Simulation/Parameters']['SimulationFlavour']
-        isFullSim = simulationFlavour in ('default', 'MC12G4', 'FullG4')
+        isFullSim = simulationFlavour in ('default', 'AtlasG4', 'MC12G4', 'FullG4', 'FullG4_QS')
 
     print("EGammaCommon: isMC = ", isMC)
     if isMC:
diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkEGamma/python/EGammaCommonConfig.py b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkEGamma/python/EGammaCommonConfig.py
index 9524df0d0a862a47f82913c5f4fe2ffa9e16db16..03be44477e054b4172a8a0068dd33cf530b40428 100644
--- a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkEGamma/python/EGammaCommonConfig.py
+++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkEGamma/python/EGammaCommonConfig.py
@@ -43,14 +43,11 @@ def EGammaCommonCfg(ConfigFlags):
     # Below are some examples:
     #af.fileinfos
 
-    isMC = ConfigFlags.Input.isMC 
+    isMC = ConfigFlags.Input.isMC
     isFullSim = False
-    # TODO: something that replicates this needs to be added to the ConfigFlags
-    #if isMC:
-    #    simulationFlavour = af.fileinfos['metadata']['/Simulation/Parameters']['SimulationFlavour']
-    #    isFullSim = simulationFlavour in ('default', 'MC12G4', 'FullG4')
-    
-    isFullSim = True
+    if isMC:
+        isFullSim = ConfigFlags.Sim.ISF.Simulator.isFullSim()
+
     print("EGammaCommon: isMC = ", isMC)
     if isMC:
         print("EGammaCommon: isFullSim = ", isFullSim)
diff --git a/Simulation/G4Atlas/G4AtlasApps/python/G4Atlas_MetadataNew.py b/Simulation/G4Atlas/G4AtlasApps/python/G4Atlas_MetadataNew.py
index adb46c125b69767602d7b597fb85ca3e68b579c6..1389b52eb3a0d6f235176f973c458e7d5defea28 100644
--- a/Simulation/G4Atlas/G4AtlasApps/python/G4Atlas_MetadataNew.py
+++ b/Simulation/G4Atlas/G4AtlasApps/python/G4Atlas_MetadataNew.py
@@ -25,6 +25,7 @@ def fillAtlasMetadata(ConfigFlags, dbFiller):
     dbFiller.addSimParam('RunType', 'atlas')
     dbFiller.addSimParam('beamType', ConfigFlags.Beam.Type.value)
     dbFiller.addSimParam('SimLayout', ConfigFlags.GeoModel.AtlasVersion)
+    dbFiller.addSimParam('MagneticField', 'AtlasFieldSvc') # TODO hard-coded for now for consistency with old-style configuration.
 
     #---------
     ## Simulated detector flags: add each enabled detector to the simulatedDetectors list
@@ -49,11 +50,13 @@ def fillAtlasMetadata(ConfigFlags, dbFiller):
     ## Hard-coded simulation hit file magic number (for major changes)
     dbFiller.addSimParam('hitFileMagicNumber', '0') ##FIXME Remove this?
 
-
-def fillISFMetadata(dbFiller):
-    #todo - later
-    from ISF_Config.ISF_jobProperties import ISF_Flags
-    dbFiller.addSimParam('Simulator', ISF_Flags.Simulator())
+    if ConfigFlags.Sim.ISFRun:
+        dbFiller.addSimParam('Simulator', ConfigFlags.Sim.ISF.Simulator.value)
+        dbFiller.addSimParam('SimulationFlavour', ConfigFlags.Sim.ISF.Simulator.value.replace('MT', '')) # used by egamma
+    else:
+        # TODO hard-code for now, but set flag properly later
+        dbFiller.addSimParam('Simulator', 'AtlasG4')
+        dbFiller.addSimParam('SimulationFlavour', 'AtlasG4')
 
 
 def writeSimulationParametersMetadata(ConfigFlags):
@@ -66,9 +69,7 @@ def writeSimulationParametersMetadata(ConfigFlags):
     dbFiller.setEndRun(myEndRunNumber)
 
     fillAtlasMetadata(ConfigFlags, dbFiller)
-    if ConfigFlags.Sim.ISFRun:
-        #fillISFMetadata(dbFiller) #add later
-        pass
+
     #-------------------------------------------------
     # Make the MetaData Db
     #-------------------------------------------------
diff --git a/Simulation/G4Atlas/G4AtlasApps/python/SimConfigFlags.py b/Simulation/G4Atlas/G4AtlasApps/python/SimConfigFlags.py
index 40d7f8d6ba0133e0953438431e89192618d0f224..06ea3ee8fb2883d93a4f8499da9502efc874401b 100644
--- a/Simulation/G4Atlas/G4AtlasApps/python/SimConfigFlags.py
+++ b/Simulation/G4Atlas/G4AtlasApps/python/SimConfigFlags.py
@@ -97,7 +97,40 @@ def createSimConfigFlags():
 
     # ISF
     scf.addFlag("Sim.ISFRun", False)
-    scf.addFlag("Sim.ISF.Simulator", SimulationFlavour.Unknown, enum=SimulationFlavour)
+
+    def _checkSimulationFlavour(prevFlags):
+        simulator = SimulationFlavour.Unknown
+        if prevFlags.Input.Files:
+            from AthenaConfiguration.AutoConfigFlags import GetFileMD
+            simFlavour = GetFileMD(prevFlags.Input.Files).get("Simulator", "")
+            if not simFlavour:
+                simFlavour = GetFileMD(prevFlags.Input.Files).get("SimulationFlavour", "")
+            try:
+                simulator = SimulationFlavour(simFlavour)
+            except ValueError:
+                # Deal with old non-thread-safe simulators
+                if simFlavour in ['default']: # This is the case when ISF was not configured in sim
+                    simulator = SimulationFlavour.AtlasG4
+                elif simFlavour in ['MC12G4', 'FullG4']:
+                    simulator = SimulationFlavour.FullG4MT
+                elif simFlavour in ['FullG4_QS', 'FullG4_Longlived']:
+                    simulator = SimulationFlavour.FullG4MT_QS
+                elif simFlavour in ['PassBackG4']:
+                    simulator = SimulationFlavour.PassBackG4MT
+                elif simFlavour in ['ATLFASTII']:
+                    simulator = SimulationFlavour.ATLFASTIIMT
+                elif simFlavour in ['ATLFASTIIF']:
+                    simulator = SimulationFlavour.ATLFASTIIFMT
+                elif simFlavour in ['ATLFAST3']:
+                    simulator = SimulationFlavour.ATLFAST3MT
+                elif simFlavour in ['ATLFAST3_QS']:
+                    simulator = SimulationFlavour.ATLFAST3MT_QS
+                else:
+                    # Obscure old-style configuration used - do not try to interpret
+                    simulator = SimulationFlavour.Unknown
+        return simulator
+
+    scf.addFlag("Sim.ISF.Simulator", _checkSimulationFlavour, enum=SimulationFlavour)
     scf.addFlag("Sim.ISF.DoTimeMonitoring", True) # bool: run time monitoring
     scf.addFlag("Sim.ISF.DoMemoryMonitoring", True) # bool: run time monitoring
     scf.addFlag("Sim.ISF.ValidationMode", False) # bool: run ISF internal validation checks
diff --git a/Simulation/G4Atlas/G4AtlasApps/python/SimEnums.py b/Simulation/G4Atlas/G4AtlasApps/python/SimEnums.py
index fd4f21a47030c8dd89680387eb7f8c24d5813b63..1e0f57c7bf4e0df0af2b380eaf689d9cde105ac5 100644
--- a/Simulation/G4Atlas/G4AtlasApps/python/SimEnums.py
+++ b/Simulation/G4Atlas/G4AtlasApps/python/SimEnums.py
@@ -44,6 +44,10 @@ class SimulationFlavour(FlagEnum):
     ATLFAST3MT = 'ATLFAST3MT'
     ATLFAST3MT_QS = 'ATLFAST3MT_QS'
     ATLFAST3F_G4MS = 'ATLFAST3F_G4MS'
+    AtlasG4 = 'AtlasG4' # Outside ISF
+
+    def isFullSim(self):
+        return 'FullG4' in self.value or 'PassBackG4' in self.value or 'AtlasG4' in self.value
 
     def usesFastCaloSim(self):
         return 'ATLFAST' in self.value
diff --git a/Simulation/ISF/ISF_Config/python/FlagSetters.py b/Simulation/ISF/ISF_Config/python/FlagSetters.py
index b3ce7ab8fbcb9c696d68492fc74314dca9565c54..6691320c885bc3f00a9a952fe5061f9bedf500be 100644
--- a/Simulation/ISF/ISF_Config/python/FlagSetters.py
+++ b/Simulation/ISF/ISF_Config/python/FlagSetters.py
@@ -155,19 +155,19 @@ def configureFlagsATLFAST3MT():
     configureFlagsATLFAST3()
     ISF_Flags.ParticleBroker = ""
     from G4AtlasApps.SimFlags import simFlags
-    simFlags.SimulationFlavour = "ATLFAST3MT"
+    simFlags.SimulationFlavour = "ATLFAST3"
 
 def configureFlagsATLFAST3MT_QS():
     configureFlagsATLFAST3()
     from G4AtlasApps.SimFlags import simFlags
-    simFlags.SimulationFlavour = "ATLFAST3MT_QS"
+    simFlags.SimulationFlavour = "ATLFAST3_QS"
     return
 
 def configureFlagsATLFAST3MTEnergyOrdered():
     configureFlagsATLFAST3()
     ISF_Flags.ParticleBroker = ""
     from G4AtlasApps.SimFlags import simFlags
-    simFlags.SimulationFlavour = "ATLFAST3MT"
+    simFlags.SimulationFlavour = "ATLFAST3"
     return
 
 def configureFlagsG4FastCalo():
diff --git a/Tools/PyUtils/python/MetaReader.py b/Tools/PyUtils/python/MetaReader.py
index d760c41c8483a95fe94984835e082a23a92b5994..6babbca967ccca85160d34b99bf6b146d59e8cf9 100644
--- a/Tools/PyUtils/python/MetaReader.py
+++ b/Tools/PyUtils/python/MetaReader.py
@@ -929,6 +929,8 @@ def make_peeker(meta_dict):
                 'TruthStrategy',
                 'SimBarcodeOffset',
                 'TRTRangeCut',
+                'SimulationFlavour',
+                'Simulator',
             ]
             for item in list(meta_dict[filename]['/Simulation/Parameters']):
                 if item not in keys_to_keep: