diff --git a/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_v1Dev_build.ref b/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_v1Dev_build.ref
index c3bfd6e3d3659a4220fecc6491e4245132d49bf5..8de7cffb2af9c7a09bcdd1ae52f082d1e971a2ed 100644
--- a/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_v1Dev_build.ref
+++ b/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_v1Dev_build.ref
@@ -2794,6 +2794,30 @@ HLT_xe110_mht_L1XE50:
     0: 7
   stepFeatures:
     0: 7
+HLT_xe110_pfsum_L1XE50:
+  eventCount: 4
+  stepCounts:
+    0: 10
+    1: 4
+  stepFeatures:
+    0: 10
+    1: 4
+HLT_xe110_pfsum_cssk_L1XE50:
+  eventCount: 3
+  stepCounts:
+    0: 10
+    1: 3
+  stepFeatures:
+    0: 10
+    1: 3
+HLT_xe110_pfsum_vssk_L1XE50:
+  eventCount: 4
+  stepCounts:
+    0: 10
+    1: 4
+  stepFeatures:
+    0: 10
+    1: 4
 HLT_xe110_tc_em_L1XE50:
   eventCount: 5
   stepCounts:
@@ -2864,6 +2888,22 @@ HLT_xe30_pfsum_L1XE10:
   stepFeatures:
     0: 19
     1: 17
+HLT_xe30_pfsum_cssk_L1XE10:
+  eventCount: 16
+  stepCounts:
+    0: 19
+    1: 16
+  stepFeatures:
+    0: 19
+    1: 16
+HLT_xe30_pfsum_vssk_L1XE10:
+  eventCount: 18
+  stepCounts:
+    0: 19
+    1: 18
+  stepFeatures:
+    0: 19
+    1: 18
 HLT_xe30_tcpufit_L1XE10:
   eventCount: 14
   stepCounts:
diff --git a/Trigger/TrigValidation/TriggerTest/share/ref_data_v1Dev_build.ref b/Trigger/TrigValidation/TriggerTest/share/ref_data_v1Dev_build.ref
index c72d4f9b14395735196944683e264d3bb0d2f723..0862283d5d85ad750c5bfe9c359b42f5c1af310e 100644
--- a/Trigger/TrigValidation/TriggerTest/share/ref_data_v1Dev_build.ref
+++ b/Trigger/TrigValidation/TriggerTest/share/ref_data_v1Dev_build.ref
@@ -1696,6 +1696,24 @@ HLT_xe110_mht_L1XE50:
     0: 1
   stepFeatures:
     0: 1
+HLT_xe110_pfsum_L1XE50:
+  eventCount: 0
+  stepCounts:
+    0: 20
+  stepFeatures:
+    0: 20
+HLT_xe110_pfsum_cssk_L1XE50:
+  eventCount: 0
+  stepCounts:
+    0: 20
+  stepFeatures:
+    0: 20
+HLT_xe110_pfsum_vssk_L1XE50:
+  eventCount: 0
+  stepCounts:
+    0: 20
+  stepFeatures:
+    0: 20
 HLT_xe110_tc_em_L1XE50:
   eventCount: 0
 HLT_xe110_tcpufit_L1XE50:
@@ -1758,6 +1776,22 @@ HLT_xe30_pfsum_L1XE10:
   stepFeatures:
     0: 20
     1: 6
+HLT_xe30_pfsum_cssk_L1XE10:
+  eventCount: 3
+  stepCounts:
+    0: 20
+    1: 3
+  stepFeatures:
+    0: 20
+    1: 3
+HLT_xe30_pfsum_vssk_L1XE10:
+  eventCount: 2
+  stepCounts:
+    0: 20
+    1: 2
+  stepFeatures:
+    0: 20
+    1: 2
 HLT_xe30_tcpufit_L1XE10:
   eventCount: 6
   stepCounts:
diff --git a/Trigger/TriggerCommon/TrigEDMConfig/python/TriggerEDMRun3.py b/Trigger/TriggerCommon/TrigEDMConfig/python/TriggerEDMRun3.py
index dde06a06855377dd821a90516c3cf0544fb50ad7..cc932f86b609c1690dbabcb22395c6c51a137763 100644
--- a/Trigger/TriggerCommon/TrigEDMConfig/python/TriggerEDMRun3.py
+++ b/Trigger/TriggerCommon/TrigEDMConfig/python/TriggerEDMRun3.py
@@ -391,6 +391,12 @@ TriggerHLTListRun3 = [
     ('xAOD::TrigMissingETContainer#HLT_MET_pfsum',                         'BS ESD AODFULL AODSLIM AODVERYSLIM', 'MET'),
     ('xAOD::TrigMissingETAuxContainer#HLT_MET_pfsumAux.',                  'BS ESD AODFULL AODSLIM AODVERYSLIM', 'MET'),
 
+    ('xAOD::TrigMissingETContainer#HLT_MET_pfsum_cssk',                    'BS ESD AODFULL AODSLIM AODVERYSLIM', 'MET'),
+    ('xAOD::TrigMissingETAuxContainer#HLT_MET_pfsum_csskAux.',             'BS ESD AODFULL AODSLIM AODVERYSLIM', 'MET'),
+
+    ('xAOD::TrigMissingETContainer#HLT_MET_pfsum_vssk',                    'BS ESD AODFULL AODSLIM AODVERYSLIM', 'MET'),
+    ('xAOD::TrigMissingETAuxContainer#HLT_MET_pfsum_vsskAux.',             'BS ESD AODFULL AODSLIM AODVERYSLIM', 'MET'),
+
     ('xAOD::TrigMissingETContainer#HLT_MET_pfopufit',                      'BS ESD AODFULL AODSLIM AODVERYSLIM', 'MET'),
     ('xAOD::TrigMissingETAuxContainer#HLT_MET_pfopufitAux.',               'BS ESD AODFULL AODSLIM AODVERYSLIM', 'MET'),
 
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Jet/JetRecoConfiguration.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Jet/JetRecoConfiguration.py
index 1e775defaf45ee61198203388a350d46ab539aa7..6c5b54bb1b81e081d4201670da7bb5f3389d4799 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Jet/JetRecoConfiguration.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Jet/JetRecoConfiguration.py
@@ -98,6 +98,8 @@ def defineJetConstit(jetRecoDict,clustersKey=None,pfoPrefix=None):
         constitModWithAlternateTrk("CorrectPFO", trkopt) 
         constitMods = ["CorrectPFO"+trkopt]
         # apply constituent pileup suppression
+        if "vs" in jetRecoDict["dataType"]:
+            constitMods.append("Vor")
         if "cs" in jetRecoDict["dataType"]:
             constitMods.append("CS")
         if "sk" in jetRecoDict["dataType"]:
@@ -119,6 +121,8 @@ def defineJetConstit(jetRecoDict,clustersKey=None,pfoPrefix=None):
             
     if "tc" in jetRecoDict["dataType"]:
         # apply constituent pileup suppression
+        if "vs" in jetRecoDict["dataType"]:
+            constitMods.append("Vor")
         if "cs" in jetRecoDict["dataType"]:
             constitMods.append("CS")
         if "sk" in jetRecoDict["dataType"]:
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/MET/ConfigHelpers.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/MET/ConfigHelpers.py
index a502306913d06ff9938c33db0c37be815fc2c0df..0e6b550921a79dbd812d2af9b234c9f342a1ef2d 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/MET/ConfigHelpers.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/MET/ConfigHelpers.py
@@ -17,7 +17,7 @@ log = logging.getLogger(__name__)
 
 # The keys from the MET chain dict that directly affect reconstruction
 # The order here is important as it also controls the dict -> string conversion
-recoKeys = ["EFrecoAlg", "calib", "jetDataType", "jetCalib", "addInfo"]
+recoKeys = ["EFrecoAlg", "calib", "jetDataType", "constitmod", "jetCalib", "addInfo"]
 metFSRoIs = [caloFSRoI, trkFSRoI]
 
 def metRecoDictToString(recoDict, skipDefaults=True):
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/MET/METRecoSequences.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/MET/METRecoSequences.py
index 3ba1a92a7675d735ca55614c345d3def0fe8c3b1..38837b6787b5f54d401a7f0b87f1f91e326c25f2 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/MET/METRecoSequences.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/MET/METRecoSequences.py
@@ -45,6 +45,9 @@ def jetRecoDictForMET(**recoDict):
         if jrd["dataType"] == "pf":
             # We only use em calibration for PFOs
             jrd["calib"] = "em"
+    # For various reasons, we can store the constituent modifiers separately
+    # to the data type, so we have to add that back in
+    jrd["dataType"] = recoDict.get("constitmod", "") + jrd["dataType"]
     if jrd["jetCalib"] == "default":
         jrd["jetCalib"] = interpretJetCalibDefault(jrd)
     return jrd
@@ -91,6 +94,20 @@ class ClusterInputConfig(AlgInputConfig):
             )
         else:
             raise ValueError(f"Invalid value for cluster calibration: {calib}")
+        sequences = [tcSeq]
+        if recoDict.get("constitmod"):
+            # Force the datatype to topoclusters
+            recoDict = copy.copy(recoDict)
+            recoDict["jetDataType"] = "tc"
+            jetRecoDict = jetRecoDictForMET(**recoDict)
+            constit = aliasToInputDef(
+                defineJetConstit(jetRecoDict, clustersKey=clusterName)
+            )
+            constit_mod_seq = getConstitModAlg(constit)
+            sequences.append(constit_mod_seq)
+            # Update the name to the modified container name
+            clusterName = constit.containername
+
         return [tcSeq], {"Clusters": clusterName}
 
 
@@ -165,13 +182,18 @@ class PFOInputConfig(AlgInputConfig):
             tracktype="ftf",
         )
         # The jet constituent modifier sequence here is to apply the correct weights
-        # and decorate the PV matching decoration
+        # and decorate the PV matching decoration. If we've specified constituent
+        # modifiers those are also applied.
+        recoDict = copy.copy(recoDict)
+        # Force the jet data type to the correct thing
+        recoDict["jetDataType"] = "pf"
         jetRecoDict = jetRecoDictForMET(trkopt="ftf", **recoDict)
-        jetRecoDict["calib"] = "em"
-        jetRecoDict["dataType"] = "pf"
-        constit_mod_seq = getConstitModAlg(
-            aliasToInputDef(defineJetConstit(jetRecoDict, pfoPrefix=pfoPrefix))
-        )
+        constit = aliasToInputDef(defineJetConstit(jetRecoDict, pfoPrefix=pfoPrefix))
+        constit_mod_seq = getConstitModAlg(constit)
+        # Update the PFO prefix
+        pfoPrefix = constit.containername
+        if pfoPrefix.endswith("ParticleFlowObjects"):
+            pfoPrefix = pfoPrefix[:-19]
         allSeqs = [pfSeq]
         if constit_mod_seq:
             allSeqs.append(constit_mod_seq)
@@ -179,8 +201,8 @@ class PFOInputConfig(AlgInputConfig):
             allSeqs,
             {
                 "PFOPrefix": pfoPrefix,
-                "cPFOs": pfoPrefix + "CHSChargedParticleFlowObjects",
-                "nPFOs": pfoPrefix + "CHSNeutralParticleFlowObjects",
+                "cPFOs": pfoPrefix + "ChargedParticleFlowObjects",
+                "nPFOs": pfoPrefix + "NeutralParticleFlowObjects",
             },
         )
 
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py
index f05f5f11a2bbef15569b0605a446619ce9770463..26c885022a259c6de5c2c6b2de1f274929c40697 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py
@@ -210,6 +210,8 @@ def setupMenu():
         ChainProp(name='HLT_xe30_tcpufit_L1XE10', groups=SingleMETGroup),
         ChainProp(name='HLT_xe30_trkmht_L1XE10', groups=SingleMETGroup),
         ChainProp(name='HLT_xe30_pfsum_L1XE10', groups=SingleMETGroup),
+        ChainProp(name='HLT_xe30_pfsum_cssk_L1XE10', groups=SingleMETGroup),
+        ChainProp(name='HLT_xe30_pfsum_vssk_L1XE10', groups=SingleMETGroup),
         ChainProp(name='HLT_xe30_pfopufit_L1XE10', groups=SingleMETGroup),
         ChainProp(name='HLT_xe30_cvfpufit_L1XE10', groups=SingleMETGroup),
         ChainProp(name='HLT_xe30_mhtpufit_em_subjesgscIS_L1XE10', groups=SingleMETGroup),
@@ -221,6 +223,9 @@ def setupMenu():
         ChainProp(name='HLT_xe110_tc_em_L1XE50', groups=SingleMETGroup),
         ChainProp(name='HLT_xe110_mht_L1XE50', groups=SingleMETGroup),
         ChainProp(name='HLT_xe110_tcpufit_L1XE50', groups=SingleMETGroup),
+        ChainProp(name='HLT_xe110_pfsum_L1XE50', groups=SingleMETGroup),
+        ChainProp(name='HLT_xe110_pfsum_cssk_L1XE50', groups=SingleMETGroup),
+        ChainProp(name='HLT_xe110_pfsum_vssk_L1XE50', groups=SingleMETGroup),
         # MultiMET Chain
         ChainProp(name='HLT_xe30_cell_xe30_tcpufit_L1XE10', l1SeedThresholds=['XE10']*2, groups=MultiMETGroup), #must be FS seeded
         # ATR-21934
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/SignatureDicts.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/SignatureDicts.py
index 62a9bebfc90157c938cf5bc590037f173afd32fd..22cb4f5be5a7d7df402402e4b0305a0aa93b5782 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/SignatureDicts.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/SignatureDicts.py
@@ -317,8 +317,9 @@ METChainParts = {
     'L2muonCorr'     : [],
     'EFmuonCorr'     : [],
     'addInfo'        : ['FStracks'],
-    'sigFolder'     : 'MET',
-    'subSigs'       : ['MET']
+    'sigFolder'      : 'MET',
+    'subSigs'        : ['MET'],
+    'constitmod'     : ['cssk', 'vssk']
 }
 # ---- MetDictionary of default Values ----
 METChainParts_Default = {
@@ -336,6 +337,7 @@ METChainParts_Default = {
     'EFmuonCorr'     : '',
     'addInfo'        : '',
     'jetDataType'    : 'tc',
+    'constitmod'     : '',
     'sigFolder'     : 'MET',
     'subSigs'       : ['MET']
 }