From 5d525dc4f37fd0d5171548de1c6a7caa94a25e86 Mon Sep 17 00:00:00 2001
From: Daniele Zanzi <daniele.zanzi@cern.ch>
Date: Thu, 11 Mar 2021 10:49:13 +0100
Subject: [PATCH 01/13] primary tau triggers

(cherry picked from commit cd9be91f9d42030359acf4504c89d7ebf1532727)
---
 .../python/HLTMenuConfig/Menu/LS2_v1.py       | 73 ++++++++++---------
 .../HLTMenuConfig/Menu/Physics_pp_run3_v1.py  | 27 ++++---
 .../HLTMenuConfig/Menu/SignatureDicts.py      |  2 +-
 3 files changed, 54 insertions(+), 48 deletions(-)

diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py
index 98fc2336a210..6003f3724543 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py
@@ -19,7 +19,8 @@ from TriggerMenuMT.HLTMenuConfig.Menu.Physics_pp_run3_v1 import (PhysicsStream,
                                                                 MultiMETGroup, SingleJetGroup, MultiJetGroup, SingleBjetGroup, MultiBjetGroup,
                                                                 SingleTauGroup, MultiTauGroup, BphysicsGroup, EgammaMuonGroup, EgammaMETGroup,
                                                                 MuonJetGroup, MuonTauGroup, TauMETGroup, MuonMETGroup, EgammaJetGroup,
-                                                                EgammaTauGroup, MinBiasGroup)
+                                                                EgammaTauGroup, MinBiasGroup,
+                                                                PrimaryLegGroup)
 
 def setupMenu():
 
@@ -553,7 +554,7 @@ def setupMenu():
         ChainProp(name="HLT_tau200_mediumRNN_track_L1TAU100", groups=SingleTauGroup),
         ChainProp(name="HLT_tau200_mediumRNN_tracktwo_L1TAU100", groups=SingleTauGroup),
         ChainProp(name="HLT_tau200_mediumRNN_tracktwoEF_L1TAU100", groups=SingleTauGroup),
-        ChainProp(name="HLT_tau200_mediumRNN_tracktwoMVA_L1TAU100", groups=SingleTauGroup),
+        ChainProp(name="HLT_tau200_mediumRNN_tracktwoMVA_L1TAU100", groups=PrimaryLegGroup+SingleTauGroup),
         ChainProp(name="HLT_tau200_mediumRNN_tracktwoMVABDT_L1TAU100", groups=SingleTauGroup),
         ChainProp(name="HLT_tau200_medium1_track_L1TAU100", groups=SingleTauGroup),
         ChainProp(name="HLT_tau200_medium1_tracktwo_L1TAU100", groups=SingleTauGroup),
@@ -563,12 +564,12 @@ def setupMenu():
 
         # ATR-21797
         # the following 3 chains were in serial mode in Run-2
-        ChainProp(name="HLT_tau80_mediumRNN_tracktwoMVA_tau60_mediumRNN_tracktwoMVA_L1TAU60_2TAU40",         l1SeedThresholds=['TAU60','TAU40'],     groups=MultiTauGroup),
-        ChainProp(name="HLT_tau80_mediumRNN_tracktwoMVA_tau35_mediumRNN_tracktwoMVA_L1TAU60_DR-TAU20ITAU12I",l1SeedThresholds=['TAU60','TAU12IM'],   groups=MultiTauGroup),
-        ChainProp(name="HLT_tau35_mediumRNN_tracktwoMVA_tau25_mediumRNN_tracktwoMVA_L1DR-TAU20ITAU12I-J25",  l1SeedThresholds=['TAU20IM','TAU12IM'], groups=MultiTauGroup),
+        ChainProp(name="HLT_tau80_mediumRNN_tracktwoMVA_tau60_mediumRNN_tracktwoMVA_03dRleg000leg00110_L1TAU60_2TAU40",         l1SeedThresholds=['TAU60','TAU40'],     groups=PrimaryLegGroup+MultiTauGroup),
+        ChainProp(name="HLT_tau80_mediumRNN_tracktwoMVA_tau35_mediumRNN_tracktwoMVA_03dRleg000leg00130_L1TAU60_DR-TAU20ITAU12I",l1SeedThresholds=['TAU60','TAU12IM'],   groups=PrimaryLegGroup+MultiTauGroup),
+        ChainProp(name="HLT_tau35_mediumRNN_tracktwoMVA_tau25_mediumRNN_tracktwoMVA_03dRleg000leg00130_L1DR-TAU20ITAU12I-J25",  l1SeedThresholds=['TAU20IM','TAU12IM'], groups=PrimaryLegGroup+MultiTauGroup),
 
         # ATR-20450
-        ChainProp(name="HLT_tau35_mediumRNN_tracktwoMVA_tau25_mediumRNN_tracktwoMVA_03dRleg000leg00110_L1TAU20IM_2TAU12IM_4J12p0ETA25",  l1SeedThresholds=['TAU20IM','TAU12IM'], groups=MultiTauGroup),
+        ChainProp(name="HLT_tau35_mediumRNN_tracktwoMVA_tau25_mediumRNN_tracktwoMVA_03dRleg000leg00110_L1TAU20IM_2TAU12IM_4J12p0ETA25",  l1SeedThresholds=['TAU20IM','TAU12IM'], groups=PrimaryLegGroup+MultiTauGroup),
     ]
 
     TriggerFlags.BphysicsSlice.signatures = TriggerFlags.BphysicsSlice.signatures() + [
@@ -600,25 +601,25 @@ def setupMenu():
     TriggerFlags.CombinedSlice.signatures = TriggerFlags.CombinedSlice.signatures() + [
         # groups need to be properly assigned here later
         # Primary e-mu chains
-        ChainProp(name='HLT_e17_lhloose_mu14_L1EM15VH_MU10', l1SeedThresholds=['EM15VH','MU10'], stream=[PhysicsStream], groups=['Primary:Legacy']+EgammaMuonGroup),
-        ChainProp(name='HLT_e7_lhmedium_mu24_L1MU20',l1SeedThresholds=['EM3','MU20'],  stream=[PhysicsStream], groups=['Primary:Legacy']+EgammaMuonGroup),
-        ChainProp(name='HLT_e12_lhloose_2mu10_L12MU10', l1SeedThresholds=['EM8VH','MU10'], stream=[PhysicsStream], groups=['Primary:Legacy']+EgammaMuonGroup),
-        ChainProp(name='HLT_2e12_lhloose_mu10_L12EM8VH_MU10', l1SeedThresholds=['EM8VH','MU10'], stream=[PhysicsStream], groups=['Primary:Legacy']+EgammaMuonGroup),
+        ChainProp(name='HLT_e17_lhloose_mu14_L1EM15VH_MU10', l1SeedThresholds=['EM15VH','MU10'], stream=[PhysicsStream], groups=PrimaryLegGroup+EgammaMuonGroup),
+        ChainProp(name='HLT_e7_lhmedium_mu24_L1MU20',l1SeedThresholds=['EM3','MU20'],  stream=[PhysicsStream], groups=PrimaryLegGroup+EgammaMuonGroup),
+        ChainProp(name='HLT_e12_lhloose_2mu10_L12MU10', l1SeedThresholds=['EM8VH','MU10'], stream=[PhysicsStream], groups=PrimaryLegGroup+EgammaMuonGroup),
+        ChainProp(name='HLT_2e12_lhloose_mu10_L12EM8VH_MU10', l1SeedThresholds=['EM8VH','MU10'], stream=[PhysicsStream], groups=PrimaryLegGroup+EgammaMuonGroup),
 
         # Primary g-mu chains
-        ChainProp(name='HLT_g25_medium_mu24_L1MU20',l1SeedThresholds=['EM15VH','MU20'], stream=[PhysicsStream], groups=['Primary:Legacy']+EgammaMuonGroup), #ATR-22594
-        ChainProp(name='HLT_g35_loose_mu18_L1EM22VHI', l1SeedThresholds=['EM22VHI','MU10'], stream=[PhysicsStream], groups=['Primary:Legacy']+EgammaMuonGroup),
-        ChainProp(name='HLT_g35_loose_mu18_L1EM24VHI', l1SeedThresholds=['EM24VHI','MU10'], stream=[PhysicsStream], groups=['Primary:Legacy']+EgammaMuonGroup),
-        ChainProp(name='HLT_2g10_loose_mu20_L1MU20', l1SeedThresholds=['EM7','MU20'], stream=[PhysicsStream], groups=['Primary:Legacy']+EgammaMuonGroup), # unsure what EM seed should be
+        ChainProp(name='HLT_g25_medium_mu24_L1MU20',l1SeedThresholds=['EM15VH','MU20'], stream=[PhysicsStream], groups=PrimaryLegGroup+EgammaMuonGroup), #ATR-22594
+        ChainProp(name='HLT_g35_loose_mu18_L1EM22VHI', l1SeedThresholds=['EM22VHI','MU10'], stream=[PhysicsStream], groups=PrimaryLegGroup+EgammaMuonGroup),
+        ChainProp(name='HLT_g35_loose_mu18_L1EM24VHI', l1SeedThresholds=['EM24VHI','MU10'], stream=[PhysicsStream], groups=PrimaryLegGroup+EgammaMuonGroup),
+        ChainProp(name='HLT_2g10_loose_mu20_L1MU20', l1SeedThresholds=['EM7','MU20'], stream=[PhysicsStream], groups=PrimaryLegGroup+EgammaMuonGroup), # unsure what EM seed should be
         #LLP
-        ChainProp(name='HLT_g15_loose_2mu10_msonly_L12MU10', l1SeedThresholds=['EM8VH','MU10'], stream=[PhysicsStream], groups=['Primary:Legacy']+EgammaMuonGroup),
+        ChainProp(name='HLT_g15_loose_2mu10_msonly_L12MU10', l1SeedThresholds=['EM8VH','MU10'], stream=[PhysicsStream], groups=PrimaryLegGroup+EgammaMuonGroup),
 
         # Primary e-g chains: electron + photon stay in the same step - these need to be parallel merged!
         # test
         ChainProp(name='HLT_e3_etcut1step_g5_etcut_L12EM3',l1SeedThresholds=['EM3','EM3'], stream=[PhysicsStream], groups=MultiElectronGroup),
         # primaries
-        ChainProp(name='HLT_e24_lhmedium_g25_medium_L12EM20VH', l1SeedThresholds=['EM20VH','EM20VH'], stream=[PhysicsStream], groups=['Primary:Legacy']+MultiElectronGroup),
-        ChainProp(name='HLT_e24_lhmedium_2g12_loose_L1EM20VH_3EM10VH', l1SeedThresholds=['EM20VH','EM10VH'], stream=[PhysicsStream], groups=['Primary:Legacy']+MultiElectronGroup), # unsure about l1SeedThresholds
+        ChainProp(name='HLT_e24_lhmedium_g25_medium_L12EM20VH', l1SeedThresholds=['EM20VH','EM20VH'], stream=[PhysicsStream], groups=PrimaryLegGroup+MultiElectronGroup),
+        ChainProp(name='HLT_e24_lhmedium_2g12_loose_L1EM20VH_3EM10VH', l1SeedThresholds=['EM20VH','EM10VH'], stream=[PhysicsStream], groups=PrimaryLegGroup+MultiElectronGroup), # unsure about l1SeedThresholds
 
         # Test chains for muon + jet/MET merging/aligning
         ChainProp(name='HLT_mu6_xe30_mht_L1XE10', l1SeedThresholds=['MU6','XE10'], stream=[PhysicsStream], groups=MuonMETGroup),
@@ -626,31 +627,31 @@ def setupMenu():
 
         #ATR-22107
         ChainProp(name='HLT_e24_lhmedium_mu8noL1_L1EM22VHI', l1SeedThresholds=['EM22VHI','FSNOSEED'], stream=[PhysicsStream], groups=EgammaMuonGroup),
-        ChainProp(name='HLT_e26_lhmedium_mu8noL1_L1EM22VHI', l1SeedThresholds=['EM22VHI','FSNOSEED'], stream=[PhysicsStream], groups=['Primary:Legacy']+EgammaMuonGroup),
-        ChainProp(name='HLT_e28_lhmedium_mu8noL1_L1EM24VHI', l1SeedThresholds=['EM24VHI','FSNOSEED'], stream=[PhysicsStream], groups=['Primary:Legacy']+EgammaMuonGroup),
-        ChainProp(name='HLT_e9_lhvloose_mu20_mu8noL1_L1MU20', l1SeedThresholds=['EM3','MU20','FSNOSEED'], stream=[PhysicsStream], groups=['Primary:Legacy']+EgammaMuonGroup),
-        ChainProp(name='HLT_g35_loose_mu15_mu2noL1_L1EM22VHI', l1SeedThresholds=['EM22VHI','MU6','FSNOSEED'], stream=[PhysicsStream], groups=['Primary:Legacy']+EgammaMuonGroup),
-        ChainProp(name='HLT_g35_loose_mu15_mu2noL1_L1EM24VHI', l1SeedThresholds=['EM24VHI','MU6','FSNOSEED'], stream=[PhysicsStream], groups=['Primary:Legacy']+EgammaMuonGroup),
-        ChainProp(name='HLT_g35_tight_icalotight_mu18noL1_L1EM22VHI', l1SeedThresholds=['EM22VHI','FSNOSEED'], stream=[PhysicsStream], groups=['Primary:Legacy']+EgammaMuonGroup),
-        ChainProp(name='HLT_g35_tight_icalotight_mu18noL1_L1EM24VHI', l1SeedThresholds=['EM24VHI','FSNOSEED'], stream=[PhysicsStream], groups=['Primary:Legacy']+EgammaMuonGroup),
-        ChainProp(name='HLT_g35_tight_icalotight_mu15noL1_mu2noL1_L1EM22VHI', l1SeedThresholds=['EM22VHI','FSNOSEED','FSNOSEED'], stream=[PhysicsStream], groups=['Primary:Legacy']+EgammaMuonGroup),
-        ChainProp(name='HLT_g35_tight_icalotight_mu15noL1_mu2noL1_L1EM24VHI', l1SeedThresholds=['EM24VHI','FSNOSEED','FSNOSEED'], stream=[PhysicsStream], groups=['Primary:Legacy']+EgammaMuonGroup),
+        ChainProp(name='HLT_e26_lhmedium_mu8noL1_L1EM22VHI', l1SeedThresholds=['EM22VHI','FSNOSEED'], stream=[PhysicsStream], groups=PrimaryLegGroup+EgammaMuonGroup),
+        ChainProp(name='HLT_e28_lhmedium_mu8noL1_L1EM24VHI', l1SeedThresholds=['EM24VHI','FSNOSEED'], stream=[PhysicsStream], groups=PrimaryLegGroup+EgammaMuonGroup),
+        ChainProp(name='HLT_e9_lhvloose_mu20_mu8noL1_L1MU20', l1SeedThresholds=['EM3','MU20','FSNOSEED'], stream=[PhysicsStream], groups=PrimaryLegGroup+EgammaMuonGroup),
+        ChainProp(name='HLT_g35_loose_mu15_mu2noL1_L1EM22VHI', l1SeedThresholds=['EM22VHI','MU6','FSNOSEED'], stream=[PhysicsStream], groups=PrimaryLegGroup+EgammaMuonGroup),
+        ChainProp(name='HLT_g35_loose_mu15_mu2noL1_L1EM24VHI', l1SeedThresholds=['EM24VHI','MU6','FSNOSEED'], stream=[PhysicsStream], groups=PrimaryLegGroup+EgammaMuonGroup),
+        ChainProp(name='HLT_g35_tight_icalotight_mu18noL1_L1EM22VHI', l1SeedThresholds=['EM22VHI','FSNOSEED'], stream=[PhysicsStream], groups=PrimaryLegGroup+EgammaMuonGroup),
+        ChainProp(name='HLT_g35_tight_icalotight_mu18noL1_L1EM24VHI', l1SeedThresholds=['EM24VHI','FSNOSEED'], stream=[PhysicsStream], groups=PrimaryLegGroup+EgammaMuonGroup),
+        ChainProp(name='HLT_g35_tight_icalotight_mu15noL1_mu2noL1_L1EM22VHI', l1SeedThresholds=['EM22VHI','FSNOSEED','FSNOSEED'], stream=[PhysicsStream], groups=PrimaryLegGroup+EgammaMuonGroup),
+        ChainProp(name='HLT_g35_tight_icalotight_mu15noL1_mu2noL1_L1EM24VHI', l1SeedThresholds=['EM24VHI','FSNOSEED','FSNOSEED'], stream=[PhysicsStream], groups=PrimaryLegGroup+EgammaMuonGroup),
 
         # tau+X chains (ATR-21609) TODO: need T&P-like merging
-        ChainProp(name='HLT_e24_lhmedium_ivarloose_tau20_mediumRNN_tracktwoMVA_03dRleg000leg00110_L1EM22VHI', l1SeedThresholds=['EM22VHI','TAU8'], stream=[PhysicsStream], groups=EgammaTauGroup),
-        # This is the next one to implement
+        ChainProp(name='HLT_e24_lhmedium_ivarloose_tau20_mediumRNN_tracktwoMVA_03dRleg000leg00110_L1EM22VHI', l1SeedThresholds=['EM22VHI','TAU8'], stream=[PhysicsStream], groups=PrimaryLegGroup+EgammaTauGroup),
+        # need to add dRtt to chain below. How do we avoid overlap between taus and jets?
         #ChainProp(name="HLT_tau25_mediumRNN_tracktwoMVA_tau20_mediumRNN_tracktwoMVA_j70_j50_L1MJJ-500-NFF", l1SeedThresholds=['TAU8','TAU8','J20','J20'],   stream=[PhysicsStream], groups=['MultiTauGroup','MultiJetGroup']),
 
 
         #ATR-22108: combined tau+X chains: TODO: add dRtt, need T&P-like merging
-        ChainProp(name='HLT_tau60_mediumRNN_tracktwoMVA_tau25_mediumRNN_tracktwoMVA_xe50_cell_L1TAU40_2TAU12IM_XE40', l1SeedThresholds=['TAU40','TAU12IM','XE40'], stream=[PhysicsStream], groups=TauMETGroup),  # ATR-22966
-        ChainProp(name='HLT_e17_lhmedium_tau25_mediumRNN_tracktwoMVA_xe50_cell_L1EM15VHI_2TAU12IM_XE35', l1SeedThresholds=['EM15VHI','TAU12IM','XE35'], stream=[PhysicsStream], groups=TauMETGroup),
-        ChainProp(name='HLT_mu14_tau25_mediumRNN_tracktwoMVA_xe50_cell_L1MU10_TAU12IM_XE35', l1SeedThresholds=['MU10','TAU12IM','XE35'], stream=[PhysicsStream], groups=TauMETGroup),
-        ChainProp(name='HLT_e17_lhmedium_ivarloose_tau25_mediumRNN_tracktwoMVA_03dRleg000leg00110_L1EM15VHI_2TAU12IM_4J12', l1SeedThresholds=['EM15VHI','TAU12IM'], stream=[PhysicsStream], groups=EgammaTauGroup),
-
-        ChainProp(name='HLT_mu20_ivarloose_tau20_mediumRNN_tracktwoMVA_03dRleg000leg00110_L1MU20', l1SeedThresholds=['MU20','TAU8'], stream=[PhysicsStream], groups=MuonTauGroup),
-        ChainProp(name='HLT_mu14_ivarloose_tau35_mediumRNN_tracktwoMVA_03dRleg000leg00110_L1MU10_TAU20IM', l1SeedThresholds=['MU10','TAU20IM'], stream=[PhysicsStream], groups=MuonTauGroup),
-        ChainProp(name='HLT_mu14_ivarloose_tau25_mediumRNN_tracktwoMVA_03dRleg000leg00110_L1MU10_TAU12IM_3J12', l1SeedThresholds=['MU10','TAU12IM'], stream=[PhysicsStream], groups=MuonTauGroup),
+        ChainProp(name='HLT_tau60_mediumRNN_tracktwoMVA_tau25_mediumRNN_tracktwoMVA_xe50_cell_03dRleg000leg00110_L1TAU40_2TAU12IM_XE40', l1SeedThresholds=['TAU40','TAU12IM','XE40'], stream=[PhysicsStream], groups=PrimaryLegGroup+TauMETGroup),  # ATR-22966
+        ChainProp(name='HLT_e17_lhmedium_tau25_mediumRNN_tracktwoMVA_xe50_cell_03dRleg000leg00110_L1EM15VHI_2TAU12IM_XE35', l1SeedThresholds=['EM15VHI','TAU12IM','XE35'], stream=[PhysicsStream], groups=PrimaryLegGroup+TauMETGroup),
+        ChainProp(name='HLT_mu14_tau25_mediumRNN_tracktwoMVA_xe50_cell_03dRleg000leg00110_L1MU10_TAU12IM_XE35', l1SeedThresholds=['MU10','TAU12IM','XE35'], stream=[PhysicsStream], groups=PrimaryLegGroup+TauMETGroup),
+        ChainProp(name='HLT_e17_lhmedium_ivarloose_tau25_mediumRNN_tracktwoMVA_03dRleg000leg00110_L1EM15VHI_2TAU12IM_4J12', l1SeedThresholds=['EM15VHI','TAU12IM'], stream=[PhysicsStream], groups=PrimaryLegGroup+EgammaTauGroup),
+
+        ChainProp(name='HLT_mu20_ivarloose_tau20_mediumRNN_tracktwoMVA_03dRleg000leg00110_L1MU20', l1SeedThresholds=['MU20','TAU8'], stream=[PhysicsStream], groups=PrimaryLegGroup+MuonTauGroup),
+        ChainProp(name='HLT_mu14_ivarloose_tau35_mediumRNN_tracktwoMVA_03dRleg000leg00110_L1MU10_TAU20IM', l1SeedThresholds=['MU10','TAU20IM'], stream=[PhysicsStream], groups=PrimaryLegGroup+MuonTauGroup),
+        ChainProp(name='HLT_mu14_ivarloose_tau25_mediumRNN_tracktwoMVA_03dRleg000leg00110_L1MU10_TAU12IM_3J12', l1SeedThresholds=['MU10','TAU12IM'], stream=[PhysicsStream], groups=PrimaryLegGroup+MuonTauGroup),
 
         # photon + multijets (ATR-22594)
         ChainProp(name='HLT_g85_tight_3j50_L1EM22VHI',l1SeedThresholds=['EM22VHI','FSNOSEED'],stream=[PhysicsStream], groups=EgammaJetGroup),
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/Physics_pp_run3_v1.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/Physics_pp_run3_v1.py
index 5e63af8a4cae..4d3601a39394 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/Physics_pp_run3_v1.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/Physics_pp_run3_v1.py
@@ -42,6 +42,11 @@ JetStreamersGroup = ['RATE:SeededStreamers', 'BW:Jet']
 METStreamersGroup = ['RATE:SeededStreamers', 'BW:MET']
 BCIDmonGroup = ['MON:BCID']
 PrimaryGroup = ['Primary']
+PrimaryLegGroup = ['Primary:Legacy']
+PrimaryPhIGroup = ['Primary:PhaseI']
+SupportGroup = ['Support']
+SupportLegGroup = ['Support:Legacy']
+SupportPhIGroup = ['Support:PhaseI']
 
 def setupMenu():
 
@@ -57,16 +62,16 @@ def setupMenu():
 
     TriggerFlags.MuonSlice.signatures = [
         #ATR-20049
-        ChainProp(name='HLT_2mu6_L12MU6',     l1SeedThresholds=['MU6'],   groups=MultiMuonGroup),
+        ChainProp(name='HLT_2mu6_L12MU6',     l1SeedThresholds=['MU6'],   groups=SupportGroup+MultiMuonGroup),
         #Planned Primaries
         #-- 1 mu iso
-        ChainProp(name='HLT_mu24_ivarmedium_L1MU20', groups=SingleMuonGroup),
+        ChainProp(name='HLT_mu24_ivarmedium_L1MU20', groups=SupportGroup+SingleMuonGroup),
         ChainProp(name='HLT_mu26_ivarmedium_L1MU20', groups=PrimaryGroup+SingleMuonGroup, monGroups=['muonMon:shifter','idMon:t0']),
         ChainProp(name='HLT_mu28_ivarmedium_L1MU20', groups=PrimaryGroup+SingleMuonGroup),
         #-- 1 mu
-        ChainProp(name='HLT_mu6_idperf_L1MU6', groups=SingleMuonGroup),
-        ChainProp(name="HLT_mu26_L1MU20", groups=SingleMuonGroup),
-        ChainProp(name='HLT_mu24_idperf_L1MU20', groups=SingleMuonGroup),
+        ChainProp(name='HLT_mu6_idperf_L1MU6', groups=SupportGroup+SingleMuonGroup),
+        ChainProp(name="HLT_mu26_L1MU20", groups=SupportGroup+SingleMuonGroup),
+        ChainProp(name='HLT_mu24_idperf_L1MU20', groups=SupportGroup+SingleMuonGroup),
         ChainProp(name='HLT_mu50_L1MU20', groups=PrimaryGroup+SingleMuonGroup),
         ChainProp(name='HLT_mu60_0eta105_msonly_L1MU20', groups=PrimaryGroup+SingleMuonGroup),
         ChainProp(name='HLT_mu60_L1MU20', groups=PrimaryGroup+SingleMuonGroup),
@@ -98,14 +103,14 @@ def setupMenu():
 
     TriggerFlags.EgammaSlice.signatures = [
         # ElectronChains----------
-        ChainProp(name='HLT_e26_etcut_L1EM22VHI', groups=SingleElectronGroup + BCIDmonGroup),
-        ChainProp(name='HLT_2e17_etcut_L12EM15VH', stream=[PhysicsStream], groups=MultiElectronGroup),
-        ChainProp(name='HLT_g140_etcut_L1EM24VHI', groups=SinglePhotonGroup),
-        ChainProp(name='HLT_2g35_etcut_L12EM20VH', groups=MultiPhotonGroup),
+        ChainProp(name='HLT_e26_etcut_L1EM22VHI', groups=SupportGroup+SingleElectronGroup+BCIDmonGroup),
+        ChainProp(name='HLT_2e17_etcut_L12EM15VH', stream=[PhysicsStream], groups=SupportGroup+MultiElectronGroup),
+        ChainProp(name='HLT_g140_etcut_L1EM24VHI', groups=SupportGroup+SinglePhotonGroup),
+        ChainProp(name='HLT_2g35_etcut_L12EM20VH', groups=SupportGroup+MultiPhotonGroup),
     ]
 
     TriggerFlags.METSlice.signatures = [
-        ChainProp(name='HLT_xe65_cell_L1XE50', groups=SingleMETGroup + BCIDmonGroup),
+        ChainProp(name='HLT_xe65_cell_L1XE50', groups=SingleMETGroup+BCIDmonGroup),
         ChainProp(name='HLT_xe100_mht_L1XE50', groups=SingleMETGroup),
         ChainProp(name='HLT_xe100_tcpufit_L1XE50', groups=SingleMETGroup),
         ChainProp(name='HLT_xe100_trkmht_L1XE50', groups=SingleMETGroup),
@@ -146,7 +151,7 @@ def setupMenu():
 
     TriggerFlags.TauSlice.signatures = [
         #ATR-20049
-        ChainProp(name="HLT_tau160_mediumRNN_tracktwoMVA_L1TAU100", groups=SingleTauGroup),
+        ChainProp(name="HLT_tau160_mediumRNN_tracktwoMVA_L1TAU100", groups=PrimaryLegGroup+SingleTauGroup),
     ]
     TriggerFlags.BphysicsSlice.signatures = [
         #ATR-20049
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/SignatureDicts.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/SignatureDicts.py
index 3068e043199b..9b14315c3415 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/SignatureDicts.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/SignatureDicts.py
@@ -923,7 +923,7 @@ UnconventionalTrackingChainParts_Default = {
 #==========================================================
 # Combined Chains
 #==========================================================
-AllowedTopos_comb = ['03dRleg000leg00110']
+AllowedTopos_comb = ['03dRleg000leg00110','03dRleg000leg00130']
 
 # ---- Combined Dictionary of all allowed Values ----
 CombinedChainParts = deepcopy(PhotonChainParts)
-- 
GitLab


From 327072c6fb346ac6523fd020b8943539b93a444b Mon Sep 17 00:00:00 2001
From: Gianantonio Pezzullo <g.pezzullo@yale.edu>
Date: Thu, 11 Mar 2021 16:39:28 +0100
Subject: [PATCH 02/13] renaming

---
 .../TrigComboHypo/ATLAS_CHECK_THREAD_SAFETY   |   1 -
 .../TrigComboHypo/CMakeLists.txt              |  16 ---
 .../TrigComboHypo/python/TrigComboHypo.py     |  26 -----
 .../TrigComboHypo/src/TrigComboHypoTool.cxx   | 106 ------------------
 .../TrigComboHypo/src/TrigComboHypoTool.h     |  66 -----------
 .../src/components/TrigComboHypo_entries.cxx  |   2 -
 6 files changed, 217 deletions(-)
 delete mode 100644 Trigger/TrigHypothesis/TrigComboHypo/ATLAS_CHECK_THREAD_SAFETY
 delete mode 100644 Trigger/TrigHypothesis/TrigComboHypo/CMakeLists.txt
 delete mode 100644 Trigger/TrigHypothesis/TrigComboHypo/python/TrigComboHypo.py
 delete mode 100644 Trigger/TrigHypothesis/TrigComboHypo/src/TrigComboHypoTool.cxx
 delete mode 100644 Trigger/TrigHypothesis/TrigComboHypo/src/TrigComboHypoTool.h
 delete mode 100644 Trigger/TrigHypothesis/TrigComboHypo/src/components/TrigComboHypo_entries.cxx

diff --git a/Trigger/TrigHypothesis/TrigComboHypo/ATLAS_CHECK_THREAD_SAFETY b/Trigger/TrigHypothesis/TrigComboHypo/ATLAS_CHECK_THREAD_SAFETY
deleted file mode 100644
index 383b349ee2eb..000000000000
--- a/Trigger/TrigHypothesis/TrigComboHypo/ATLAS_CHECK_THREAD_SAFETY
+++ /dev/null
@@ -1 +0,0 @@
-Trigger/TrigHypothesis/TrigComboHypo
diff --git a/Trigger/TrigHypothesis/TrigComboHypo/CMakeLists.txt b/Trigger/TrigHypothesis/TrigComboHypo/CMakeLists.txt
deleted file mode 100644
index 4a9c9bcae4bf..000000000000
--- a/Trigger/TrigHypothesis/TrigComboHypo/CMakeLists.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
-
-# Declare the package name:
-atlas_subdir( TrigComboHypo )
-
-# External dependencies:
-find_package( ROOT COMPONENTS Core MathCore Hist )
-
-# Component(s) in the package:
-atlas_add_component( TrigComboHypo
-                     src/*.cxx src/components/*.cxx
-                     INCLUDE_DIRS ${ROOT_INCLUDE_DIRS}
-                     LINK_LIBRARIES ${ROOT_LIBRARIES} AthContainers AthViews AthenaBaseComps AthenaMonitoringKernelLib CaloEvent CxxUtils DecisionHandlingLib EventInfo GaudiKernel ITrackToVertex MuidEvent Particle PathResolver StoreGateLib TrigCaloEvent TrigCompositeUtilsLib TrigInDetEvent TrigInterfacesLib TrigMuonEvent TrigNavStructure TrigParticle TrigSteeringEvent TrigTopoEvent TrkTrack TrkTrackSummary VxVertex egammaEvent tauEvent xAODBase xAODCaloEvent xAODEgamma xAODJet xAODMuon xAODTau xAODTracking xAODTrigger MVAUtils tauRecToolsLib)
-
-# Install files from the package:
-atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} --extend-extensions=ATL900,ATL901 )
diff --git a/Trigger/TrigHypothesis/TrigComboHypo/python/TrigComboHypo.py b/Trigger/TrigHypothesis/TrigComboHypo/python/TrigComboHypo.py
deleted file mode 100644
index 4feebbb75aec..000000000000
--- a/Trigger/TrigHypothesis/TrigComboHypo/python/TrigComboHypo.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
-
-# flake8: noqa  (legacy trigger)
-
-######################################################################
-#
-#  Settings of  Slice HYPO
-# Author: G. Pezzullo
-######################################################################
-
-from TrigComboHypo.TrigComboHypoConf import *
-from AthenaCommon.Logging import logging
-
-## Parsing variable cut function
-def setVarCut (obj, var, val):
-    logging.getLogger("[TrigComboHyp::setVarCut] TrigComboHypoConfig").debug(obj.name)
-    for i in range(len(var)):
-        logging.getLogger("[TrigComboHyp::setVarCut] TrigComboHypoConfig").debug('Update variable cut: %s = %f'%(var[i],val[i]))
-        obj.__setattr__(var[i], val[i])
-
-class TrigComboHypoTool (TrigComboHypoTool):
-    __slots__ = []
-    def __init__(self, name = "TrigComboHypoTool", var = [], val = []):
-        logging.getLogger("[TrigComboHyp::TrigComboHypoTool] TrigComboHypoTool intialize").debug(self.name)
-        super(TrigComboHypoTool, self).__init__(name)
-        setVarCut(self, var, val)
diff --git a/Trigger/TrigHypothesis/TrigComboHypo/src/TrigComboHypoTool.cxx b/Trigger/TrigHypothesis/TrigComboHypo/src/TrigComboHypoTool.cxx
deleted file mode 100644
index 4e4d1446d97c..000000000000
--- a/Trigger/TrigHypothesis/TrigComboHypo/src/TrigComboHypoTool.cxx
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
-  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
-*/
-
-#include "TrigComboHypoTool.h"
-
-#include <cmath>
-
-using namespace TrigCompositeUtils;
-
-TrigComboHypoTool::TrigComboHypoTool(const std::string& type, 
-				     const std::string& name, 
-				     const IInterface*  parent)
-  : ComboHypoToolBase(type, name, parent)
-{}
-
-
-StatusCode TrigComboHypoTool::initialize()
-{
-  ATH_MSG_DEBUG("AcceptAll  = " << m_acceptAll );
-  ATH_MSG_DEBUG("varCut min = " << m_varMin );
-  ATH_MSG_DEBUG("varCut max = " << m_varMax );
-  ATH_MSG_DEBUG("LegA       = " << m_legA );
-  ATH_MSG_DEBUG("LegB       = " << m_legB );
-
-  if ( not m_monTool.name().empty() ) {
-    ATH_CHECK( m_monTool.retrieve() );
-    ATH_MSG_DEBUG("m_monTool name: " << m_monTool);
-  }
-
-  if (m_legA<0){
-    ATH_MSG_ERROR("Index for legA not set! legA = "<<m_legA);
-    return StatusCode::FAILURE;
-  }
-  if (m_legB<0){
-    ATH_MSG_ERROR("Index for legB not set! legB = "<<m_legB);
-    return StatusCode::FAILURE;
-  }
-
-  ATH_MSG_DEBUG("Initialization completed successfully");
-
-  return StatusCode::SUCCESS;
-}
-
-bool TrigComboHypoTool::executeAlg(std::vector<LegDecision> &combination) const {
-  ATH_MSG_DEBUG("On combination executeAlg");
-  auto varOfAccepted  = Monitored::Scalar( m_varTag+"OfAccepted"   , -1.0 );
-  auto varOfProcessed = Monitored::Scalar( m_varTag+"OfProcessed"  , -1.0 );
-  auto monitorIt      = Monitored::Group( m_monTool, varOfAccepted, varOfProcessed);
-
-  //check that we found the two legs
-  if (combination.size() < 2){
-    ATH_MSG_ERROR("Number of legs found is less than 2! N_legs = " << combination.size() );
-    return false;
-  }
-
-  auto EL= combination[m_legA].second;    
-  auto legA_pLink = TrigCompositeUtils::findLink<xAOD::IParticleContainer>( *EL, featureString() ).link;
-  if (!legA_pLink.isValid()){
-    ATH_MSG_ERROR("link for "<<m_legA<<" not valid");
-    return false;
-  }
-  EL = combination[m_legB].second;    
-  auto legB_pLink = TrigCompositeUtils::findLink<xAOD::IParticleContainer>( *EL, featureString() ).link;
-  if (!legB_pLink.isValid()){
-    ATH_MSG_ERROR("link for "<<m_legB<<" not valid");
-    return false;
-  }
-
-  TLorentzVector hlv1 = (*legA_pLink)->p4();
-  TLorentzVector hlv2 = (*legB_pLink)->p4();  
-
-  // apply the cut
-  bool  pass(true);
-  float value(-9999.);
-
-  //should we make a switch? (if this list of observables is used only here probably not...)
-  std::array<std::string, 2> valid_varTags = {"dR","mass"};
-  if(m_varTag ==  valid_varTags[0]) {
-    value =  hlv1.DeltaR(hlv2);
-  }else if (m_varTag == valid_varTags[1]){
-    TLorentzVector hlvtot = hlv1+hlv2;
-    value = hlvtot.M();
-  }else {
-    ATH_MSG_ERROR("m_varTag =  "<<m_varTag<<" not present in the list of valid_tags : " << valid_varTags);
-    return false;
-  }
-  varOfProcessed = value;
-
-  ATH_MSG_DEBUG("Found a combination with " << varOfProcessed);
-
-  if (varOfProcessed < m_varMin || varOfProcessed > m_varMax){ 
-    ATH_MSG_DEBUG("Combination failed var cut: " << varOfProcessed << " not in [" << m_varMin << "," <<  m_varMax << "]");
-    pass=false;
-  }else{
-    varOfAccepted = value;
-    ATH_MSG_DEBUG( m_varTag << varOfAccepted << " is  within [" <<m_varMin<< "," << m_varMax << "] This selection passed! ");
-  }
-  
-  return pass;
-
-}
-
-
-
-
diff --git a/Trigger/TrigHypothesis/TrigComboHypo/src/TrigComboHypoTool.h b/Trigger/TrigHypothesis/TrigComboHypo/src/TrigComboHypoTool.h
deleted file mode 100644
index 66b5535bde58..000000000000
--- a/Trigger/TrigHypothesis/TrigComboHypo/src/TrigComboHypoTool.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
-  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef TRIGCOMBOHYPO_TRIGCOMBOHYPOTOOL_H
-#define TRIGCOMBOHYPO_TRIGCOMBOHYPOTOOL_H
-
-#include <string>
-#include <vector>
-
-#include "DecisionHandling/ComboHypoToolBase.h"
-
-#include "xAODBase/IParticleContainer.h"
-
-#include "TrigCompositeUtils/HLTIdentifier.h"
-#include "TrigCompositeUtils/TrigCompositeUtils.h"
-
-#include "AthenaMonitoringKernel/Monitored.h"
-#include "AthenaMonitoringKernel/GenericMonitoringTool.h"
-
-
-/**
- * \class TrigComboHypoTool
- * \brief TrigComboHypoTool is a ComboHypoTool that calculates the deltaR between two particles and
- * apply cuts on it (upper and lower cut) accepting the event if the required condition is 
- * satisfied
- *
- */
-
-
-class TrigComboHypoTool:  public ComboHypoToolBase {
- public:
-  
-  TrigComboHypoTool(const std::string& type,
-		    const std::string& name,
-		    const IInterface*  parent);
-
-  virtual ~TrigComboHypoTool() {};
-  virtual StatusCode initialize() override;
-
-
- private:
-  
-  virtual bool executeAlg(std::vector<LegDecision>& thecomb) const override;
-  
-  // flags
-  Gaudi::Property< bool >      m_acceptAll {this, "AcceptAll", false, "Ignore selection"  };
-  Gaudi::Property<std::string> m_varTag    {this, "Variable" ,    "", "Variable to cut on"};
-
-  //legs
-  Gaudi::Property<int>         m_legA      {this, "LegA"     ,    -1, "First Leg"};
-  Gaudi::Property<int>         m_legB      {this, "LegB"     ,    -1, "Second Leg"};
-
-  // cuts
-  Gaudi::Property<float> m_varMin {this,"LowerCut",  0.3, "Lower cut for legs pair"};
-  Gaudi::Property<float> m_varMax {this,"UpperCut", 10.0, "Upper cut for legs pair"};
-  
-  // monitoring
-  ToolHandle<GenericMonitoringTool> m_monTool { this, "MonTool", "", "Monitoring tool" };
-
-
-}; // TRIGCOMBOHYPO_TRIGCOMBOHYPOTOOL_H
-#endif
-
-
-
diff --git a/Trigger/TrigHypothesis/TrigComboHypo/src/components/TrigComboHypo_entries.cxx b/Trigger/TrigHypothesis/TrigComboHypo/src/components/TrigComboHypo_entries.cxx
deleted file mode 100644
index 274a746213ac..000000000000
--- a/Trigger/TrigHypothesis/TrigComboHypo/src/components/TrigComboHypo_entries.cxx
+++ /dev/null
@@ -1,2 +0,0 @@
-#include "../TrigComboHypoTool.h"
-DECLARE_COMPONENT( TrigComboHypoTool )
-- 
GitLab


From 2b74232c59be8061eff578f37ce687ab1e93b326 Mon Sep 17 00:00:00 2001
From: Gianantonio Pezzullo <g.pezzullo@yale.edu>
Date: Thu, 11 Mar 2021 16:41:26 +0100
Subject: [PATCH 03/13] fixed typo

---
 .../python/HLTMenuConfig/Menu/LS2_v1.py       | 22 +++++++++----------
 .../HLTMenuConfig/Menu/SignatureDicts.py      |  2 +-
 2 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py
index 6003f3724543..008ded09e64d 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py
@@ -564,12 +564,12 @@ def setupMenu():
 
         # ATR-21797
         # the following 3 chains were in serial mode in Run-2
-        ChainProp(name="HLT_tau80_mediumRNN_tracktwoMVA_tau60_mediumRNN_tracktwoMVA_03dRleg000leg00110_L1TAU60_2TAU40",         l1SeedThresholds=['TAU60','TAU40'],     groups=PrimaryLegGroup+MultiTauGroup),
+        ChainProp(name="HLT_tau80_mediumRNN_tracktwoMVA_tau60_mediumRNN_tracktwoMVA_03dRleg000leg001100_L1TAU60_2TAU40",         l1SeedThresholds=['TAU60','TAU40'],     groups=PrimaryLegGroup+MultiTauGroup),
         ChainProp(name="HLT_tau80_mediumRNN_tracktwoMVA_tau35_mediumRNN_tracktwoMVA_03dRleg000leg00130_L1TAU60_DR-TAU20ITAU12I",l1SeedThresholds=['TAU60','TAU12IM'],   groups=PrimaryLegGroup+MultiTauGroup),
         ChainProp(name="HLT_tau35_mediumRNN_tracktwoMVA_tau25_mediumRNN_tracktwoMVA_03dRleg000leg00130_L1DR-TAU20ITAU12I-J25",  l1SeedThresholds=['TAU20IM','TAU12IM'], groups=PrimaryLegGroup+MultiTauGroup),
 
         # ATR-20450
-        ChainProp(name="HLT_tau35_mediumRNN_tracktwoMVA_tau25_mediumRNN_tracktwoMVA_03dRleg000leg00110_L1TAU20IM_2TAU12IM_4J12p0ETA25",  l1SeedThresholds=['TAU20IM','TAU12IM'], groups=PrimaryLegGroup+MultiTauGroup),
+        ChainProp(name="HLT_tau35_mediumRNN_tracktwoMVA_tau25_mediumRNN_tracktwoMVA_03dRleg000leg001100_L1TAU20IM_2TAU12IM_4J12p0ETA25",  l1SeedThresholds=['TAU20IM','TAU12IM'], groups=PrimaryLegGroup+MultiTauGroup),
     ]
 
     TriggerFlags.BphysicsSlice.signatures = TriggerFlags.BphysicsSlice.signatures() + [
@@ -638,20 +638,20 @@ def setupMenu():
         ChainProp(name='HLT_g35_tight_icalotight_mu15noL1_mu2noL1_L1EM24VHI', l1SeedThresholds=['EM24VHI','FSNOSEED','FSNOSEED'], stream=[PhysicsStream], groups=PrimaryLegGroup+EgammaMuonGroup),
 
         # tau+X chains (ATR-21609) TODO: need T&P-like merging
-        ChainProp(name='HLT_e24_lhmedium_ivarloose_tau20_mediumRNN_tracktwoMVA_03dRleg000leg00110_L1EM22VHI', l1SeedThresholds=['EM22VHI','TAU8'], stream=[PhysicsStream], groups=PrimaryLegGroup+EgammaTauGroup),
+        ChainProp(name='HLT_e24_lhmedium_ivarloose_tau20_mediumRNN_tracktwoMVA_03dRleg000leg001100_L1EM22VHI', l1SeedThresholds=['EM22VHI','TAU8'], stream=[PhysicsStream], groups=PrimaryLegGroup+EgammaTauGroup),
         # need to add dRtt to chain below. How do we avoid overlap between taus and jets?
         #ChainProp(name="HLT_tau25_mediumRNN_tracktwoMVA_tau20_mediumRNN_tracktwoMVA_j70_j50_L1MJJ-500-NFF", l1SeedThresholds=['TAU8','TAU8','J20','J20'],   stream=[PhysicsStream], groups=['MultiTauGroup','MultiJetGroup']),
 
 
         #ATR-22108: combined tau+X chains: TODO: add dRtt, need T&P-like merging
-        ChainProp(name='HLT_tau60_mediumRNN_tracktwoMVA_tau25_mediumRNN_tracktwoMVA_xe50_cell_03dRleg000leg00110_L1TAU40_2TAU12IM_XE40', l1SeedThresholds=['TAU40','TAU12IM','XE40'], stream=[PhysicsStream], groups=PrimaryLegGroup+TauMETGroup),  # ATR-22966
-        ChainProp(name='HLT_e17_lhmedium_tau25_mediumRNN_tracktwoMVA_xe50_cell_03dRleg000leg00110_L1EM15VHI_2TAU12IM_XE35', l1SeedThresholds=['EM15VHI','TAU12IM','XE35'], stream=[PhysicsStream], groups=PrimaryLegGroup+TauMETGroup),
-        ChainProp(name='HLT_mu14_tau25_mediumRNN_tracktwoMVA_xe50_cell_03dRleg000leg00110_L1MU10_TAU12IM_XE35', l1SeedThresholds=['MU10','TAU12IM','XE35'], stream=[PhysicsStream], groups=PrimaryLegGroup+TauMETGroup),
-        ChainProp(name='HLT_e17_lhmedium_ivarloose_tau25_mediumRNN_tracktwoMVA_03dRleg000leg00110_L1EM15VHI_2TAU12IM_4J12', l1SeedThresholds=['EM15VHI','TAU12IM'], stream=[PhysicsStream], groups=PrimaryLegGroup+EgammaTauGroup),
-
-        ChainProp(name='HLT_mu20_ivarloose_tau20_mediumRNN_tracktwoMVA_03dRleg000leg00110_L1MU20', l1SeedThresholds=['MU20','TAU8'], stream=[PhysicsStream], groups=PrimaryLegGroup+MuonTauGroup),
-        ChainProp(name='HLT_mu14_ivarloose_tau35_mediumRNN_tracktwoMVA_03dRleg000leg00110_L1MU10_TAU20IM', l1SeedThresholds=['MU10','TAU20IM'], stream=[PhysicsStream], groups=PrimaryLegGroup+MuonTauGroup),
-        ChainProp(name='HLT_mu14_ivarloose_tau25_mediumRNN_tracktwoMVA_03dRleg000leg00110_L1MU10_TAU12IM_3J12', l1SeedThresholds=['MU10','TAU12IM'], stream=[PhysicsStream], groups=PrimaryLegGroup+MuonTauGroup),
+        ChainProp(name='HLT_tau60_mediumRNN_tracktwoMVA_tau25_mediumRNN_tracktwoMVA_xe50_cell_03dRleg000leg001100_L1TAU40_2TAU12IM_XE40', l1SeedThresholds=['TAU40','TAU12IM','XE40'], stream=[PhysicsStream], groups=PrimaryLegGroup+TauMETGroup),  # ATR-22966
+        ChainProp(name='HLT_e17_lhmedium_tau25_mediumRNN_tracktwoMVA_xe50_cell_03dRleg000leg001100_L1EM15VHI_2TAU12IM_XE35', l1SeedThresholds=['EM15VHI','TAU12IM','XE35'], stream=[PhysicsStream], groups=PrimaryLegGroup+TauMETGroup),
+        ChainProp(name='HLT_mu14_tau25_mediumRNN_tracktwoMVA_xe50_cell_03dRleg000leg001100_L1MU10_TAU12IM_XE35', l1SeedThresholds=['MU10','TAU12IM','XE35'], stream=[PhysicsStream], groups=PrimaryLegGroup+TauMETGroup),
+        ChainProp(name='HLT_e17_lhmedium_ivarloose_tau25_mediumRNN_tracktwoMVA_03dRleg000leg001100_L1EM15VHI_2TAU12IM_4J12', l1SeedThresholds=['EM15VHI','TAU12IM'], stream=[PhysicsStream], groups=PrimaryLegGroup+EgammaTauGroup),
+
+        ChainProp(name='HLT_mu20_ivarloose_tau20_mediumRNN_tracktwoMVA_03dRleg000leg001100_L1MU20', l1SeedThresholds=['MU20','TAU8'], stream=[PhysicsStream], groups=PrimaryLegGroup+MuonTauGroup),
+        ChainProp(name='HLT_mu14_ivarloose_tau35_mediumRNN_tracktwoMVA_03dRleg000leg001100_L1MU10_TAU20IM', l1SeedThresholds=['MU10','TAU20IM'], stream=[PhysicsStream], groups=PrimaryLegGroup+MuonTauGroup),
+        ChainProp(name='HLT_mu14_ivarloose_tau25_mediumRNN_tracktwoMVA_03dRleg000leg001100_L1MU10_TAU12IM_3J12', l1SeedThresholds=['MU10','TAU12IM'], stream=[PhysicsStream], groups=PrimaryLegGroup+MuonTauGroup),
 
         # photon + multijets (ATR-22594)
         ChainProp(name='HLT_g85_tight_3j50_L1EM22VHI',l1SeedThresholds=['EM22VHI','FSNOSEED'],stream=[PhysicsStream], groups=EgammaJetGroup),
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/SignatureDicts.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/SignatureDicts.py
index 9b14315c3415..f31d910e0588 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/SignatureDicts.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/SignatureDicts.py
@@ -923,7 +923,7 @@ UnconventionalTrackingChainParts_Default = {
 #==========================================================
 # Combined Chains
 #==========================================================
-AllowedTopos_comb = ['03dRleg000leg00110','03dRleg000leg00130']
+AllowedTopos_comb = ['03dRleg000leg001100','03dRleg000leg00130']
 
 # ---- Combined Dictionary of all allowed Values ----
 CombinedChainParts = deepcopy(PhotonChainParts)
-- 
GitLab


From c9e77b6b6d730ff12c82862613bf8f332647552d Mon Sep 17 00:00:00 2001
From: Gianantonio Pezzullo <g.pezzullo@yale.edu>
Date: Thu, 11 Mar 2021 16:41:54 +0100
Subject: [PATCH 04/13] fixes

---
 .../TrigHypoCommonTools/CMakeLists.txt        |   1 +
 .../TrigHypoCommonTools/TrigComboHypoTool.h   |  66 +++++++++++
 .../python/TrigHypoCommonTools.py             |  26 +++++
 .../src/TrigComboHypoTool.cxx                 | 106 ++++++++++++++++++
 .../TrigHypoCommonTools_entries.cxx           |   4 +-
 5 files changed, 202 insertions(+), 1 deletion(-)
 create mode 100644 Trigger/TrigHypothesis/TrigHypoCommonTools/TrigHypoCommonTools/TrigComboHypoTool.h
 create mode 100644 Trigger/TrigHypothesis/TrigHypoCommonTools/python/TrigHypoCommonTools.py
 create mode 100644 Trigger/TrigHypothesis/TrigHypoCommonTools/src/TrigComboHypoTool.cxx

diff --git a/Trigger/TrigHypothesis/TrigHypoCommonTools/CMakeLists.txt b/Trigger/TrigHypothesis/TrigHypoCommonTools/CMakeLists.txt
index 93055d0016b6..4b23bc6fd60f 100644
--- a/Trigger/TrigHypothesis/TrigHypoCommonTools/CMakeLists.txt
+++ b/Trigger/TrigHypothesis/TrigHypoCommonTools/CMakeLists.txt
@@ -11,3 +11,4 @@ atlas_add_component( TrigHypoCommonTools
 
 # Install files from the package:
 atlas_install_headers( TrigHypoCommonTools )
+atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} --extend-extensions=ATL900,ATL901 )
diff --git a/Trigger/TrigHypothesis/TrigHypoCommonTools/TrigHypoCommonTools/TrigComboHypoTool.h b/Trigger/TrigHypothesis/TrigHypoCommonTools/TrigHypoCommonTools/TrigComboHypoTool.h
new file mode 100644
index 000000000000..66b5535bde58
--- /dev/null
+++ b/Trigger/TrigHypothesis/TrigHypoCommonTools/TrigHypoCommonTools/TrigComboHypoTool.h
@@ -0,0 +1,66 @@
+/*
+  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
+*/
+
+#ifndef TRIGCOMBOHYPO_TRIGCOMBOHYPOTOOL_H
+#define TRIGCOMBOHYPO_TRIGCOMBOHYPOTOOL_H
+
+#include <string>
+#include <vector>
+
+#include "DecisionHandling/ComboHypoToolBase.h"
+
+#include "xAODBase/IParticleContainer.h"
+
+#include "TrigCompositeUtils/HLTIdentifier.h"
+#include "TrigCompositeUtils/TrigCompositeUtils.h"
+
+#include "AthenaMonitoringKernel/Monitored.h"
+#include "AthenaMonitoringKernel/GenericMonitoringTool.h"
+
+
+/**
+ * \class TrigComboHypoTool
+ * \brief TrigComboHypoTool is a ComboHypoTool that calculates the deltaR between two particles and
+ * apply cuts on it (upper and lower cut) accepting the event if the required condition is 
+ * satisfied
+ *
+ */
+
+
+class TrigComboHypoTool:  public ComboHypoToolBase {
+ public:
+  
+  TrigComboHypoTool(const std::string& type,
+		    const std::string& name,
+		    const IInterface*  parent);
+
+  virtual ~TrigComboHypoTool() {};
+  virtual StatusCode initialize() override;
+
+
+ private:
+  
+  virtual bool executeAlg(std::vector<LegDecision>& thecomb) const override;
+  
+  // flags
+  Gaudi::Property< bool >      m_acceptAll {this, "AcceptAll", false, "Ignore selection"  };
+  Gaudi::Property<std::string> m_varTag    {this, "Variable" ,    "", "Variable to cut on"};
+
+  //legs
+  Gaudi::Property<int>         m_legA      {this, "LegA"     ,    -1, "First Leg"};
+  Gaudi::Property<int>         m_legB      {this, "LegB"     ,    -1, "Second Leg"};
+
+  // cuts
+  Gaudi::Property<float> m_varMin {this,"LowerCut",  0.3, "Lower cut for legs pair"};
+  Gaudi::Property<float> m_varMax {this,"UpperCut", 10.0, "Upper cut for legs pair"};
+  
+  // monitoring
+  ToolHandle<GenericMonitoringTool> m_monTool { this, "MonTool", "", "Monitoring tool" };
+
+
+}; // TRIGCOMBOHYPO_TRIGCOMBOHYPOTOOL_H
+#endif
+
+
+
diff --git a/Trigger/TrigHypothesis/TrigHypoCommonTools/python/TrigHypoCommonTools.py b/Trigger/TrigHypothesis/TrigHypoCommonTools/python/TrigHypoCommonTools.py
new file mode 100644
index 000000000000..2353d9953893
--- /dev/null
+++ b/Trigger/TrigHypothesis/TrigHypoCommonTools/python/TrigHypoCommonTools.py
@@ -0,0 +1,26 @@
+# Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
+
+# flake8: noqa  (legacy trigger)
+
+######################################################################
+#
+#  Settings of  Slice HYPO
+# Author: G. Pezzullo
+######################################################################
+
+from TrigHypoCommonTools.TrigHypoCommonToolsConf import *
+from AthenaCommon.Logging import logging
+
+## Parsing variable cut function
+def setVarCut (obj, var, val):
+    logging.getLogger("[TrigComboHyp::setVarCut] TrigHypoCommonToolsConfig").debug(obj.name)
+    for i in range(len(var)):
+        logging.getLogger("[TrigComboHyp::setVarCut] TrigHypoCommonToolsConfig").debug('Update variable cut: %s = %f'%(var[i],val[i]))
+        obj.__setattr__(var[i], val[i])
+
+class TrigComboHypoTool (TrigComboHypoTool):
+    __slots__ = []
+    def __init__(self, name = "TrigComboHypoTool", var = [], val = []):
+        logging.getLogger("[TrigComboHyp::TrigComboHypoTool] TrigComboHypoTool intialize").debug(self.name)
+        super(TrigComboHypoTool, self).__init__(name)
+        setVarCut(self, var, val)
diff --git a/Trigger/TrigHypothesis/TrigHypoCommonTools/src/TrigComboHypoTool.cxx b/Trigger/TrigHypothesis/TrigHypoCommonTools/src/TrigComboHypoTool.cxx
new file mode 100644
index 000000000000..5126e0a3e63f
--- /dev/null
+++ b/Trigger/TrigHypothesis/TrigHypoCommonTools/src/TrigComboHypoTool.cxx
@@ -0,0 +1,106 @@
+/*
+  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
+*/
+
+#include "TrigHypoCommonTools/TrigComboHypoTool.h"
+
+#include <cmath>
+
+using namespace TrigCompositeUtils;
+
+TrigComboHypoTool::TrigComboHypoTool(const std::string& type, 
+				     const std::string& name, 
+				     const IInterface*  parent)
+  : ComboHypoToolBase(type, name, parent)
+{}
+
+
+StatusCode TrigComboHypoTool::initialize()
+{
+  ATH_MSG_DEBUG("AcceptAll  = " << m_acceptAll );
+  ATH_MSG_DEBUG("varCut min = " << m_varMin );
+  ATH_MSG_DEBUG("varCut max = " << m_varMax );
+  ATH_MSG_DEBUG("LegA       = " << m_legA );
+  ATH_MSG_DEBUG("LegB       = " << m_legB );
+
+  if ( not m_monTool.name().empty() ) {
+    ATH_CHECK( m_monTool.retrieve() );
+    ATH_MSG_DEBUG("m_monTool name: " << m_monTool);
+  }
+
+  if (m_legA<0){
+    ATH_MSG_ERROR("Index for legA not set! legA = "<<m_legA);
+    return StatusCode::FAILURE;
+  }
+  if (m_legB<0){
+    ATH_MSG_ERROR("Index for legB not set! legB = "<<m_legB);
+    return StatusCode::FAILURE;
+  }
+
+  ATH_MSG_DEBUG("Initialization completed successfully");
+
+  return StatusCode::SUCCESS;
+}
+
+bool TrigComboHypoTool::executeAlg(std::vector<LegDecision> &combination) const {
+  ATH_MSG_DEBUG("On combination executeAlg");
+  auto varOfAccepted  = Monitored::Scalar( m_varTag+"OfAccepted"   , -1.0 );
+  auto varOfProcessed = Monitored::Scalar( m_varTag+"OfProcessed"  , -1.0 );
+  auto monitorIt      = Monitored::Group( m_monTool, varOfAccepted, varOfProcessed);
+
+  //check that we found the two legs
+  if (combination.size() < 2){
+    ATH_MSG_ERROR("Number of legs found is less than 2! N_legs = " << combination.size() );
+    return false;
+  }
+
+  auto EL= combination[m_legA].second;    
+  auto legA_pLink = TrigCompositeUtils::findLink<xAOD::IParticleContainer>( *EL, featureString() ).link;
+  if (!legA_pLink.isValid()){
+    ATH_MSG_ERROR("link for "<<m_legA<<" not valid");
+    return false;
+  }
+  EL = combination[m_legB].second;    
+  auto legB_pLink = TrigCompositeUtils::findLink<xAOD::IParticleContainer>( *EL, featureString() ).link;
+  if (!legB_pLink.isValid()){
+    ATH_MSG_ERROR("link for "<<m_legB<<" not valid");
+    return false;
+  }
+
+  TLorentzVector hlv1 = (*legA_pLink)->p4();
+  TLorentzVector hlv2 = (*legB_pLink)->p4();  
+
+  // apply the cut
+  bool  pass(true);
+  float value(-9999.);
+
+  //should we make a switch? (if this list of observables is used only here probably not...)
+  std::array<std::string, 2> valid_varTags = {"dR","mass"};
+  if(m_varTag ==  valid_varTags[0]) {
+    value =  hlv1.DeltaR(hlv2);
+  }else if (m_varTag == valid_varTags[1]){
+    TLorentzVector hlvtot = hlv1+hlv2;
+    value = hlvtot.M();
+  }else {
+    ATH_MSG_ERROR("m_varTag =  "<<m_varTag<<" not present in the list of valid_tags : " << valid_varTags);
+    return false;
+  }
+  varOfProcessed = value;
+
+  ATH_MSG_DEBUG("Found a combination with " << varOfProcessed);
+
+  if (varOfProcessed < m_varMin || varOfProcessed > m_varMax){ 
+    ATH_MSG_DEBUG("Combination failed var cut: " << varOfProcessed << " not in [" << m_varMin << "," <<  m_varMax << "]");
+    pass=false;
+  }else{
+    varOfAccepted = value;
+    ATH_MSG_DEBUG( m_varTag << varOfAccepted << " is  within [" <<m_varMin<< "," << m_varMax << "] This selection passed! ");
+  }
+  
+  return pass;
+
+}
+
+
+
+
diff --git a/Trigger/TrigHypothesis/TrigHypoCommonTools/src/components/TrigHypoCommonTools_entries.cxx b/Trigger/TrigHypothesis/TrigHypoCommonTools/src/components/TrigHypoCommonTools_entries.cxx
index f324dc6eb964..6f0ffa8489b8 100644
--- a/Trigger/TrigHypothesis/TrigHypoCommonTools/src/components/TrigHypoCommonTools_entries.cxx
+++ b/Trigger/TrigHypothesis/TrigHypoCommonTools/src/components/TrigHypoCommonTools_entries.cxx
@@ -1,5 +1,7 @@
 #include "TrigHypoCommonTools/L1InfoHypo.h"
 #include "TrigHypoCommonTools/L1InfoHypoTool.h"
+#include "TrigHypoCommonTools/TrigComboHypoTool.h"
 
 DECLARE_COMPONENT(L1InfoHypo)
-DECLARE_COMPONENT(L1InfoHypoTool)
\ No newline at end of file
+DECLARE_COMPONENT(L1InfoHypoTool)
+DECLARE_COMPONENT(TrigComboHypoTool)
-- 
GitLab


From 8ad0ed78400fad6f17045613ec6b60a34183f6ea Mon Sep 17 00:00:00 2001
From: Gianantonio Pezzullo <g.pezzullo@yale.edu>
Date: Thu, 11 Mar 2021 16:42:36 +0100
Subject: [PATCH 05/13] changed package location

---
 .../python/HLTMenuConfig/Combined/GenerateCombinedChainDefs.py  | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Combined/GenerateCombinedChainDefs.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Combined/GenerateCombinedChainDefs.py
index fd14357f222d..7dd83b28bff7 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Combined/GenerateCombinedChainDefs.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Combined/GenerateCombinedChainDefs.py
@@ -47,7 +47,7 @@ def addTopoInfo(theChainConfig, chainDict, listOfChainDefs, lengthOfChainConfigs
     return theChainConfig
 
 def TrigComboHypoToolFromDict(chainDict):#, topoInfo): #I'm not sure why when I try to change the constructor in order to specify the topoInfo to use, I get the error:
-    from TrigComboHypo.TrigComboHypoConf import TrigComboHypoTool
+    from TrigHypoCommonTools.TrigHypoCommonToolsConf import TrigComboHypoTool
     from AthenaMonitoringKernel.GenericMonitoringTool import GenericMonitoringTool, defineHistogram
 
     name     = chainDict['chainName']
-- 
GitLab


From 22f3a7d69288b632aefeb6b72ac77e9c659de12c Mon Sep 17 00:00:00 2001
From: Gianantonio Pezzullo <g.pezzullo@yale.edu>
Date: Thu, 18 Mar 2021 04:28:48 +0100
Subject: [PATCH 06/13] clean up

---
 .../python/TrigHypoCommonTools.py             |  2 +-
 .../share/ref_data_v1Dev_build.ref            | 24 +++++++++----------
 .../Combined/GenerateCombinedChainDefs.py     |  2 +-
 3 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/Trigger/TrigHypothesis/TrigHypoCommonTools/python/TrigHypoCommonTools.py b/Trigger/TrigHypothesis/TrigHypoCommonTools/python/TrigHypoCommonTools.py
index 2353d9953893..2bc107c9c3e7 100644
--- a/Trigger/TrigHypothesis/TrigHypoCommonTools/python/TrigHypoCommonTools.py
+++ b/Trigger/TrigHypothesis/TrigHypoCommonTools/python/TrigHypoCommonTools.py
@@ -21,6 +21,6 @@ def setVarCut (obj, var, val):
 class TrigComboHypoTool (TrigComboHypoTool):
     __slots__ = []
     def __init__(self, name = "TrigComboHypoTool", var = [], val = []):
-        logging.getLogger("[TrigComboHyp::TrigComboHypoTool] TrigComboHypoTool intialize").debug(self.name)
+        logging.getLogger("[TrigComboHypoTool] intialize").debug(self.name)
         super(TrigComboHypoTool, self).__init__(name)
         setVarCut(self, var, val)
diff --git a/Trigger/TrigValidation/TriggerTest/share/ref_data_v1Dev_build.ref b/Trigger/TrigValidation/TriggerTest/share/ref_data_v1Dev_build.ref
index 257b9753137e..4c021038d1cb 100644
--- a/Trigger/TrigValidation/TriggerTest/share/ref_data_v1Dev_build.ref
+++ b/Trigger/TrigValidation/TriggerTest/share/ref_data_v1Dev_build.ref
@@ -506,9 +506,9 @@ HLT_e14_lhtight_noringer_e4_etcut_Jpsiee_L1JPSI-1M5-EM12:
     0: 47
 HLT_e17_lhloose_mu14_L1EM15VH_MU10:
   eventCount: 0
-HLT_e17_lhmedium_ivarloose_tau25_mediumRNN_tracktwoMVA_03dRleg000leg00110_L1EM15VHI_2TAU12IM_4J12:
+HLT_e17_lhmedium_ivarloose_tau25_mediumRNN_tracktwoMVA_03dRleg000leg001100_L1EM15VHI_2TAU12IM_4J12:
   eventCount: 0
-HLT_e17_lhmedium_tau25_mediumRNN_tracktwoMVA_xe50_cell_L1EM15VHI_2TAU12IM_XE35:
+HLT_e17_lhmedium_tau25_mediumRNN_tracktwoMVA_xe50_cell_03dRleg000leg001100_L1EM15VHI_2TAU12IM_XE35:
   eventCount: 0
 HLT_e17_lhvloose_L1EM15VH:
   eventCount: 0
@@ -543,7 +543,7 @@ HLT_e24_lhmedium_2g12_loose_L1EM20VH_3EM10VH:
   eventCount: 0
 HLT_e24_lhmedium_g25_medium_L12EM20VH:
   eventCount: 0
-HLT_e24_lhmedium_ivarloose_tau20_mediumRNN_tracktwoMVA_03dRleg000leg00110_L1EM22VHI:
+HLT_e24_lhmedium_ivarloose_tau20_mediumRNN_tracktwoMVA_03dRleg000leg001100_L1EM22VHI:
   eventCount: 0
 HLT_e24_lhmedium_mu8noL1_L1EM22VHI:
   eventCount: 0
@@ -1690,15 +1690,15 @@ HLT_mu14_L1MU10:
   stepFeatures:
     0: 1
     1: 1
-HLT_mu14_ivarloose_tau25_mediumRNN_tracktwoMVA_03dRleg000leg00110_L1MU10_TAU12IM_3J12:
+HLT_mu14_ivarloose_tau25_mediumRNN_tracktwoMVA_03dRleg000leg001100_L1MU10_TAU12IM_3J12:
   eventCount: 0
   stepFeatures:
     0: 1
-HLT_mu14_ivarloose_tau35_mediumRNN_tracktwoMVA_03dRleg000leg00110_L1MU10_TAU20IM:
+HLT_mu14_ivarloose_tau35_mediumRNN_tracktwoMVA_03dRleg000leg001100_L1MU10_TAU20IM:
   eventCount: 0
   stepFeatures:
     0: 1
-HLT_mu14_tau25_mediumRNN_tracktwoMVA_xe50_cell_L1MU10_TAU12IM_XE35:
+HLT_mu14_tau25_mediumRNN_tracktwoMVA_xe50_cell_03dRleg000leg001100_L1MU10_TAU12IM_XE35:
   eventCount: 0
   stepFeatures:
     0: 1
@@ -1710,7 +1710,7 @@ HLT_mu20_2mu4noL1_L1MU20:
   stepFeatures:
     0: 1
     1: 1
-HLT_mu20_ivarloose_tau20_mediumRNN_tracktwoMVA_03dRleg000leg00110_L1MU20:
+HLT_mu20_ivarloose_tau20_mediumRNN_tracktwoMVA_03dRleg000leg001100_L1MU20:
   eventCount: 0
   stepFeatures:
     0: 1
@@ -2803,14 +2803,14 @@ HLT_tau35_mediumRNN_tracktwoMVA_L1TAU12IM:
     2: 2
     3: 2
     4: 1
-HLT_tau35_mediumRNN_tracktwoMVA_tau25_mediumRNN_tracktwoMVA_03dRleg000leg00110_L1TAU20IM_2TAU12IM_4J12p0ETA25:
+HLT_tau35_mediumRNN_tracktwoMVA_tau25_mediumRNN_tracktwoMVA_03dRleg000leg001100_L1TAU20IM_2TAU12IM_4J12p0ETA25:
   eventCount: 0
   stepCounts:
     0: 1
   stepFeatures:
     0: 8
     1: 2
-HLT_tau35_mediumRNN_tracktwoMVA_tau25_mediumRNN_tracktwoMVA_L1DR-TAU20ITAU12I-J25:
+HLT_tau35_mediumRNN_tracktwoMVA_tau25_mediumRNN_tracktwoMVA_03dRleg000leg00130_L1DR-TAU20ITAU12I-J25:
   eventCount: 0
   stepCounts:
     0: 1
@@ -2959,15 +2959,15 @@ HLT_tau35_tightRNN_tracktwo_L1TAU12IM:
     0: 4
     1: 3
     2: 2
-HLT_tau60_mediumRNN_tracktwoMVA_tau25_mediumRNN_tracktwoMVA_xe50_cell_L1TAU40_2TAU12IM_XE40:
+HLT_tau60_mediumRNN_tracktwoMVA_tau25_mediumRNN_tracktwoMVA_xe50_cell_03dRleg000leg001100_L1TAU40_2TAU12IM_XE40:
   eventCount: 0
   stepFeatures:
     0: 4
-HLT_tau80_mediumRNN_tracktwoMVA_tau35_mediumRNN_tracktwoMVA_L1TAU60_DR-TAU20ITAU12I:
+HLT_tau80_mediumRNN_tracktwoMVA_tau35_mediumRNN_tracktwoMVA_03dRleg000leg00130_L1TAU60_DR-TAU20ITAU12I:
   eventCount: 0
   stepFeatures:
     0: 4
-HLT_tau80_mediumRNN_tracktwoMVA_tau60_mediumRNN_tracktwoMVA_L1TAU60_2TAU40:
+HLT_tau80_mediumRNN_tracktwoMVA_tau60_mediumRNN_tracktwoMVA_03dRleg000leg001100_L1TAU60_2TAU40:
   eventCount: 0
 HLT_timeburner_L1All:
   eventCount: 0
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Combined/GenerateCombinedChainDefs.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Combined/GenerateCombinedChainDefs.py
index 7dd83b28bff7..e48672810e31 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Combined/GenerateCombinedChainDefs.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Combined/GenerateCombinedChainDefs.py
@@ -46,7 +46,7 @@ def addTopoInfo(theChainConfig, chainDict, listOfChainDefs, lengthOfChainConfigs
 
     return theChainConfig
 
-def TrigComboHypoToolFromDict(chainDict):#, topoInfo): #I'm not sure why when I try to change the constructor in order to specify the topoInfo to use, I get the error:
+def TrigComboHypoToolFromDict(chainDict):
     from TrigHypoCommonTools.TrigHypoCommonToolsConf import TrigComboHypoTool
     from AthenaMonitoringKernel.GenericMonitoringTool import GenericMonitoringTool, defineHistogram
 
-- 
GitLab


From 7d7134ea9866818d51152c1d3e2ccd88f8088e6d Mon Sep 17 00:00:00 2001
From: Gianantonio Pezzullo <g.pezzullo@yale.edu>
Date: Thu, 18 Mar 2021 05:08:43 +0100
Subject: [PATCH 07/13] improved debug message

---
 .../TrigHypoCommonTools/src/TrigComboHypoTool.cxx             | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/Trigger/TrigHypothesis/TrigHypoCommonTools/src/TrigComboHypoTool.cxx b/Trigger/TrigHypothesis/TrigHypoCommonTools/src/TrigComboHypoTool.cxx
index 5126e0a3e63f..1c8a9cb40fa7 100644
--- a/Trigger/TrigHypothesis/TrigHypoCommonTools/src/TrigComboHypoTool.cxx
+++ b/Trigger/TrigHypothesis/TrigHypoCommonTools/src/TrigComboHypoTool.cxx
@@ -90,11 +90,11 @@ bool TrigComboHypoTool::executeAlg(std::vector<LegDecision> &combination) const
   ATH_MSG_DEBUG("Found a combination with " << varOfProcessed);
 
   if (varOfProcessed < m_varMin || varOfProcessed > m_varMax){ 
-    ATH_MSG_DEBUG("Combination failed var cut: " << varOfProcessed << " not in [" << m_varMin << "," <<  m_varMax << "]");
+    ATH_MSG_DEBUG("Combination failed var cut: "<< m_varTag <<"= "<< varOfProcessed << " not in [" << m_varMin << "," <<  m_varMax << "]");
     pass=false;
   }else{
     varOfAccepted = value;
-    ATH_MSG_DEBUG( m_varTag << varOfAccepted << " is  within [" <<m_varMin<< "," << m_varMax << "] This selection passed! ");
+    ATH_MSG_DEBUG( m_varTag <<"= "<< varOfAccepted << " is  within [" <<m_varMin<< "," << m_varMax << "] This selection passed! ");
   }
   
   return pass;
-- 
GitLab


From 24aa9e71db17819dd635abf7d71a2af1c742e71f Mon Sep 17 00:00:00 2001
From: Gianantonio Pezzullo <g.pezzullo@yale.edu>
Date: Thu, 18 Mar 2021 20:05:40 +0100
Subject: [PATCH 08/13] added debug messages

---
 .../TrigHypoCommonTools/src/TrigComboHypoTool.cxx     | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/Trigger/TrigHypothesis/TrigHypoCommonTools/src/TrigComboHypoTool.cxx b/Trigger/TrigHypothesis/TrigHypoCommonTools/src/TrigComboHypoTool.cxx
index 1c8a9cb40fa7..b0ca349ddc81 100644
--- a/Trigger/TrigHypothesis/TrigHypoCommonTools/src/TrigComboHypoTool.cxx
+++ b/Trigger/TrigHypothesis/TrigHypoCommonTools/src/TrigComboHypoTool.cxx
@@ -49,23 +49,32 @@ bool TrigComboHypoTool::executeAlg(std::vector<LegDecision> &combination) const
   auto monitorIt      = Monitored::Group( m_monTool, varOfAccepted, varOfProcessed);
 
   //check that we found the two legs
-  if (combination.size() < 2){
+  int nCombs(combination.size());
+  if (nCombs < 2){
     ATH_MSG_ERROR("Number of legs found is less than 2! N_legs = " << combination.size() );
     return false;
   }
 
+  if ( (m_legA >= nCombs) || (m_legB >= nCombs)){
+    ATH_MSG_ERROR("One or both leg indexes are out of range: n_combinations =  " << combination.size() <<", legA = "<<m_legA<<", legB = "<< m_legB );
+    return false;
+  }
+
   auto EL= combination[m_legA].second;    
   auto legA_pLink = TrigCompositeUtils::findLink<xAOD::IParticleContainer>( *EL, featureString() ).link;
   if (!legA_pLink.isValid()){
     ATH_MSG_ERROR("link for "<<m_legA<<" not valid");
     return false;
   }
+  ATH_MSG_DEBUG("legA: "<<m_legA<<" FOUND");
+
   EL = combination[m_legB].second;    
   auto legB_pLink = TrigCompositeUtils::findLink<xAOD::IParticleContainer>( *EL, featureString() ).link;
   if (!legB_pLink.isValid()){
     ATH_MSG_ERROR("link for "<<m_legB<<" not valid");
     return false;
   }
+  ATH_MSG_DEBUG("legB: "<<m_legB<<" FOUND");
 
   TLorentzVector hlv1 = (*legA_pLink)->p4();
   TLorentzVector hlv2 = (*legB_pLink)->p4();  
-- 
GitLab


From f18ab72603bfdbdab9824dde859063cfda2f4c19 Mon Sep 17 00:00:00 2001
From: Gianantonio Pezzullo <g.pezzullo@yale.edu>
Date: Fri, 19 Mar 2021 19:17:48 +0100
Subject: [PATCH 09/13] added protection to wrong link

---
 .../src/TrigComboHypoTool.cxx                 | 36 ++++++++++++++++---
 1 file changed, 31 insertions(+), 5 deletions(-)

diff --git a/Trigger/TrigHypothesis/TrigHypoCommonTools/src/TrigComboHypoTool.cxx b/Trigger/TrigHypothesis/TrigHypoCommonTools/src/TrigComboHypoTool.cxx
index b0ca349ddc81..e3cf2d489f31 100644
--- a/Trigger/TrigHypothesis/TrigHypoCommonTools/src/TrigComboHypoTool.cxx
+++ b/Trigger/TrigHypothesis/TrigHypoCommonTools/src/TrigComboHypoTool.cxx
@@ -61,20 +61,46 @@ bool TrigComboHypoTool::executeAlg(std::vector<LegDecision> &combination) const
   }
 
   auto EL= combination[m_legA].second;    
-  auto legA_pLink = TrigCompositeUtils::findLink<xAOD::IParticleContainer>( *EL, featureString() ).link;
+  ElementLink<xAOD::IParticleContainer> legA_pLink;
+  try {
+    // Slices may have added link collections. These links may have been to objects in different containers.
+    auto decisionObjg = *EL;
+    if (decisionObjg->hasObjectLink(featureString(), ClassID_traits<xAOD::IParticleContainer>::ID())) {
+      legA_pLink = TrigCompositeUtils::findLink<xAOD::IParticleContainer>( *EL, featureString() ).link;
+    }
+  } catch (SG::ExcCLIDMismatch&) {
+    // This is in place to catch the exception caused by non-IParticle features when an IParticle interface is requested.
+    ATH_MSG_ERROR("[MET_ERROR] "<< featureString()<<" link for legA="<<m_legA<<" not valid");
+    return false;
+  }
+  ATH_MSG_DEBUG("legA: "<<m_legA<<" FOUND");
+
+  EL = combination[m_legB].second;
+  ElementLink<xAOD::IParticleContainer> legB_pLink;
+  try {
+    // Slices may have added link collections. These links may have been to objects in different containers.
+    auto decisionObjg = *EL;
+    if (decisionObjg->hasObjectLink(featureString(), ClassID_traits<xAOD::IParticleContainer>::ID())) {
+      legB_pLink = TrigCompositeUtils::findLink<xAOD::IParticleContainer>( *EL, featureString() ).link;
+    }
+  } catch (SG::ExcCLIDMismatch&) {
+    // This is in place to catch the exception caused by non-IParticle features when an IParticle interface is requested.
+    ATH_MSG_ERROR("[MET_ERROR] "<< featureString()<<" link for legB="<<m_legB<<" not valid");
+    return false;
+  }
+  ATH_MSG_DEBUG("legB: "<<m_legB<<" FOUND");
+
   if (!legA_pLink.isValid()){
     ATH_MSG_ERROR("link for "<<m_legA<<" not valid");
     return false;
   }
-  ATH_MSG_DEBUG("legA: "<<m_legA<<" FOUND");
+  ATH_MSG_DEBUG("link for legA: "<<m_legA<<" is valid");
 
-  EL = combination[m_legB].second;    
-  auto legB_pLink = TrigCompositeUtils::findLink<xAOD::IParticleContainer>( *EL, featureString() ).link;
   if (!legB_pLink.isValid()){
     ATH_MSG_ERROR("link for "<<m_legB<<" not valid");
     return false;
   }
-  ATH_MSG_DEBUG("legB: "<<m_legB<<" FOUND");
+  ATH_MSG_DEBUG("link for legB: "<<m_legB<<" is valid");
 
   TLorentzVector hlv1 = (*legA_pLink)->p4();
   TLorentzVector hlv2 = (*legB_pLink)->p4();  
-- 
GitLab


From d7b9b7ec4f87bf8a70de1e6a7ddb379d9554e23c Mon Sep 17 00:00:00 2001
From: Gianantonio Pezzullo <g.pezzullo@yale.edu>
Date: Fri, 19 Mar 2021 20:59:40 +0100
Subject: [PATCH 10/13] clean up

---
 .../src/TrigComboHypoTool.cxx                 | 32 ++-----------------
 1 file changed, 3 insertions(+), 29 deletions(-)

diff --git a/Trigger/TrigHypothesis/TrigHypoCommonTools/src/TrigComboHypoTool.cxx b/Trigger/TrigHypothesis/TrigHypoCommonTools/src/TrigComboHypoTool.cxx
index e3cf2d489f31..183bd6f3b93f 100644
--- a/Trigger/TrigHypothesis/TrigHypoCommonTools/src/TrigComboHypoTool.cxx
+++ b/Trigger/TrigHypothesis/TrigHypoCommonTools/src/TrigComboHypoTool.cxx
@@ -61,41 +61,15 @@ bool TrigComboHypoTool::executeAlg(std::vector<LegDecision> &combination) const
   }
 
   auto EL= combination[m_legA].second;    
-  ElementLink<xAOD::IParticleContainer> legA_pLink;
-  try {
-    // Slices may have added link collections. These links may have been to objects in different containers.
-    auto decisionObjg = *EL;
-    if (decisionObjg->hasObjectLink(featureString(), ClassID_traits<xAOD::IParticleContainer>::ID())) {
-      legA_pLink = TrigCompositeUtils::findLink<xAOD::IParticleContainer>( *EL, featureString() ).link;
-    }
-  } catch (SG::ExcCLIDMismatch&) {
-    // This is in place to catch the exception caused by non-IParticle features when an IParticle interface is requested.
-    ATH_MSG_ERROR("[MET_ERROR] "<< featureString()<<" link for legA="<<m_legA<<" not valid");
-    return false;
-  }
-  ATH_MSG_DEBUG("legA: "<<m_legA<<" FOUND");
-
-  EL = combination[m_legB].second;
-  ElementLink<xAOD::IParticleContainer> legB_pLink;
-  try {
-    // Slices may have added link collections. These links may have been to objects in different containers.
-    auto decisionObjg = *EL;
-    if (decisionObjg->hasObjectLink(featureString(), ClassID_traits<xAOD::IParticleContainer>::ID())) {
-      legB_pLink = TrigCompositeUtils::findLink<xAOD::IParticleContainer>( *EL, featureString() ).link;
-    }
-  } catch (SG::ExcCLIDMismatch&) {
-    // This is in place to catch the exception caused by non-IParticle features when an IParticle interface is requested.
-    ATH_MSG_ERROR("[MET_ERROR] "<< featureString()<<" link for legB="<<m_legB<<" not valid");
-    return false;
-  }
-  ATH_MSG_DEBUG("legB: "<<m_legB<<" FOUND");
-
+  auto legA_pLink = TrigCompositeUtils::findLink<xAOD::IParticleContainer>( *EL, featureString() ).link;
   if (!legA_pLink.isValid()){
     ATH_MSG_ERROR("link for "<<m_legA<<" not valid");
     return false;
   }
   ATH_MSG_DEBUG("link for legA: "<<m_legA<<" is valid");
 
+  EL = combination[m_legB].second;
+  auto legB_pLink = TrigCompositeUtils::findLink<xAOD::IParticleContainer>( *EL, featureString() ).link;
   if (!legB_pLink.isValid()){
     ATH_MSG_ERROR("link for "<<m_legB<<" not valid");
     return false;
-- 
GitLab


From 577e358bf3b3c160a4d5bdb5696d6e5563b67a3d Mon Sep 17 00:00:00 2001
From: Gianantonio Pezzullo <g.pezzullo@yale.edu>
Date: Fri, 19 Mar 2021 21:00:12 +0100
Subject: [PATCH 11/13] new
 refTrigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_v1Dev_build.ref

---
 .../TriggerTest/share/ref_data_v1Dev_build.ref              | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/Trigger/TrigValidation/TriggerTest/share/ref_data_v1Dev_build.ref b/Trigger/TrigValidation/TriggerTest/share/ref_data_v1Dev_build.ref
index 929ea85deba3..51a635f953d9 100644
--- a/Trigger/TrigValidation/TriggerTest/share/ref_data_v1Dev_build.ref
+++ b/Trigger/TrigValidation/TriggerTest/share/ref_data_v1Dev_build.ref
@@ -579,7 +579,7 @@ HLT_e17_lhloose_mu14_L1EM15VH_MU10:
   eventCount: 0
 HLT_e17_lhmedium_ivarloose_tau25_mediumRNN_tracktwoMVA_03dRleg000leg001100_L1EM15VHI_2TAU12IM_4J12:
   eventCount: 0
-HLT_e17_lhmedium_tau25_mediumRNN_tracktwoMVA_xe50_cell_03dRleg000leg001100_L1EM15VHI_2TAU12IM_XE35:
+HLT_e17_lhmedium_tau25_mediumRNN_tracktwoMVA_xe50_cell_L1EM15VHI_2TAU12IM_XE35:
   eventCount: 0
 HLT_e17_lhvloose_L1EM15VH:
   eventCount: 0
@@ -1795,7 +1795,7 @@ HLT_mu14_ivarloose_tau35_mediumRNN_tracktwoMVA_03dRleg000leg001100_L1MU10_TAU20I
   eventCount: 0
   stepFeatures:
     0: 1
-HLT_mu14_tau25_mediumRNN_tracktwoMVA_xe50_cell_03dRleg000leg001100_L1MU10_TAU12IM_XE35:
+HLT_mu14_tau25_mediumRNN_tracktwoMVA_xe50_cell_L1MU10_TAU12IM_XE35:
   eventCount: 0
   stepFeatures:
     0: 1
@@ -3056,7 +3056,7 @@ HLT_tau35_tightRNN_tracktwo_L1TAU12IM:
     0: 4
     1: 3
     2: 2
-HLT_tau60_mediumRNN_tracktwoMVA_tau25_mediumRNN_tracktwoMVA_xe50_cell_03dRleg000leg001100_L1TAU40_2TAU12IM_XE40:
+HLT_tau60_mediumRNN_tracktwoMVA_tau25_mediumRNN_tracktwoMVA_xe50_cell_L1TAU40_2TAU12IM_XE40:
   eventCount: 0
   stepFeatures:
     0: 4
-- 
GitLab


From f0f1da7a73a1ab30c3ee8cbdab958383309505eb Mon Sep 17 00:00:00 2001
From: Gianantonio Pezzullo <g.pezzullo@yale.edu>
Date: Fri, 19 Mar 2021 21:00:51 +0100
Subject: [PATCH 12/13] removed 03dR.. hypo from a few chains to avoid error in
 test_trigAna_RDOtoRDOTrig_v1Dev_build.py test

---
 .../TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py       | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py
index 9ac0090c877f..3aa1207a8bf7 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py
@@ -678,9 +678,9 @@ def setupMenu():
 
 
         #ATR-22108: combined tau+X chains: TODO: add dRtt, need T&P-like merging
-        ChainProp(name='HLT_tau60_mediumRNN_tracktwoMVA_tau25_mediumRNN_tracktwoMVA_xe50_cell_03dRleg000leg001100_L1TAU40_2TAU12IM_XE40', l1SeedThresholds=['TAU40','TAU12IM','XE40'], stream=[PhysicsStream], groups=PrimaryLegGroup+TauMETGroup),  # ATR-22966
-        ChainProp(name='HLT_e17_lhmedium_tau25_mediumRNN_tracktwoMVA_xe50_cell_03dRleg000leg001100_L1EM15VHI_2TAU12IM_XE35', l1SeedThresholds=['EM15VHI','TAU12IM','XE35'], stream=[PhysicsStream], groups=PrimaryLegGroup+TauMETGroup),
-        ChainProp(name='HLT_mu14_tau25_mediumRNN_tracktwoMVA_xe50_cell_03dRleg000leg001100_L1MU10_TAU12IM_XE35', l1SeedThresholds=['MU10','TAU12IM','XE35'], stream=[PhysicsStream], groups=PrimaryLegGroup+TauMETGroup),
+        ChainProp(name='HLT_tau60_mediumRNN_tracktwoMVA_tau25_mediumRNN_tracktwoMVA_xe50_cell_L1TAU40_2TAU12IM_XE40', l1SeedThresholds=['TAU40','TAU12IM','XE40'], stream=[PhysicsStream], groups=PrimaryLegGroup+TauMETGroup),  # ATR-22966
+        ChainProp(name='HLT_e17_lhmedium_tau25_mediumRNN_tracktwoMVA_xe50_cell_L1EM15VHI_2TAU12IM_XE35', l1SeedThresholds=['EM15VHI','TAU12IM','XE35'], stream=[PhysicsStream], groups=PrimaryLegGroup+TauMETGroup),
+        ChainProp(name='HLT_mu14_tau25_mediumRNN_tracktwoMVA_xe50_cell_L1MU10_TAU12IM_XE35', l1SeedThresholds=['MU10','TAU12IM','XE35'], stream=[PhysicsStream], groups=PrimaryLegGroup+TauMETGroup),
         ChainProp(name='HLT_e17_lhmedium_ivarloose_tau25_mediumRNN_tracktwoMVA_03dRleg000leg001100_L1EM15VHI_2TAU12IM_4J12', l1SeedThresholds=['EM15VHI','TAU12IM'], stream=[PhysicsStream], groups=PrimaryLegGroup+EgammaTauGroup),
 
         ChainProp(name='HLT_mu20_ivarloose_tau20_mediumRNN_tracktwoMVA_03dRleg000leg001100_L1MU20', l1SeedThresholds=['MU20','TAU8'], stream=[PhysicsStream], groups=PrimaryLegGroup+MuonTauGroup),
-- 
GitLab


From 31d6cbc71d143f3ad5c4fb8548fa14cf51d3870b Mon Sep 17 00:00:00 2001
From: Gianantonio Pezzullo <g.pezzullo@yale.edu>
Date: Fri, 19 Mar 2021 21:01:56 +0100
Subject: [PATCH 13/13] new ref

---
 .../share/ref_RDOtoRDOTrig_v1Dev_build.ref     | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_v1Dev_build.ref b/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_v1Dev_build.ref
index 64b7fc2f5a8b..3bfd46733407 100644
--- a/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_v1Dev_build.ref
+++ b/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_v1Dev_build.ref
@@ -940,7 +940,7 @@ HLT_e17_lhloose_mu14_L1EM15VH_MU10:
     6: 2
     7: 2
     8: 2
-HLT_e17_lhmedium_ivarloose_tau25_mediumRNN_tracktwoMVA_03dRleg000leg00110_L1EM15VHI_2TAU12IM_4J12:
+HLT_e17_lhmedium_ivarloose_tau25_mediumRNN_tracktwoMVA_03dRleg000leg001100_L1EM15VHI_2TAU12IM_4J12:
   eventCount: 2
   stepCounts:
     0: 3
@@ -1100,7 +1100,7 @@ HLT_e24_lhmedium_g25_medium_L12EM20VH:
   eventCount: 0
   stepFeatures:
     0: 3
-HLT_e24_lhmedium_ivarloose_tau20_mediumRNN_tracktwoMVA_03dRleg000leg00110_L1EM22VHI:
+HLT_e24_lhmedium_ivarloose_tau20_mediumRNN_tracktwoMVA_03dRleg000leg001100_L1EM22VHI:
   eventCount: 3
   stepCounts:
     0: 5
@@ -3082,7 +3082,7 @@ HLT_mu14_L1MU10:
     1: 8
     2: 8
     3: 8
-HLT_mu14_ivarloose_tau25_mediumRNN_tracktwoMVA_03dRleg000leg00110_L1MU10_TAU12IM_3J12:
+HLT_mu14_ivarloose_tau25_mediumRNN_tracktwoMVA_03dRleg000leg001100_L1MU10_TAU12IM_3J12:
   eventCount: 1
   stepCounts:
     0: 6
@@ -3106,7 +3106,7 @@ HLT_mu14_ivarloose_tau25_mediumRNN_tracktwoMVA_03dRleg000leg00110_L1MU10_TAU12IM
     7: 1
     8: 1
     9: 1
-HLT_mu14_ivarloose_tau35_mediumRNN_tracktwoMVA_03dRleg000leg00110_L1MU10_TAU20IM:
+HLT_mu14_ivarloose_tau35_mediumRNN_tracktwoMVA_03dRleg000leg001100_L1MU10_TAU20IM:
   eventCount: 1
   stepCounts:
     0: 5
@@ -3168,7 +3168,7 @@ HLT_mu20_2mu4noL1_L1MU20:
     3: 7
     4: 2
     5: 2
-HLT_mu20_ivarloose_tau20_mediumRNN_tracktwoMVA_03dRleg000leg00110_L1MU20:
+HLT_mu20_ivarloose_tau20_mediumRNN_tracktwoMVA_03dRleg000leg001100_L1MU20:
   eventCount: 3
   stepCounts:
     0: 7
@@ -4434,7 +4434,7 @@ HLT_tau35_mediumRNN_tracktwoMVA_L1TAU12IM:
     2: 8
     3: 8
     4: 4
-HLT_tau35_mediumRNN_tracktwoMVA_tau25_mediumRNN_tracktwoMVA_03dRleg000leg00110_L1TAU20IM_2TAU12IM_4J12p0ETA25:
+HLT_tau35_mediumRNN_tracktwoMVA_tau25_mediumRNN_tracktwoMVA_03dRleg000leg001100_L1TAU20IM_2TAU12IM_4J12p0ETA25:
   eventCount: 0
   stepCounts:
     0: 5
@@ -4447,7 +4447,7 @@ HLT_tau35_mediumRNN_tracktwoMVA_tau25_mediumRNN_tracktwoMVA_03dRleg000leg00110_L
     2: 8
     3: 8
     4: 2
-HLT_tau35_mediumRNN_tracktwoMVA_tau25_mediumRNN_tracktwoMVA_L1DR-TAU20ITAU12I-J25:
+HLT_tau35_mediumRNN_tracktwoMVA_tau25_mediumRNN_tracktwoMVA_03dRleg000leg00130_L1DR-TAU20ITAU12I-J25:
   eventCount: 0
   stepCounts:
     0: 6
@@ -4611,14 +4611,14 @@ HLT_tau60_mediumRNN_tracktwoMVA_tau25_mediumRNN_tracktwoMVA_xe50_cell_L1TAU40_2T
     0: 12
     1: 7
     2: 2
-HLT_tau80_mediumRNN_tracktwoMVA_tau35_mediumRNN_tracktwoMVA_L1TAU60_DR-TAU20ITAU12I:
+HLT_tau80_mediumRNN_tracktwoMVA_tau35_mediumRNN_tracktwoMVA_03dRleg000leg00130_L1TAU60_DR-TAU20ITAU12I:
   eventCount: 0
   stepCounts:
     0: 2
   stepFeatures:
     0: 11
     1: 3
-HLT_tau80_mediumRNN_tracktwoMVA_tau60_mediumRNN_tracktwoMVA_L1TAU60_2TAU40:
+HLT_tau80_mediumRNN_tracktwoMVA_tau60_mediumRNN_tracktwoMVA_03dRleg000leg001100_L1TAU60_2TAU40:
   eventCount: 0
   stepCounts:
     0: 2
-- 
GitLab