From 6e2214e7dc9d89f8e5d5f4eefcd94e71a4b46fa1 Mon Sep 17 00:00:00 2001
From: Savanna Marie Shaw <savanna.marie.shaw@cern.ch>
Date: Fri, 24 May 2019 11:23:49 +0200
Subject: [PATCH] Add isolated muon trigger to menu

Updates included:
  isolation hypo tool configuration so that all properties are set correctly,
  allow muon event view creator to be able to turn off link to parent view (it's not needed in this case) to be able to run the same ID tarcking sequence in two different views within same chain,
  muon isolation sequence set to pick up correct muon containers and run precision ID tracking.
---
 .../python/TrigMuonHypoMTConfig.py            |  18 ++--
 .../EventViewCreatorAlgorithmWithMuons.cxx    |   3 +-
 .../src/EventViewCreatorAlgorithmWithMuons.h  |   1 +
 .../TrigUpgradeTest/share/runMenuTest.ref     | 100 +++++++++---------
 .../python/HLTMenuConfig/Menu/LS2_v1.py       |   1 +
 .../HLTMenuConfig/Muon/MuonSequenceSetup.py   |   6 +-
 .../python/HLTMenuConfig/Muon/MuonSetup.py    |  11 +-
 7 files changed, 75 insertions(+), 65 deletions(-)

diff --git a/Trigger/TrigHypothesis/TrigMuonHypoMT/python/TrigMuonHypoMTConfig.py b/Trigger/TrigHypothesis/TrigMuonHypoMT/python/TrigMuonHypoMTConfig.py
index 92c9c7f54d4..010e07b5aed 100755
--- a/Trigger/TrigHypothesis/TrigMuonHypoMT/python/TrigMuonHypoMTConfig.py
+++ b/Trigger/TrigHypothesis/TrigMuonHypoMT/python/TrigMuonHypoMTConfig.py
@@ -493,24 +493,24 @@ class TrigMuonEFTrackIsolationHypoConfig() :
         try:
             ptcone03 = trigMuonEFTrkIsoThresholds[ isoCut ]
 
-            self.PtCone02Cut = -1.0
-            self.PtCone03Cut = ptcone03
-            self.AcceptAll = False
+            tool.PtCone02Cut = 0.0
+            tool.PtCone03Cut = ptcone03
+            tool.AcceptAll = False
 
             if 'MS' in isoCut:
-                self.RequireCombinedMuon = False
+                tool.RequireCombinedMuon = False
             else:
-                self.RequireCombinedMuon = True
+                tool.RequireCombinedMuon = True
 
-            self.DoAbsCut = True
+            tool.DoAbsCut = False
             if 'var' in isoCut :
-                self.useVarIso = True
+                tool.useVarIso = True
             else :
-                self.useVarIso = False                                
+                tool.useVarIso = False                                
         except LookupError:
             if(isoCut=='passthrough') :
                 print 'Setting passthrough'
-                self.AcceptAll = True
+                tool.AcceptAll = True
             else:
                 print 'isoCut = ', isoCut
                 raise Exception('TrigMuonEFTrackIsolation Hypo Misconfigured')
diff --git a/Trigger/TrigSteer/ViewAlgs/src/EventViewCreatorAlgorithmWithMuons.cxx b/Trigger/TrigSteer/ViewAlgs/src/EventViewCreatorAlgorithmWithMuons.cxx
index 8138af1ce4f..43597b8a66b 100644
--- a/Trigger/TrigSteer/ViewAlgs/src/EventViewCreatorAlgorithmWithMuons.cxx
+++ b/Trigger/TrigSteer/ViewAlgs/src/EventViewCreatorAlgorithmWithMuons.cxx
@@ -20,6 +20,7 @@ EventViewCreatorAlgorithmWithMuons::EventViewCreatorAlgorithmWithMuons( const st
 
   declareProperty("RoIEtaWidth", m_roiEtaWidth=0.1);
   declareProperty("RoIPhiWidth", m_roiPhiWidth=0.1);
+  declareProperty("LinkToParent", m_linkToParent=true);
 }
 
 EventViewCreatorAlgorithmWithMuons::~EventViewCreatorAlgorithmWithMuons() {}
@@ -91,7 +92,7 @@ StatusCode EventViewCreatorAlgorithmWithMuons::execute( const EventContext& cont
 	outputDecision->setObjectLink( "view", ElementLink< ViewContainer >(m_viewsKey.key(), viewVector->size()-1 ));//adding view to TC
 	outputDecision->setObjectLink( "muons", muonELInfo.link );
 	ATH_MSG_DEBUG( "Adding new view to new decision; storing view in viewVector component " << viewVector->size()-1 );
-	ATH_CHECK( linkViewToParent( inputDecision, viewVector->back() ) );
+	if(m_linkToParent) ATH_CHECK( linkViewToParent( inputDecision, viewVector->back() ) );
 	ATH_CHECK( placeRoIInView( roi, viewVector->back(), contexts.back() ) );
 	ATH_CHECK( placeMuonInView( muon, viewVector->back(), contexts.back() ) );
       }// loop over previous inputs
diff --git a/Trigger/TrigSteer/ViewAlgs/src/EventViewCreatorAlgorithmWithMuons.h b/Trigger/TrigSteer/ViewAlgs/src/EventViewCreatorAlgorithmWithMuons.h
index effe7701ce2..c9661a8ee5a 100644
--- a/Trigger/TrigSteer/ViewAlgs/src/EventViewCreatorAlgorithmWithMuons.h
+++ b/Trigger/TrigSteer/ViewAlgs/src/EventViewCreatorAlgorithmWithMuons.h
@@ -36,6 +36,7 @@ class EventViewCreatorAlgorithmWithMuons : public EventViewCreatorAlgorithm {
     Gaudi::Property< std::string > m_muonsLink {this,"MuonsLink","Unspecified","Name of EL to Muon object linked to the decision"};
     double m_roiEtaWidth;
     double m_roiPhiWidth;
+    bool m_linkToParent;
 };
 
 #endif
diff --git a/Trigger/TrigValidation/TrigUpgradeTest/share/runMenuTest.ref b/Trigger/TrigValidation/TrigUpgradeTest/share/runMenuTest.ref
index bad142c7b4c..87eb4f6220f 100644
--- a/Trigger/TrigValidation/TrigUpgradeTest/share/runMenuTest.ref
+++ b/Trigger/TrigValidation/TrigUpgradeTest/share/runMenuTest.ref
@@ -1,51 +1,53 @@
 TrigSignatureMoniMT                                INFO Chains passing step (1st row events & 2nd row decision counts
 TrigSignatureMoniMT                                INFO Chain name                   L1,      AfterPS, [... steps ...], Output
-TrigSignatureMoniMT                                INFO All                           20        20        0         0         0         0         20        
-TrigSignatureMoniMT                                INFO HLT_2mu6Comb_L1MU6            20        20        0         0         0         0         0         
-TrigSignatureMoniMT                                INFO HLT_2mu6Comb_L1MU6 decisions                      0         0         0         0         
-TrigSignatureMoniMT                                INFO HLT_2mu6_L1MU6                20        20        0         0         0         0         0         
-TrigSignatureMoniMT                                INFO HLT_2mu6_L1MU6 decisions                          0         0         0         0         
-TrigSignatureMoniMT                                INFO HLT_3j200_L1J20               20        20        0         0         0         0         0         
-TrigSignatureMoniMT                                INFO HLT_3j200_L1J20 decisions                         0         0         0         0         
-TrigSignatureMoniMT                                INFO HLT_5j70_0eta240_L1J20        20        20        0         0         0         0         0         
-TrigSignatureMoniMT                                INFO HLT_5j70_0eta240_L1J20 decisions                    0         0         0         0         
-TrigSignatureMoniMT                                INFO HLT_e3_etcut1step_L1EM3       20        20        18        0         0         0         18        
-TrigSignatureMoniMT                                INFO HLT_e3_etcut1step_L1EM3 decisions                    54        0         0         0         
-TrigSignatureMoniMT                                INFO HLT_e3_etcut_L1EM3            20        20        18        17        0         0         17        
-TrigSignatureMoniMT                                INFO HLT_e3_etcut_L1EM3 decisions                      54        342       0         0         
-TrigSignatureMoniMT                                INFO HLT_e5_etcut_L1EM3            20        20        17        16        0         0         16        
-TrigSignatureMoniMT                                INFO HLT_e5_etcut_L1EM3 decisions                      50        329       0         0         
-TrigSignatureMoniMT                                INFO HLT_e7_etcut_L1EM3            20        20        15        14        0         0         14        
-TrigSignatureMoniMT                                INFO HLT_e7_etcut_L1EM3 decisions                      36        264       0         0         
-TrigSignatureMoniMT                                INFO HLT_g5_etcut_L1EM3            20        20        17        17        0         0         17        
-TrigSignatureMoniMT                                INFO HLT_g5_etcut_L1EM3 decisions                      50        50        0         0         
-TrigSignatureMoniMT                                INFO HLT_j0_vbenfSEP30etSEP34mass35SEP50fbet_L1J2020        20        0         0         0         0         0         
-TrigSignatureMoniMT                                INFO HLT_j0_vbenfSEP30etSEP34mass35SEP50fbet_L1J20 decisions                    0         0         0         0         
-TrigSignatureMoniMT                                INFO HLT_j225_gsc420_boffperf_split_L1J2020        20        0         0         0         0         0         
-TrigSignatureMoniMT                                INFO HLT_j225_gsc420_boffperf_split_L1J20 decisions                    0         0         0         0         
-TrigSignatureMoniMT                                INFO HLT_j260_320eta490_L1J20      20        20        0         0         0         0         0         
-TrigSignatureMoniMT                                INFO HLT_j260_320eta490_L1J20 decisions                    0         0         0         0         
-TrigSignatureMoniMT                                INFO HLT_j420_L1J20                20        20        0         0         0         0         0         
-TrigSignatureMoniMT                                INFO HLT_j420_L1J20 decisions                          0         0         0         0         
-TrigSignatureMoniMT                                INFO HLT_j45_L1J20                 20        20        4         0         0         0         4         
-TrigSignatureMoniMT                                INFO HLT_j45_L1J20 decisions                           4         0         0         0         
-TrigSignatureMoniMT                                INFO HLT_j85_L1J20                 20        20        0         0         0         0         0         
-TrigSignatureMoniMT                                INFO HLT_j85_L1J20 decisions                           0         0         0         0         
-TrigSignatureMoniMT                                INFO HLT_mu20_ivar_L1MU6           20        20        3         2         2         0         2         
-TrigSignatureMoniMT                                INFO HLT_mu20_ivar_L1MU6 decisions                     3         2         2         0         
-TrigSignatureMoniMT                                INFO HLT_mu6Comb_L1MU6             20        20        3         2         0         0         2         
-TrigSignatureMoniMT                                INFO HLT_mu6Comb_L1MU6 decisions                       3         2         0         0         
-TrigSignatureMoniMT                                INFO HLT_mu6_L1MU6                 20        20        3         2         1         1         1         
-TrigSignatureMoniMT                                INFO HLT_mu6_L1MU6 decisions                           3         2         1         1         
-TrigSignatureMoniMT                                INFO HLT_mu6_msonly_L1MU6          20        20        3         0         2         0         2         
-TrigSignatureMoniMT                                INFO HLT_mu6_msonly_L1MU6 decisions                    3         0         2         0         
-TrigSignatureMoniMT                                INFO HLT_mu6fast_L1MU6             20        20        3         0         0         0         3         
-TrigSignatureMoniMT                                INFO HLT_mu6fast_L1MU6 decisions                       3         0         0         0         
-TrigSignatureMoniMT                                INFO HLT_mu6noL1_L1MU6             20        20        4         0         0         0         0         
-TrigSignatureMoniMT                                INFO HLT_mu6noL1_L1MU6 decisions                       6         0         0         0         
-TrigSignatureMoniMT                                INFO HLT_xe30_cell_L1XE10          20        20        12        0         0         0         12        
-TrigSignatureMoniMT                                INFO HLT_xe30_cell_L1XE10 decisions                    12        0         0         0         
-TrigSignatureMoniMT                                INFO HLT_xe30_tcpufit_L1XE10       20        20        3         0         0         0         3         
-TrigSignatureMoniMT                                INFO HLT_xe30_tcpufit_L1XE10 decisions                    3         0         0         0         
-TrigSignatureMoniMT                                INFO HLT_xe65_cell_L1XE50          20        20        3         0         0         0         3         
-TrigSignatureMoniMT                                INFO HLT_xe65_cell_L1XE50 decisions                    3         0         0         0         
+TrigSignatureMoniMT                                INFO All                           20        20        0         0         0         0         0         20        
+TrigSignatureMoniMT                                INFO HLT_2mu6Comb_L1MU6            20        20        0         0         0         0         0         0         
+TrigSignatureMoniMT                                INFO HLT_2mu6Comb_L1MU6 decisions                      0         0         0         0         0         
+TrigSignatureMoniMT                                INFO HLT_2mu6_L1MU6                20        20        0         0         0         0         0         0         
+TrigSignatureMoniMT                                INFO HLT_2mu6_L1MU6 decisions                          0         0         0         0         0         
+TrigSignatureMoniMT                                INFO HLT_3j200_L1J20               20        20        0         0         0         0         0         0         
+TrigSignatureMoniMT                                INFO HLT_3j200_L1J20 decisions                         0         0         0         0         0         
+TrigSignatureMoniMT                                INFO HLT_5j70_0eta240_L1J20        20        20        0         0         0         0         0         0         
+TrigSignatureMoniMT                                INFO HLT_5j70_0eta240_L1J20 decisions                    0         0         0         0         0         
+TrigSignatureMoniMT                                INFO HLT_e3_etcut1step_L1EM3       20        20        18        0         0         0         0         18        
+TrigSignatureMoniMT                                INFO HLT_e3_etcut1step_L1EM3 decisions                    54        0         0         0         0         
+TrigSignatureMoniMT                                INFO HLT_e3_etcut_L1EM3            20        20        18        17        0         0         0         17        
+TrigSignatureMoniMT                                INFO HLT_e3_etcut_L1EM3 decisions                      54        342       0         0         0         
+TrigSignatureMoniMT                                INFO HLT_e5_etcut_L1EM3            20        20        17        16        0         0         0         16        
+TrigSignatureMoniMT                                INFO HLT_e5_etcut_L1EM3 decisions                      50        329       0         0         0         
+TrigSignatureMoniMT                                INFO HLT_e7_etcut_L1EM3            20        20        15        14        0         0         0         14        
+TrigSignatureMoniMT                                INFO HLT_e7_etcut_L1EM3 decisions                      36        264       0         0         0         
+TrigSignatureMoniMT                                INFO HLT_g5_etcut_L1EM3            20        20        17        17        0         0         0         17        
+TrigSignatureMoniMT                                INFO HLT_g5_etcut_L1EM3 decisions                      50        50        0         0         0         
+TrigSignatureMoniMT                                INFO HLT_j0_vbenfSEP30etSEP34mass35SEP50fbet_L1J2020        20        0         0         0         0         0         0         
+TrigSignatureMoniMT                                INFO HLT_j0_vbenfSEP30etSEP34mass35SEP50fbet_L1J20 decisions                    0         0         0         0         0         
+TrigSignatureMoniMT                                INFO HLT_j225_gsc420_boffperf_split_L1J2020        20        0         0         0         0         0         0         
+TrigSignatureMoniMT                                INFO HLT_j225_gsc420_boffperf_split_L1J20 decisions                    0         0         0         0         0         
+TrigSignatureMoniMT                                INFO HLT_j260_320eta490_L1J20      20        20        0         0         0         0         0         0         
+TrigSignatureMoniMT                                INFO HLT_j260_320eta490_L1J20 decisions                    0         0         0         0         0         
+TrigSignatureMoniMT                                INFO HLT_j420_L1J20                20        20        0         0         0         0         0         0         
+TrigSignatureMoniMT                                INFO HLT_j420_L1J20 decisions                          0         0         0         0         0         
+TrigSignatureMoniMT                                INFO HLT_j45_L1J20                 20        20        4         0         0         0         0         4         
+TrigSignatureMoniMT                                INFO HLT_j45_L1J20 decisions                           4         0         0         0         0         
+TrigSignatureMoniMT                                INFO HLT_j85_L1J20                 20        20        0         0         0         0         0         0         
+TrigSignatureMoniMT                                INFO HLT_j85_L1J20 decisions                           0         0         0         0         0         
+TrigSignatureMoniMT                                INFO HLT_mu20_ivar_L1MU6           20        20        3         2         2         0         0         2         
+TrigSignatureMoniMT                                INFO HLT_mu20_ivar_L1MU6 decisions                     3         2         2         0         0         
+TrigSignatureMoniMT                                INFO HLT_mu6Comb_L1MU6             20        20        3         2         0         0         0         2         
+TrigSignatureMoniMT                                INFO HLT_mu6Comb_L1MU6 decisions                       3         2         0         0         0         
+TrigSignatureMoniMT                                INFO HLT_mu6_L1MU6                 20        20        3         2         1         1         0         1         
+TrigSignatureMoniMT                                INFO HLT_mu6_L1MU6 decisions                           3         2         1         1         0         
+TrigSignatureMoniMT                                INFO HLT_mu6_ivarmedium_L1MU6      20        20        3         2         1         1         0         0         
+TrigSignatureMoniMT                                INFO HLT_mu6_ivarmedium_L1MU6 decisions                    3         2         1         1         0         
+TrigSignatureMoniMT                                INFO HLT_mu6_msonly_L1MU6          20        20        3         0         2         0         0         2         
+TrigSignatureMoniMT                                INFO HLT_mu6_msonly_L1MU6 decisions                    3         0         2         0         0         
+TrigSignatureMoniMT                                INFO HLT_mu6fast_L1MU6             20        20        3         0         0         0         0         3         
+TrigSignatureMoniMT                                INFO HLT_mu6fast_L1MU6 decisions                       3         0         0         0         0         
+TrigSignatureMoniMT                                INFO HLT_mu6noL1_L1MU6             20        20        4         0         0         0         0         0         
+TrigSignatureMoniMT                                INFO HLT_mu6noL1_L1MU6 decisions                       5         0         0         0         0         
+TrigSignatureMoniMT                                INFO HLT_xe30_cell_L1XE10          20        20        12        0         0         0         0         12        
+TrigSignatureMoniMT                                INFO HLT_xe30_cell_L1XE10 decisions                    12        0         0         0         0         
+TrigSignatureMoniMT                                INFO HLT_xe30_tcpufit_L1XE10       20        20        3         0         0         0         0         3         
+TrigSignatureMoniMT                                INFO HLT_xe30_tcpufit_L1XE10 decisions                    3         0         0         0         0         
+TrigSignatureMoniMT                                INFO HLT_xe65_cell_L1XE50          20        20        3         0         0         0         0         3         
+TrigSignatureMoniMT                                INFO HLT_xe65_cell_L1XE50 decisions                    3         0         0         0         0         
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py
index 007c1a803c0..4154a63bc95 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py
@@ -42,6 +42,7 @@ def setupMenu():
         ChainProp(name='HLT_mu20_ivar_L1MU6', groups=SingleMuonGroup),
         ChainProp(name='HLT_2mu6Comb_L1MU6', groups=SingleMuonGroup),
         ChainProp(name='HLT_2mu6_L1MU6', groups=SingleMuonGroup),
+        ChainProp(name='HLT_mu6_ivarmedium_L1MU6', groups=SingleMuonGroup),
         ChainProp(name='HLT_mu6noL1_L1MU6', groups=SingleMuonGroup),
 
         ChainProp(name='HLT_mu6_msonly_L1MU6', groups=SingleMuonGroup),
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Muon/MuonSequenceSetup.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Muon/MuonSequenceSetup.py
index fe28a96f230..f78730a9665 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Muon/MuonSequenceSetup.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Muon/MuonSequenceSetup.py
@@ -349,14 +349,16 @@ def muEFIsoAlgSequence(ConfigFlags):
     efmuIsoViewsMaker.RoIsLink = "roi" # -||-
     efmuIsoViewsMaker.InViewRoIs = "MUEFIsoRoIs" # contract with the consumer
     efmuIsoViewsMaker.Views = "MUEFIsoViewRoIs"
-    efmuIsoViewsMaker.InViewMuons = "MuonsIso"
+    efmuIsoViewsMaker.InViewMuons = "IsoViewMuons"
     efmuIsoViewsMaker.MuonsLink = "feature"
     efmuIsoViewsMaker.RoIEtaWidth=0.15
     efmuIsoViewsMaker.RoIPhiWidth=0.15
+    efmuIsoViewsMaker.LinkToParent=False
+
 
     ### get EF reco sequence ###    
     from TriggerMenuMT.HLTMenuConfig.Muon.MuonSetup  import efmuisoRecoSequence
-    efmuisoRecoSequence, sequenceOut = efmuisoRecoSequence( efmuIsoViewsMaker.InViewRoIs )
+    efmuisoRecoSequence, sequenceOut = efmuisoRecoSequence( efmuIsoViewsMaker.InViewRoIs, efmuIsoViewsMaker.InViewMuons )
  
     efmuIsoViewsMaker.ViewNodeName = efmuisoRecoSequence.name()
      
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Muon/MuonSetup.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Muon/MuonSetup.py
index 0b8ded4ae49..12bdd7ffc61 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Muon/MuonSetup.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Muon/MuonSetup.py
@@ -599,7 +599,6 @@ def muEFCBRecoSequence( RoIs, name ):
 
   #Get last tracks from the list as input for other alg
 
-  ##Not added to the sequence! Causing stall
   PTSeq = seqAND("precisionTrackingInMuons", PTAlgs  )
   muEFCBRecoSequence += PTSeq
 
@@ -683,9 +682,9 @@ def muEFCBRecoSequence( RoIs, name ):
   return muEFCBRecoSequence, eventAlgs, sequenceOut
 
 
-def efmuisoRecoSequence( RoIs ):
+def efmuisoRecoSequence( RoIs, Muons ):
 
-  from AthenaCommon.CFElements import parOR
+  from AthenaCommon.CFElements import parOR, seqAND
 
   efmuisoRecoSequence = parOR("efmuIsoViewNode")
 
@@ -713,12 +712,16 @@ def efmuisoRecoSequence( RoIs ):
   from TrigUpgradeTest.InDetPT import makeInDetPrecisionTracking
   PTTracks, PTTrackParticles, PTAlgs = makeInDetPrecisionTracking( "muonsIso")
 
+  PTSeq = seqAND("precisionTrackingInMuonsIso", PTAlgs  )
+  efmuisoRecoSequence += PTSeq
+
   # set up algs
   from TrigMuonEF.TrigMuonEFConfig import TrigMuonEFTrackIsolationMTConfig
   trigEFmuIso = TrigMuonEFTrackIsolationMTConfig("TrigEFMuIso")
-  trigEFmuIso.MuonEFContainer = muEFCBInfo
+  trigEFmuIso.MuonEFContainer = Muons
   trackParticles = PTTrackParticles[-1]
   trigEFmuIso.IdTrackParticles = trackParticles
+  trigEFmuIso.MuonContName = "MuonsIso"
 
   efmuisoRecoSequence += trigEFmuIso
 
-- 
GitLab