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'] }