diff --git a/Trigger/TrigHypothesis/TrigTauHypo/src/TrigEFTauMVHypoAlgMT.cxx b/Trigger/TrigHypothesis/TrigTauHypo/src/TrigEFTauMVHypoAlgMT.cxx
index e8e019ec32ca48849b0fdc4b80eaa3117c898d30..c760b82a96e7386d56822ffe62880e7d0e8eed07 100644
--- a/Trigger/TrigHypothesis/TrigTauHypo/src/TrigEFTauMVHypoAlgMT.cxx
+++ b/Trigger/TrigHypothesis/TrigTauHypo/src/TrigEFTauMVHypoAlgMT.cxx
@@ -49,7 +49,7 @@ StatusCode TrigEFTauMVHypoAlgMT::execute( const EventContext& context ) const {
   for ( auto previousDecision: *previousDecisionsHandle ) {
     counter++;
     //get RoI
-    auto roiELInfo = findLink<TrigRoiDescriptorCollection>( previousDecision, initialRoIString());
+    auto roiELInfo = findLink<TrigRoiDescriptorCollection>( previousDecision, roiString());
     ATH_CHECK( roiELInfo.isValid() );
     const TrigRoiDescriptor* roi = *(roiELInfo.link);
 
diff --git a/Trigger/TrigHypothesis/TrigTauHypo/src/TrigEFTauMVHypoTool.cxx b/Trigger/TrigHypothesis/TrigTauHypo/src/TrigEFTauMVHypoTool.cxx
index 3f70a64908801edcced907372ce789d885bf9df9..fed2e9ee2406b25240cea22721b0be4b897c5dbd 100644
--- a/Trigger/TrigHypothesis/TrigTauHypo/src/TrigEFTauMVHypoTool.cxx
+++ b/Trigger/TrigHypothesis/TrigTauHypo/src/TrigEFTauMVHypoTool.cxx
@@ -103,10 +103,11 @@ bool TrigEFTauMVHypoTool::decide(const ITrigEFTauMVHypoTool::TauJetInfo& input )
 
   //get RoI descriptor
   auto roiDescriptor = input.roi;
+  float roIZ   = roiDescriptor->zed();
   float roIEta = roiDescriptor->eta();
   float roIPhi = roiDescriptor->phi();
 
-  ATH_MSG_DEBUG( "Input RoI eta: " << roIEta << " Input RoI phi: " << roIPhi );
+  ATH_MSG_DEBUG( "Input RoI eta: " << roIEta << " Input RoI phi: " << roIPhi << " Input RoI z: " << roIZ);
 
   auto TauContainer = input.taujetcontainer;
   ninputTaus = TauContainer->size();
diff --git a/Trigger/TrigHypothesis/TrigTauHypo/src/TrigTauCaloHypoAlgMT.cxx b/Trigger/TrigHypothesis/TrigTauHypo/src/TrigTauCaloHypoAlgMT.cxx
index 55af58e47f2ac1bfa724dcdbcc2b745d959477f7..78428c69df0c4887b5d9844bad469832855df148 100644
--- a/Trigger/TrigHypothesis/TrigTauHypo/src/TrigTauCaloHypoAlgMT.cxx
+++ b/Trigger/TrigHypothesis/TrigTauHypo/src/TrigTauCaloHypoAlgMT.cxx
@@ -47,7 +47,7 @@ StatusCode TrigTauCaloHypoAlgMT::execute( const EventContext& context ) const {
     counter++;
 
     //get RoI
-    auto roiELInfo = findLink<TrigRoiDescriptorCollection>( previousDecision, initialRoIString() );
+    auto roiELInfo = findLink<TrigRoiDescriptorCollection>( previousDecision, roiString() );
     ATH_CHECK( roiELInfo.isValid() );
     const TrigRoiDescriptor* roi = *(roiELInfo.link);
 
diff --git a/Trigger/TrigHypothesis/TrigTauHypo/src/TrigTauTrackRoiUpdaterMT.h b/Trigger/TrigHypothesis/TrigTauHypo/src/TrigTauTrackRoiUpdaterMT.h
index 99ebca7ff0ec6ec7eb76d65343a0dd9d1c7b8043..394e221644e8defb10fb09875ed241c85f7b85ec 100644
--- a/Trigger/TrigHypothesis/TrigTauHypo/src/TrigTauTrackRoiUpdaterMT.h
+++ b/Trigger/TrigHypothesis/TrigTauHypo/src/TrigTauTrackRoiUpdaterMT.h
@@ -33,7 +33,7 @@ class TrigTauTrackRoiUpdaterMT : public AthReentrantAlgorithm {
 
   SG::ReadHandleKey< TrigRoiDescriptorCollection > m_roIInputKey {this,"RoIInputKey","InputRoI","Input RoI key name"};
   SG::ReadHandleKey< TrackCollection > m_tracksKey { this, "fastTracksKey", "fasttracks", "fast tracks in view" };
-  SG::WriteHandleKey< TrigRoiDescriptorCollection > m_roIOutputKey {this,"RoIOutputKey","Updefined","Output RoI Collection Key"};
+  SG::WriteHandleKey< TrigRoiDescriptorCollection > m_roIOutputKey {this,"RoIOutputKey","InViewRoI","Output RoI Collection Key"};
 
 };
 #endif
diff --git a/Trigger/TrigHypothesis/TrigTauHypo/src/TrigTrackPreSelHypoAlgMT.cxx b/Trigger/TrigHypothesis/TrigTauHypo/src/TrigTrackPreSelHypoAlgMT.cxx
index 27a4268e482f6c0ffdfdbd532dca149c39129268..69a6f1419e22991d42375fcec51fb711bed5467a 100644
--- a/Trigger/TrigHypothesis/TrigTauHypo/src/TrigTrackPreSelHypoAlgMT.cxx
+++ b/Trigger/TrigHypothesis/TrigTauHypo/src/TrigTrackPreSelHypoAlgMT.cxx
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 */
 
 #include "GaudiKernel/Property.h"
@@ -18,7 +18,9 @@ TrigTrackPreSelHypoAlgMT::TrigTrackPreSelHypoAlgMT( const std::string& name,
 StatusCode TrigTrackPreSelHypoAlgMT::initialize() {
   ATH_CHECK( m_hypoTools.retrieve() );
   ATH_CHECK( m_fastTracksKey.initialize() );
+  ATH_CHECK( m_roiForID2ReadKey.initialize() );
   renounce( m_fastTracksKey );// tau candidates are made in views, so they are not in the EvtStore: hide them
+  renounce( m_roiForID2ReadKey);
 
   return StatusCode::SUCCESS;
 }
@@ -46,13 +48,8 @@ StatusCode TrigTrackPreSelHypoAlgMT::execute( const EventContext& context ) cons
   int counter=-1;
   for ( auto previousDecision: *previousDecisionsHandle ) {
     counter++;
-    
-    //get RoI
-    auto roiELInfo = findLink<TrigRoiDescriptorCollection>( previousDecision, initialRoIString());
-    ATH_CHECK( roiELInfo.isValid() );
-    const TrigRoiDescriptor* roi = *(roiELInfo.link);
 
-    // get View
+    //get View
     const auto viewEL = previousDecision->objectLink<ViewContainer>( viewString() );
     ATH_CHECK( viewEL.isValid() );
     auto tracksHandle = ViewHelper::makeHandle( *viewEL, m_fastTracksKey, context);
@@ -64,6 +61,15 @@ StatusCode TrigTrackPreSelHypoAlgMT::execute( const EventContext& context ) cons
       continue;
     }
 
+    //get RoI
+    auto roiHandle = ViewHelper::makeHandle( *viewEL, m_roiForID2ReadKey, context);
+    ATH_CHECK( roiHandle.isValid() );    
+    if( roiHandle ->size() != 1 ) {
+      ATH_MSG_ERROR("Expect exactly one updated ROI");
+      return StatusCode::FAILURE;
+    }
+    const TrigRoiDescriptor* updatedROI = roiHandle->at(0);
+
     // create new decision
     auto d = newDecisionIn( decisions, name() );
     TrigCompositeUtils::linkToPrevious( d, decisionInput().key(), counter );
@@ -72,8 +78,7 @@ StatusCode TrigTrackPreSelHypoAlgMT::execute( const EventContext& context ) cons
     ATH_CHECK( el.isValid() );
     d->setObjectLink( featureString(),  el );
     
-    d->setObjectLink( roiString(), roiELInfo.link );
-    toolInput.emplace_back( d, roi, tracksHandle.cptr(), previousDecision );
+    toolInput.emplace_back( d, updatedROI, tracksHandle.cptr(), previousDecision );
 
     ATH_MSG_DEBUG( "Added view, roi, tracks, previous decision to new decision " << counter << " for view " << (*viewEL)->name()  );
   }
diff --git a/Trigger/TrigHypothesis/TrigTauHypo/src/TrigTrackPreSelHypoAlgMT.h b/Trigger/TrigHypothesis/TrigTauHypo/src/TrigTrackPreSelHypoAlgMT.h
index 81cda432eac73bc1648378704721cf95e6c466a7..0f343b878e7dd5a2948d57283307d1788112a366 100644
--- a/Trigger/TrigHypothesis/TrigTauHypo/src/TrigTrackPreSelHypoAlgMT.h
+++ b/Trigger/TrigHypothesis/TrigTauHypo/src/TrigTrackPreSelHypoAlgMT.h
@@ -27,7 +27,7 @@ class TrigTrackPreSelHypoAlgMT : public ::HypoBase {
   ToolHandleArray< ITrigTrackPreSelHypoTool > m_hypoTools { this, "HypoTools", {}, "Hypo tools" };
      
   SG::ReadHandleKey< TrackCollection > m_fastTracksKey { this, "trackcollection", "trackcollection", "fast tracks in view" };
-  
+  SG::ReadHandleKey< TrigRoiDescriptorCollection > m_roiForID2ReadKey{ this, "RoIForIDReadHandleKey", "UpdatedTrackRoI", "Updated narrow ROI produced in view" };
 
 }; 
 
diff --git a/Trigger/TrigHypothesis/TrigTauHypo/src/TrigTrackPreSelHypoTool.cxx b/Trigger/TrigHypothesis/TrigTauHypo/src/TrigTrackPreSelHypoTool.cxx
index bdc186fc3196bcc544dd9b8cdfd5a484d0a5b7df..8fec464248ad8d66273e1c517776379f36dde588 100755
--- a/Trigger/TrigHypothesis/TrigTauHypo/src/TrigTrackPreSelHypoTool.cxx
+++ b/Trigger/TrigHypothesis/TrigTauHypo/src/TrigTrackPreSelHypoTool.cxx
@@ -89,8 +89,9 @@ bool TrigTrackPreSelHypoTool::decide( const ITrigTrackPreSelHypoTool::TrackingIn
   auto roiDescriptor = input.roi;
   float roIEta = roiDescriptor->eta();
   float roIPhi = roiDescriptor->phi();
+  float roIZ   = roiDescriptor->zed();
 
-  ATH_MSG_DEBUG( "Input RoI eta: " << roIEta << " Input RoI phi: " << roIPhi );
+  ATH_MSG_DEBUG( "Input RoI eta: " << roIEta << " Input RoI phi: " << roIPhi << " Input RoI z: " << roIZ);
 
   // get the tracks collection
   // Retrieve Input TrackCollection
diff --git a/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_mt1_build.ref b/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_mt1_build.ref
index 12963c515b75b2918681edc3afa7032c18b91931..e67ee6ac84f9e5f13812a4ed5da483b3c12ba010 100644
--- a/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_mt1_build.ref
+++ b/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_mt1_build.ref
@@ -599,8 +599,8 @@ TrigSignatureMoniMT                                INFO HLT_tau25_idperf_tracktw
 TrigSignatureMoniMT                                INFO -- #3346942453 Events         14         14         14         13         13         -          -          -          13
 TrigSignatureMoniMT                                INFO -- #3346942453 Features                             24         17         17         -          -          -
 TrigSignatureMoniMT                                INFO HLT_tau25_looseRNN_tracktwoMVA_L1TAU12IM #169452969
-TrigSignatureMoniMT                                INFO -- #169452969 Events          14         14         12         11         9          -          -          -          9
-TrigSignatureMoniMT                                INFO -- #169452969 Features                              22         15         10         -          -          -
+TrigSignatureMoniMT                                INFO -- #169452969 Events          14         14         12         11         10         -          -          -          10
+TrigSignatureMoniMT                                INFO -- #169452969 Features                              22         15         13         -          -          -
 TrigSignatureMoniMT                                INFO HLT_tau25_looseRNN_tracktwo_L1TAU12IM #2490017573
 TrigSignatureMoniMT                                INFO -- #2490017573 Events         14         14         12         11         0          -          -          -          0
 TrigSignatureMoniMT                                INFO -- #2490017573 Features                             22         15         0          -          -          -
@@ -611,11 +611,11 @@ TrigSignatureMoniMT                                INFO HLT_tau25_medium1_trackt
 TrigSignatureMoniMT                                INFO -- #4055280067 Events         14         14         12         11         0          -          -          -          0
 TrigSignatureMoniMT                                INFO -- #4055280067 Features                             22         15         0          -          -          -
 TrigSignatureMoniMT                                INFO HLT_tau25_medium1_tracktwo_L1TAU12IM #1433975745
-TrigSignatureMoniMT                                INFO -- #1433975745 Events         14         14         12         11         3          -          -          -          3
-TrigSignatureMoniMT                                INFO -- #1433975745 Features                             22         15         3          -          -          -
+TrigSignatureMoniMT                                INFO -- #1433975745 Events         14         14         12         11         7          -          -          -          7
+TrigSignatureMoniMT                                INFO -- #1433975745 Features                             22         15         7          -          -          -
 TrigSignatureMoniMT                                INFO HLT_tau25_mediumRNN_tracktwoMVA_L1TAU12IM #2222894847
 TrigSignatureMoniMT                                INFO -- #2222894847 Events         14         14         12         11         7          -          -          -          7
-TrigSignatureMoniMT                                INFO -- #2222894847 Features                             22         15         7          -          -          -
+TrigSignatureMoniMT                                INFO -- #2222894847 Features                             22         15         10         -          -          -
 TrigSignatureMoniMT                                INFO HLT_tau25_mediumRNN_tracktwo_L1TAU12IM #698603885
 TrigSignatureMoniMT                                INFO -- #698603885 Events          14         14         12         11         0          -          -          -          0
 TrigSignatureMoniMT                                INFO -- #698603885 Features                              22         15         0          -          -          -
@@ -626,20 +626,20 @@ TrigSignatureMoniMT                                INFO HLT_tau25_perf_tracktwo_
 TrigSignatureMoniMT                                INFO -- #1129072492 Events         14         14         14         13         13         -          -          -          13
 TrigSignatureMoniMT                                INFO -- #1129072492 Features                             24         17         17         -          -          -
 TrigSignatureMoniMT                                INFO HLT_tau25_tightRNN_tracktwoMVA_L1TAU12IM #2472860683
-TrigSignatureMoniMT                                INFO -- #2472860683 Events         14         14         12         11         4          -          -          -          4
-TrigSignatureMoniMT                                INFO -- #2472860683 Features                             22         15         4          -          -          -
+TrigSignatureMoniMT                                INFO -- #2472860683 Events         14         14         12         11         5          -          -          -          5
+TrigSignatureMoniMT                                INFO -- #2472860683 Features                             22         15         6          -          -          -
 TrigSignatureMoniMT                                INFO HLT_tau25_tightRNN_tracktwo_L1TAU12IM #2537544560
 TrigSignatureMoniMT                                INFO -- #2537544560 Events         14         14         12         11         0          -          -          -          0
 TrigSignatureMoniMT                                INFO -- #2537544560 Features                             22         15         0          -          -          -
 TrigSignatureMoniMT                                INFO HLT_tau25_verylooseRNN_tracktwoMVA_L1TAU12IM #2992830434
-TrigSignatureMoniMT                                INFO -- #2992830434 Events         14         14         12         11         9          -          -          -          9
-TrigSignatureMoniMT                                INFO -- #2992830434 Features                             22         15         10         -          -          -
+TrigSignatureMoniMT                                INFO -- #2992830434 Events         14         14         12         11         10         -          -          -          10
+TrigSignatureMoniMT                                INFO -- #2992830434 Features                             22         15         14         -          -          -
 TrigSignatureMoniMT                                INFO HLT_tau25_verylooseRNN_tracktwo_L1TAU12IM #1275052132
 TrigSignatureMoniMT                                INFO -- #1275052132 Events         14         14         12         11         0          -          -          -          0
 TrigSignatureMoniMT                                INFO -- #1275052132 Features                             22         15         0          -          -          -
 TrigSignatureMoniMT                                INFO HLT_tau35_mediumRNN_tracktwoMVA_L1TAU12IM #2456480859
 TrigSignatureMoniMT                                INFO -- #2456480859 Events         14         14         11         10         6          -          -          -          6
-TrigSignatureMoniMT                                INFO -- #2456480859 Features                             20         14         6          -          -          -
+TrigSignatureMoniMT                                INFO -- #2456480859 Features                             20         14         9          -          -          -
 TrigSignatureMoniMT                                INFO HLT_tilecalib_laser_TilePEB_L1CALREQ2 #1063154655
 TrigSignatureMoniMT                                INFO -- #1063154655 Events         0          0          0          -          -          -          -          -          0
 TrigSignatureMoniMT                                INFO -- #1063154655 Features                             0          -          -          -          -          -
diff --git a/Trigger/TrigValidation/TriggerTest/share/ref_data_v1Dev_build.ref b/Trigger/TrigValidation/TriggerTest/share/ref_data_v1Dev_build.ref
index 433726019e0c508237f4d795a8d5f609071d2896..6d50cdcd50c0a173ae1242e767edab4985917fcf 100644
--- a/Trigger/TrigValidation/TriggerTest/share/ref_data_v1Dev_build.ref
+++ b/Trigger/TrigValidation/TriggerTest/share/ref_data_v1Dev_build.ref
@@ -615,7 +615,7 @@ TrigSignatureMoniMT                                 INFO -- #1433975745 Events
 TrigSignatureMoniMT                                 INFO -- #1433975745 Features                             4          4          2          -          -          -          
 TrigSignatureMoniMT                                 INFO HLT_tau25_mediumRNN_tracktwoMVA_L1TAU12IM #2222894847
 TrigSignatureMoniMT                                 INFO -- #2222894847 Events         20         20         3          3          3          -          -          -          3          
-TrigSignatureMoniMT                                 INFO -- #2222894847 Features                             4          4          3          -          -          -          
+TrigSignatureMoniMT                                 INFO -- #2222894847 Features                             4          4          4          -          -          -          
 TrigSignatureMoniMT                                 INFO HLT_tau25_mediumRNN_tracktwo_L1TAU12IM #698603885
 TrigSignatureMoniMT                                 INFO -- #698603885 Events          20         20         3          3          0          -          -          -          0          
 TrigSignatureMoniMT                                 INFO -- #698603885 Features                              4          4          0          -          -          -          
@@ -626,8 +626,8 @@ TrigSignatureMoniMT                                 INFO HLT_tau25_perf_tracktwo
 TrigSignatureMoniMT                                 INFO -- #1129072492 Events         20         20         3          3          3          -          -          -          3          
 TrigSignatureMoniMT                                 INFO -- #1129072492 Features                             4          4          4          -          -          -          
 TrigSignatureMoniMT                                 INFO HLT_tau25_tightRNN_tracktwoMVA_L1TAU12IM #2472860683
-TrigSignatureMoniMT                                 INFO -- #2472860683 Events         20         20         3          3          2          -          -          -          2          
-TrigSignatureMoniMT                                 INFO -- #2472860683 Features                             4          4          2          -          -          -          
+TrigSignatureMoniMT                                 INFO -- #2472860683 Events         20         20         3          3          3          -          -          -          3          
+TrigSignatureMoniMT                                 INFO -- #2472860683 Features                             4          4          4          -          -          -          
 TrigSignatureMoniMT                                 INFO HLT_tau25_tightRNN_tracktwo_L1TAU12IM #2537544560
 TrigSignatureMoniMT                                 INFO -- #2537544560 Events         20         20         3          3          0          -          -          -          0          
 TrigSignatureMoniMT                                 INFO -- #2537544560 Features                             4          4          0          -          -          -          
@@ -639,7 +639,7 @@ TrigSignatureMoniMT                                 INFO -- #1275052132 Events
 TrigSignatureMoniMT                                 INFO -- #1275052132 Features                             4          4          0          -          -          -          
 TrigSignatureMoniMT                                 INFO HLT_tau35_mediumRNN_tracktwoMVA_L1TAU12IM #2456480859
 TrigSignatureMoniMT                                 INFO -- #2456480859 Events         20         20         3          3          3          -          -          -          3          
-TrigSignatureMoniMT                                 INFO -- #2456480859 Features                             4          4          3          -          -          -          
+TrigSignatureMoniMT                                 INFO -- #2456480859 Features                             4          4          4          -          -          -          
 TrigSignatureMoniMT                                 INFO HLT_tilecalib_laser_TilePEB_L1CALREQ2 #1063154655
 TrigSignatureMoniMT                                 INFO -- #1063154655 Events         20         20         20         -          -          -          -          -          20         
 TrigSignatureMoniMT                                 INFO -- #1063154655 Features                             20         -          -          -          -          -          
diff --git a/Trigger/TriggerCommon/TrigEDMConfig/python/TriggerEDMRun3.py b/Trigger/TriggerCommon/TrigEDMConfig/python/TriggerEDMRun3.py
index ac18b4c3eae5066c8dca8445c8c334106dbd4a6c..7f82370ada6039395891664540b406cd83cc9777 100644
--- a/Trigger/TriggerCommon/TrigEDMConfig/python/TriggerEDMRun3.py
+++ b/Trigger/TriggerCommon/TrigEDMConfig/python/TriggerEDMRun3.py
@@ -248,6 +248,14 @@ TriggerHLTListRun3 = [
     ('xAOD::TrackParticleContainer#HLT_IDTrack_Tau_IDTrig',                 'BS ESD AODFULL', 'Tau', 'inViews:TAUFTFIdViews'),
     ('xAOD::TrackParticleAuxContainer#HLT_IDTrack_Tau_IDTrigAux.',          'BS ESD AODFULL', 'Tau'),
 
+    ('TrigRoiDescriptorCollection#HLT_Roi_Tau_TrackTwo',              'BS ESD AODFULL AODSLIM',  'Steer'),
+    ('TrigRoiDescriptorCollection#HLT_Roi_Tau_Track',              'BS ESD AODFULL AODSLIM',  'Steer'),
+    ('TrigRoiDescriptorCollection#HLT_Roi_Tau',              'BS ESD AODFULL AODSLIM',  'Steer'),
+    ('TrigRoiDescriptorCollection#HLT_Roi_TauCore_MVA',                'BS ESD AODFULL AODSLIM',  'Steer'),
+    ('TrigRoiDescriptorCollection#HLT_Roi_TauCore',             'BS ESD AODFULL AODSLIM',  'Steer'),
+    ('TrigRoiDescriptorCollection#HLT_Roi_TauIso_TauID',             'BS ESD AODFULL AODSLIM',  'Steer'),
+    ('TrigRoiDescriptorCollection#HLT_Roi_TauID',           'BS ESD AODFULL AODSLIM',  'Steer'),
+
     # Jet
     ('xAOD::JetContainer#HLT_AntiKt4EMTopoJets_subjesIS',                      'BS ESD AODFULL AODSLIM AODVERYSLIM', 'Jet'),
     ('xAOD::JetAuxContainer#HLT_AntiKt4EMTopoJets_subjesISAux.'+JetVars,       'BS ESD AODFULL AODSLIM AODVERYSLIM', 'Jet'),
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Tau/TauChainConfiguration.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Tau/TauChainConfiguration.py
index 7a1dac079cdfe656b1d8c762c0e73f15f0362207..39a880afda7837f52690afe0cff005637ed2c290 100755
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Tau/TauChainConfiguration.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Tau/TauChainConfiguration.py
@@ -11,7 +11,7 @@ log = logging.getLogger("TriggerMenuMT.HLTMenuConfig.Tau.TauChainConfiguration")
 
 from TriggerMenuMT.HLTMenuConfig.Menu.ChainConfigurationBase import ChainConfigurationBase
 
-from TriggerMenuMT.HLTMenuConfig.Tau.TauMenuSequences import tauCaloMenuSequence, tauCaloMVAMenuSequence, tauTwoStepTrackSeqCore, tauTwoStepTrackSeqIso, tauIdTrackSeq, tauTrackSeq, tauTrackTwoSeq, tauTrackTwoEFSeq
+from TriggerMenuMT.HLTMenuConfig.Tau.TauMenuSequences import tauCaloMenuSequence, tauCaloMVAMenuSequence, tauTwoStepTrackSeqCore, tauTwoStepTrackSeqIso, tauIdTrackSeq, tauTrackSeq, tauTrackTwoSeq, tauTrackTwoEFSeq, tauTwoStepTrackSeqCoreMVA
 
 #--------------------------------------------------------
 # fragments generating config will be functions in new JO
@@ -31,6 +31,9 @@ def getTauTrackTwoCfg(flags):
 def getTauIdTrackCfg(flags):
     return tauIdTrackSeq()
 
+def getTauFastTrackMVACfg(flags):
+    return tauTwoStepTrackSeqCoreMVA()
+
 def getTauFastTrackCfg(flags):
     return tauTwoStepTrackSeqCore()
 
@@ -64,7 +67,7 @@ class TauChainConfiguration(ChainConfigurationBase):
             "track":['getCaloSeq', 'getTrack'], #This should use calo only sequence
             "tracktwo":['getCaloSeq', 'getFastTrack', 'getTrackTwo'], #This should use calo only sequence
             "tracktwoEF":['getCaloSeq','getFastTrack','getTrack2EF'], #This should use calo only sequence
-            "tracktwoMVA":['getCaloMVASeq','getFastTrack', 'getTrackIso'], #This should use calo mva sequence
+            "tracktwoMVA":['getCaloMVASeq','getFastTrackMVA', 'getTrackIso'], #This should use calo mva sequence
         }
 
         # this should be extended by the signature expert to make full use of the dictionary!
@@ -108,6 +111,11 @@ class TauChainConfiguration(ChainConfigurationBase):
         stepName = 'FT_tau'
         return self.getStep(2,stepName, [getTauFastTrackCfg])
 
+    # --------------------                                                                                                                                                       
+    def getFastTrackMVA(self):
+        stepName = 'FT_tauMVA'
+        return self.getStep(2,stepName, [getTauFastTrackMVACfg])
+
     # --------------------                                                                                                       
     def getTrackIso(self):
         stepName = 'FTIso_tau'
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Tau/TauMenuSequences.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Tau/TauMenuSequences.py
index 5a0968b0da1a225cdee19406f8bc2e6b6c4c2be3..014065c1b7d00dfa067176af8c3452f9941c7e94 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Tau/TauMenuSequences.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Tau/TauMenuSequences.py
@@ -7,7 +7,7 @@ from AthenaConfiguration.AllConfigFlags import ConfigFlags
 # menu components   
 from TriggerMenuMT.HLTMenuConfig.Menu.MenuComponents import MenuSequence, RecoFragmentsPool
 
-from TriggerMenuMT.HLTMenuConfig.Tau.TauRecoSequences import tauCaloSequence, tauCaloMVASequence, tauFTFCoreSequence, tauFTFIsoSequence, tauFTFIdSequence, tauFTFTrackSequence, tauFTFTrackTwoSequence, tauEFSequence
+from TriggerMenuMT.HLTMenuConfig.Tau.TauRecoSequences import tauCaloSequence, tauCaloMVASequence, tauFTFCoreSequence, tauFTFIsoSequence, tauFTFIdSequence, tauFTFTrackSequence, tauFTFTrackTwoSequence, tauEFSequence, tauFTFCoreMVASequence
 
 # ====================================================================================================  
 #    Get MenuSequences
@@ -124,9 +124,28 @@ def tauIdTrackSeq():
 #                                                                                                                                           
 # ===============================================================================================
 
+def tauTwoStepTrackSeqCoreMVA():
+
+    (sequence, ftfCoreMVAViewsMaker, sequenceOut) = RecoFragmentsPool.retrieve(tauFTFCoreMVASequence,ConfigFlags)    
+
+    from TrigTauHypo.TrigTauHypoConf import  TrigTrackPreSelHypoAlgMT
+    fastTrkHypo = TrigTrackPreSelHypoAlgMT("TrackPreSelHypoAlg_RejectEmptyMVA")
+    fastTrkHypo.trackcollection = sequenceOut
+
+    from TrigTauHypo.TrigTauHypoTool import TrigTauTrackHypoToolFromDict
+
+    return  MenuSequence( Sequence    = sequence,
+                          Maker       = ftfCoreMVAViewsMaker,
+                          Hypo        = fastTrkHypo,
+                          HypoToolGen = TrigTauTrackHypoToolFromDict )
+
+# ===============================================================================================                                                                               
+#                                                                                                                                                                               
+# ===============================================================================================                                                                              
+
 def tauTwoStepTrackSeqCore():
 
-    (sequence, ftfCoreViewsMaker, sequenceOut) = RecoFragmentsPool.retrieve(tauFTFCoreSequence,ConfigFlags)    
+    (sequence, ftfCoreViewsMaker, sequenceOut) = RecoFragmentsPool.retrieve(tauFTFCoreSequence,ConfigFlags)
 
     from TrigTauHypo.TrigTauHypoConf import  TrigTrackPreSelHypoAlgMT
     fastTrkHypo = TrigTrackPreSelHypoAlgMT("TrackPreSelHypoAlg_RejectEmpty")
@@ -160,7 +179,9 @@ def tauTwoStepTrackSeqIso():
                           HypoToolGen = TrigEFTauMVHypoToolFromDict )
 
 
-# ===============================================================================================                                             #                                                                                                                                             # ===============================================================================================                                                                                 
+# ===============================================================================================                                             
+#                                                                                                                                             
+# ===============================================================================================                                                                                
 
 
 def tauTrackTwoEFSeq():
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Tau/TauRecoSequences.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Tau/TauRecoSequences.py
index 1a02cec684050ae627b4481b636b8121f24bb470..ad14be735ea895377909749fba7d8841a72589c8 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Tau/TauRecoSequences.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Tau/TauRecoSequences.py
@@ -1,11 +1,11 @@
 #
-#  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+#  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 #
 
 from AthenaCommon.CFElements import parOR, seqAND
 from AthenaCommon.GlobalFlags import globalflags
 from ViewAlgs.ViewAlgsConf import EventViewCreatorAlgorithm
-from DecisionHandling.DecisionHandlingConf import ViewCreatorInitialROITool, ViewCreatorPreviousROITool
+from DecisionHandling.DecisionHandlingConf import ViewCreatorInitialROITool, ViewCreatorFetchFromViewROITool 
 from TrigT2CaloCommon.CaloDef import HLTLCTopoRecoSequence
 from TrigEDMConfig.TriggerEDMRun3 import recordable
 from TriggerMenuMT.HLTMenuConfig.Menu.MenuComponents import RecoFragmentsPool
@@ -15,17 +15,16 @@ def _algoTauRoiUpdater(inputRoIs, clusters):
     from TrigTauHypo.TrigTauHypoConf import TrigTauCaloRoiUpdaterMT
     algo                               = TrigTauCaloRoiUpdaterMT("TauCaloRoiUpdater")
     algo.RoIInputKey                   = inputRoIs
-    algo.RoIOutputKey                  = "HLT_RoiForTau"
+    algo.RoIOutputKey                  = "UpdatedCaloRoI"
     algo.CaloClustersKey               = clusters
     return algo
 
-def _algoTauCaloOnly(inputRoIs, clusters):
+def _algoTauCaloOnly(L1RoIs, inputRoIs, clusters):
     from TrigTauRec.TrigTauRecConfigMT import TrigTauRecMerged_TauCaloOnly
-    roiUpdateAlgo                      = _algoTauRoiUpdater(inputRoIs, clusters)
     algo                               = TrigTauRecMerged_TauCaloOnly()
     algo.RoIInputKey                   = inputRoIs
     algo.clustersKey                   = clusters
-    algo.L1RoIKey                      = roiUpdateAlgo.RoIInputKey
+    algo.L1RoIKey                      = L1RoIs
     algo.Key_vertexInputContainer      = ""
     algo.Key_trackPartInputContainer   = ""
     algo.Key_trigTauJetInputContainer  = ""
@@ -34,12 +33,11 @@ def _algoTauCaloOnly(inputRoIs, clusters):
     algo.Key_trigTauTrackOutputContainer = "HLT_tautrack_dummy"
     return algo
 
-def _algoTauCaloOnlyMVA(inputRoIs, clusters):
+def _algoTauCaloOnlyMVA(L1RoIs, inputRoIs, clusters):
     from TrigTauRec.TrigTauRecConfigMT import TrigTauRecMerged_TauCaloOnlyMVA
-    roiUpdateAlgo                      = _algoTauRoiUpdater(inputRoIs, clusters)
     algo                               = TrigTauRecMerged_TauCaloOnlyMVA()
     algo.RoIInputKey                   = inputRoIs
-    algo.L1RoIKey                      = roiUpdateAlgo.RoIInputKey
+    algo.L1RoIKey                      = L1RoIs
     algo.clustersKey                   = clusters
     algo.Key_vertexInputContainer      = ""
     algo.Key_trackPartInputContainer   = ""
@@ -53,7 +51,7 @@ def _algoTauTrackRoiUpdater(inputRoIs, tracks):
     from TrigTauHypo.TrigTauHypoConf import TrigTauTrackRoiUpdaterMT
     algo                               = TrigTauTrackRoiUpdaterMT("TrackRoiUpdater")
     algo.RoIInputKey                   = inputRoIs
-    algo.RoIOutputKey                  = "HLT_RoiForID2"
+    algo.RoIOutputKey                  = "UpdatedTrackRoI"
     algo.fastTracksKey                 = tracks
     return algo
 
@@ -111,7 +109,8 @@ def tauCaloRecoSequence(InViewRoIs, SeqName):
     # lc sequence
     (lcTopoInViewSequence, lcCaloSequenceOut) = RecoFragmentsPool.retrieve(HLTLCTopoRecoSequence, InViewRoIs)
     tauCaloRoiUpdaterAlg                      = _algoTauRoiUpdater(inputRoIs = InViewRoIs, clusters = lcCaloSequenceOut)
-    tauCaloOnlyAlg                            = _algoTauCaloOnly(inputRoIs   = InViewRoIs, clusters = lcCaloSequenceOut)
+    updatedRoIs                               = tauCaloRoiUpdaterAlg.RoIOutputKey
+    tauCaloOnlyAlg                            = _algoTauCaloOnly(L1RoIs = InViewRoIs,inputRoIs   = updatedRoIs, clusters = lcCaloSequenceOut)
     RecoSequence                              = parOR( SeqName, [lcTopoInViewSequence,tauCaloRoiUpdaterAlg,tauCaloOnlyAlg] )
     return (RecoSequence, tauCaloOnlyAlg.Key_trigTauJetOutputContainer)
 
@@ -120,7 +119,8 @@ def tauCaloMVARecoSequence(InViewRoIs, SeqName):
     # lc sequence
     (lcTopoInViewSequence, lcCaloSequenceOut) = RecoFragmentsPool.retrieve(HLTLCTopoRecoSequence, InViewRoIs)
     tauCaloRoiUpdaterAlg                      = _algoTauRoiUpdater(inputRoIs = InViewRoIs, clusters = lcCaloSequenceOut)
-    tauCaloOnlyMVAAlg	                      = _algoTauCaloOnlyMVA(inputRoIs   = InViewRoIs, clusters = lcCaloSequenceOut)
+    updatedRoIs                               = tauCaloRoiUpdaterAlg.RoIOutputKey
+    tauCaloOnlyMVAAlg	                      = _algoTauCaloOnlyMVA(L1RoIs = InViewRoIs,inputRoIs = updatedRoIs, clusters = lcCaloSequenceOut)
     RecoSequence                              = parOR( SeqName, [lcTopoInViewSequence,tauCaloRoiUpdaterAlg,tauCaloOnlyMVAAlg] )
     return (RecoSequence, tauCaloOnlyMVAAlg.Key_trigTauJetOutputContainer)
 
@@ -229,8 +229,7 @@ def tauIdTrackSequence( RoIs , name):
                                ( 'xAOD::EventInfo' , 'StoreGateSvc+EventInfo' ),
                                ( 'SG::AuxElement' , 'StoreGateSvc+EventInfo.AveIntPerXDecor' ),
                                ( 'SG::AuxElement' , 'StoreGateSvc+EventInfo.ActIntPerXDecor' ),
-                               ( 'TrigRoiDescriptorCollection' , 'StoreGateSvc+TAUCaloRoIs' ),
-                               ( 'xAOD::TauJetContainer' , 'StoreGateSvc+HLT_TrigTauRecMerged_CaloOnly' )]
+                               ( 'TrigRoiDescriptorCollection' , 'StoreGateSvc+TAUCaloRoIs' )]
 
     # Make sure the required objects are still available at whole-event level
     from AthenaCommon.AlgSequence import AlgSequence
@@ -319,8 +318,13 @@ def tauCoreTrackSequence( RoIs, name ):
        if "InDetTrigTrackParticleCreatorAlg" in viewAlg.name():
          TrackCollection = viewAlg.TrackName
 
-    viewVerify.DataObjects += [( 'xAOD::TauJetContainer' , 'StoreGateSvc+HLT_TrigTauRecMerged_CaloOnlyMVA' ),
-                               ( 'TrigRoiDescriptorCollection' , 'StoreGateSvc+' + RoIs ),
+    if "MVA" in name:
+       viewVerify.DataObjects += [( 'xAOD::TauJetContainer' , 'StoreGateSvc+HLT_TrigTauRecMerged_CaloOnlyMVA' )]
+    else:
+       viewVerify.DataObjects += [( 'xAOD::TauJetContainer' , 'StoreGateSvc+HLT_TrigTauRecMerged_CaloOnly')]
+
+
+    viewVerify.DataObjects += [( 'TrigRoiDescriptorCollection' , 'StoreGateSvc+' + RoIs ),
                                ( 'IDCInDetBSErrContainer' , 'StoreGateSvc+SCT_ByteStreamErrs' )] #For some reason not picked up properly
 
     from IOVDbSvc.CondDB import conddb
@@ -346,10 +350,14 @@ def tauFTFTrackTwoSequence(ConfigFlags):
 
     RecoSequenceName = "tauFTFTrackTwoInViewSequence"
 
+    newRoITool                    = ViewCreatorFetchFromViewROITool()
+    newRoITool.RoisWriteHandleKey = recordable("HLT_Roi_Tau_TrackTwo") #RoI collection recorded to EDM
+    newRoITool.InViewRoIs         = "UpdatedTrackRoI" #input RoIs from calo only step 
+
     ftfTrackTwoViewsMaker                   = EventViewCreatorAlgorithm("IMFTFTrackTwo")
     ftfTrackTwoViewsMaker.RoIsLink          = "roi"
-    ftfTrackTwoViewsMaker.RoITool           = ViewCreatorPreviousROITool()
-    ftfTrackTwoViewsMaker.InViewRoIs        = "TIsoViewRoIs" # contract with the fast track core
+    ftfTrackTwoViewsMaker.RoITool           = newRoITool
+    ftfTrackTwoViewsMaker.InViewRoIs        = "RoiForID"
     ftfTrackTwoViewsMaker.Views             = "TAUFTFTrackTwoViews"
     ftfTrackTwoViewsMaker.ViewFallThrough   = True
     ftfTrackTwoViewsMaker.RequireParentView = True
@@ -364,10 +372,14 @@ def tauFTFTrackSequence(ConfigFlags):
 
     RecoSequenceName = "tauFTFTrackInViewSequence"
 
+    newRoITool                    = ViewCreatorFetchFromViewROITool()
+    newRoITool.RoisWriteHandleKey = recordable("HLT_Roi_Tau_Track") #RoI collection recorded to EDM
+    newRoITool.InViewRoIs         = "UpdatedCaloRoI" #input RoIs from calo only step  
+
     ftfTrackViewsMaker                   = EventViewCreatorAlgorithm("IMFTFTrack")
     ftfTrackViewsMaker.RoIsLink          = "roi"
-    ftfTrackViewsMaker.RoITool           = ViewCreatorPreviousROITool()
-    ftfTrackViewsMaker.InViewRoIs        = "TIdViewRoIs" # contract with the fast track core                                     
+    ftfTrackViewsMaker.RoITool           = newRoITool
+    ftfTrackViewsMaker.InViewRoIs        = "RoiForTau"
     ftfTrackViewsMaker.Views             = "TAUFTFTrackViews"
     ftfTrackViewsMaker.ViewFallThrough   = True
     ftfTrackViewsMaker.RequireParentView = True
@@ -382,10 +394,14 @@ def tauFTFIdSequence(ConfigFlags):
 
     RecoSequenceName = "tauFTFIdInViewSequence"
 
+    newRoITool                    = ViewCreatorFetchFromViewROITool()
+    newRoITool.RoisWriteHandleKey = recordable("HLT_Roi_Tau") #RoI collection recorded to EDM
+    newRoITool.InViewRoIs         = "UpdatedCaloRoI" #input RoIs from calo only step
+
     ftfIdViewsMaker                   = EventViewCreatorAlgorithm("IMFTFId")
     ftfIdViewsMaker.RoIsLink          = "roi"
-    ftfIdViewsMaker.RoITool           = ViewCreatorPreviousROITool()
-    ftfIdViewsMaker.InViewRoIs        = "TIdViewRoIs" # contract with the fast track core                                                    
+    ftfIdViewsMaker.RoITool           = newRoITool
+    ftfIdViewsMaker.InViewRoIs        = "RoiForTau"
     ftfIdViewsMaker.Views             = "TAUFTFIdViews"
     ftfIdViewsMaker.ViewFallThrough   = True
     ftfIdViewsMaker.RequireParentView = True
@@ -396,14 +412,40 @@ def tauFTFIdSequence(ConfigFlags):
     tauFastTrackIdSequence = seqAND("tauFastTrackIdSequence", [ftfIdViewsMaker, tauFTFIdInViewSequence ])
     return (tauFastTrackIdSequence, ftfIdViewsMaker, sequenceOut)
 
+def tauFTFCoreMVASequence(ConfigFlags):
+
+    RecoSequenceName = "tauFTFCoreMVAInViewSequence"
+
+    newRoITool                             = ViewCreatorFetchFromViewROITool()
+    newRoITool.RoisWriteHandleKey          = recordable("HLT_Roi_TauCore_MVA") #RoI collection recorded to EDM                                
+    newRoITool.InViewRoIs                  = "UpdatedCaloRoI" #input RoIs from calo only step        
+
+    ftfCoreMVAViewsMaker                   = EventViewCreatorAlgorithm("IMFTFCoreMVA")
+    ftfCoreMVAViewsMaker.RoIsLink          = "roi"
+    ftfCoreMVAViewsMaker.RoITool           = newRoITool
+    ftfCoreMVAViewsMaker.InViewRoIs        = "RoiForTauCore"
+    ftfCoreMVAViewsMaker.Views             = "TAUFTFCoreMVAViews"
+    ftfCoreMVAViewsMaker.ViewFallThrough   = True
+    ftfCoreMVAViewsMaker.RequireParentView = True
+    ftfCoreMVAViewsMaker.ViewNodeName      = RecoSequenceName
+
+    (tauFTFCoreMVAInViewSequence, sequenceOut) = tauCoreTrackSequence( ftfCoreMVAViewsMaker.InViewRoIs, RecoSequenceName)
+
+    tauFastTrackCoreMVASequence = seqAND("tauFastTrackCoreMVASequence", [ftfCoreMVAViewsMaker, tauFTFCoreMVAInViewSequence ])
+    return (tauFastTrackCoreMVASequence, ftfCoreMVAViewsMaker, sequenceOut)
+
 def tauFTFCoreSequence(ConfigFlags):
 
     RecoSequenceName = "tauFTFCoreInViewSequence"
 
+    newRoITool                          = ViewCreatorFetchFromViewROITool()
+    newRoITool.RoisWriteHandleKey       = recordable("HLT_Roi_TauCore") #RoI collection recorded to EDM           
+    newRoITool.InViewRoIs               = "UpdatedCaloRoI" #input RoIs from calo only step   
+
     ftfCoreViewsMaker                   = EventViewCreatorAlgorithm("IMFTFCore")
     ftfCoreViewsMaker.RoIsLink          = "roi"
-    ftfCoreViewsMaker.InViewRoIs        = "TCoreViewRoIs" # contract with the fastCalo
-    ftfCoreViewsMaker.RoITool           = ViewCreatorPreviousROITool()
+    ftfCoreViewsMaker.RoITool           = newRoITool
+    ftfCoreViewsMaker.InViewRoIs        = "RoiForTauCore"
     ftfCoreViewsMaker.Views             = "TAUFTFCoreViews"
     ftfCoreViewsMaker.ViewFallThrough   = True
     ftfCoreViewsMaker.RequireParentView = True
@@ -418,10 +460,14 @@ def tauFTFIsoSequence(ConfigFlags):
 
     RecoSequenceName = "tauFTFIsoInViewSequence"
 
+    newRoITool                         = ViewCreatorFetchFromViewROITool()
+    newRoITool.RoisWriteHandleKey      = recordable("HLT_Roi_TauIso_TauID") #RoI collection recorded to EDM
+    newRoITool.InViewRoIs              = "UpdatedTrackRoI" #input RoIs from calo only step
+
     ftfIsoViewsMaker                   = EventViewCreatorAlgorithm("IMFTFIso")
     ftfIsoViewsMaker.RoIsLink          = "roi"
-    ftfIsoViewsMaker.RoITool           = ViewCreatorPreviousROITool()
-    ftfIsoViewsMaker.InViewRoIs        = "TIsoViewRoIs" # contract with the fast track core
+    ftfIsoViewsMaker.RoITool           = newRoITool
+    ftfIsoViewsMaker.InViewRoIs        = "RoiForID"
     ftfIsoViewsMaker.Views             = "TAUFTFIsoViews"
     ftfIsoViewsMaker.ViewFallThrough   = True
     ftfIsoViewsMaker.RequireParentView = True
@@ -436,10 +482,14 @@ def tauEFSequence(ConfigFlags):
 
     RecoSequenceName = "tauEFInViewSequence"
 
+    newRoITool                     = ViewCreatorFetchFromViewROITool()
+    newRoITool.RoisWriteHandleKey  = recordable("HLT_Roi_TauID") #RoI collection recorded to EDM
+    newRoITool.InViewRoIs          = "UpdatedTrackRoI" #input RoIs from calo only step      
+
     efViewsMaker                   = EventViewCreatorAlgorithm("IMTauEF")
     efViewsMaker.RoIsLink          = "roi"  
-    efViewsMaker.RoITool           = ViewCreatorPreviousROITool()
-    efViewsMaker.InViewRoIs        = "TIsoViewRoIs" # contract with the fast track core                                                                   
+    efViewsMaker.RoITool           = newRoITool
+    efViewsMaker.InViewRoIs        = "RoiForID"
     efViewsMaker.Views             = "TAUEFViews"
     efViewsMaker.ViewFallThrough   = True
     efViewsMaker.RequireParentView = True