diff --git a/PhysicsAnalysis/Algorithms/AnalysisAlgorithmsConfig/python/ConfigAccumulator.py b/PhysicsAnalysis/Algorithms/AnalysisAlgorithmsConfig/python/ConfigAccumulator.py
index 49797cac20cf8478df394b816fa511af4cd56dbc..9d942f7dbea5aaf6a09ffa454708d1e020929c58 100644
--- a/PhysicsAnalysis/Algorithms/AnalysisAlgorithmsConfig/python/ConfigAccumulator.py
+++ b/PhysicsAnalysis/Algorithms/AnalysisAlgorithmsConfig/python/ConfigAccumulator.py
@@ -18,8 +18,8 @@ def mapUserName (name, *, noSysSuffix) :
 class DataType(FlagEnum):
     """holds the various data types as an enum"""
     Data = 'data'
-    FullSim = 'mc'
-    FastSim = 'afii'
+    FullSim = 'fullsim'
+    FastSim = 'fastsim'
 
 class SelectionConfig :
     """all the data for a given selection that has been registered
@@ -119,7 +119,14 @@ class ConfigAccumulator :
             geometry = autoconfigFromFlags.GeoModel.Run
             dsid = autoconfigFromFlags.Input.MCChannelNumber
         else:
-            dataType = DataType(dataType)
+            # legacy mappings of string arguments
+            if isinstance(dataType, str):
+                if dataType == 'mc':
+                    dataType = DataType.FullSim
+                elif dataType == 'afii':
+                    dataType = DataType.FastSim
+                else:
+                    dataType = DataType(dataType)
             # allow possible string argument for `geometry` and convert it to enum
             geometry = LHCPeriod(geometry)
             if geometry not in [LHCPeriod.Run2, LHCPeriod.Run3] :
@@ -153,7 +160,7 @@ class ConfigAccumulator :
 
 
     def dataType (self) :
-        """the data type we run on (data, mc, afii)"""
+        """the data type we run on (data, fullsim, fastsim)"""
         return self._dataType
 
 
diff --git a/PhysicsAnalysis/Algorithms/AnalysisAlgorithmsConfig/python/ConfigText.py b/PhysicsAnalysis/Algorithms/AnalysisAlgorithmsConfig/python/ConfigText.py
index 137a453d99406f1da3e9a7cd2ff053df0902620a..7f241658167b923bbdc23e3b130f8f2fbacf1e9c 100644
--- a/PhysicsAnalysis/Algorithms/AnalysisAlgorithmsConfig/python/ConfigText.py
+++ b/PhysicsAnalysis/Algorithms/AnalysisAlgorithmsConfig/python/ConfigText.py
@@ -11,6 +11,7 @@ import inspect
 from collections import namedtuple
 
 from AnalysisAlgorithmsConfig.ConfigSequence import ConfigSequence
+from AnalysisAlgorithmsConfig.ConfigAccumulator import DataType
 
 # class for config block information
 node = namedtuple("ConfigBlock", ['alg', 'algName', 'options', 'defaults', 'subAlgs'])
@@ -334,7 +335,8 @@ def addDefaultAlgs(config, dataType, isPhyslite, noPhysliteBroken, noSystematics
             return
         campaign, files, prwfiles, lumicalcfiles = None, None, None, None
         useDefaultConfig = False
-        prwfiles, lumicalcfiles = pileupConfigFiles(dataType)
+        # need to allow for conversion of dataType from string to enum for the call to pileupConfigFiles
+        prwfiles, lumicalcfiles = pileupConfigFiles(  {'data': DataType.Data, 'mc': DataType.FullSim, 'afii': DataType.FastSim}.get(dataType, dataType) )
 
         makePileupReweightingConfig(seq)
         seq.setOptionValue ('.campaign', campaign, noneAction='ignore')
diff --git a/PhysicsAnalysis/Algorithms/AnalysisAlgorithmsConfig/python/FullCPAlgorithmsTest.py b/PhysicsAnalysis/Algorithms/AnalysisAlgorithmsConfig/python/FullCPAlgorithmsTest.py
index 00ecd3f8552c7c3f1a211c79d19ddadf4a39e8f9..e4c3bed67ffbde0273bb6c3eb21013f73c4f24f9 100644
--- a/PhysicsAnalysis/Algorithms/AnalysisAlgorithmsConfig/python/FullCPAlgorithmsTest.py
+++ b/PhysicsAnalysis/Algorithms/AnalysisAlgorithmsConfig/python/FullCPAlgorithmsTest.py
@@ -6,7 +6,7 @@ from AnaAlgorithm.AlgSequence import AlgSequence
 from AnaAlgorithm.DualUseConfig import createAlgorithm, addPrivateTool
 from AsgAnalysisAlgorithms.AsgAnalysisAlgorithmsTest import pileupConfigFiles
 from AnalysisAlgorithmsConfig.ConfigSequence import ConfigSequence
-from AnalysisAlgorithmsConfig.ConfigAccumulator import ConfigAccumulator
+from AnalysisAlgorithmsConfig.ConfigAccumulator import ConfigAccumulator, DataType
 
 # Config:
 triggerChainsPerYear = {
@@ -108,7 +108,8 @@ def makeSequenceOld (dataType, algSeq, forCompare, isPhyslite, noPhysliteBroken,
             files = autoconfigFromFlags.Input.Files
             useDefaultConfig = True
         else:
-            prwfiles, lumicalcfiles = pileupConfigFiles(dataType)
+            # need to convert dataType from string to enum for the call to pileupConfigFiles
+            prwfiles, lumicalcfiles = pileupConfigFiles( {'data': DataType.Data, 'mc': DataType.FullSim, 'afii': DataType.FastSim}.get(dataType, None) )
 
         from AsgAnalysisAlgorithms.PileupAnalysisSequence import \
             makePileupAnalysisSequence
@@ -589,7 +590,8 @@ def makeSequenceBlocks (dataType, algSeq, forCompare, isPhyslite, noPhysliteBrok
             files = autoconfigFromFlags.Input.Files
             useDefaultConfig = True
         else:
-            prwfiles, lumicalcfiles = pileupConfigFiles(dataType)
+            # need to allow for conversion of dataType from string to enum for the call to pileupConfigFiles
+            prwfiles, lumicalcfiles = pileupConfigFiles( {'data': DataType.Data, 'mc': DataType.FullSim, 'afii': DataType.FastSim}.get(dataType, dataType) )
 
         configSeq += makeConfig ('Event.PileupReweighting', None)
         configSeq.setOptionValue ('.campaign', campaign, noneAction='ignore')
@@ -724,7 +726,7 @@ def makeSequenceBlocks (dataType, algSeq, forCompare, isPhyslite, noPhysliteBrok
     configSeq += makeConfig('SystObjectLink', 'SystObjectLink.AnaTauJets')
 
 
-    if dataType != 'data' :
+    if dataType is not DataType.Data :
         # Include, and then set up the generator analysis sequence:
         configSeq += makeConfig( 'Event.Generator', None)
         configSeq.setOptionValue ('.saveCutBookkeepers', True)
diff --git a/PhysicsAnalysis/Algorithms/AsgAnalysisAlgorithms/python/AsgAnalysisAlgorithmsTest.py b/PhysicsAnalysis/Algorithms/AsgAnalysisAlgorithms/python/AsgAnalysisAlgorithmsTest.py
index c4b4b5f1c1d417fcc066d99e06e5b88352558b72..d545f6d9c9434b88e57d1df5ca1a79b9e9c61f4d 100644
--- a/PhysicsAnalysis/Algorithms/AsgAnalysisAlgorithms/python/AsgAnalysisAlgorithmsTest.py
+++ b/PhysicsAnalysis/Algorithms/AsgAnalysisAlgorithms/python/AsgAnalysisAlgorithmsTest.py
@@ -5,6 +5,7 @@
 
 from AnaAlgorithm.AlgSequence import AlgSequence
 from AnaAlgorithm.DualUseConfig import createAlgorithm, createService
+from AnalysisAlgorithmsConfig.ConfigAccumulator import DataType
 
 def makeOverlapSequence (dataType) :
     algSeq = AlgSequence()
@@ -229,7 +230,7 @@ def makeGeneratorAlgorithmsSequence (dataType) :
 
 def pileupConfigFiles(dataType):
     """Return the PRW config files and lumicalc files for tests"""
-    if dataType == "data":
+    if dataType is DataType.Data:
         prwfiles = []
         lumicalcfiles = []
     else:
@@ -237,7 +238,7 @@ def pileupConfigFiles(dataType):
             "GoodRunsLists/data15_13TeV/20170619/PHYS_StandardGRL_All_Good_25ns_276262-284484_OflLumi-13TeV-008.root",
             "GoodRunsLists/data16_13TeV/20180129/PHYS_StandardGRL_All_Good_25ns_297730-311481_OflLumi-13TeV-009.root",
         ]
-        if dataType == "mc":
+        if dataType is DataType.FullSim:
             prwfiles = [
                 "PileupReweighting/mc20_common/mc20a.284500.physlite.prw.v1.root"
             ]
diff --git a/PhysicsAnalysis/Algorithms/AsgAnalysisAlgorithms/python/AsgAnalysisConfig.py b/PhysicsAnalysis/Algorithms/AsgAnalysisAlgorithms/python/AsgAnalysisConfig.py
index 0c6309dc32b019845e70dc5f7b56ce77185d21e4..377231282b65c97144a3a5eb5a2cd2b354e88255 100644
--- a/PhysicsAnalysis/Algorithms/AsgAnalysisAlgorithms/python/AsgAnalysisConfig.py
+++ b/PhysicsAnalysis/Algorithms/AsgAnalysisAlgorithms/python/AsgAnalysisConfig.py
@@ -81,7 +81,7 @@ class PileupReweightingBlock (ConfigBlock):
                 else:
                     from PileupReweighting.AutoconfigurePRW import getConfigurationFiles
                     toolConfigFiles = getConfigurationFiles(campaign=campaign, files=self.files, useDefaultConfig=self.useDefaultConfig,
-                                                            data_type=config.dataType().value)
+                                                            data_type=config.dataType())
                     log.info('Setting PRW configuration based on input files')
 
                     if toolConfigFiles:
diff --git a/PhysicsAnalysis/Algorithms/MetAnalysisAlgorithms/python/MetAnalysisConfig.py b/PhysicsAnalysis/Algorithms/MetAnalysisAlgorithms/python/MetAnalysisConfig.py
index 530a23f9d572838c79aeec07ee6930e4a3019f38..b75615672e4c1ca9ef001f52281ddcccbb116e66 100644
--- a/PhysicsAnalysis/Algorithms/MetAnalysisAlgorithms/python/MetAnalysisConfig.py
+++ b/PhysicsAnalysis/Algorithms/MetAnalysisAlgorithms/python/MetAnalysisConfig.py
@@ -104,7 +104,6 @@ def makeMetAnalysisConfig( seq, containerName,
     Selections on each container can also be defined
 
     Keyword arguments:
-      dataType -- The data type to run on ("data", "mc" or "afii")
       useFJVT -- Use FJVT decision for the calculation
       treatPUJets -- Treat pile-up jets in the MET significance calculation
       setMuonJetEMScale -- Use consituent scale and subtract muon eloss for jets overlapping muons
diff --git a/PhysicsAnalysis/Algorithms/TauAnalysisAlgorithms/python/DiTauAnalysisConfig.py b/PhysicsAnalysis/Algorithms/TauAnalysisAlgorithms/python/DiTauAnalysisConfig.py
index 60dc0b245df8edfdaee5861e31ac0ac145fe25a2..b6e1e0cd50105dc325cce99ce138d281ea99276c 100644
--- a/PhysicsAnalysis/Algorithms/TauAnalysisAlgorithms/python/DiTauAnalysisConfig.py
+++ b/PhysicsAnalysis/Algorithms/TauAnalysisAlgorithms/python/DiTauAnalysisConfig.py
@@ -102,7 +102,6 @@ def makeDiTauCalibrationConfig( seq, containerName, postfix = '',
     between the working points.
 
     Keyword arguments:
-      dataType -- The data type to run on ("data", "mc" or "afii")
       postfix -- a postfix to apply to decorations and algorithm
                  names.  this is mostly used/needed when using this
                  sequence with multiple working points to ensure all
@@ -123,7 +122,6 @@ def makeDiTauWorkingPointConfig( seq, containerName, workingPoint, postfix,
     """Create tau analysis algorithms for a single working point
 
     Keyword arguments:
-      dataType -- The data type to run on ("data", "mc" or "afii")
       legacyRecommendations -- use legacy tau BDT and electron veto recommendations
       postfix -- a postfix to apply to decorations and algorithm
                  names.  this is mostly used/needed when using this
diff --git a/PhysicsAnalysis/Algorithms/TriggerAnalysisAlgorithms/python/TriggerAnalysisConfig.py b/PhysicsAnalysis/Algorithms/TriggerAnalysisAlgorithms/python/TriggerAnalysisConfig.py
index 06cc9ddc4e88f65d5cee7db0edf9402ddda84ef6..dd2e55eff1ce45df3c909c562d2df345bb527ffb 100644
--- a/PhysicsAnalysis/Algorithms/TriggerAnalysisAlgorithms/python/TriggerAnalysisConfig.py
+++ b/PhysicsAnalysis/Algorithms/TriggerAnalysisAlgorithms/python/TriggerAnalysisConfig.py
@@ -161,7 +161,6 @@ def makeTriggerAnalysisConfig( seq,
     """Create a basic trigger analysis algorithm sequence
 
     Keyword arguments:
-      dataType -- The data type to run on ("data", "mc" or "afii")
       triggerChainsPerYear -- a dictionary with key (str) the year and value (list of strings) the trigger chains
       triggerChainsForSelection -- a list of trigger chains to be used for trigger selection, only set it if you need a different setup than for SFs!
       prescaleLumiCalcFiles -- a list of lumicalc files to calculate trigger prescales
diff --git a/PhysicsAnalysis/AnalysisCommon/PileupReweighting/python/AutoconfigurePRW.py b/PhysicsAnalysis/AnalysisCommon/PileupReweighting/python/AutoconfigurePRW.py
index 0ef4a51aa9b40e1e2441e188989a5bdf0941135f..3548de65bea938c4ab2ffa41b97f3fe18b3b35bd 100644
--- a/PhysicsAnalysis/AnalysisCommon/PileupReweighting/python/AutoconfigurePRW.py
+++ b/PhysicsAnalysis/AnalysisCommon/PileupReweighting/python/AutoconfigurePRW.py
@@ -1,5 +1,6 @@
 # Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
 from Campaigns.Utils import Campaign, getMCCampaign
+from AnalysisAlgorithmsConfig.ConfigAccumulator import DataType
 
 
 def getLumicalcFiles(campaign):
@@ -115,15 +116,15 @@ def getConfigurationFiles(campaign=None, dsid=None, data_type=None, files=None,
                 simulation_flavour = GetFileMD(files).get('Simulator', '')
                 if not simulation_flavour:
                     simulation_flavour = GetFileMD(files).get('SimulationFlavour', '')
-                data_type = 'mc' if (not simulation_flavour or 'FullG4' in simulation_flavour) else 'afii'
+                data_type = DataType.FullSim if (not simulation_flavour or 'FullG4' in simulation_flavour) else DataType.FastSim
 
-    # data_type as in pileup analysis sequence: either 'data' or ('mc' or 'afii')
-    if data_type == 'data':
+    # data_type as in pileup analysis sequence: either 'data' or ('fullsim' or 'afii')
+    if data_type is DataType.Data:
         raise ValueError('Data is not supported')
 
-    if data_type == 'mc':
+    if data_type is DataType.FullSim:
         simulation_type = 'FS'
-    elif data_type == 'afii':
+    elif data_type is DataType.FastSim:
         simulation_type = 'AFII'
     else:
         raise ValueError(f'Invalid data_type {data_type}')