From 1dceeed83395ae1acfa8c86f2ee845ac5e3d6005 Mon Sep 17 00:00:00 2001
From: Tim Martin <Tim.Martin@cern.ch>
Date: Fri, 26 Jun 2020 10:45:10 +0200
Subject: [PATCH] Move ViewCreator* from ViewAlgs to DecisionHandling.
 Integrate into DecisionHandling/InputMakerForRoI

---
 .../TrigEFMissingET/doc/METMenuSequences.md   |  4 +-
 .../TrigT2CaloCommon/python/CaloDef.py        |  1 +
 .../TrigSteer/DecisionHandling/CMakeLists.txt | 11 ++-
 .../DecisionHandling}/IViewCreatorROITool.h   |  0
 .../DecisionHandling/src/InputMakerBase.cxx   |  5 +
 .../DecisionHandling/src/InputMakerForRoI.cxx | 96 ++++++++++---------
 .../DecisionHandling/src/InputMakerForRoI.h   | 16 +++-
 .../ViewCreatorCentredOnClusterROITool.cxx    |  0
 .../src/ViewCreatorCentredOnClusterROITool.h  |  8 +-
 .../ViewCreatorCentredOnIParticleROITool.cxx  |  0
 .../ViewCreatorCentredOnIParticleROITool.h    |  8 +-
 ...torCentredOnJetWithPVConstraintROITool.cxx |  0
 ...eatorCentredOnJetWithPVConstraintROITool.h |  8 +-
 .../src/ViewCreatorFSROITool.cxx              |  0
 .../src/ViewCreatorFSROITool.h                |  8 +-
 .../src/ViewCreatorFetchFromViewROITool.cxx   |  0
 .../src/ViewCreatorFetchFromViewROITool.h     |  8 +-
 .../src/ViewCreatorInitialROITool.cxx         |  0
 .../src/ViewCreatorInitialROITool.h           |  8 +-
 .../src/ViewCreatorNamedROITool.cxx           |  0
 .../src/ViewCreatorNamedROITool.h             |  8 +-
 .../src/ViewCreatorPreviousROITool.cxx        |  0
 .../src/ViewCreatorPreviousROITool.h          |  2 +-
 .../components/DecisionHandling_entries.cxx   | 19 ++++
 Trigger/TrigSteer/ViewAlgs/CMakeLists.txt     |  2 +-
 .../src/EventViewCreatorAlgorithm.cxx         | 15 ++-
 .../ViewAlgs/src/EventViewCreatorAlgorithm.h  |  2 +-
 .../src/components/ViewAlgs_entries.cxx       | 17 +---
 .../MonitorChainConfiguration.py              |  3 +-
 .../StreamingChainConfiguration.py            |  3 +-
 .../EventBuildingSequenceSetup.py             |  3 +-
 .../HLTMenuConfig/Menu/MenuComponents.py      |  1 +
 32 files changed, 148 insertions(+), 108 deletions(-)
 rename Trigger/TrigSteer/{ViewAlgs/ViewAlgs => DecisionHandling/DecisionHandling}/IViewCreatorROITool.h (100%)
 rename Trigger/TrigSteer/{ViewAlgs => DecisionHandling}/src/ViewCreatorCentredOnClusterROITool.cxx (100%)
 rename Trigger/TrigSteer/{ViewAlgs => DecisionHandling}/src/ViewCreatorCentredOnClusterROITool.h (88%)
 rename Trigger/TrigSteer/{ViewAlgs => DecisionHandling}/src/ViewCreatorCentredOnIParticleROITool.cxx (100%)
 rename Trigger/TrigSteer/{ViewAlgs => DecisionHandling}/src/ViewCreatorCentredOnIParticleROITool.h (87%)
 rename Trigger/TrigSteer/{ViewAlgs => DecisionHandling}/src/ViewCreatorCentredOnJetWithPVConstraintROITool.cxx (100%)
 rename Trigger/TrigSteer/{ViewAlgs => DecisionHandling}/src/ViewCreatorCentredOnJetWithPVConstraintROITool.h (88%)
 rename Trigger/TrigSteer/{ViewAlgs => DecisionHandling}/src/ViewCreatorFSROITool.cxx (100%)
 rename Trigger/TrigSteer/{ViewAlgs => DecisionHandling}/src/ViewCreatorFSROITool.h (85%)
 rename Trigger/TrigSteer/{ViewAlgs => DecisionHandling}/src/ViewCreatorFetchFromViewROITool.cxx (100%)
 rename Trigger/TrigSteer/{ViewAlgs => DecisionHandling}/src/ViewCreatorFetchFromViewROITool.h (89%)
 rename Trigger/TrigSteer/{ViewAlgs => DecisionHandling}/src/ViewCreatorInitialROITool.cxx (100%)
 rename Trigger/TrigSteer/{ViewAlgs => DecisionHandling}/src/ViewCreatorInitialROITool.h (83%)
 rename Trigger/TrigSteer/{ViewAlgs => DecisionHandling}/src/ViewCreatorNamedROITool.cxx (100%)
 rename Trigger/TrigSteer/{ViewAlgs => DecisionHandling}/src/ViewCreatorNamedROITool.h (82%)
 rename Trigger/TrigSteer/{ViewAlgs => DecisionHandling}/src/ViewCreatorPreviousROITool.cxx (100%)
 rename Trigger/TrigSteer/{ViewAlgs => DecisionHandling}/src/ViewCreatorPreviousROITool.h (95%)

diff --git a/Trigger/TrigAlgorithms/TrigEFMissingET/doc/METMenuSequences.md b/Trigger/TrigAlgorithms/TrigEFMissingET/doc/METMenuSequences.md
index 8e4d09e5c77..92bba3f3e4f 100644
--- a/Trigger/TrigAlgorithms/TrigEFMissingET/doc/METMenuSequences.md
+++ b/Trigger/TrigAlgorithms/TrigEFMissingET/doc/METMenuSequences.md
@@ -21,7 +21,9 @@ topSequence = AlgSequence()
 from L1Decoder.L1DecoderConfig import mapThresholdToL1DecisionCollection
 
 from DecisionHandling.DecisionHandlingConf import InputMakerForRoI
+from ViewAlgs.ViewAlgsConf import ViewCreatorInitialROITool
 InputMakerAlg = InputMakerForRoI("MetCellInputMaker", RoIsLink="initialRoI")
+InputMakerAlg.RoITool = ViewCreatorInitialROITool()
 InputMakerAlg.RoIs='METCellRoI'
 InputMakerAlg.InputMakerInputDecisions=[mapThresholdToL1DecisionCollection("XE")]
 InputMakerAlg.InputMakerOutputDecisions="InputMaker_from_L1MET"
@@ -39,7 +41,7 @@ metHypoTool.metThreshold=50
 metHypoAlg = MissingETHypoAlgMT("METHypoAlg")
 metHypoAlg.HypoTools = [metHypoTool]
 metHypoAlg.METContainerKey="HLT_MET"
-metHypoAlg.HypoInputDecisions = InputMakerAlg.InputMakerOutputDecisions[0]
+metHypoAlg.HypoInputDecisions = InputMakerAlg.InputMakerOutputDecisions
 metHypoAlg.HypoOutputDecisions = "EFMETDecisions"
 
 topSequence += metHypoAlg
diff --git a/Trigger/TrigAlgorithms/TrigT2CaloCommon/python/CaloDef.py b/Trigger/TrigAlgorithms/TrigT2CaloCommon/python/CaloDef.py
index b7354c7de4b..6b7231da24f 100644
--- a/Trigger/TrigAlgorithms/TrigT2CaloCommon/python/CaloDef.py
+++ b/Trigger/TrigAlgorithms/TrigT2CaloCommon/python/CaloDef.py
@@ -119,6 +119,7 @@ def clusterFSInputMaker( ):
   RoIs = 'FSJETRoI'
   from AthenaConfiguration.ComponentFactory import CompFactory
   InputMakerAlg = CompFactory.InputMakerForRoI("IMclusterFS", RoIsLink="initialRoI")
+  InputMakerAlg.RoITool = CompFactory.ViewCreatorInitialROITool()
   InputMakerAlg.RoIs=RoIs
   return InputMakerAlg
 
diff --git a/Trigger/TrigSteer/DecisionHandling/CMakeLists.txt b/Trigger/TrigSteer/DecisionHandling/CMakeLists.txt
index d746ccc55ce..581a7a3cee4 100644
--- a/Trigger/TrigSteer/DecisionHandling/CMakeLists.txt
+++ b/Trigger/TrigSteer/DecisionHandling/CMakeLists.txt
@@ -3,6 +3,13 @@
 # Declare the package name:
 atlas_subdir( DecisionHandling )
 
+# Declare the package's dependencies:
+atlas_depends_on_subdirs( PUBLIC
+			              Event/xAOD/xAODTracking
+                          Event/xAOD/xAODTrigCalo
+         )
+
+
 atlas_add_library( DecisionHandlingLib
                    src/*.cxx
                    PUBLIC_HEADERS DecisionHandling
@@ -11,7 +18,7 @@ atlas_add_library( DecisionHandlingLib
 
 # Component(s) in the package:
 atlas_add_component( DecisionHandling
-                     src/components/*.cxx
-                     LINK_LIBRARIES DecisionHandlingLib )
+                     src/*.cxx src/components/*.cxx
+                     LINK_LIBRARIES DecisionHandlingLib xAODTracking xAODTrigCalo )
 
 atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} )
diff --git a/Trigger/TrigSteer/ViewAlgs/ViewAlgs/IViewCreatorROITool.h b/Trigger/TrigSteer/DecisionHandling/DecisionHandling/IViewCreatorROITool.h
similarity index 100%
rename from Trigger/TrigSteer/ViewAlgs/ViewAlgs/IViewCreatorROITool.h
rename to Trigger/TrigSteer/DecisionHandling/DecisionHandling/IViewCreatorROITool.h
diff --git a/Trigger/TrigSteer/DecisionHandling/src/InputMakerBase.cxx b/Trigger/TrigSteer/DecisionHandling/src/InputMakerBase.cxx
index 960c08b4ec4..6974ee95c01 100644
--- a/Trigger/TrigSteer/DecisionHandling/src/InputMakerBase.cxx
+++ b/Trigger/TrigSteer/DecisionHandling/src/InputMakerBase.cxx
@@ -82,6 +82,11 @@ StatusCode InputMakerBase::decisionInputToOutput(const EventContext& context, SG
 
   } // end of: for ( auto inputKey: decisionInputs() )
 
+  // Print some debug messages summarising the content of the outputHandles.
+  if (msgLvl(MSG::DEBUG)) {
+    debugPrintOut(context, outputHandle);
+  }
+
   return StatusCode::SUCCESS;
 }
 
diff --git a/Trigger/TrigSteer/DecisionHandling/src/InputMakerForRoI.cxx b/Trigger/TrigSteer/DecisionHandling/src/InputMakerForRoI.cxx
index 340a2d6adc5..35851da4d77 100644
--- a/Trigger/TrigSteer/DecisionHandling/src/InputMakerForRoI.cxx
+++ b/Trigger/TrigSteer/DecisionHandling/src/InputMakerForRoI.cxx
@@ -10,10 +10,8 @@
 
 using TrigCompositeUtils::DecisionContainer;
 using TrigCompositeUtils::Decision;
-using TrigCompositeUtils::linkToPrevious;
-using TrigCompositeUtils::getLinkToPrevious;
-using TrigCompositeUtils::findLink;
 using TrigCompositeUtils::createAndStore;
+using TrigCompositeUtils::roiString;
 
 InputMakerForRoI:: InputMakerForRoI( const std::string& name, 
  ISvcLocator* pSvcLocator )    
@@ -22,7 +20,8 @@ InputMakerForRoI:: InputMakerForRoI( const std::string& name,
 
 StatusCode  InputMakerForRoI::initialize() {
   ATH_MSG_DEBUG("Will produce output RoI collections: " << m_RoIs);
-  CHECK( m_RoIs.initialize( SG::AllowEmpty ) );
+  ATH_CHECK( m_RoIs.initialize( SG::AllowEmpty ) );
+  ATH_CHECK( m_roiTool.retrieve() );
   return StatusCode::SUCCESS;
 }
 
@@ -31,58 +30,69 @@ StatusCode  InputMakerForRoI::execute( const EventContext& context ) const {
   
   // create the output decisions from the input collections
   SG::WriteHandle<DecisionContainer> outputHandle = createAndStore( decisionOutputs(), context );
-  ATH_CHECK(decisionInputToOutput(context, outputHandle));
   ATH_CHECK(outputHandle.isValid());
-  
-  // Prepare Outputs
-  std::unique_ptr<TrigRoiDescriptorCollection> oneRoIColl = std::make_unique<TrigRoiDescriptorCollection>();
-
-  // use also this:    ElementLinkVector<xAOD::MuonRoIContainer> getMuonRoILinks = obj->objectCollectionLinks<xAOD::MuonRoIContainer>("ManyMuonRoIs");
-  std::vector <ElementLink<TrigRoiDescriptorCollection> > RoIsFromDecision;  // used to check for duplicate features linked to different inputHandles
+  ATH_CHECK(decisionInputToOutput(context, outputHandle));
+  ATH_MSG_DEBUG("Merging complete");
 
   if( outputHandle->size() == 0) {
     ATH_MSG_WARNING( "Have no decisions in output handle "<< outputHandle.key() << ". Handle is valid but container is empty. "
-      << "Check why this EventViewCreatorAlgorithm was unlocked by a Filter, if the Filter then gave it no inputs.");
+      << "Check why this InputMakerForRoI was unlocked by a Filter, if the Filter then gave it no inputs.");
+  } else {
+    ATH_MSG_DEBUG( "Have output " << outputHandle.key() << " with " << outputHandle->size() << " elements" );
+  }
+
+  // Find and link to the output Decision objects the ROIs to run over
+  ATH_CHECK( m_roiTool->attachROILinks(*outputHandle, context) );
+
+  if (m_RoIs.empty()) {
+    ATH_MSG_DEBUG("No concrete output ROI collection required from this InputMaker.");
     return StatusCode::SUCCESS;
   }
 
-  ATH_MSG_DEBUG( "Got output "<< outputHandle.key()<<" with " << outputHandle->size() << " elements" );
-  // loop over output decisions in container of outputHandle, follow link to inputDecision
-  for ( auto outputDecision : *outputHandle){ 
-    ElementLinkVector<DecisionContainer> inputLinks = getLinkToPrevious(outputDecision);
-    for (auto input: inputLinks){
-      const Decision* inputDecision = *input;
-      auto roiELInfo = findLink<TrigRoiDescriptorCollection>( inputDecision, m_roisLink.value() );
-      auto roiEL = roiELInfo.link;
-      ATH_CHECK( roiEL.isValid() );
-
-      // avoid adding the same feature multiple times: check if not in container, if not add it
-      if ( find(RoIsFromDecision.begin(), RoIsFromDecision.end(), roiEL) == RoIsFromDecision.end() ) {
-        RoIsFromDecision.push_back(roiEL); // just to keep track of which we have used 
-        const TrigRoiDescriptor* roi = *roiEL;
-        ATH_MSG_DEBUG("Found RoI:" <<*roi<<" FS="<<roi->isFullscan());
-        //make a new one:
-        TrigRoiDescriptor* newroi= new TrigRoiDescriptor(*roi); //use copy constructor
-        oneRoIColl->push_back(newroi);
+  // Prepare Outputs
+  std::unique_ptr<TrigRoiDescriptorCollection> outputRoIColl = std::make_unique<TrigRoiDescriptorCollection>();
+
+  std::vector <ElementLink<TrigRoiDescriptorCollection> > RoIsFromDecision;  // used to check for duplicate RoIs 
+
+  if (m_mergeIntoSuperRoI) {
+    TrigRoiDescriptor* superRoI = new TrigRoiDescriptor();
+    superRoI->setComposite(true);
+    superRoI->manageConstituents(false);
+    outputRoIColl->push_back(superRoI);
+  }
+
+  // loop over output decisions in container of outputHandle, collect RoIs to process
+  for (const Decision* outputDecision : *outputHandle) { 
+
+    if (!outputDecision->hasObjectLink(roiString(), ClassID_traits<TrigRoiDescriptorCollection>::ID())) {
+      ATH_MSG_ERROR("No '" << roiString() << "'link was attached by the ROITool. Decision object dump:" << *outputDecision);
+      return StatusCode::FAILURE;
+    }
+    const ElementLink<TrigRoiDescriptorCollection> roiEL = outputDecision->objectLink<TrigRoiDescriptorCollection>(roiString());
+    ATH_CHECK(roiEL.isValid());
+
+    // Avoid adding the same ROI multiple times: check if not in container, if not add it
+    if ( find(RoIsFromDecision.begin(), RoIsFromDecision.end(), roiEL) == RoIsFromDecision.end() ) {
+      RoIsFromDecision.push_back(roiEL); // just to keep track of which we have used 
+      const TrigRoiDescriptor* roi = *roiEL;
+      ATH_MSG_DEBUG("Found RoI:" <<*roi<<" FS="<<roi->isFullscan());
+
+      if (m_mergeIntoSuperRoI) { // Append to the single superRoI
+        outputRoIColl->back()->push_back( roi );
+      } else { // Add individually
+        TrigRoiDescriptor* newroi = new TrigRoiDescriptor(*roi); //use copy constructor
+        outputRoIColl->push_back(newroi);
         ATH_MSG_DEBUG("Added RoI:" <<*newroi<<" FS="<<newroi->isFullscan());
       }
-    } // loop over previous input links           
+    } 
+
   } // loop over decisions      
   
-  
   // Finally, record output
-  if (m_RoIs.empty()) {
-    ATH_MSG_DEBUG("No concrete output ROI collection required from this InputMaker.");
-  } else {
-    ATH_MSG_DEBUG("Produced "<<oneRoIColl->size() <<" output RoIs");
-    auto roi_outputHandle = SG::makeHandle(m_RoIs, context);
-    ATH_CHECK( roi_outputHandle.record(std::move(oneRoIColl)) );
-  }
+  ATH_MSG_DEBUG("Produced "<<outputRoIColl->size() <<" output RoIs");
+  auto roi_outputHandle = SG::makeHandle(m_RoIs, context);
+  ATH_CHECK( roi_outputHandle.record(std::move(outputRoIColl)) );
 
-  // call base class helper method to print some debug messages summarising the content of the outputHandles.
-  if (msgLvl(MSG::DEBUG)) {
-    debugPrintOut(context, outputHandle);
-  }
 
   return StatusCode::SUCCESS;
 }
diff --git a/Trigger/TrigSteer/DecisionHandling/src/InputMakerForRoI.h b/Trigger/TrigSteer/DecisionHandling/src/InputMakerForRoI.h
index 9f5119fd46c..aa615baf368 100644
--- a/Trigger/TrigSteer/DecisionHandling/src/InputMakerForRoI.h
+++ b/Trigger/TrigSteer/DecisionHandling/src/InputMakerForRoI.h
@@ -1,8 +1,8 @@
 /*
   Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */
-#ifndef TRIGUPGRADETEST_INPUTMAKERFORROI_H
-#define TRIGUPGRADETEST_INPUTMAKERFORROI_H 
+#ifndef DESICIONHANDLING_INPUTMAKERFORROI_H
+#define DESICIONHANDLING_INPUTMAKERFORROI_H 
 
 
 #include <string>
@@ -11,6 +11,8 @@
 #include "AthContainers/ConstDataVector.h"
 #include "StoreGate/ReadHandleKeyArray.h"
 #include "TrigSteeringEvent/TrigRoiDescriptorCollection.h"
+#include "DecisionHandling/IViewCreatorROITool.h"
+
 
   /**
    * @class  InputMakerForRoI
@@ -26,10 +28,16 @@
     virtual StatusCode  execute(const EventContext&) const override;
 
   private: 
-    SG::WriteHandleKey<TrigRoiDescriptorCollection> m_RoIs {this,"RoIs", "",
+    SG::WriteHandleKey<TrigRoiDescriptorCollection> m_RoIs {this, "RoIs", "",
       "Name of the collection of ROI extrated from the input Decision Objects. Used as cocnrete starting handle for step's reconstruction."};
 
+    ToolHandle<IViewCreatorROITool> m_roiTool{this, "RoITool", "",
+      "Tool used to supply per-Decision Object the RoI which should be processed."};
+
+    Gaudi::Property<bool> m_mergeIntoSuperRoI{this, "MergeIntoSuperRoI", false,
+      "If true, the output RoIs collection will contain only one ROI, this will be a SuperRoI encompassing all individual ROIs - one from each of the input Decision Objects."};
+
   }; 
 
 
-#endif //> !TRIGUPGRADETEST_INPUTMAKERFORROI_H
+#endif //> !DESICIONHANDLING_INPUTMAKERFORROI_H
diff --git a/Trigger/TrigSteer/ViewAlgs/src/ViewCreatorCentredOnClusterROITool.cxx b/Trigger/TrigSteer/DecisionHandling/src/ViewCreatorCentredOnClusterROITool.cxx
similarity index 100%
rename from Trigger/TrigSteer/ViewAlgs/src/ViewCreatorCentredOnClusterROITool.cxx
rename to Trigger/TrigSteer/DecisionHandling/src/ViewCreatorCentredOnClusterROITool.cxx
diff --git a/Trigger/TrigSteer/ViewAlgs/src/ViewCreatorCentredOnClusterROITool.h b/Trigger/TrigSteer/DecisionHandling/src/ViewCreatorCentredOnClusterROITool.h
similarity index 88%
rename from Trigger/TrigSteer/ViewAlgs/src/ViewCreatorCentredOnClusterROITool.h
rename to Trigger/TrigSteer/DecisionHandling/src/ViewCreatorCentredOnClusterROITool.h
index a80cb49c5c1..ff39dda85c5 100644
--- a/Trigger/TrigSteer/ViewAlgs/src/ViewCreatorCentredOnClusterROITool.h
+++ b/Trigger/TrigSteer/DecisionHandling/src/ViewCreatorCentredOnClusterROITool.h
@@ -2,12 +2,12 @@
 Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 */
 
-#ifndef VIEWALGS_VIEWCREATORCENTREDONCLUSTERROITOOL_H
-#define VIEWALGS_VIEWCREATORCENTREDONCLUSTERROITOOL_H
+#ifndef DESICIONHANDLING_VIEWCREATORCENTREDONCLUSTERROITOOL_H
+#define DESICIONHANDLING_VIEWCREATORCENTREDONCLUSTERROITOOL_H
 
 #include "AthenaBaseComps/AthAlgTool.h"
 #include "StoreGate/WriteHandleKey.h"
-#include "ViewAlgs/IViewCreatorROITool.h"
+#include "DecisionHandling/IViewCreatorROITool.h"
 #include "TrigSteeringEvent/TrigRoiDescriptorCollection.h"
 #include "xAODTrigCalo/TrigEMClusterContainer.h"
 
@@ -49,4 +49,4 @@ public:
 
 };
 
-#endif //> !VIEWALGS_VIEWCREATORCENTREDONCLUSTERROITOOL_H
+#endif //> !DESICIONHANDLING_VIEWCREATORCENTREDONCLUSTERROITOOL_H
diff --git a/Trigger/TrigSteer/ViewAlgs/src/ViewCreatorCentredOnIParticleROITool.cxx b/Trigger/TrigSteer/DecisionHandling/src/ViewCreatorCentredOnIParticleROITool.cxx
similarity index 100%
rename from Trigger/TrigSteer/ViewAlgs/src/ViewCreatorCentredOnIParticleROITool.cxx
rename to Trigger/TrigSteer/DecisionHandling/src/ViewCreatorCentredOnIParticleROITool.cxx
diff --git a/Trigger/TrigSteer/ViewAlgs/src/ViewCreatorCentredOnIParticleROITool.h b/Trigger/TrigSteer/DecisionHandling/src/ViewCreatorCentredOnIParticleROITool.h
similarity index 87%
rename from Trigger/TrigSteer/ViewAlgs/src/ViewCreatorCentredOnIParticleROITool.h
rename to Trigger/TrigSteer/DecisionHandling/src/ViewCreatorCentredOnIParticleROITool.h
index d766bb72d6d..62eddd37331 100644
--- a/Trigger/TrigSteer/ViewAlgs/src/ViewCreatorCentredOnIParticleROITool.h
+++ b/Trigger/TrigSteer/DecisionHandling/src/ViewCreatorCentredOnIParticleROITool.h
@@ -2,12 +2,12 @@
 Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 */
 
-#ifndef VIEWALGS_VIEWCREATORCENTREDONIPARTICLEROITOOL_H
-#define VIEWALGS_VIEWCREATORCENTREDONIPARTICLEROITOOL_H
+#ifndef DESICIONHANDLING_VIEWCREATORCENTREDONIPARTICLEROITOOL_H
+#define DESICIONHANDLING_VIEWCREATORCENTREDONIPARTICLEROITOOL_H
 
 #include "AthenaBaseComps/AthAlgTool.h"
 #include "StoreGate/WriteHandleKey.h"
-#include "ViewAlgs/IViewCreatorROITool.h"
+#include "DecisionHandling/IViewCreatorROITool.h"
 #include "TrigSteeringEvent/TrigRoiDescriptorCollection.h"
 
 /**
@@ -48,4 +48,4 @@ public:
 
 };
 
-#endif //> !VIEWALGS_VIEWCREATORCENTREDONIPARTICLEROITOOL_H
+#endif //> !DESICIONHANDLING_VIEWCREATORCENTREDONIPARTICLEROITOOL_H
diff --git a/Trigger/TrigSteer/ViewAlgs/src/ViewCreatorCentredOnJetWithPVConstraintROITool.cxx b/Trigger/TrigSteer/DecisionHandling/src/ViewCreatorCentredOnJetWithPVConstraintROITool.cxx
similarity index 100%
rename from Trigger/TrigSteer/ViewAlgs/src/ViewCreatorCentredOnJetWithPVConstraintROITool.cxx
rename to Trigger/TrigSteer/DecisionHandling/src/ViewCreatorCentredOnJetWithPVConstraintROITool.cxx
diff --git a/Trigger/TrigSteer/ViewAlgs/src/ViewCreatorCentredOnJetWithPVConstraintROITool.h b/Trigger/TrigSteer/DecisionHandling/src/ViewCreatorCentredOnJetWithPVConstraintROITool.h
similarity index 88%
rename from Trigger/TrigSteer/ViewAlgs/src/ViewCreatorCentredOnJetWithPVConstraintROITool.h
rename to Trigger/TrigSteer/DecisionHandling/src/ViewCreatorCentredOnJetWithPVConstraintROITool.h
index cc65588dab5..da690591ae8 100644
--- a/Trigger/TrigSteer/ViewAlgs/src/ViewCreatorCentredOnJetWithPVConstraintROITool.h
+++ b/Trigger/TrigSteer/DecisionHandling/src/ViewCreatorCentredOnJetWithPVConstraintROITool.h
@@ -2,12 +2,12 @@
 Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 */
 
-#ifndef VIEWALGS_VIEWCREATORCENTREDONJETWITHPVCONSTRAINTROITOOL_H
-#define VIEWALGS_VIEWCREATORCENTREDONJETWITHPVCONSTRAINTROITOOL_H
+#ifndef DESICIONHANDLING_VIEWCREATORCENTREDONJETWITHPVCONSTRAINTROITOOL_H
+#define DESICIONHANDLING_VIEWCREATORCENTREDONJETWITHPVCONSTRAINTROITOOL_H
 
 #include "AthenaBaseComps/AthAlgTool.h"
 #include "StoreGate/WriteHandleKey.h"
-#include "ViewAlgs/IViewCreatorROITool.h"
+#include "DecisionHandling/IViewCreatorROITool.h"
 #include "TrigSteeringEvent/TrigRoiDescriptorCollection.h"
 
 #include "xAODTracking/VertexContainer.h"
@@ -62,4 +62,4 @@ public:
 
 };
 
-#endif //> !VIEWALGS_VIEWCREATORCENTREDONJETWITHPVCONSTRAINTROITOOL_H
+#endif //> !DESICIONHANDLING_VIEWCREATORCENTREDONJETWITHPVCONSTRAINTROITOOL_H
diff --git a/Trigger/TrigSteer/ViewAlgs/src/ViewCreatorFSROITool.cxx b/Trigger/TrigSteer/DecisionHandling/src/ViewCreatorFSROITool.cxx
similarity index 100%
rename from Trigger/TrigSteer/ViewAlgs/src/ViewCreatorFSROITool.cxx
rename to Trigger/TrigSteer/DecisionHandling/src/ViewCreatorFSROITool.cxx
diff --git a/Trigger/TrigSteer/ViewAlgs/src/ViewCreatorFSROITool.h b/Trigger/TrigSteer/DecisionHandling/src/ViewCreatorFSROITool.h
similarity index 85%
rename from Trigger/TrigSteer/ViewAlgs/src/ViewCreatorFSROITool.h
rename to Trigger/TrigSteer/DecisionHandling/src/ViewCreatorFSROITool.h
index c76fb898084..73396ecbd12 100644
--- a/Trigger/TrigSteer/ViewAlgs/src/ViewCreatorFSROITool.h
+++ b/Trigger/TrigSteer/DecisionHandling/src/ViewCreatorFSROITool.h
@@ -2,12 +2,12 @@
 Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 */
 
-#ifndef VIEWALGS_VIEWCREATORFSROITOOL_H
-#define VIEWALGS_VIEWCREATORFSROITOOL_H
+#ifndef DESICIONHANDLING_VIEWCREATORFSROITOOL_H
+#define DESICIONHANDLING_VIEWCREATORFSROITOOL_H
 
 #include "AthenaBaseComps/AthAlgTool.h"
 #include "StoreGate/WriteHandleKey.h"
-#include "ViewAlgs/IViewCreatorROITool.h"
+#include "DecisionHandling/IViewCreatorROITool.h"
 #include "TrigSteeringEvent/TrigRoiDescriptorCollection.h"
 
 /**
@@ -39,4 +39,4 @@ public:
 
 };
 
-#endif //> !VIEWALGS_VIEWCREATORFSROITOOL_H
+#endif //> !DESICIONHANDLING_VIEWCREATORFSROITOOL_H
diff --git a/Trigger/TrigSteer/ViewAlgs/src/ViewCreatorFetchFromViewROITool.cxx b/Trigger/TrigSteer/DecisionHandling/src/ViewCreatorFetchFromViewROITool.cxx
similarity index 100%
rename from Trigger/TrigSteer/ViewAlgs/src/ViewCreatorFetchFromViewROITool.cxx
rename to Trigger/TrigSteer/DecisionHandling/src/ViewCreatorFetchFromViewROITool.cxx
diff --git a/Trigger/TrigSteer/ViewAlgs/src/ViewCreatorFetchFromViewROITool.h b/Trigger/TrigSteer/DecisionHandling/src/ViewCreatorFetchFromViewROITool.h
similarity index 89%
rename from Trigger/TrigSteer/ViewAlgs/src/ViewCreatorFetchFromViewROITool.h
rename to Trigger/TrigSteer/DecisionHandling/src/ViewCreatorFetchFromViewROITool.h
index cf62f0d8aec..705a7a814a0 100644
--- a/Trigger/TrigSteer/ViewAlgs/src/ViewCreatorFetchFromViewROITool.h
+++ b/Trigger/TrigSteer/DecisionHandling/src/ViewCreatorFetchFromViewROITool.h
@@ -2,12 +2,12 @@
 Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 */
 
-#ifndef VIEWALGS_VIEWCREATORFETCHFROMVIEWROITOOL_H
-#define VIEWALGS_VIEWCREATORFETCHFROMVIEWROITOOL_H
+#ifndef DESICIONHANDLING_VIEWCREATORFETCHFROMVIEWROITOOL_H
+#define DESICIONHANDLING_VIEWCREATORFETCHFROMVIEWROITOOL_H
 
 #include "AthenaBaseComps/AthAlgTool.h"
 #include "StoreGate/WriteHandleKey.h"
-#include "ViewAlgs/IViewCreatorROITool.h"
+#include "DecisionHandling/IViewCreatorROITool.h"
 #include "TrigSteeringEvent/TrigRoiDescriptorCollection.h"
 
 /**
@@ -47,4 +47,4 @@ public:
 
 };
 
-#endif //> !VIEWALGS_VIEWCREATORFETCHFROMVIEWROITOOL_H
+#endif //> !DESICIONHANDLING_VIEWCREATORFETCHFROMVIEWROITOOL_H
diff --git a/Trigger/TrigSteer/ViewAlgs/src/ViewCreatorInitialROITool.cxx b/Trigger/TrigSteer/DecisionHandling/src/ViewCreatorInitialROITool.cxx
similarity index 100%
rename from Trigger/TrigSteer/ViewAlgs/src/ViewCreatorInitialROITool.cxx
rename to Trigger/TrigSteer/DecisionHandling/src/ViewCreatorInitialROITool.cxx
diff --git a/Trigger/TrigSteer/ViewAlgs/src/ViewCreatorInitialROITool.h b/Trigger/TrigSteer/DecisionHandling/src/ViewCreatorInitialROITool.h
similarity index 83%
rename from Trigger/TrigSteer/ViewAlgs/src/ViewCreatorInitialROITool.h
rename to Trigger/TrigSteer/DecisionHandling/src/ViewCreatorInitialROITool.h
index bb297e595e3..81f2e35843b 100644
--- a/Trigger/TrigSteer/ViewAlgs/src/ViewCreatorInitialROITool.h
+++ b/Trigger/TrigSteer/DecisionHandling/src/ViewCreatorInitialROITool.h
@@ -2,11 +2,11 @@
 Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 */
 
-#ifndef VIEWALGS_VIEWCREATORINITIALROITOOL_H
-#define VIEWALGS_VIEWCREATORINITIALROITOOL_H
+#ifndef DESICIONHANDLING_VIEWCREATORINITIALROITOOL_H
+#define DESICIONHANDLING_VIEWCREATORINITIALROITOOL_H
 
 #include "AthenaBaseComps/AthAlgTool.h"
-#include "ViewAlgs/IViewCreatorROITool.h"
+#include "DecisionHandling/IViewCreatorROITool.h"
 
 /**
  * @class ViewCreatorInitialROITool
@@ -32,4 +32,4 @@ public:
 
 };
 
-#endif //> !VIEWALGS_VIEWCREATORINITIALROITOOL_H
+#endif //> !DESICIONHANDLING_VIEWCREATORINITIALROITOOL_H
diff --git a/Trigger/TrigSteer/ViewAlgs/src/ViewCreatorNamedROITool.cxx b/Trigger/TrigSteer/DecisionHandling/src/ViewCreatorNamedROITool.cxx
similarity index 100%
rename from Trigger/TrigSteer/ViewAlgs/src/ViewCreatorNamedROITool.cxx
rename to Trigger/TrigSteer/DecisionHandling/src/ViewCreatorNamedROITool.cxx
diff --git a/Trigger/TrigSteer/ViewAlgs/src/ViewCreatorNamedROITool.h b/Trigger/TrigSteer/DecisionHandling/src/ViewCreatorNamedROITool.h
similarity index 82%
rename from Trigger/TrigSteer/ViewAlgs/src/ViewCreatorNamedROITool.h
rename to Trigger/TrigSteer/DecisionHandling/src/ViewCreatorNamedROITool.h
index 34d9849cef1..1bc3c37da15 100644
--- a/Trigger/TrigSteer/ViewAlgs/src/ViewCreatorNamedROITool.h
+++ b/Trigger/TrigSteer/DecisionHandling/src/ViewCreatorNamedROITool.h
@@ -2,11 +2,11 @@
 Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 */
 
-#ifndef VIEWALGS_VIEWCREATORNAMEDROITOOL_H
-#define VIEWALGS_VIEWCREATORNAMEDROITOOL_H
+#ifndef DESICIONHANDLING_VIEWCREATORNAMEDROITOOL_H
+#define DESICIONHANDLING_VIEWCREATORNAMEDROITOOL_H
 
 #include "AthenaBaseComps/AthAlgTool.h"
-#include "ViewAlgs/IViewCreatorROITool.h"
+#include "DecisionHandling/IViewCreatorROITool.h"
 
 /**
  * @class ViewCreatorNamedROITool
@@ -32,4 +32,4 @@ public:
 
 };
 
-#endif //> !VIEWALGS_VIEWCREATORNAMEDROITOOL_H
+#endif //> !DESICIONHANDLING_VIEWCREATORNAMEDROITOOL_H
diff --git a/Trigger/TrigSteer/ViewAlgs/src/ViewCreatorPreviousROITool.cxx b/Trigger/TrigSteer/DecisionHandling/src/ViewCreatorPreviousROITool.cxx
similarity index 100%
rename from Trigger/TrigSteer/ViewAlgs/src/ViewCreatorPreviousROITool.cxx
rename to Trigger/TrigSteer/DecisionHandling/src/ViewCreatorPreviousROITool.cxx
diff --git a/Trigger/TrigSteer/ViewAlgs/src/ViewCreatorPreviousROITool.h b/Trigger/TrigSteer/DecisionHandling/src/ViewCreatorPreviousROITool.h
similarity index 95%
rename from Trigger/TrigSteer/ViewAlgs/src/ViewCreatorPreviousROITool.h
rename to Trigger/TrigSteer/DecisionHandling/src/ViewCreatorPreviousROITool.h
index 3f8d022df75..95cdb00d630 100644
--- a/Trigger/TrigSteer/ViewAlgs/src/ViewCreatorPreviousROITool.h
+++ b/Trigger/TrigSteer/DecisionHandling/src/ViewCreatorPreviousROITool.h
@@ -6,7 +6,7 @@ Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 #define VIEWALGS_VIEWCREATORPREVIOUSROITOOL_H
 
 #include "AthenaBaseComps/AthAlgTool.h"
-#include "ViewAlgs/IViewCreatorROITool.h"
+#include "DecisionHandling/IViewCreatorROITool.h"
 
 /**
  * @class ViewCreatorPreviousROITool
diff --git a/Trigger/TrigSteer/DecisionHandling/src/components/DecisionHandling_entries.cxx b/Trigger/TrigSteer/DecisionHandling/src/components/DecisionHandling_entries.cxx
index e891afb5dad..7a1f0d36154 100644
--- a/Trigger/TrigSteer/DecisionHandling/src/components/DecisionHandling_entries.cxx
+++ b/Trigger/TrigSteer/DecisionHandling/src/components/DecisionHandling_entries.cxx
@@ -6,6 +6,15 @@
 #include "../DeltaRRoIComboHypoTool.h"
 #include "DecisionHandling/ComboHypoToolBase.h"
 
+#include "../ViewCreatorInitialROITool.h"
+#include "../ViewCreatorPreviousROITool.h"
+#include "../ViewCreatorNamedROITool.h"
+#include "../ViewCreatorFSROITool.h"
+#include "../ViewCreatorFetchFromViewROITool.h"
+#include "../ViewCreatorCentredOnIParticleROITool.h"
+#include "../ViewCreatorCentredOnClusterROITool.h"
+#include "../ViewCreatorCentredOnJetWithPVConstraintROITool.h"
+
 DECLARE_COMPONENT( DumpDecisions )
 DECLARE_COMPONENT( RoRSeqFilter )
 DECLARE_COMPONENT( TriggerSummaryAlg )
@@ -14,4 +23,14 @@ DECLARE_COMPONENT( InputMakerForRoI )
 DECLARE_COMPONENT( ComboHypoToolBase )
 DECLARE_COMPONENT( DeltaRRoIComboHypoTool )
 
+DECLARE_COMPONENT( ViewCreatorInitialROITool )
+DECLARE_COMPONENT( ViewCreatorPreviousROITool )
+DECLARE_COMPONENT( ViewCreatorNamedROITool )
+DECLARE_COMPONENT( ViewCreatorFSROITool )
+DECLARE_COMPONENT( ViewCreatorFetchFromViewROITool )
+DECLARE_COMPONENT( ViewCreatorCentredOnIParticleROITool )
+DECLARE_COMPONENT( ViewCreatorCentredOnClusterROITool )
+DECLARE_COMPONENT( ViewCreatorCentredOnJetWithPVConstraintROITool )
+
+
 
diff --git a/Trigger/TrigSteer/ViewAlgs/CMakeLists.txt b/Trigger/TrigSteer/ViewAlgs/CMakeLists.txt
index 811d9b89b0b..e2c5914873f 100644
--- a/Trigger/TrigSteer/ViewAlgs/CMakeLists.txt
+++ b/Trigger/TrigSteer/ViewAlgs/CMakeLists.txt
@@ -11,4 +11,4 @@ atlas_add_library( ViewAlgsLib
 
 atlas_add_component( ViewAlgs
                      src/*.cxx src/components/*.cxx
-                     LINK_LIBRARIES AthViews AthenaBaseComps CxxUtils DecisionHandlingLib MuonCombinedEvent StoreGateLib TrigSteeringEvent ViewAlgsLib xAODJet xAODMuon xAODTracking xAODTrigCalo )
+                     LINK_LIBRARIES AthViews AthenaBaseComps CxxUtils DecisionHandlingLib MuonCombinedEvent StoreGateLib TrigSteeringEvent ViewAlgsLib xAODJet xAODMuon  )
diff --git a/Trigger/TrigSteer/ViewAlgs/src/EventViewCreatorAlgorithm.cxx b/Trigger/TrigSteer/ViewAlgs/src/EventViewCreatorAlgorithm.cxx
index 84292ade21b..11c165c4d7f 100644
--- a/Trigger/TrigSteer/ViewAlgs/src/EventViewCreatorAlgorithm.cxx
+++ b/Trigger/TrigSteer/ViewAlgs/src/EventViewCreatorAlgorithm.cxx
@@ -55,11 +55,13 @@ StatusCode EventViewCreatorAlgorithm::execute( const EventContext& context ) con
   const DecisionContainer* cachedViews = nullptr;
   if (!m_cachedViewsKey.empty()) {
     SG::ReadHandle<DecisionContainer> cachedRH = SG::makeHandle(m_cachedViewsKey, context);
-    ATH_CHECK(cachedRH.isValid());
-    cachedViews = cachedRH.ptr();
+    // Even if the handle is configured, this precursor EventViewCreatorAlg may not have executed in a given event
+    if (cachedRH.isValid()) {
+      cachedViews = cachedRH.ptr();
+    }
   }
 
-  // Keep track of the ROIs we spwan a View for, do not spawn duplicates.
+  // Keep track of the ROIs we spawn a View for, do not spawn duplicates.
   // For many cases, this will be covered by the Merging operation preceding this.
   ElementLinkVector<TrigRoiDescriptorCollection> RoIsFromDecision;
 
@@ -83,7 +85,7 @@ StatusCode EventViewCreatorAlgorithm::execute( const EventContext& context ) con
     ATH_CHECK(roiEL.isValid());
 
     // We do one of three things here, either... 
-    // a) We realise that an identically configured past EVCA has already run a View on an equivilant ROI. If so we can re-use this.
+    // a) We realise that an identically configured past EVCA has already run a View on an equivalent ROI. If so we can re-use this.
     // b) We encounter a new ROI and hence need to spawn a new view.
     // c) We encounter a ROI that we have already seen in looping over this outputHandle, we can re-use a view.
       
@@ -96,7 +98,7 @@ StatusCode EventViewCreatorAlgorithm::execute( const EventContext& context ) con
 
     if (useCached) {
 
-      // Re-use an aready processed view from a previously executed EVCA instance
+      // Re-use an already processed view from a previously executed EVCA instance
       const Decision* cached = cachedViews->at(cachedIndex);
       ElementLink<ViewContainer> cachedViewEL = cached->objectLink<ViewContainer>(viewString());
       ElementLink<TrigRoiDescriptorCollection> cachedROIEL = cached->objectLink<TrigRoiDescriptorCollection>(roiString());
@@ -159,9 +161,6 @@ StatusCode EventViewCreatorAlgorithm::execute( const EventContext& context ) con
     getScheduler(),                                 // Scheduler to launch with
     m_reverseViews ) );                             // Debug option
   
-  if (msgLvl(MSG::DEBUG)) {
-    debugPrintOut(context, outputHandle);
-  }
   return StatusCode::SUCCESS;
 }
 
diff --git a/Trigger/TrigSteer/ViewAlgs/src/EventViewCreatorAlgorithm.h b/Trigger/TrigSteer/ViewAlgs/src/EventViewCreatorAlgorithm.h
index 4e54f683974..b393b3b8efc 100644
--- a/Trigger/TrigSteer/ViewAlgs/src/EventViewCreatorAlgorithm.h
+++ b/Trigger/TrigSteer/ViewAlgs/src/EventViewCreatorAlgorithm.h
@@ -21,7 +21,7 @@
 #include "GaudiKernel/IScheduler.h"
 #include "AthViews/View.h"
 
-#include "ViewAlgs/IViewCreatorROITool.h"
+#include "DecisionHandling/IViewCreatorROITool.h"
 
 // Muon specifics
 #include "xAODMuon/MuonContainer.h"
diff --git a/Trigger/TrigSteer/ViewAlgs/src/components/ViewAlgs_entries.cxx b/Trigger/TrigSteer/ViewAlgs/src/components/ViewAlgs_entries.cxx
index ba3ed577af4..8f1bca845a4 100644
--- a/Trigger/TrigSteer/ViewAlgs/src/components/ViewAlgs_entries.cxx
+++ b/Trigger/TrigSteer/ViewAlgs/src/components/ViewAlgs_entries.cxx
@@ -2,23 +2,8 @@
 
 #include "../EventViewCreatorAlgorithm.h"
 #include "../MergeViews.h"
-#include "../ViewCreatorInitialROITool.h"
-#include "../ViewCreatorPreviousROITool.h"
-#include "../ViewCreatorNamedROITool.h"
-#include "../ViewCreatorFSROITool.h"
-#include "../ViewCreatorFetchFromViewROITool.h"
-#include "../ViewCreatorCentredOnIParticleROITool.h"
-#include "../ViewCreatorCentredOnClusterROITool.h"
-#include "../ViewCreatorCentredOnJetWithPVConstraintROITool.h"
+
 
 DECLARE_COMPONENT( EventViewCreatorAlgorithm )
 DECLARE_COMPONENT( MergeViews )
-DECLARE_COMPONENT( ViewCreatorInitialROITool )
-DECLARE_COMPONENT( ViewCreatorPreviousROITool )
-DECLARE_COMPONENT( ViewCreatorNamedROITool )
-DECLARE_COMPONENT( ViewCreatorFSROITool )
-DECLARE_COMPONENT( ViewCreatorFetchFromViewROITool )
-DECLARE_COMPONENT( ViewCreatorCentredOnIParticleROITool )
-DECLARE_COMPONENT( ViewCreatorCentredOnClusterROITool )
-DECLARE_COMPONENT( ViewCreatorCentredOnJetWithPVConstraintROITool )
 
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/CalibCosmicMon/MonitorChainConfiguration.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/CalibCosmicMon/MonitorChainConfiguration.py
index 615dd21fd63..1f183f1ad18 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/CalibCosmicMon/MonitorChainConfiguration.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/CalibCosmicMon/MonitorChainConfiguration.py
@@ -6,7 +6,7 @@ log = logging.getLogger("TriggerMenuMT.HLTMenuConfig.CalibCosmicMon.MonitorChain
 
 from TriggerMenuMT.HLTMenuConfig.Menu.ChainConfigurationBase import ChainConfigurationBase
 from TriggerMenuMT.HLTMenuConfig.Menu.MenuComponents import ChainStep, MenuSequence
-from DecisionHandling.DecisionHandlingConf import InputMakerForRoI
+from DecisionHandling.DecisionHandlingConf import InputMakerForRoI, ViewCreatorInitialROITool
 from AthenaCommon.CFElements import seqAND
 from TrigGenericAlgs.TrigGenericAlgsConfig import TimeBurnerCfg, TimeBurnerHypoToolGen
 from AthenaConfiguration.ComponentAccumulator import conf2toConfigurable
@@ -46,6 +46,7 @@ class MonitorChainConfiguration(ChainConfigurationBase):
     def getTimeBurnerStep(self):
         # Input maker - required by the framework, but inputs don't matter for TimeBurner
         inputMaker = InputMakerForRoI("IM_TimeBurner")
+        inputMaker.RoITool = ViewCreatorInitialROITool()
         inputMaker.RoIs="TimeBurnerInputRoIs"
         inputMakerSeq = seqAND("TimeBurnerSequence", [inputMaker])
 
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/CalibCosmicMon/StreamingChainConfiguration.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/CalibCosmicMon/StreamingChainConfiguration.py
index c8ffd0373c1..e7f587269df 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/CalibCosmicMon/StreamingChainConfiguration.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/CalibCosmicMon/StreamingChainConfiguration.py
@@ -8,7 +8,7 @@ from TriggerMenuMT.HLTMenuConfig.Menu.ChainConfigurationBase import ChainConfigu
 from TrigStreamerHypo.TrigStreamerHypoConfigMT import StreamerHypoToolMTgenerator
 from TrigStreamerHypo.TrigStreamerHypoConf import TrigStreamerHypoAlgMT
 from TriggerMenuMT.HLTMenuConfig.Menu.MenuComponents import MenuSequence
-from DecisionHandling.DecisionHandlingConf import InputMakerForRoI
+from DecisionHandling.DecisionHandlingConf import InputMakerForRoI, ViewCreatorInitialROITool
 from AthenaCommon.CFElements import seqAND
 
 
@@ -23,6 +23,7 @@ def StreamingSequenceCfg( flags ):
 def StreamingMenuSequence():
 
     inputMakerAlg = InputMakerForRoI("IM_streamerInputMaker")
+    inputMakerAlg.RoITool = ViewCreatorInitialROITool()
     inputMakerAlg.RoIs="streamerInputRoIs"
     streamingSequence = seqAND("streamerSequence", [inputMakerAlg])
 
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/CommonSequences/EventBuildingSequenceSetup.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/CommonSequences/EventBuildingSequenceSetup.py
index cf8f4b3dec8..153952c628e 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/CommonSequences/EventBuildingSequenceSetup.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/CommonSequences/EventBuildingSequenceSetup.py
@@ -7,7 +7,7 @@ from TriggerMenuMT.HLTMenuConfig.Menu import EventBuildingInfo
 from TriggerMenuMT.HLTMenuConfig.Menu.MenuComponents import ChainStep, MenuSequence
 from TrigPartialEventBuilding.TrigPartialEventBuildingConf import PEBInfoWriterAlg
 from TrigPartialEventBuilding.TrigPartialEventBuildingConfig import StaticPEBInfoWriterToolCfg, RoIPEBInfoWriterToolCfg
-from DecisionHandling.DecisionHandlingConf import InputMakerForRoI
+from DecisionHandling.DecisionHandlingConf import InputMakerForRoI, ViewCreatorInitialROITool
 from libpyeformat_helper import SubDetector
 from AthenaCommon.CFElements import seqAND, findAlgorithm
 from AthenaCommon.Logging import logging
@@ -104,6 +104,7 @@ def pebInfoWriterTool(name, eventBuildType):
 
 def pebInputMaker(eventBuildType):
     maker = InputMakerForRoI("IMpeb_"+eventBuildType)
+    maker.RoITool = ViewCreatorInitialROITool()
     maker.RoIs = "pebInputRoI_" + eventBuildType
     return maker
 
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/MenuComponents.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/MenuComponents.py
index 74c80a054fb..6d322b94600 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/MenuComponents.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/MenuComponents.py
@@ -320,6 +320,7 @@ class EmptyMenuSequence(object):
     def __init__(self, name):
         self._name = name
         Maker = CompFactory.InputMakerForRoI("IM"+name)
+        Maker.RoITool = CompFactory.ViewCreatorInitialROITool()
         self._maker       = InputMakerNode( Alg = Maker )
         self._seed=''
         self._sequence    = Node( Alg = seqAND(name, [Maker]))
-- 
GitLab