diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/CMakeLists.txt b/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/CMakeLists.txt
index 788cdaa1d065027272466aa76e2e39413965efc3..dd595bcefd8c62fc6700fdf9b941517a77066d6c 100644
--- a/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/CMakeLists.txt
+++ b/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/CMakeLists.txt
@@ -45,6 +45,5 @@ atlas_add_component( MuonTrackMonitoring
                      LINK_LIBRARIES ${ROOT_LIBRARIES} ${EIGEN_LIBRARIES} AthenaMonitoringLib StoreGateLib SGtests GeoPrimitives EventPrimitives FourMomUtils xAODEventInfo xAODMuon xAODTracking GaudiKernel MuonIdHelpersLib MuonPrepRawData MuonRecHelperToolsLib MuonRecToolInterfaces MuonHistUtils MuonResonanceToolsLib MuonSelectorToolsLib TrkEventPrimitives TrkParameters TrkTrack TrkToolInterfaces TrkValHistUtils TrigConfL1Data TrkMeasurementBase TrkMultiComponentStateOnSurface )
 
 # Install files from the package:
-atlas_install_headers( MuonTrackMonitoring )
 atlas_install_python_modules( python/*.py )
 
diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/python/MuonTrackMonitorAlgorithm.py b/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/python/MuonTrackMonitorAlgorithm.py
index 86c8791e77ff8c643d005bae86b0ebcd715f7cb1..17a556f53384d59e7ad59a9381badecf759662ca 100644
--- a/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/python/MuonTrackMonitorAlgorithm.py
+++ b/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/python/MuonTrackMonitorAlgorithm.py
@@ -16,7 +16,7 @@ def MuonTrackConfig(inputFlags, isOld=False):
 
     helper = AthMonitorCfgHelper(inputFlags, "MuonTrackMonitoringConfig")
 
-    muonTrackAlg = helper.addAlgorithm(MuonTrackMonitorAlgorithm, "MuonTrackMonitorAlgorithmAlg")
+    muonTrackAlg = helper.addAlgorithm(MuonTrackMonitorAlgorithm, "MuonTrackMonitorAlgorithm")
 
     myGroup = helper.addGroup(muonTrackAlg, "MuonTrackMonitorAlgorithm", "MuonPhysics/")
 
diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/src/MuonTrackMonitorAlgorithm.cxx b/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/src/MuonTrackMonitorAlgorithm.cxx
index a3d50de4a89eeb792c9021cac919858303768ca4..90589d86d63a2a347f5d42511cc8627a5de3642e 100644
--- a/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/src/MuonTrackMonitorAlgorithm.cxx
+++ b/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/src/MuonTrackMonitorAlgorithm.cxx
@@ -3,7 +3,7 @@
 	2020 Matthias Schott - Uni Mainz
 */
 
-#include "MuonTrackMonitoring/MuonTrackMonitorAlgorithm.h"
+#include "MuonTrackMonitorAlgorithm.h"
 
 MuonTrackMonitorAlgorithm::MuonTrackMonitorAlgorithm (const std::string& name, ISvcLocator* pSvcLocator)
     :AthMonitorAlgorithm(name,pSvcLocator){}
@@ -11,8 +11,9 @@ MuonTrackMonitorAlgorithm::MuonTrackMonitorAlgorithm (const std::string& name, I
 
 StatusCode MuonTrackMonitorAlgorithm::initialize()
 {
+	ATH_CHECK(AthMonitorAlgorithm::initialize());
 	ATH_CHECK(m_MuonContainerKey.initialize());
-	return AthMonitorAlgorithm::initialize();
+	return StatusCode::SUCCESS;
 }
 
 StatusCode MuonTrackMonitorAlgorithm::FillMuonInformation(std::string sIdentifier, std::vector<const xAOD::Muon*>	&vecMuons) const 
@@ -103,7 +104,7 @@ StatusCode MuonTrackMonitorAlgorithm::FillMuonInformation(std::string sIdentifie
 }
 	
 //========================================================================================================
-StatusCode	MuonTrackMonitorAlgorithm::analyseLowLevelMuonFeatures(const xAOD::MuonContainer* Muons, int lumiBlockID) const 
+StatusCode	MuonTrackMonitorAlgorithm::analyseLowLevelMuonFeatures(const xAOD::MuonContainer& Muons, uint32_t lumiBlockID) const 
 {
 	using namespace Monitored;
 	/// Declaring all variables that are initialized via Python will be plotted
@@ -125,7 +126,7 @@ StatusCode	MuonTrackMonitorAlgorithm::analyseLowLevelMuonFeatures(const xAOD::Mu
 	auto	MSLumiBlockNumberOfSegments = Monitored::Scalar<float>("MSLumiBlockNumberOfSegments", 0);
 
 	/// Loop over all muons
-	for(const auto& muon : *Muons) {
+	for(const auto& muon : Muons) {
 		xAOD::Muon::Quality muonQuality	= muon->quality();
 		xAOD::Muon::MuonType muonType =	muon->muonType();
 		xAOD::Muon::Author muonAuthor =	muon->author();
@@ -171,7 +172,7 @@ StatusCode	MuonTrackMonitorAlgorithm::analyseLowLevelMuonFeatures(const xAOD::Mu
 
 
 //========================================================================================================
-StatusCode	MuonTrackMonitorAlgorithm::analyseCombinedTracks(const xAOD::MuonContainer* Muons, int lumiBlockID) const {
+StatusCode	MuonTrackMonitorAlgorithm::analyseCombinedTracks(const xAOD::MuonContainer& Muons, uint32_t lumiBlockID) const {
 	using namespace Monitored;
 
 	/// Declaring all variables that are initialized via Python will be plotted
@@ -188,7 +189,7 @@ StatusCode	MuonTrackMonitorAlgorithm::analyseCombinedTracks(const xAOD::MuonCont
 	std::vector<const xAOD::Muon*>	vecCombinedMuonsHighPT;
 	std::vector<const xAOD::Muon*>	vecCombinedMuons;
 
-	for(const auto& muon : *Muons) {
+	for(const auto& muon : Muons) {
 		xAOD::Muon::MuonType muonType = muon->muonType();
 		if (muonType==xAOD::Muon::Combined) {
 			CBMuonLumiBlock = lumiBlockID;
@@ -222,7 +223,7 @@ StatusCode	MuonTrackMonitorAlgorithm::analyseCombinedTracks(const xAOD::MuonCont
 
 		bool isTriggered = false;
 		for(const auto& chain : m_hltchainList){
-			if(getTrigDecisionTool()->isPassed( chain ) ){
+			if(!getTrigDecisionTool().empty() && getTrigDecisionTool()->isPassed( chain ) ){
 				isTriggered = true;
 			}
 		}
@@ -239,7 +240,7 @@ StatusCode	MuonTrackMonitorAlgorithm::analyseCombinedTracks(const xAOD::MuonCont
 
 
 //========================================================================================================
-StatusCode	MuonTrackMonitorAlgorithm::analyseZBosonCandidates(const xAOD::MuonContainer* Muons, int lumiBlockID) const {
+StatusCode	MuonTrackMonitorAlgorithm::analyseZBosonCandidates(const xAOD::MuonContainer& Muons, uint32_t lumiBlockID) const {
 	using namespace Monitored;
 
 	/// Declaring all variables that are initialized via Python will be plotted
@@ -257,7 +258,7 @@ StatusCode	MuonTrackMonitorAlgorithm::analyseZBosonCandidates(const xAOD::MuonCo
 	std::vector<const xAOD::Muon*>	vecMuons_ZBoson_Candidates;
 	
 	/// Select Muons Relevant for Z
-	for(const auto& muon : *Muons) {
+	for(const auto& muon : Muons) {
 		xAOD::Muon::MuonType muonType = muon->muonType();
 		if (muonType==xAOD::Muon::Combined) {
 			const xAOD::TrackParticle *cbtp = nullptr;
@@ -318,7 +319,7 @@ StatusCode	MuonTrackMonitorAlgorithm::analyseZBosonCandidates(const xAOD::MuonCo
 
 
 //========================================================================================================
-StatusCode	MuonTrackMonitorAlgorithm::analyseJPsiCandidates(const xAOD::MuonContainer* Muons, int lumiBlockID) const {
+StatusCode	MuonTrackMonitorAlgorithm::analyseJPsiCandidates(const xAOD::MuonContainer& Muons, uint32_t lumiBlockID) const {
 	using namespace Monitored;
 
 	/// Declaring all variables that are initialized via Python will be plotted
@@ -336,7 +337,7 @@ StatusCode	MuonTrackMonitorAlgorithm::analyseJPsiCandidates(const xAOD::MuonCont
 	std::vector<const xAOD::Muon*>	vecMuons_JPsi_Candidates;
 	
 	/// JPsi Muon Selection
-	for(const auto& muon : *Muons) {
+	for(const auto& muon : Muons) {
 		xAOD::Muon::MuonType	muonType	=	muon->muonType();
 		if (muonType==xAOD::Muon::Combined) {
 			const xAOD::TrackParticle *cbtp = nullptr;
@@ -401,20 +402,18 @@ StatusCode MuonTrackMonitorAlgorithm::fillHistograms(const EventContext& ctx) co
 	using namespace Monitored;
 
 	//Declare the quantities which should be monitored
-	auto run = Monitored::Scalar<int>("run", 0);
-	run = GetEventInfo(ctx)->runNumber();
-	
-	const xAOD::EventInfo* eventInfo = nullptr;
-	ATH_CHECK(evtStore()->retrieve(eventInfo));
-	int lumiBlockID = (int)eventInfo->lumiBlock();
+	uint32_t lumiBlockID = GetEventInfo(ctx)->lumiBlock();
 
-	const xAOD::MuonContainer* Muons = nullptr;
-	ATH_CHECK(evtStore()->retrieve(Muons, "Muons"));
+	SG::ReadHandle<xAOD::MuonContainer> Muons{m_MuonContainerKey, ctx};
+	if (ATH_UNLIKELY(! Muons.isValid())) {
+		ATH_MSG_ERROR("Unable to retrieve muon container " << m_MuonContainerKey);
+		return StatusCode::FAILURE;
+	}
 
-	ATH_CHECK( analyseLowLevelMuonFeatures(Muons, lumiBlockID) );
-	ATH_CHECK( analyseCombinedTracks(Muons, lumiBlockID) );
-	ATH_CHECK( analyseZBosonCandidates(Muons, lumiBlockID) );
-	ATH_CHECK( analyseJPsiCandidates(Muons, lumiBlockID) );
+	ATH_CHECK( analyseLowLevelMuonFeatures(*Muons, lumiBlockID) );
+	ATH_CHECK( analyseCombinedTracks(*Muons, lumiBlockID) );
+	ATH_CHECK( analyseZBosonCandidates(*Muons, lumiBlockID) );
+	ATH_CHECK( analyseJPsiCandidates(*Muons, lumiBlockID) );
 
 	return StatusCode::SUCCESS;
 }
diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/MuonTrackMonitoring/MuonTrackMonitorAlgorithm.h b/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/src/MuonTrackMonitorAlgorithm.h
similarity index 91%
rename from MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/MuonTrackMonitoring/MuonTrackMonitorAlgorithm.h
rename to MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/src/MuonTrackMonitorAlgorithm.h
index 2787d39214e1b6f78fbbc1605ba5da87e2ddaaca..95e056cdf1499f678035ea1cc44f10cceff650ea 100644
--- a/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/MuonTrackMonitoring/MuonTrackMonitorAlgorithm.h
+++ b/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/src/MuonTrackMonitorAlgorithm.h
@@ -37,16 +37,16 @@ class MuonTrackMonitorAlgorithm : public AthMonitorAlgorithm
     StatusCode	FillMuonInformation(std::string sIdentifier, std::vector<const xAOD::Muon*>	&vecMuons) const;
 
     /// Function to create performance plots for muon standalone tracks with some detailed informatiom
-    StatusCode analyseLowLevelMuonFeatures(const xAOD::MuonContainer* Muons, int lumiBlockID) const;
+    StatusCode analyseLowLevelMuonFeatures(const xAOD::MuonContainer& Muons, uint32_t lumiBlockID) const;
 
     /// Function to create performance plots for all combined muons
-    StatusCode analyseCombinedTracks(const xAOD::MuonContainer* Muons, int lumiBlockID) const;
+    StatusCode analyseCombinedTracks(const xAOD::MuonContainer& Muons, uint32_t lumiBlockID) const;
 
     /// Function to create performance plots for all combined muons that lead to a Z Boson Candidate event
-    StatusCode analyseZBosonCandidates(const xAOD::MuonContainer* Muons, int lumiBlockID) const;
+    StatusCode analyseZBosonCandidates(const xAOD::MuonContainer& Muons, uint32_t lumiBlockID) const;
 
     /// Function to create performance plots for all combined muons that lead to a JPsi Meson Candidate event
-    StatusCode analyseJPsiCandidates(const xAOD::MuonContainer* Muons, int lumiBlockID) const;
+    StatusCode analyseJPsiCandidates(const xAOD::MuonContainer& Muons, uint32_t lumiBlockID) const;
 
     Gaudi::Property< std::vector<std::string> > m_hltchainList{ this, "HLTTriggerList", {"HLT_2mu14", "HLT_mu26_ivarmedium"}, "High-level triggers used" };
 
diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/src/components/MuonTrackMonitoring_entries.cxx b/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/src/components/MuonTrackMonitoring_entries.cxx
index 725709de61b4f2b7b8ec97689c76b53a7b357e41..0d32f41b0e62f165d58d649f40d45f3989e57538 100644
--- a/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/src/components/MuonTrackMonitoring_entries.cxx
+++ b/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/src/components/MuonTrackMonitoring_entries.cxx
@@ -3,6 +3,6 @@
         2020 Matthias Schott - Uni Mainz
 */
 
-#include "MuonTrackMonitoring/MuonTrackMonitorAlgorithm.h"
+#include "../MuonTrackMonitorAlgorithm.h"
 DECLARE_COMPONENT( MuonTrackMonitorAlgorithm )