diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonDQAMonitoring/python/MuonDQAMonitoringConfig.py b/MuonSpectrometer/MuonValidation/MuonDQA/MuonDQAMonitoring/python/MuonDQAMonitoringConfig.py
index 9fcfb2aa7a2df0a36a7d14350ed680808dfcd454..3120285fc856a7e4604a3a7b316e026f7e1e02e9 100644
--- a/MuonSpectrometer/MuonValidation/MuonDQA/MuonDQAMonitoring/python/MuonDQAMonitoringConfig.py
+++ b/MuonSpectrometer/MuonValidation/MuonDQA/MuonDQAMonitoring/python/MuonDQAMonitoringConfig.py
@@ -1,21 +1,25 @@
 #
 #  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 #
-
 def MuonDQAMonitoringConfig(flags):
+    print("entering muon daq")
+
     from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
 
     result = ComponentAccumulator()
 
-    if flags.DQ.Steering.Muon.doRawMon:
+    if flags.DQ.Steering.Muon.doRawMon and False:
         # do not run in RAW->ESD, or AOD-only
         if flags.DQ.Environment not in ('tier0Raw', 'AOD'):
             from MdtRawDataMonitoring.MDTMonitorAlgorithm import MdtMonitoringConfig
             from RpcRawDataMonitoring.RpcMonitorAlgorithm import RpcMonitoringConfig
-            from TgcRawDataMonitoring.TgcRawDataMonitorAlgorithm import TgcRawDataMonitoringConfig
-    
             result.merge(MdtMonitoringConfig(flags))
             result.merge(RpcMonitoringConfig(flags))
-            result.merge(TgcRawDataMonitoringConfig(flags))
-        
+
+        from TgcRawDataMonitoring.TgcRawDataMonitorAlgorithm import TgcRawDataMonitoringConfig
+        result.merge(TgcRawDataMonitoringConfig(flags))
+
+    if flags.DQ.Steering.Muon.doTrackMon:
+        from MuonTrackMonitoring.MuonTrackMonitorAlgorithm import MuonTrackConfig
+        result.merge(MuonTrackConfig(flags))
     return result
diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonDQAMonitoring/share/MuonDetMonitoring.py b/MuonSpectrometer/MuonValidation/MuonDQA/MuonDQAMonitoring/share/MuonDetMonitoring.py
index 931f239562691bc2a772d40b23e6a3dc20b05172..ae01ee5ff721c392090f227db20b86cfc7cc54a1 100644
--- a/MuonSpectrometer/MuonValidation/MuonDQA/MuonDQAMonitoring/share/MuonDetMonitoring.py
+++ b/MuonSpectrometer/MuonValidation/MuonDQA/MuonDQAMonitoring/share/MuonDetMonitoring.py
@@ -161,17 +161,6 @@ if DQMonFlags.doMuonSegmentMon():
     except Exception:
         treatException("DataQualitySteering_jobOptions.py: exception when setting up Muon CSC segment monitoring")
 
-#------------- ---------#
-# Muon track monitoring #
-#------------- ---------#
-if DQMonFlags.doMuonTrackMon():
-   try:
-       if MuonDQADetFlags.doMuonTrackMon():
-           include ("MuonTrackMonitoring/MuonTrackDQA_options.py")
-           # if MuonDQADetFlags.MuonTrkMonDoTrigger() and DQMonFlags.useTrigger(): ## monitoring tool cannot have a dependence on TrigDecisionTool if DQMonFlags.useTrigger==False (ATLASRECTS-3549)
-           #     include ("MuonTrackMonitoring/MuonTrigTrackDQA_options.py")
-   except Exception:
-       treatException("DataQualitySteering_jobOptions.py: exception when setting up Muon track monitoring")
 
 #-------------------------#
 # Muon physics monitoring #
diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/CMakeLists.txt b/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/CMakeLists.txt
index dad09c983fc2506e5681f6d1f199c31a1b9ff560..788cdaa1d065027272466aa76e2e39413965efc3 100644
--- a/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/CMakeLists.txt
+++ b/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/CMakeLists.txt
@@ -46,5 +46,5 @@ atlas_add_component( MuonTrackMonitoring
 
 # Install files from the package:
 atlas_install_headers( MuonTrackMonitoring )
-atlas_install_joboptions( share/*.py )
+atlas_install_python_modules( python/*.py )
 
diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/MuonTrackMonitoring/MuonGenericTracksMon.h b/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/MuonTrackMonitoring/MuonGenericTracksMon.h
deleted file mode 100644
index ce99eebbe1680755799b4be10adf9242993072f6..0000000000000000000000000000000000000000
--- a/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/MuonTrackMonitoring/MuonGenericTracksMon.h
+++ /dev/null
@@ -1,151 +0,0 @@
-/*
-  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef MUONTRKPHYSMONITORING_MUONGENERICTRACKSMON_H
-#define MUONTRKPHYSMONITORING_MUONGENERICTRACKSMON_H
-
-// MuonGenericTracksMon.cxx
-// AUTHORS: N. Benekos, E. Christidi, A. Eppig, Tony Liss
-
-#include "GaudiKernel/StatusCode.h"
-#include "GaudiKernel/ToolHandle.h"
-#include "StoreGate/StoreGate.h"
- 
-#include "AthenaMonitoring/ManagedMonitorToolBase.h"
-
-#include "MuonTrackMonitoring/RecoMuonPlots.h"
-#include "MuonTrackMonitoring/RecoMuonSegmentPlots.h"
-#include "MuonTrackMonitoring/RecoMuonTrackPlots.h"
-#include "MuonTrackMonitoring/RecoMuonIDTrackPlots.h"
-#include "MuonTrackMonitoring/RecoLumiPlots.h"
-#include "MuonTrackMonitoring/RecoPhysPlots.h"
-#include "MuonTrackMonitoring/RecoVertexPlots.h"
-#include "MuonHistUtils/MuonEnumDefs.h"
- 
-#include "TrigConfL1Data/TriggerItem.h"
- 
-#include "TrkTrack/Track.h"
-#include "TrkTrack/TrackCollection.h"
-#include "TrkToolInterfaces/IResidualPullCalculator.h"
-#include "TrkToolInterfaces/ITrackSelectorTool.h"
-
-#include "xAODTracking/TrackParticle.h"
-
-#include "GeoPrimitives/GeoPrimitives.h"
-#include "EventPrimitives/EventPrimitives.h"
-#include "EventPrimitives/EventPrimitivesHelpers.h"
-#include "FourMomUtils/P4Helpers.h"
-
-#include "MuonRecHelperTools/IMuonEDMHelperSvc.h"
-#include "MuonAnalysisInterfaces/IMuonSelectionTool.h"
-#include "MuonResonanceTools/IMuonResonanceSelectionTool.h"
-#include "MuonResonanceTools/IMuonResonancePairingTool.h"
-
-#include "xAODMuon/MuonContainer.h"
-#include "xAODMuon/Muon.h"
-#include "xAODMuon/MuonSegment.h"
-#include "xAODMuon/MuonSegmentContainer.h"
-#include "xAODEventInfo/EventInfo.h"
-
-#include <vector>
-#include <string>
-#include <algorithm>
- 
-class MuonGenericTracksMon : public ManagedMonitorToolBase
-{
- 
- public:
-
-  MuonGenericTracksMon( const std::string & type, const std::string & name, const IInterface* parent ); 
-  virtual ~MuonGenericTracksMon()=default;
-  
-  virtual StatusCode initialize();
-  virtual StatusCode bookHistograms();   
-  virtual StatusCode fillHistograms();
-  virtual StatusCode procHistograms();  
-
-  //second argument is the souce type
-  void plot_lumi(   std::vector<std::pair<const xAOD::Muon*, const xAOD::Muon*> > resonances_Z, 
-    std::vector<std::pair<const xAOD::Muon*, const xAOD::Muon*> > resonances_jpsi, 
-    const xAOD::MuonContainer* Muons,
-    const xAOD::TrackParticleContainer*   tracksMS, 
-    const xAOD::MuonSegmentContainer* MuonSegments);
-  void plot_lumi_notrig(const xAOD::MuonContainer* Muons, 
-    const xAOD::TrackParticleContainer*   tracksMS, 
-    const xAOD::MuonSegmentContainer* MuonSegments);
-  //other plots
-  void plot_muon(   const xAOD::Muon&          muon,    int source);
-  void plot_muon_notrig(const xAOD::Muon&        muon,    int source);
-  void plot_segment(const xAOD::MuonSegment&   segment, int source);
-  void plot_track(  const xAOD::TrackParticle& track,   int source);
-  void plot_vertex( const xAOD::Vertex&        aVx,     int source);
-  void plot_resonances(std::vector<std::pair<const xAOD::Muon*, const xAOD::Muon*> > resonances, int source);
-
-  void FillPullResid(RecoMuonTrackPlots *, const xAOD::TrackParticle*);
-  
-  float m_inst_lumi_bcid;
-  float m_inst_lumi_lb;
-  int   m_current_lb;
-
-  TH1* m_hNEvent;//a sample histogram to count the number of events
-
-  // plot classes in vectors (one class per selection: Z, JPsi, all)
-  std::vector<RecoLumiPlots*>         m_oRecoLumiPlots;
-  std::vector<RecoMuonSegmentPlots*>  m_oRecoMuonSegmentPlots;
-  std::vector<RecoMuonTrackPlots*>    m_oRecoMuonMSTrackPlots;
-  std::vector<RecoMuonTrackPlots*>    m_oRecoMuonMETrackPlots;
-  std::vector<RecoMuonIDTrackPlots*>  m_oRecoMuonIDTrackPlots;
-  std::vector<RecoMuonPlots*>         m_oRecoMuonPlots;
-  std::vector<RecoPhysPlots*>         m_oRecoPhysPlots;
-  std::vector<RecoVertexPlots*>       m_oRecoVertexPlots;
-
- private:
-  
-  std::string m_muonsName;
-  std::string m_muonSegmentsName;
-  std::string m_muonTracksName;
-  std::string m_msVertexCollection;
-  std::string m_muonExtrapTracksName;
-  std::string m_innerTracksName;
-            
-  StatusCode setupTools();
-  StatusCode bookInMongroup(TH1* hist, MonGroup& mongroup);
-  StatusCode bookInMongroup(HistData& hist, MonGroup& mongroup, std::string source);
-  StatusCode bookInMongroup(PlotBase& valPlots, MonGroup& mongroup, std::string source);
-  StatusCode bookInMongroup(PlotBase& valPlots, MonGroup& mongroup, std::string source, TString Montype);
-
-  // define the different classes of plots;
-  enum SOURCE {Z = 0, JPSI, CBMUONS, NONCBMUONS, CONTAINER, N_SOURCE};
-  std::string m_sources[SOURCE::N_SOURCE + 1] = {"Z", "Jpsi", "CBMuons", "NonCBMuons", "Container", "N_SOURCE"};
-  enum MUON_COMPONENT {TRACK_MS=0, TRACK_ME, TRACK_ID, N_COMPONENTS};
-  // Trigger items
-  bool m_useTrigger; 
-  std::string m_MuonTriggerChainName;
-  std::vector<std::string> m_muon_triggers;  
-        
-  // ATLAS Detector Description
-  // Handle for the trig decision tool
-  ToolHandle<Trig::ITrigDecisionTool> m_trigDecTool;
-  // MCP muon quality tool
-  ToolHandle<CP::IMuonSelectionTool> m_muonSelectionTool;
-  // MCP T&P helpers
-  ToolHandle<IMuonResonanceSelectionTool> m_ZmumuResonanceSelectionTool;
-  ToolHandle<IMuonResonancePairingTool>   m_ZmumuResonancePairingTool;
-  ToolHandle<IMuonResonanceSelectionTool> m_JpsimumuResonanceSelectionTool;
-  ToolHandle<IMuonResonancePairingTool>   m_JpsimumuResonancePairingTool;
-    
-  std::string pathToHistName(std::string str){
-    std::replace( str.begin(), str.end(), '/', '_');
-    return str;
-  }
-  // isMC required by MCP tools. 
-  // only matters for scalefactors, i.e., keep isMC=false for SF=1.
-  bool m_isMC;
-  
-};
-
-#endif
- 
-
-
diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/MuonTrackMonitoring/MuonTrackMonitorAlgorithm.h b/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/MuonTrackMonitoring/MuonTrackMonitorAlgorithm.h
new file mode 100644
index 0000000000000000000000000000000000000000..2787d39214e1b6f78fbbc1605ba5da87e2ddaaca
--- /dev/null
+++ b/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/MuonTrackMonitoring/MuonTrackMonitorAlgorithm.h
@@ -0,0 +1,74 @@
+/*
+ Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
+ 2020 Matthias Schott - Uni Mainz
+*/
+
+#ifndef MUON_TRACKALGORITHM_H
+#define MUON_TRACKALGORITHM_H
+
+#include "AthenaMonitoring/AthMonitorAlgorithm.h"
+
+#include "xAODMuon/MuonContainer.h"
+#include <vector>
+#include <string>
+#include "StoreGate/ReadHandleKey.h"
+
+// AthMonitorAlgorithm
+class MuonTrackMonitorAlgorithm : public AthMonitorAlgorithm
+{
+
+  public:
+
+    MuonTrackMonitorAlgorithm(const std::string& name, ISvcLocator* pSvcLocator);
+
+    virtual ~MuonTrackMonitorAlgorithm() {};
+    virtual StatusCode initialize() override;
+    virtual StatusCode fillHistograms( const EventContext& ctx ) const override;
+
+  private:
+
+    SG::ReadHandleKey<xAOD::MuonContainer> m_MuonContainerKey { this, "MuonContainerKey", "Muons", "Key for Muon Containers" };
+
+    // Toolds
+    /// Fills data-quality information (e.g. pt, eta, phi..) to histograms for given selection of muons
+    /// std::string sIdentifier = "CB","ZBoson","JPsi": String which is used to match the histogramming
+    ///    variables that are defined by the Python script
+    /// std::vector<const xAOD::Muon*>	&vecMuons: Vector of muons for which performance plots should be created
+    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;
+
+    /// Function to create performance plots for all combined muons
+    StatusCode analyseCombinedTracks(const xAOD::MuonContainer* Muons, int 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;
+
+    /// 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;
+
+    Gaudi::Property< std::vector<std::string> > m_hltchainList{ this, "HLTTriggerList", {"HLT_2mu14", "HLT_mu26_ivarmedium"}, "High-level triggers used" };
+
+    Gaudi::Property< float > m_CBmuons_minPt{ this, "CBmuons_minPt", 20000., "Minimal muon pt used for CB muons" };
+
+    Gaudi::Property< float > m_ZBosonSelection_minPt{ this, "ZBosonSelection_minPt", 20000., "Minimal muon pt used for Z analysis" };
+    Gaudi::Property< float > m_ZBosonSelection_maxEta{ this, "ZBosonSelection_maxEta", 2.5, "Maximal muon eta used for Z analysis" };
+    Gaudi::Property< float > m_ZBosonSelection_trkIsolation{ this, "ZBosonSelection_trkIsolation", 0.2, "Track DeltaR isolation criteria" };
+    Gaudi::Property< float > m_ZBosonSelection_D0Cut{ this, "ZBosonSelection_D0Cut", 100., "D0 cut applied for Z boson analysis" };
+    Gaudi::Property< float > m_ZBosonSelection_Z0Cut{ this, "ZBosonSelection_Z0Cut", 100., "Z0 cut applied for Z boson analysis" };
+    Gaudi::Property< float > m_ZBosonSelection_minMass{ this, "ZBosonSelection_minMass", 76000., "Minimal accepted Z  boson mass" };
+    Gaudi::Property< float > m_ZBosonSelection_maxMass{ this, "ZBosonSelection_maxMass", 106000., "Maximal accepted Z  boson mass" };
+
+    Gaudi::Property< float > m_JPsiSelection_minPt{ this, "JPsiSelection_minPt", 4000., "Minimal muon pt used for JPsi analysis" };
+    Gaudi::Property< float > m_JPsiSelection_maxEta{ this, "JPsiSelection_maxEta", 2.5, "Maximal muon eta used for JPsi analysis" };
+    Gaudi::Property< float > m_JPsiSelection_trkIsolation{ this, "JPsiSelection_trkIsolation", 1.0, "JPsi track DeltaR isolation criteria" };
+    Gaudi::Property< float > m_JPsiSelection_D0Cut{ this, "JPsiSelection_D0Cut", 100., "D0 cut applied for JPsi analysis" };
+    Gaudi::Property< float > m_JPsiSelection_Z0Cut{ this, "JPsiSelection_Z0Cut", 100., "Z0 cut applied for JPsi analysis" };
+    Gaudi::Property< float > m_JPsiSelection_minMass{ this, "JPsiSelection_minMass", 2600., "Minimal accepted JPsi mass" };
+    Gaudi::Property< float > m_JPsiSelection_maxMass{ this, "JPsiSelection_maxMass", 3600., "Maximal accepted JPsi mass" };
+};
+
+
+#endif
+
diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/MuonTrackMonitoring/PlotMuons.h b/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/MuonTrackMonitoring/PlotMuons.h
deleted file mode 100644
index 4372fdbd3d436d9f77ae8913f8c99e06553095b6..0000000000000000000000000000000000000000
--- a/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/MuonTrackMonitoring/PlotMuons.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef MUONTRACKMONITORING_PLOTMUONS_H
-#define MUONTRACKMONITORING_PLOTMUONS_H
-
-#include "TrkValHistUtils/PlotBase.h"
-#include "TrkValHistUtils/ParamPlots.h"
-#include "MuonHistUtils/RecoInfoPlots.h"
-#include "MuonHistUtils/MomentumPullPlots.h"
-#include "MuonHistUtils/MuonHitSummaryPlots.h"
-#include "xAODMuon/Muon.h"
-
-class PlotMuons:public PlotBase{
-
-    public:
-
-        PlotMuons(PlotBase* pParent, std::string sDir);
-
-        void fill(const xAOD::Muon& muon);
-        
-        Trk::ParamPlots            m_plots_All;
-        Muon::RecoInfoPlots        m_plots_RecoInfo;
-        Muon::MomentumPullPlots    m_plots_MomentumPull;
-        Muon::MuonHitSummaryPlots  m_plots_MuonHitSummary;
-};
-
-#endif
diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/MuonTrackMonitoring/PlotSegments.h b/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/MuonTrackMonitoring/PlotSegments.h
deleted file mode 100644
index 5ecfe695dceeb4a1f64aa394336c3ea974928b21..0000000000000000000000000000000000000000
--- a/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/MuonTrackMonitoring/PlotSegments.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef MUONTRACKMONITORING_PLOTSEGMENTS_H
-#define MUONTRACKMONITORING_PLOTSEGMENTS_H
-
-#include "TrkValHistUtils/PlotBase.h"
-#include "MuonHistUtils/MuonSegmentPlots.h"
-
-#include "xAODMuon/Muon.h"
-#include "xAODMuon/MuonSegment.h"
-
-class PlotSegments:public PlotBase{
-
-    public:
-
-        PlotSegments(PlotBase* pParent, std::string sDir);
-
-        void fill(const xAOD::Muon&        muon);
-        void fill(const xAOD::MuonSegment& segment);
-        
-        Muon::MuonSegmentPlots m_plots_Segments;
-        
-};
-
-#endif
diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/MuonTrackMonitoring/PlotTracks.h b/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/MuonTrackMonitoring/PlotTracks.h
deleted file mode 100644
index 409deee7ee8f479a23497ec32c7a446a9e1f899a..0000000000000000000000000000000000000000
--- a/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/MuonTrackMonitoring/PlotTracks.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef MUONTRACKMONITORING_PLOTTRACKS_H
-#define MUONTRACKMONITORING_PLOTTRACKS_H
-
-#include "TrkValHistUtils/PlotBase.h"
-#include "TrkValHistUtils/MSHitPlots.h"
-#include "TrkValHistUtils/RecoInfoPlots.h"
-#include "TrkValHistUtils/ImpactPlots.h"
-
-#include "xAODMuon/Muon.h"
-#include "xAODTracking/TrackParticle.h"
-
-class PlotTracks:public PlotBase{
-
-    public:
-
-        PlotTracks(PlotBase* pParent, std::string sDir);
-        
-        void fill(const xAOD::Muon&          muon);
-        void fill(const xAOD::TrackParticle& track);
-        
-        Trk::ImpactPlots    m_plots_Impact;
-        Trk::RecoInfoPlots  m_plots_TrkRecoInfo;
-        Trk::MSHitPlots     m_plots_MSHit;
-        
-};
-
-#endif
diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/MuonTrackMonitoring/RecoLumiPlots.h b/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/MuonTrackMonitoring/RecoLumiPlots.h
deleted file mode 100644
index ff6e605ba529dab62a986145d4dcd1fe6f572bd0..0000000000000000000000000000000000000000
--- a/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/MuonTrackMonitoring/RecoLumiPlots.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef MUONTRACKMONITORING_RECOLUMIPLOTS_H
-#define MUONTRACKMONITORING_RECOLUMIPLOTS_H
-
-#include "TrkValHistUtils/PlotBase.h"
-
-
-#include "MuonPrepRawData/MuonPrepDataContainer.h"
-#include "xAODMuon/MuonSegmentContainer.h"
-#include "xAODTracking/TrackParticleContainer.h"
-#include "xAODMuon/MuonContainer.h"
-
-class RecoLumiPlots:public PlotBase {
-
-      public:
-            RecoLumiPlots(PlotBase* pParent, std::string sDir, std::string recObj);
-
-            void fill(const xAOD::MuonSegmentContainer* MuonSegments, int current_lb, float inst_lumi_bcid, float inst_lumi_lb);
-            void fill(const xAOD::TrackParticleContainer* MSTracks, int current_lb, float inst_lumi_bcid, float inst_lumi_lb);
-            void fill_CB(const xAOD::MuonContainer* Muons, int current_lb, float inst_lumi_bcid, float inst_lumi_lb);
-            void fill_Other(const xAOD::MuonContainer* Muons, int current_lb, float inst_lumi_bcid, float inst_lumi_lb);
-            void fill(std::vector<std::pair<const xAOD::Muon*, const xAOD::Muon*> > resonances, int current_lb, float inst_lumi_bcid, float inst_lumi_lb);
-
-            TH1* m_hNSegment_LB_1D;
-            TH1* m_hNMuonTrack_LB_1D;
-            TH1* m_hNMuon_LB_1D;
-            TH1* m_hNResonance_LB_1D;
-
-            TH2* m_hNSegment_LB;
-            TH2* m_hNMuonTrack_LB;
-            TH2* m_hNMuon_LB;
-            TH2* m_hNResonance_LB;
-
-            int n_lbs;
-
-            //for locating Z and Jpsi
-            std::string type;
-            std::string name;
-            
-      private:
-            void initializePlots();
-
-};
-
-#endif
diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/MuonTrackMonitoring/RecoMuonIDTrackPlots.h b/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/MuonTrackMonitoring/RecoMuonIDTrackPlots.h
deleted file mode 100644
index 120005dbf4e56177c1aab7285cb0c202a224f2b6..0000000000000000000000000000000000000000
--- a/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/MuonTrackMonitoring/RecoMuonIDTrackPlots.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef MUONTRACKMONITORING_RECOMUONIDTRACKPLOTS_H
-#define MUONTRACKMONITORING_RECOMUONIDTRACKPLOTS_H
-
-#include "xAODMuon/Muon.h"
-#include "xAODMuon/MuonContainer.h"
-#include "xAODTracking/TrackParticle.h"
-//#include "TrkEventPrimitives/ResidualPull.h"
-
-#include "TrkValHistUtils/PlotBase.h"
-#include "TrkValHistUtils/ParamPlots.h"
-#include "TrkValHistUtils/RecoInfoPlots.h"
-#include "TrkValHistUtils/ImpactPlots.h"
-#include "TrkValHistUtils/IDHitPlots.h"
-
-
-class RecoMuonIDTrackPlots:public PlotBase {
-    public:
-      RecoMuonIDTrackPlots(PlotBase* pParent, std::string sDir);
-      
-      // Reco only information
-      Trk::ParamPlots                 m_oAllPlots;
-      Trk::ImpactPlots                m_oImpactPlots;
-      Trk::RecoInfoPlots              m_oTrkRecoInfoPlots;
-      Trk::IDHitPlots                 m_oIDHitPlots;
-
-      TH1* m_pt_broad;
-      TH2* m_eta_phi_broad;
-
-      //fill methods
-      void fill(const xAOD::Muon& mu, int component);
-      void fill(const xAOD::TrackParticle& muTP);
-      //void fill(const xAOD::TrackParticle& muTP, int LB_number, float LB_instant);
-      //void fill(const Trk::ResidualPull& resPull, int stationPhi, Muon::MuonStationIndex::TechnologyIndex techid, bool measuresPhi);
-    private:
-      void initializePlots();
-
-};
-
-#endif
diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/MuonTrackMonitoring/RecoMuonPlots.h b/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/MuonTrackMonitoring/RecoMuonPlots.h
deleted file mode 100644
index a00bdfa1c064e466b4225548fefbfa5573f801f8..0000000000000000000000000000000000000000
--- a/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/MuonTrackMonitoring/RecoMuonPlots.h
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef MUONTRACKMONITORING_RECOMUONPLOTS_H
-#define MUONTRACKMONITORING_RECOMUONPLOTS_H
-
-#include "TrkValHistUtils/PlotBase.h"
-#include "TrkValHistUtils/ParamPlots.h"
-#include "TrkValHistUtils/MSHitPlots.h"
-#include "TrkValHistUtils/ImpactPlots.h"
-#include "MuonHistUtils/RecoInfoPlots.h"
-#include "MuonHistUtils/MomentumPullPlots.h"
-#include "MuonHistUtils/MuonHitSummaryPlots.h"
-#include "MuonHistUtils/MuonIsolationPlots.h"
-#include "MuonHistUtils/MuonParamPlots.h"
-
-#include "xAODMuon/Muon.h"
-#include "xAODMuon/MuonContainer.h"
-#include "xAODTracking/TrackingPrimitives.h"
-
-class RecoMuonPlots:public PlotBase {
-    public:
-      RecoMuonPlots(PlotBase* pParent, std::string sDir, bool detail=false);
-      void fill(const xAOD::Muon& mu);
-      void fill(const xAOD::Muon& mu, xAOD::Muon::Quality my_quality);
-      
-      // Reco only information
-      Trk::ParamPlots                 m_oAllPlots;
-      Muon::RecoInfoPlots             m_oMuRecoInfoPlots;
-      Trk::ImpactPlots                m_oImpactPlots;
-      Muon::MomentumPullPlots         m_oMomentumPullPlots;
-
-      //extra monitoring efficiency plots; filled in post processing
-      TH2* m_origin_eta_phi;
-      TH2* m_eff_tight;
-      TH2* m_eff_medium;
-      TH2* m_tight_eta_phi;
-      TH2* m_medium_eta_phi;
-      TH1* m_pt_broad;
-      TH2* m_eta_phi_broad;
-
-      //extra monitoring efficiency plots, normalized in post processing
-      TH2* m_eff_nPrec;
-      TH2* m_eff_nPhi;
-      TH2* m_eff_nTrigEta;
-      TH2* m_eff_ndof;
-      TH2* m_eff_chi2;
-      TH2* m_ID_eff_ndof;
-      TH2* m_ID_eff_chi2;
-      TH2* m_MS_eff_ndof;
-      TH2* m_MS_eff_chi2;
-
-      TH2* m_avg_hits_precision_inner;
-      TH2* m_avg_hits_precision_middle;
-      TH2* m_avg_hits_precision_outer;
-      TH2* m_avg_hits_precision_extended;
-
-      TH2* m_avg_hits_trigger_layer1;
-      TH2* m_avg_hits_trigger_layer2;
-      TH2* m_avg_hits_trigger_layer3;
-      TH2* m_avg_hits_trigger_layer4;
-
-      TH2* m_avg_hits_ibl;
-      TH2* m_avg_hits_pix;
-      TH2* m_avg_hits_sct;
-      TH2* m_avg_hits_trt;
-
-      TH2* m_avg_ddpt_idme;
-      TH2* m_avg_dptsignif;
-
-      // overview layers
-      uint8_t hitval_numberOfPrecisionLayers  = 0;
-      uint8_t hitval_numberOfPhiLayers        = 0;
-      uint8_t hitval_numberOfTriggerEtaLayers = 0;
-
-      // precision hits
-      uint8_t hitval_innerSmallHits    = 0;
-      uint8_t hitval_innerLargeHits    = 0;
-      uint8_t hitval_middleSmallHits   = 0;
-      uint8_t hitval_middleLargeHits   = 0;
-      uint8_t hitval_outerSmallHits    = 0;
-      uint8_t hitval_outerLargeHits    = 0;
-      uint8_t hitval_extendedSmallHits = 0;
-      uint8_t hitval_extendedLargeHits = 0;
-
-      // trigger hits
-      uint8_t hitval_etaLayer1Hits = 0;
-      uint8_t hitval_etaLayer2Hits = 0;
-      uint8_t hitval_etaLayer3Hits = 0;
-      uint8_t hitval_etaLayer4Hits = 0;
-
-      // ID hits
-      uint8_t hitval_numberOfBLayerHits = 0;
-      uint8_t hitval_numberOfPixelHits  = 0;
-      uint8_t hitval_numberOfSCTHits    = 0;
-      uint8_t hitval_numberOfTRTHits    = 0;
-
-      // momentum balance
-      float ddpt_idme     = 0;
-      float qoverp_diff   = 0;
-      float qoverp_sigma  = 0;
-      float qoverp_signif = 0;
-
-      bool Detail;
-
-    private:
-      void initializePlots();
-};
-
-#endif
diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/MuonTrackMonitoring/RecoMuonSegmentPlots.h b/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/MuonTrackMonitoring/RecoMuonSegmentPlots.h
deleted file mode 100644
index ee6bdc504927388256310458d3fc0dfa9a4cb9ed..0000000000000000000000000000000000000000
--- a/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/MuonTrackMonitoring/RecoMuonSegmentPlots.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
-  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef MUONTRACKMONITORING_RECOMUONSEGMENTPLOTS_H
-#define MUONTRACKMONITORING_RECOMUONSEGMENTPLOTS_H
-
-#include "TrkValHistUtils/PlotBase.h"
-#include "MuonHistUtils/MuonSegmentPlots.h"
-#include "MuonHistUtils/MuonSegmentSlimPlots.h"
-
-#include "xAODMuon/Muon.h"
-#include "xAODMuon/MuonContainer.h"
-#include "xAODMuon/MuonSegment.h"
-#include "xAODMuon/MuonSegmentContainer.h"
-#include "xAODTracking/TrackParticleContainer.h"
-
-namespace Muon {
-  class IMuonSegmentTrackBuilder;
-}
-
-class RecoMuonSegmentPlots:public PlotBase {
- public:
-      RecoMuonSegmentPlots(PlotBase* pParent, std::string sDir, bool detail=false);
-
-      //fill methods
-      void fill(const xAOD::MuonContainer& muContainer);
-      void fill(const xAOD::Muon& mu);
-      void fill(const std::vector<ElementLink<DataVector<xAOD::MuonSegment_v1>>> Mu_Segments);
-      void fill(const xAOD::MuonSegment& muonSeg);
-
-      //generic plots from MuonHistUtils
-      Muon::MuonSegmentPlots *m_oMuonSegmentPlots;
-      Muon::MuonSegmentSlimPlots *m_oMuonSegmentSlimPlots;
-
-      //Monitoring justification plots
-      bool Detail;
-
-
- private:
-      void initializePlots();
-      
-
-};
-
-#endif
diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/MuonTrackMonitoring/RecoMuonTrackPlots.h b/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/MuonTrackMonitoring/RecoMuonTrackPlots.h
deleted file mode 100644
index 6aae71f53c97f1bb6d6e0ec807dfd9fa8ae53ac6..0000000000000000000000000000000000000000
--- a/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/MuonTrackMonitoring/RecoMuonTrackPlots.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
-  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef MUONTRACKMONITORING_RECOMUONTRACKPLOTS_H
-#define MUONTRACKMONITORING_RECOMUONTRACKPLOTS_H
-
-#include "xAODMuon/Muon.h"
-#include "xAODMuon/MuonContainer.h"
-#include "xAODTracking/TrackParticle.h"
-#include "TrkEventPrimitives/ResidualPull.h"
-
-#include "TrkValHistUtils/PlotBase.h"
-#include "TrkValHistUtils/ParamPlots.h"
-#include "TrkValHistUtils/MSHitPlots.h"
-#include "TrkValHistUtils/RecoInfoPlots.h"
-#include "TrkValHistUtils/ImpactPlots.h"
-
-#include "MuonHistUtils/MuonHitResidualPlots.h"
-#include "TrkTrack/TrackStateOnSurface.h"
-#include "TrkTrack/TrackCollection.h"
-#include "TrkParameters/TrackParameters.h"
-
-
-class RecoMuonTrackPlots:public PlotBase {
-    public:
-      RecoMuonTrackPlots(PlotBase* pParent, std::string sDir);
-
-      // Reco only information
-      Trk::ParamPlots                 m_oAllPlots;
-      Trk::ImpactPlots                m_oImpactPlots;
-      Trk::RecoInfoPlots              m_oTrkRecoInfoPlots;
-
-      TH1* m_pt_broad;
-      TH2* m_eta_phi_broad;
-
-      //fill methods
-      void fill(const xAOD::Muon& mu, int component);
-      void fill(const xAOD::TrackParticle& muTP);
-      void fill(const xAOD::TrackParticle& muTP, int LB_number, float LB_instant);
-    private:
-      void initializePlots();
-
-};
-
-#endif
diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/MuonTrackMonitoring/RecoPhysPlots.h b/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/MuonTrackMonitoring/RecoPhysPlots.h
deleted file mode 100644
index effc089b25488233053b8100167efa45e1024419..0000000000000000000000000000000000000000
--- a/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/MuonTrackMonitoring/RecoPhysPlots.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef MUONTRKPHYSMONITORING_RECOPHYSPLOTS_H
-#define MUONTRKPHYSMONITORING_RECOPHYSPLOTS_H
-
-#include "TrkValHistUtils/PlotBase.h"
-#include "xAODMuon/Muon.h"
-
-
-class RecoPhysPlots:public PlotBase {
-  public:
-    RecoPhysPlots(PlotBase *pParent, std::string sDir, std::string recObj);
-
-    void fill(std::vector<std::pair<const xAOD::Muon*, const xAOD::Muon*> > mumucandidates);
-    void fill(const float eta_mu_plus, const float eta_mu_minus, const float invariant_mass);
-    
-    float EtaRegionFine(double eta);
-    float EtaRegionCoarse(double eta);
-    bool  LabelLargeEtaRegions(TAxis * axis);
-    bool  LabelCombinedEtaRegions(TAxis * axis);
-    bool  LabelSectorAxis(TAxis * axis);
-
-    TH1* m_Mass;
-    TH1* m_occupancy;
-    TH1* m_2occupancy;
-
-    // TH2* m_Efficiency;
-    // TH2* m_EffNumerator;
-    // TH2* m_EffDenominator;
-    
-    // TH1* m_Efficiency_eta;
-    // TH1* m_EffNumerator_eta;
-    // TH1* m_EffDenominator_eta;
-    
-    TH1* m_M_Mean;
-    TH1* m_M_Sigma;
-
-    TH1* m_M_EA_EA;
-    TH1* m_M_EA_BA;
-    TH1* m_M_EA_BC;
-    TH1* m_M_EA_EC;
-
-    TH1* m_M_BA_EA;
-    TH1* m_M_BA_BA;
-    TH1* m_M_BA_BC;
-    TH1* m_M_BA_EC;
-
-    TH1* m_M_BC_EA;
-    TH1* m_M_BC_BA;
-    TH1* m_M_BC_BC;
-    TH1* m_M_BC_EC;
-
-    TH1* m_M_EC_EA;
-    TH1* m_M_EC_BA;
-    TH1* m_M_EC_BC;
-    TH1* m_M_EC_EC;
-
-    std::string type;
-
-    void finalizeRecoPlots();
-  private:
-    void SetResultsBin(int iBin, TH1* pInputHist);
-    void initializePlots();
-
-};
-
-#endif
diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/MuonTrackMonitoring/RecoVertexPlots.h b/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/MuonTrackMonitoring/RecoVertexPlots.h
deleted file mode 100644
index ac11ba8e963c5e4d9def52aac8e0cb14c4154be3..0000000000000000000000000000000000000000
--- a/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/MuonTrackMonitoring/RecoVertexPlots.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef MUONTRKPHYSMONITORING_RecoVertexPLOTS_H
-#define MUONTRKPHYSMONITORING_RecoVertexPLOTS_H
-
-#include "TrkValHistUtils/PlotBase.h"
-#include "xAODTracking/VertexContainer.h"
-
-
-class RecoVertexPlots:public PlotBase {
-  public:
-    RecoVertexPlots(PlotBase *pParent, std::string sDir);
-
-    void fill(const xAOD::Vertex& msVx);
-
-    TH1* m_nMDT;
-    TH1* m_nRPC;
-    TH1* m_nTGC;
-    TH1* m_nTracklets;
-    TH2* m_VertexEtaPhi;
-
-  private:
-    void initializePlots();
-
-};
-
-#endif
diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/python/MuonTrackMonitorAlgorithm.py b/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/python/MuonTrackMonitorAlgorithm.py
new file mode 100644
index 0000000000000000000000000000000000000000..d5076493f3e724b5c025356f18479decb617cde9
--- /dev/null
+++ b/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/python/MuonTrackMonitorAlgorithm.py
@@ -0,0 +1,111 @@
+"""
+ Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
+ 2020 Matthias Schott - Uni Mainz
+"""
+
+
+def MuonTrackConfig(inputFlags):
+    from AthenaMonitoring import AthMonitorCfgHelper
+    helper = AthMonitorCfgHelper(inputFlags, "MuonTrackMonitoringConfig")
+
+    from AthenaConfiguration.ComponentFactory import CompFactory
+    MuonTrackMonitorAlgorithm = CompFactory.MuonTrackMonitorAlgorithm
+    muonTrackAlg = helper.addAlgorithm(MuonTrackMonitorAlgorithm, "MuonTrackMonitorAlgorithmAlg")
+
+    myGroup = helper.addGroup(muonTrackAlg, "MuonTrackMonitorAlgorithm", "MuonPhysics/")
+
+    myGroup.defineHistogram('JPsiMuonEta,JPsiMuonPhi;Muons_Jpsi_Origin_eta_phi', title='Muons_Jpsi_Origin_eta_phi;eta;phi', type='TH2F', path='Muons/Jpsi', xbins=27, xmin=-2.7, xmax=2.7, ybins=31, ymin=-3.1415, ymax=3.1415)
+    myGroup.defineHistogram('JPsiMuonEtaTight,JPsiMuonPhiTight;Muons_Jpsi_Tight_eff', title='Muons_Jpsi_Tight_eff;eta;phi', type='TH2F', path='Muons/Jpsi', xbins=27, xmin=-2.7, xmax=2.7, ybins=31, ymin=-3.1415, ymax=3.1415)
+    myGroup.defineHistogram('JPsiMuonEtaMedium,JPsiMuonPhiMedium;Muons_Jpsi_Medium_eff', title='Muons_Jpsi_Medium_eff;eta;phi', type='TH2F', path='Muons/Jpsi', xbins=27, xmin=-2.7, xmax=2.7, ybins=31, ymin=-3.1415, ymax=3.1415)
+    myGroup.defineHistogram('JPsiMuonD0;Muons_Jpsi_d0', title='Muons_Jpsi_d0;d0;Entries', type='TH1F', path='Muons/Jpsi', xbins=40, xmin=-1, xmax=1)
+    myGroup.defineHistogram('JPsiMuonDPTIDME;Muons_Jpsi_ddpt_idme', title='Muons_Jpsi_ddpt_idme;(ptID-ptME)/ptID;Entries', type='TH1F', path='Muons/Jpsi', xbins=40, xmin=-0.5, xmax=0.5)
+    myGroup.defineHistogram('JPsiMuonPt;Muons_Jpsi_pt', title='Muons_Jpsi_pt; pT[GeV];Entries', type='TH1F', path='Muons/Jpsi', xbins=50, xmin=0, xmax=50000)
+    myGroup.defineHistogram('JPsiMuonPt;Muons_Jpsi_pt_broad', title='Muons_Jpsi_pt_broad;pT[GeV];Entries', type='TH1F', path='Muons/Jpsi', xbins=50, xmin=0, xmax=1000000)
+    myGroup.defineHistogram('JPsiMuonLumiBlock;Overview_Jpsi_nJpsi_LB', title='Overview_Jpsi_nJpsi_LB;LumiBlock;NumberOfJPsis', type='TH1F', path='Overview/Jpsi', xbins=50, xmin=0, xmax=2500)
+    myGroup.defineHistogram('JPsiMuonNBHits;TracksID_Jpsi_HitContent_NBlayerHits', title='TracksID_Jpsi_HitContent_NBlayerHits;NumberOfBLayerHits;Entries', type='TH1F', path='TracksID/Jpsi', xbins=5, xmin=0, xmax=5)
+    myGroup.defineHistogram('JPsiMuonNPixHits;TracksID_Jpsi_HitContent_NPixelHits', title='TracksID_Jpsi_HitContent_NPixelHits;NumberOfPixelHits;Entries', type='TH1F', path='TracksID/Jpsi', xbins=10, xmin=0, xmax=10)
+    myGroup.defineHistogram('JPsiMuonNSCTHits;TracksID_Jpsi_HitContent_NSCTHits', title='TracksID_Jpsi_HitContent_NSCTHits;NumberOfSCTHits;Entries', type='TH1F', path='TracksID/Jpsi', xbins=20, xmin=0, xmax=20)
+    myGroup.defineHistogram('JPsiMuonNTRTHits;TracksID_Jpsi_HitContent_NTRTHits', title='TracksID_Jpsi_HitContent_NTRTHits;NumberOfTRTHits;Entries', type='TH1F', path='TracksID/Jpsi', xbins=50, xmin=0, xmax=50)
+    myGroup.defineHistogram('JPsiMuonIDChi2NDF;TracksID_Jpsi_chi2ndof', title='TracksID_Jpsi_chi2ndof;TrackFitChi2NDF;Entries', type='TH1F', path='TracksID/Jpsi', xbins=20, xmin=0, xmax=5)
+    myGroup.defineHistogram('JPsiMuonMEChi2NDF;TracksME_Jpsi_chi2ndof', title='TracksME_Jpsi_chi2ndof;TrackFitChi2NDF;Entries', type='TH1F', path='TracksME/Jpsi', xbins=20, xmin=0, xmax=5)
+    myGroup.defineHistogram('JPsiMass2D,JPsiEta2D;JPsiMassAverage', title='JPsiMassAverage;mass;eta', type='TH2F', path='Muons/Jpsi', xbins=27, xmin=2600., xmax=3600, ybins=31, ymin=-3.1415, ymax=3.1415)
+    myGroup.defineHistogram('JPsiMass;m_Jpsi_Mass', title='m_Jpsi_Mass;M_{#mu#mu};Entries', type='TH1F', path='MuonTrkPhys/Jpsi', xbins=50, xmin=2600, xmax=3600)
+
+    myGroup.defineHistogram('ZMuonEta,ZMuonPhi;Muons_Z_Origin_eta_phi', title='Muons_Z_Origin_eta_phi;eta;phi', type='TH2F', path='Muons/Z', xbins=27, xmin=-2.7, xmax=2.7, ybins=31, ymin=-3.1415, ymax=3.1415)
+    myGroup.defineHistogram('ZMuonEtaTight,ZMuonPhiTight;Muons_Z_Tight_eff', title='Muons_Z_Tight_eff;eta;phi', type='TH2F', path='Muons/Z', xbins=27, xmin=-2.7, xmax=2.7, ybins=31, ymin=-3.1415, ymax=3.1415)
+    myGroup.defineHistogram('ZMuonEtaMedium,ZMuonPhiMedium;Muons_Z_Medium_eff', title='Muons_Z_Medium_eff;eta;phi', type='TH2F', path='Muons/Z', xbins=27, xmin=-2.7, xmax=2.7, ybins=31, ymin=-3.1415, ymax=3.1415)
+    myGroup.defineHistogram('ZMuonD0;Muons_Z_d0', title='Muons_Z_d0;d0;Entries', type='TH1F', path='Muons/Z', xbins=40, xmin=-1, xmax=1)
+    myGroup.defineHistogram('ZMuonZ0;Muons_Z_z0', title='Muons_Z_z0;z0;Entries', type='TH1F', path='Muons/Z', xbins=50, xmin=-1000, xmax=1000)
+    myGroup.defineHistogram('ZMuonDPTIDME;Muons_Z_ddpt_idme', title='Muons_Z_ddpt_idme;(ptID-ptME)/ptID;Entries', type='TH1F', path='Muons/Z', xbins=40, xmin=-0.5, xmax=0.5)
+    myGroup.defineHistogram('ZMuonPt;Muons_Z_pt', title='Muons_Z_pt; pT[GeV];Entries', type='TH1F', path='Muons/Z', xbins=50, xmin=0, xmax=50000)
+    myGroup.defineHistogram('ZMuonPt;Muons_Z_pt_broad', title='Muons_Z_pt_broad;pT[GeV];Entries', type='TH1F', path='Muons/Z', xbins=50, xmin=0, xmax=1000000)
+    myGroup.defineHistogram('ZMuonLumiBlock;Overview_Z_nZ_LB', title='Overview_Z_nJpsi_LB;LumiBlock;NumberOfZs', type='TH1F', path='Overview/Z', xbins=50, xmin=0, xmax=2500)
+    myGroup.defineHistogram('ZMuonNBHits;TracksID_Z_HitContent_NBlayerHits', title='TracksID_Z_HitContent_NBlayerHits;NumberOfBLayerHits;Entries', type='TH1F', path='TracksID/Z', xbins=5, xmin=0, xmax=5)
+    myGroup.defineHistogram('ZMuonNPixHits;TracksID_Z_HitContent_NPixelHits', title='TracksID_Z_HitContent_NPixelHits;NumberOfPixelHits;Entries', type='TH1F', path='TracksID/Z', xbins=10, xmin=0, xmax=10)
+    myGroup.defineHistogram('ZMuonNSCTHits;TracksID_Z_HitContent_NSCTHits', title='TracksID_Z_HitContent_NSCTHits;NumberOfSCTHits;Entries', type='TH1F', path='TracksID/Z', xbins=20, xmin=0, xmax=20)
+    myGroup.defineHistogram('ZMuonNTRTHits;TracksID_Z_HitContent_NTRTHits', title='TracksID_Z_HitContent_NTRTHits;NumberOfTRTHits;Entries', type='TH1F', path='TracksID/Z', xbins=50, xmin=0, xmax=50)
+    myGroup.defineHistogram('ZMuonIDChi2NDF;TracksID_Z_chi2ndof', title='TracksID_Z_chi2ndof;TrackFitChi2NDF;Entries', type='TH1F', path='TracksID/Z', xbins=20, xmin=0, xmax=5)
+    myGroup.defineHistogram('ZMuonMEChi2NDF;TracksME_Z_chi2ndof', title='TracksME_Z_chi2ndof;TrackFitChi2NDF;Entries', type='TH1F', path='TracksME/Z', xbins=20, xmin=0, xmax=5)
+    myGroup.defineHistogram('ZMass2D,ZEta2D;ZMassAverage', title='ZMassAverage;mass;eta', type='TH2F', path='Muons/Z', xbins=27, xmin=76000., xmax=106000., ybins=31, ymin=-3.1415, ymax=3.1415)
+    myGroup.defineHistogram('ZMass;m_Z_Mass', title='m_Z_Mass;M_{#mu#mu};Entries', type='TH1F', path='MuonTrkPhys/Z', xbins=50, xmin=76000., xmax=106000.)
+
+    myGroup.defineHistogram('CBMuonEta,CBMuonPhi;Muons_CBMuons_eta_phi', title='Muons_CBMuons_eta_phi;eta;phi', type='TH2F', path='Muons/CBMuons', xbins=27, xmin=-2.7, xmax=2.7, ybins=31, ymin=-3.1415, ymax=3.1415)
+    myGroup.defineHistogram('CBMuonEtaTight,CBMuonPhiTight;Muons_CBMuons_eta_phi_tight', title='Muons_CBMuons_eta_phi_tight;eta;phi', type='TH2F', path='Muons/CBMuons', xbins=27, xmin=-2.7, xmax=2.7, ybins=31, ymin=-3.1415, ymax=3.1415)
+    myGroup.defineHistogram('CBMuonEtaMedium,CBMuonPhiMedium;Muons_CBMuons_eta_phi_medium', title='Muons_CBMuons_eta_phi_medium;eta;phi', type='TH2F', path='Muons/CBMuons', xbins=27, xmin=-2.7, xmax=2.7, ybins=31, ymin=-3.1415, ymax=3.1415)
+    myGroup.defineHistogram('CBMuonD0;Muons_CBMuons_d0', title='Muons_CBMuons_d0;d0;Entries', type='TH1F', path='Muons/CBMuons', xbins=40, xmin=-1, xmax=1)
+    myGroup.defineHistogram('CBMuonZ0;Muons_CBMuons_z0', title='Muons_CBMuons_z0;z0;Entries', type='TH1F', path='Muons/CBMuons', xbins=50, xmin=-1000, xmax=1000)
+    myGroup.defineHistogram('CBMuonDPTIDME;Muons_CB_ddpt_idme', title='Muons_CB_ddpt_idme;(ptID-ptME)/ptID;Entries', type='TH1F', path='Muons/CBMuons', xbins=40, xmin=-0.5, xmax=0.5)
+    myGroup.defineHistogram('CBMuonPt;Muons_CBMuons_pt', title='Muons_CBMuons_pt;pT[GeV];Entries', type='TH1F', path='Muons/CBMuons', xbins=50, xmin=0, xmax=50000)
+    myGroup.defineHistogram('CBMuonPt;Muons_CBMuons_pt_broad', title='Muons_CBMuons_pt_broad;pT[GeV];Entries', type='TH1F', path='Muons/CBMuons', xbins=50, xmin=0, xmax=1000000)
+    myGroup.defineHistogram('CBMuonLumiBlock;Overview_CBMuons_nMuon_LB', title='Overview_CBMuons_nMuon_LB;LumiBlock;NumberOfCBMuons', type='TH1F', path='Overview/CBMuons', xbins=2500, xmin=0, xmax=2500)
+    myGroup.defineHistogram('CBMuonNBHits;TracksID_CBMuons_HitContent_NBlayerHits', title='TracksID_CBMuons_HitContent_NBlayerHits;NumberOfBLayerHits;Entries', type='TH1F', path='TracksID/CBMuons', xbins=5, xmin=0, xmax=5)
+    myGroup.defineHistogram('CBMuonNPixHits;TracksID_CBMuons_HitContent_NPixelHits', title='TracksID_CBMuons_HitContent_NPixelHits;NumberOfPixelHits;Entries', type='TH1F', path='TracksID/CBMuons', xbins=10, xmin=0, xmax=10)
+    myGroup.defineHistogram('CBMuonNSCTHits;TracksID_CBMuons_HitContent_NSCTHits', title='TracksID_CBMuons_HitContent_NSCTHits;NumberOfSCTHits;Entries', type='TH1F', path='TracksID/CBMuons', xbins=20, xmin=0, xmax=20)
+    myGroup.defineHistogram('CBMuonNTRTHits;TracksID_CBMuons_HitContent_NTRTHits', title='TracksID_CBMuons_HitContent_NTRTHits;NumberOfTRTHits;Entries', type='TH1F', path='TracksID/CBMuons', xbins=50, xmin=0, xmax=50)
+    myGroup.defineHistogram('CBMuonIDChi2NDF;TracksID_CBMuons_chi2ndof', title='TracksID_CBMuons_chi2ndof;TrackFitChi2NDF;Entries', type='TH1F', path='TracksID/CBMuons', xbins=20, xmin=0, xmax=5)
+    myGroup.defineHistogram('CBMuonMEChi2NDF;TracksME_CBMuons_chi2ndof', title='TracksME_CBMuons_chi2ndof;TrackFitChi2NDF;Entries', type='TH1F', path='TracksME/CBMuons', xbins=20, xmin=0, xmax=5)
+
+    myGroup.defineHistogram('CBMuonAuthor;Muons_CBMuons_Author', title='Muons_CBMuons_Author;Author;Entries', type='TH1F', path='Muons/CBMuons', xbins=20, xmin=0, xmax=20)
+    myGroup.defineHistogram('CBMuonEtaMedium,CBMuonPhiMedium;Muons_CBMuons_Medium_eff', title='Muons_CBMuons_Medium_eff;eta;phi', type='TH2F', path='Muons/CBMuons', xbins=27, xmin=-2.7, xmax=2.7, ybins=31, ymin=-3.1415, ymax=3.1415)
+    myGroup.defineHistogram('CBMuonEta1Triggered,CBMuonPhi1Triggered;Muons_CBMuons_1Triggered_eta_phi', title='Muons_CBMuons_eta_phi_1Triggered;eta;phi', type='TH2F', path='Muons/CBMuons', xbins=27, xmin=-2.7, xmax=2.7, ybins=31, ymin=-3.1415, ymax=3.1415)
+    myGroup.defineHistogram('CBMuonEta1All,CBMuonPhi1All;Muons_CBMuons_1All_eta_phi', title='Muons_CBMuons_eta_phi_1All;eta;phi', type='TH2F', path='Muons/CBMuons', xbins=27, xmin=-2.7, xmax=2.7, ybins=31, ymin=-3.1415, ymax=3.1415)
+    myGroup.defineHistogram('NonCBMuonEta,NonCBMuonPhi;Muons_NonCBMuons_Origin_eta_phi', title='Muons_NonCBMuons_Origin_eta_phi;eta;phi;', type='TH2F', path='Muons/NonCBMuons', xbins=27, xmin=-2.7, xmax=2.7, ybins=31, ymin=-3.1415, ymax=3.1415)
+    myGroup.defineHistogram('CBMuonSector,CBMuonCIndex;Segments_CBMuons_chamberIndex_perSector', title='Segments_CBMuons_chamberIndex_perSector;Sector;ChamberIndex', type='TH2F', path='Segments/CBMuons', xbins=30, xmin=-15, xmax=15, ybins=17, ymin=0, ymax=17)
+
+    myGroup.defineHistogram('MSAuthor;MSAuthor', title='MSAuthor;MS-Author;Entries', type='TH1F', path='TracksMS/Container', xbins=15, xmin=0, xmax=15)
+    myGroup.defineHistogram('MSQuality;MSQuality', title='MSQuality;MS-Quality;Entries', type='TH1F', path='TracksMS/Container', xbins=15, xmin=0, xmax=15)
+    myGroup.defineHistogram('MSType;MSType', title='MSType;MS-Type;Entries', type='TH1F', path='TracksMS/Container', xbins=15, xmin=0, xmax=15)
+    myGroup.defineHistogram('MSLumiBlockNumberOfMuonTracks;Overview_Container_nMuonTrack_LB', title='Overview_Container_nMuonTrack_LB;LumiBlock;NumberOfMuonTracks', type='TH1F', path='Overview/Container', xbins=50, xmin=0, xmax=2500)
+    myGroup.defineHistogram('MSLumiBlockNumberOfSegments;Overview_Container_nSegment_LB', title='Overview_Container_nSegment_LB;LumiBlock;NumberOfMuonSegments', type='TH1F', path='Overview/Container', xbins=50, xmin=0, xmax=2500)
+    myGroup.defineHistogram('MSLargeSectorR,MSLargeSectorZ;Segments_Container_rzpos_sectorLarge', title='Segments_Container_rzpos_sectorLarge;zPos[mm];r[mm]', type='TH2F', path='Segments/Container', xbins=220, xmin=-22000, xmax=22000, ybins=100, ymin=0, ymax=15000)
+    myGroup.defineHistogram('MSSmallSectorR,MSSmallSectorZ;Segments_Container_rzpos_sectorSmall', title='Segments_Container_rzpos_sectorSmall;zPos[mm];r[mm]', type='TH2F', path='Segments/Container', xbins=220, xmin=-22000, xmax=22000, ybins=100, ymin=0, ymax=15000)
+    myGroup.defineHistogram('MSEta,MSPhi;TracksMS_Container_eta_phi', title='TracksMS_Container_eta_phi;eta;phi', type='TH2F', path='TracksMS/Container', xbins=27, xmin=-2.7, xmax=2.7, ybins=31, ymin=-3.1415, ymax=3.1415)
+    myGroup.defineHistogram('MSPt;TracksMS_Container_pt', title='TracksMS_Container_pt;pT[GeV];Entries', type='TH1F', path='TracksMS/Container', xbins=50, xmin=0, xmax=50000)
+    myGroup.defineHistogram('MSPt;TracksMS_Container_pt_broad', title='TracksMS_Container_pt_broad;pT[GeV];Entries', type='TH1F', path='TracksMS/Container', xbins=50, xmin=0, xmax=1000000)
+    return helper.result()
+
+if __name__=="__main__":
+    # Setup the RunIII behavior
+    from AthenaCommon.Configurable import Configurable
+    Configurable.configurableRun3Behavior = 1
+    
+    # Setup logs
+    from AthenaCommon.Logging import log
+    from AthenaCommon.Constants import INFO
+    log.setLevel(INFO)
+    # Set the Athena configuration flags
+    from AthenaConfiguration.AllConfigFlags import ConfigFlags
+    TestFiles = ['/eos/atlas/atlascerngroupdisk/det-rpc/data/DESDM_MCP/data18_13TeV.00358615.physics_Main.merge.DESDM_MCP.f961_m2024/data18_13TeV.00358615.physics_Main.merge.DESDM_MCP.f961_m2024._0084.1']
+    ConfigFlags.Input.Files = TestFiles
+    ConfigFlags.Output.HISTFileName = 'TestOutput.root'
+    ConfigFlags.lock()
+    # Initialize configuration object, add accumulator, merge and run.
+    from AthenaConfiguration.MainServicesConfig import MainServicesSerialCfg
+    from AthenaPoolCnvSvc.PoolReadConfig import PoolReadCfg
+    cfg = MainServicesSerialCfg()
+    cfg.merge(PoolReadCfg(ConfigFlags))
+    acc = MuonTrackConfig(ConfigFlags)
+    cfg.merge(acc)
+    cfg.printConfig(withDetails=False)
+    cfg.run(20)
+
diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/share/MuonTrackDQA_options.py b/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/share/MuonTrackDQA_options.py
deleted file mode 100755
index 139ee5c378beace9f3839456ed5d826e6420a957..0000000000000000000000000000000000000000
--- a/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/share/MuonTrackDQA_options.py
+++ /dev/null
@@ -1,95 +0,0 @@
-#======================================================================
-# JobOptions for MuonTrackMonitoring
-#======================================================================
-
-muTrackMonMan = AthenaMonManager(name="MuonTrackMonManager",
-                                 FileKey             = DQMonFlags.monManFileKey(),
-                                 Environment         = DQMonFlags.monManEnvironment(),
-                                 DataType            = DQMonFlags.monManDataType(),
-                                 OutputLevel         = WARNING)
-
-from RecExConfig.RecFlags import rec as recFlags
-from MuonRecExample import MuonRecTools
-from MuonTrackMonitoring.MuonTrackMonitoringConf import MuonGenericTracksMon
-from AthenaCommon.AppMgr import ToolSvc
-
-############TriggerAware Trk Monitoring#######################
-# set to true in case you would like to use trigger-aware monitoring
-# only do trigger-aware monitoring if monTrigDecTool known by ToolSvc
-# NoTrig requirement part is intended to run on all streams
-MuonGenericTracksMon_NoTrig = MuonGenericTracksMon(name        = "MuonGenericTracksMon_NoTrig",
-	                                               MuonTriggerChainName = "NoTrig/",
-	                                               OutputLevel = WARNING,
-	                                               )
-#ToolSvc += MuonGenericTracksMon_NoTrig
-muTrackMonMan.AthenaMonTools += [MuonGenericTracksMon_NoTrig]
-
-# L1_Trig part is intended to only select events passing L1_MU triggers
-MuonGenericTracksMon_L1Trig = MuonGenericTracksMon(name        = "MuonGenericTracksMon_L1Trig",
-	                                               MuonTriggerChainName = "",
-	                                               OutputLevel = WARNING,
-	                                               )
-
-if not DQMonFlags.useTrigger():
-    printfunc ("MuonTrigTrackDQA_options.py: trigger decision tool not found: don't run trigger-aware monitoring")
-else:
-	MuonGenericTracksMon_L1Trig.TriggerChain = "L1_MU4, L1_MU6, L1_MU10, L1_MU11, L1_MU15, L1_MU20, L1_2MU4, L1_2MU6, L1_2MU10"
-	MuonGenericTracksMon_L1Trig.MuonTriggerChainName = ""
-	MuonGenericTracksMon_L1Trig.TrigDecisionTool = monTrigDecTool
-	#ToolSvc += MuonGenericTracksMon_L1Trig
-	muTrackMonMan.AthenaMonTools += [MuonGenericTracksMon_L1Trig]
-
-#for Muon Quality Selection
-if not hasattr(ToolSvc,"MuonSelectorTool"):        
-    from MuonSelectorTools.MuonSelectorToolsConf import CP__MuonSelectionTool
-    ToolSvc += CP__MuonSelectionTool("MuonSelectorTool", OutputLevel = ERROR)
-    ToolSvc.MuonSelectorTool.MaxEta = 2.5
-    
-#for Muon Resonance Selection
-from MuonResonanceTools.MuonResonanceToolsConf import MuonResonanceSelectionTool
-from MuonResonanceTools.MuonResonanceToolsConf import MuonResonancePairingTool
-
-ToolSvc += MuonResonanceSelectionTool("ZmumuResonanceSelectionTool")
-ToolSvc += MuonResonancePairingTool("ZmumuResonancePairingTool")
-ToolSvc.ZmumuResonanceSelectionTool.OutputLevel        = ERROR
-ToolSvc.ZmumuResonanceSelectionTool.PtCut              = 20000.0
-ToolSvc.ZmumuResonanceSelectionTool.EtaCut             = 2.5
-ToolSvc.ZmumuResonanceSelectionTool.IsoCaloCut         = 0.2
-ToolSvc.ZmumuResonanceSelectionTool.IsoTrkCut          = 0.2
-ToolSvc.ZmumuResonanceSelectionTool.z0Cut              = 100 #to overwrite Z0 cut
-ToolSvc.ZmumuResonanceSelectionTool.Max_d0             = 100
-ToolSvc.ZmumuResonanceSelectionTool.Calibrate          = False
-ToolSvc.ZmumuResonanceSelectionTool.EfficiencyCorr     = False
-ToolSvc.ZmumuResonanceSelectionTool.MuonSelectionTool.OutputLevel = ERROR
-ToolSvc.ZmumuResonancePairingTool.OutputLevel          = ERROR
-ToolSvc.ZmumuResonancePairingTool.HighMassWindow       = 106000.0
-ToolSvc.ZmumuResonancePairingTool.LowMassWindow        =  76000.0
-
-# J/psi configuration
-ToolSvc += MuonResonanceSelectionTool("JpsimumuResonanceSelectionTool")
-ToolSvc += MuonResonancePairingTool("JpsimumuResonancePairingTool")
-ToolSvc.JpsimumuResonanceSelectionTool.OutputLevel        = ERROR
-###               loose selections for J/psi                    ###
-ToolSvc.JpsimumuResonanceSelectionTool.PtCut              = 4000.0
-ToolSvc.JpsimumuResonanceSelectionTool.EtaCut             = 2.5
-ToolSvc.JpsimumuResonanceSelectionTool.IsoCaloCut         = 1
-ToolSvc.JpsimumuResonanceSelectionTool.IsoTrkCut          = 1
-ToolSvc.JpsimumuResonanceSelectionTool.z0Cut              = 100
-ToolSvc.JpsimumuResonanceSelectionTool.Max_d0             = 100
-ToolSvc.JpsimumuResonanceSelectionTool.Calibrate          = False #no calibration on data
-ToolSvc.JpsimumuResonanceSelectionTool.EfficiencyCorr     = False #no efficiency correction on data
-ToolSvc.JpsimumuResonanceSelectionTool.MuonSelectionTool.OutputLevel = ERROR
-ToolSvc.JpsimumuResonancePairingTool.OutputLevel          = ERROR
-ToolSvc.JpsimumuResonancePairingTool.HighMassWindow       = 3600.0
-ToolSvc.JpsimumuResonancePairingTool.LowMassWindow        = 2600.0
-
-
-MuonGenericTracksMon_NoTrig.JpsimumuResonanceSelectionTool = ToolSvc.JpsimumuResonanceSelectionTool
-MuonGenericTracksMon_NoTrig.ZmumuResonanceSelectionTool = ToolSvc.ZmumuResonanceSelectionTool
-MuonGenericTracksMon_L1Trig.JpsimumuResonanceSelectionTool = ToolSvc.JpsimumuResonanceSelectionTool
-MuonGenericTracksMon_L1Trig.ZmumuResonanceSelectionTool = ToolSvc.ZmumuResonanceSelectionTool
-
-from AthenaCommon.AlgSequence import AlgSequence
-topSequence = AlgSequence()
-topSequence += muTrackMonMan
-
diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/share/MuonTrackMonitoring_options.py b/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/share/MuonTrackMonitoring_options.py
deleted file mode 100755
index 87802adc996ba64a9ed386ea5eba1ee2160423df..0000000000000000000000000000000000000000
--- a/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/share/MuonTrackMonitoring_options.py
+++ /dev/null
@@ -1,214 +0,0 @@
-#======================================================================
-# TOP JobOptions to run on MuonTrackMonitoring
-#======================================================================
-from MuonDQAMonFlags.MuonDQAFlags import MuonDQAFlags as MuonDQAFlags
-#############TriggerAware Trk Monitoring#######################
-if MuonDQAFlags.MuonTrkMonDoTrigger or MuonDQAFlags.doMDTTGC:
-   from TrigDecisionMaker.TrigDecisionMakerConfig import TrigDecisionMaker
-   trigDecMaker = TrigDecisionMaker()
-   topSequence += trigDecMaker
-   #from TrigDecision.TrigDecisionConf import TrigDec__TrigDecisionTool
-   #tdt = TrigDec__TrigDecisionTool()
-   #ToolSvc += tdt  
-   tdt = monTrigDecTool
-###############################################################
-#----------------------#
-# Trk Level Monitoring #
-#----------------------#
-### Which Track Collections to read (set array element to 0 or 1):
-# 1-> Moore, 2->MuonBoy
-###############################################################    
-#############MuonSelectedTracksMon#############
-from MuonTrackMonitoring.MuonTrackMonitoringConf import MuonSelectedTracksMon
-#############MuonGenericTracksMon#############
-from MuonTrackMonitoring.MuonTrackMonitoringConf import MuonGenericTracksMon
-#############MuonGenericTracksMon#############
-from MuonTrackMonitoring.MuonTrackMonitoringConf import TGCStandaloneTracksMon
-############# NO TriggerAware Trk Monitoring #######################
-if MuonDQAFlags.doMuonTrackMon:
-
-   #############MuonSelectedTracksMon#############
-   MuonSelectedTracksMon = MuonSelectedTracksMon(name = "MuonSelectedTracksMon",
-                                                 WhichTrackCollections = [0,1,1],
-                                                 MuonTrackCollections = ["ExtrapolatedMuonSpectrometerTracks" ,"ConvertedMBoyTracks", "MuidExtrapolatedTracks" ],
-                                                 NPhiBins = 360,
-                                                 UseTriggerVector = False,
-                                                 MuonTriggerChainName = "NoMuonTriggerSelection" )
-   #############MuonGenericTracksMon#############
-   MuonGenericTracksMon = MuonGenericTracksMon(name = "MuonGenericTracksMon",
-                                               WhichTrackCollections = [0,1,1],
-                                               MuonTrackCollections = ["ExtrapolatedMuonSpectrometerTracks" ,"ConvertedMBoyTracks", "MuidExtrapolatedTracks" ],
-                                               NPhiBins = 360,
-                                               UseTriggerVector = False,
-                                               MuonTriggerChainName = "NoMuonTriggerSelection" )
-   #############TGCStandaloneTracksMon_Trig############
-   TGCStandaloneTracksMon_NoTrig = TGCStandaloneTracksMon(name = "TGCStandaloneTracksMon",
-                                                          TriggerAware = False,
-                                                          MuonTriggerChainName = "TriggersInChain")
-   #ToolSvc += MuonSelectedTracksMon
-   #ToolSvc += MuonGenericTracksMon
-   #ToolSvc += TGCStandaloneTracksMon
-   monMan.AthenaMonTools += [ MuonSelectedTracksMon ]
-   monMan.AthenaMonTools += [ MuonGenericTracksMon ]
-   monMan.AthenaMonTools += [ TGCStandaloneTracksMon ]
-   ###enable lumi tool
-   #MuonSelectedTracksMon.EnableLumi = True
-   #MuonGenericTracksMon.EnableLumi = True
-   #TGCStandaloneTracksMon.EnableLumi = True
- 
-#############TriggerAware Trk Monitoring#######################
-## set to true in case you would like to use trigger-aware monitoring
-## only do trigger-aware monitoring if DQMonFlags.useTrigger is true
-if not DQMonFlags.useTrigger():
-   print "IDPerfMon_jobOptions.py: trigger decision tool not found: don't run trigger-aware monitoring"
-else:
-   if MuonDQAFlags.MuonTrkMonDoTrigger and MuonDQAFlags.doMuonTrackMon:
-      #############MuonSelectedTracksMon_Trig#############
-      MuonSelectedTracksMon_Trig = MuonSelectedTracksMon(name = "MuonSelectedTracksMon_Trig",
-                                                         WhichTrackCollections = [0,1,1],
-                                                         MuonTrackCollections = ["MooreTracks","ConvertedMBoyTracks", "MuidExtrapolatedTracks" ],
-                                                         NPhiBins = 360,
-                                                         UseTriggerVector = True,
-                                                         MuonTriggerDecisionTool = "TrigDec::TrigDecisionTool",
-                                                         Muon_Trigger_Items = ["EF_2mu10", "EF_2mu4", "EF_2mu6", "EF_mu10", "EF_mu20", "EF_mu40"],
-                                                         MuonTriggerChainName = "TriggersInChain") 
-      #############MuonGenericTracksMon_Trig############
-      MuonGenericTracksMon_Trig = MuonGenericTracksMon(name = "MuonGenericTracksMon_Trig",
-                                                       WhichTrackCollections = [0,1,1],
-                                                       MuonTrackCollections = ["MooreTracks","ConvertedMBoyTracks", "MuidExtrapolatedTracks" ],
-                                                       NPhiBins = 360,
-                                                       UseTriggerVector = True,
-                                                       MuonTriggerDecisionTool = "TrigDec::TrigDecisionTool",
-                                                       Muon_Trigger_Items = ["EF_2mu10", "EF_2mu4", "EF_2mu6", "EF_mu10", "EF_mu20", "EF_mu40"],						    
-                                                       MuonTriggerChainName = "TriggersInChain")
-      #############TGCStandaloneTracksMon_Trig############
-      TGCStandaloneTracksMon_Trig = TGCStandaloneTracksMon(name = "TGCStandaloneTracksMon_Trig",
-                                                           TriggerAware = False,
-                                                           MuonTriggerDecisionTool = "TrigDec::TrigDecisionTool",
-                                                           Muon_Trigger_Items = ["MU0", "MU4", "MU6", "MU10", "MU11", "MU15", "MU20", "MU40", "MU0_TGC", "MU6_TGC", "MU0_TGC_HALO" ],
-                                                           MuonTriggerChainName = "TriggersInChain")
-      #ToolSvc += MuonSelectedTracksMon_Trig
-      #ToolSvc += MuonGenericTracksMon_Trig
-      #ToolSvc += TGCStandaloneTracksMon_Trig
-      monMan.AthenaMonTools += [ MuonSelectedTracksMon_Trig ]
-      monMan.AthenaMonTools += [ MuonGenericTracksMon_Trig]
-      monMan.AthenaMonTools += [ TGCStandaloneTracksMon_Trig]
-      ###enable lumi tool
-      #MuonSelectedTracksMon_Trig.EnableLumi = True
-      #MuonGenericTracksMon_Trig.EnableLumi = True
-      #TGCStandaloneTracksMon_Trig.EnableLumi = True
-      #############MuonSelectedTracksMon_Trig#############
-      MuonSelectedTracksMon_trig2mu4 = MuonSelectedTracksMon(name = "MuonSelectedTracksMon_trig2mu4",
-                                                             WhichTrackCollections = [0,1,1], EnableLumi = True,
-                                                             MuonTrackCollections = ["MooreTracks" ,"ConvertedMBoyTracks", "MuidExtrapolatedTracks" ],
-                                                             UseTriggerVector = False )   
-      MuonSelectedTracksMon_trig2mu6 = MuonSelectedTracksMon(name = "MuonSelectedTracksMon_trig2mu6",
-                                                             WhichTrackCollections = [0,1,1], EnableLumi = True,
-                                                             MuonTrackCollections = ["MooreTracks" ,"ConvertedMBoyTracks", "MuidExtrapolatedTracks" ],
-                                                             UseTriggerVector = False )   
-      MuonSelectedTracksMon_trigmu10 = MuonSelectedTracksMon(name = "MuonSelectedTracksMon_trigmu10",
-                                                             WhichTrackCollections = [0,1,1], EnableLumi = True,
-                                                             MuonTrackCollections = ["MooreTracks" ,"ConvertedMBoyTracks", "MuidExtrapolatedTracks" ],
-                                                             UseTriggerVector = False )
-      MuonSelectedTracksMon_trigmu20 = MuonSelectedTracksMon(name = "MuonSelectedTracksMon_trigmu20",
-                                                             WhichTrackCollections = [0,1,1], EnableLumi = True,
-                                                             MuonTrackCollections = ["MooreTracks" ,"ConvertedMBoyTracks", "MuidExtrapolatedTracks" ],
-                                                             UseTriggerVector = False )
-      MuonSelectedTracksMon_trigmu40 = MuonSelectedTracksMon(name = "MuonSelectedTracksMon_trigmu40",
-                                                             WhichTrackCollections = [0,1,1], EnableLumi = True,
-                                                             MuonTrackCollections = ["MooreTracks" ,"ConvertedMBoyTracks", "MuidExtrapolatedTracks" ],
-                                                             UseTriggerVector = False )
-      MuonSelectedTracksMon_trig2mu10 = MuonSelectedTracksMon(name = "MuonSelectedTracksMon_trig2mu10",
-                                                              WhichTrackCollections = [0,1,1], EnableLumi = True,
-                                                              MuonTrackCollections = ["MooreTracks" ,"ConvertedMBoyTracks", "MuidExtrapolatedTracks" ],
-                                                              UseTriggerVector = False )
-      #############MuonGenericTracksMon_Trig#############
-      MuonGenericTracksMon_trig2mu4 = MuonSelectedTracksMon(name = "MuonGenericTracksMon_trig2mu4",
-                                                            WhichTrackCollections = [0,1,1], EnableLumi = True,
-                                                            MuonTrackCollections = ["MooreTracks" ,"ConvertedMBoyTracks", "MuidExtrapolatedTracks" ],
-                                                            UseTriggerVector = False )   
-      MuonGenericTracksMon_trig2mu6 = MuonSelectedTracksMon(name = "MuonGenericTracksMon_trig2mu6",
-                                                            WhichTrackCollections = [0,1,1], EnableLumi = True,
-                                                            MuonTrackCollections = ["MooreTracks" ,"ConvertedMBoyTracks", "MuidExtrapolatedTracks" ],
-                                                            UseTriggerVector = False )   
-      MuonGenericTracksMon_trigmu10 = MuonGenericTracksMon(name = "MuonGenericTracksMon_trigmu10",
-                                                           WhichTrackCollections = [0,1,1], EnableLumi = True,
-                                                           MuonTrackCollections = ["MooreTracks" ,"ConvertedMBoyTracks", "MuidExtrapolatedTracks" ],
-                                                           UseTriggerVector = False)
-      MuonGenericTracksMon_trigmu20 = MuonGenericTracksMon(name = "MuonGenericTracksMon_trigmu20",
-                                                           WhichTrackCollections = [0,1,1], EnableLumi = True,
-                                                           MuonTrackCollections = ["MooreTracks" ,"ConvertedMBoyTracks", "MuidExtrapolatedTracks" ],
-                                                           UseTriggerVector = False)
-      MuonGenericTracksMon_trigmu40 = MuonGenericTracksMon(name = "MuonGenericTracksMon_trigmu40",
-                                                           WhichTrackCollections = [0,1,1], EnableLumi = True,
-                                                           MuonTrackCollections = ["MooreTracks" ,"ConvertedMBoyTracks", "MuidExtrapolatedTracks" ],
-                                                           UseTriggerVector = False)
-      MuonGenericTracksMon_trig2mu10 = MuonGenericTracksMon(name = "MuonGenericTracksMon_trig2mu10",
-                                                            WhichTrackCollections = [0,1,1], EnableLumi = True,
-                                                            MuonTrackCollections = ["MooreTracks" ,"ConvertedMBoyTracks", "MuidExtrapolatedTracks" ],
-                                                            UseTriggerVector = False)
-      MuonSelectedTracksMon_trig2mu4.TrigDecisionTool = tdt
-      MuonSelectedTracksMon_trig2mu6.TrigDecisionTool = tdt
-      MuonSelectedTracksMon_trigmu10.TrigDecisionTool = tdt
-      MuonSelectedTracksMon_trigmu20.TrigDecisionTool = tdt
-      MuonSelectedTracksMon_trigmu40.TrigDecisionTool = tdt
-      MuonSelectedTracksMon_trig2mu10.TrigDecisionTool = tdt
-      MuonGenericTracksMon_trig2mu4.TrigDecisionTool = tdt
-      MuonGenericTracksMon_trig2mu6.TrigDecisionTool = tdt
-      MuonGenericTracksMon_trigmu10.TrigDecisionTool = tdt
-      MuonGenericTracksMon_trigmu20.TrigDecisionTool = tdt
-      MuonGenericTracksMon_trigmu40.TrigDecisionTool = tdt
-      MuonGenericTracksMon_trig2mu10.TrigDecisionTool = tdt
-   ##############Trigger Items for Muons###############
-   ##############MuonSelectedTracksMon#################
-      MuonSelectedTracksMon_trig2mu4.TriggerChain = "EF_2mu4"
-      MuonSelectedTracksMon_trig2mu6.TriggerChain = "EF_2mu6"
-      MuonSelectedTracksMon_trigmu10.TriggerChain = "EF_mu10"
-      MuonSelectedTracksMon_trigmu20.TriggerChain = "EF_mu20"
-      MuonSelectedTracksMon_trigmu40.TriggerChain = "EF_mu40"
-      MuonSelectedTracksMon_trig2mu10.TriggerChain = "EF_2mu10"
-      MuonSelectedTracksMon_trig2mu4.MuonTriggerChainName = "EF_2mu4"
-      MuonSelectedTracksMon_trig2mu6.MuonTriggerChainName = "EF_2mu6"
-      MuonSelectedTracksMon_trigmu10.MuonTriggerChainName = "EF_mu10"   
-      MuonSelectedTracksMon_trigmu20.MuonTriggerChainName = "EF_mu20"
-      MuonSelectedTracksMon_trigmu40.MuonTriggerChainName = "EF_mu40"
-      MuonSelectedTracksMon_trig2mu10.MuonTriggerChainName = "EF_2mu10"
-   ##############MuonGenericTracksMon#################
-      MuonGenericTracksMon_trig2mu4.TriggerChain = "EF_2mu4"
-      MuonGenericTracksMon_trig2mu6.TriggerChain = "EF_2mu6"
-      MuonGenericTracksMon_trigmu10.TriggerChain = "EF_mu10"
-      MuonGenericTracksMon_trigmu20.TriggerChain = "EF_mu20"
-      MuonGenericTracksMon_trigmu40.TriggerChain = "EF_mu40"
-      MuonGenericTracksMon_trig2mu10.TriggerChain = "EF_2mu10"
-      MuonGenericTracksMon_trig2mu4.MuonTriggerChainName = "EF_2mu4"
-      MuonGenericTracksMon_trig2mu6.MuonTriggerChainName = "EF_2mu6"
-      MuonGenericTracksMon_trigmu10.MuonTriggerChainName   = "EF_mu10"
-      MuonGenericTracksMon_trigmu20.MuonTriggerChainName   = "EF_mu20"
-      MuonGenericTracksMon_trigmu40.MuonTriggerChainName   = "EF_mu40"
-      MuonGenericTracksMon_trig2mu10.MuonTriggerChainName  = "EF_2mu10"
-   ###################################################
-      #ToolSvc += MuonSelectedTracksMon_trig2mu4
-      #ToolSvc += MuonSelectedTracksMon_trig2mu6
-      #ToolSvc += MuonSelectedTracksMon_trigmu10
-      #ToolSvc += MuonSelectedTracksMon_trigmu20
-      #ToolSvc += MuonSelectedTracksMon_trigmu40
-      #ToolSvc += MuonSelectedTracksMon_trig2mu10
-      #ToolSvc += MuonGenericTracksMon_trig2mu4
-      #ToolSvc += MuonGenericTracksMon_trig2mu6
-      #ToolSvc += MuonGenericTracksMon_trigmu10
-      #ToolSvc += MuonGenericTracksMon_trigmu20
-      #ToolSvc += MuonGenericTracksMon_trigmu40
-      #ToolSvc += MuonGenericTracksMon_trig2mu10
-   ###################################################
-      monMan.AthenaMonTools += [ MuonSelectedTracksMon_trig2mu4 ]
-      monMan.AthenaMonTools += [ MuonSelectedTracksMon_trig2mu6 ]
-      monMan.AthenaMonTools += [ MuonSelectedTracksMon_trigmu10 ]
-      monMan.AthenaMonTools += [ MuonSelectedTracksMon_trigmu20 ]
-      monMan.AthenaMonTools += [ MuonSelectedTracksMon_trigmu40 ]
-      monMan.AthenaMonTools += [ MuonSelectedTracksMon_trig2mu10 ]
-      monMan.AthenaMonTools += [ MuonGenericTracksMon_trig2mu4 ]
-      monMan.AthenaMonTools += [ MuonGenericTracksMon_trig2mu6 ]
-      monMan.AthenaMonTools += [ MuonGenericTracksMon_trigmu10 ]
-      monMan.AthenaMonTools += [ MuonGenericTracksMon_trigmu20 ]
-      monMan.AthenaMonTools += [ MuonGenericTracksMon_trigmu40 ]
-      monMan.AthenaMonTools += [ MuonGenericTracksMon_trig2mu10 ] 
diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/share/MuonTrigTrackDQA_options.py b/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/share/MuonTrigTrackDQA_options.py
deleted file mode 100644
index 749b2ba637826b900ff6057921903deac2b96c7a..0000000000000000000000000000000000000000
--- a/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/share/MuonTrigTrackDQA_options.py
+++ /dev/null
@@ -1,187 +0,0 @@
-## #======================================================================
-# # top JobOptions to run on TriggerAware MuonTrackMonitoring
-# #======================================================================
-# ## #--------------------------#
-# ## #   MuonTrack  Monitoring  # 
-# ## #--------------------------#
-# print '\n****************************************************************************************\n'
-# print "   ******** Welcome to the Offline MuonTrackMonitoring package. ******** "  
-# print "   ******** Documentation may be found at:******** "  
-# print "   **** https://twiki.cern.ch/twiki/bin/view/Atlas/MuonOfflineDQA ***** "  
-# print '\n****************************************************************************************\n'
-
-# #muTrackMonMan = AthenaMonManager(name="MuonTrackMonManager",
-# #                                 FileKey             = DQMonFlags.monManFileKey(),
-# #                                 Environment         = DQMonFlags.monManEnvironment(),
-# #                                 OutputLevel         = muonOutputLevel)
-					
-
-# from MuonRecExample import MuonRecTools
-# from MuonTrackMonitoring.MuonTrackMonitoringConf import MuonSelectedTracksMon
-# from MuonTrackMonitoring.MuonTrackMonitoringConf import MuonGenericTracksMon
-# from MuonTrackMonitoring.MuonTrackMonitoringConf import TGCStandaloneTracksMon
-# from MuonTrackMonitoring.MuonTrackMonitoringConf import RPCStandaloneTracksMon
-
-# ############TriggerAware Trk Monitoring#######################
-# # set to true in case you would like to use trigger-aware monitoring
-# # only do trigger-aware monitoring if monTrigDecTool known by ToolSvc
-# if not hasattr(ToolSvc, 'monTrigDecTool'):
-#    print "MuonTrigTrackDQA_options.py: trigger decision tool not found: don't run trigger-aware monitoring"
-# else:
-#    #############MuonSelectedTracksMon_Trig#############
-#    MuonSelectedTracksMon_Trig = MuonSelectedTracksMon(name = "MuonSelectedTracksMon_Trig",
-#                                                       WhichTrackCollections = [1,1],
-#                                                       MuonTrackCollections = ["MooreTracks","ConvertedMBoyTracks" ],
-#                                                       NPhiBins = 360,
-#                                                       UseTriggerVector = True,
-#                                                       Muon_Trigger_Items = ["EF_2mu10", "EF_2mu4", "EF_2mu6", "EF_mu10", "EF_mu20", "EF_mu40"],
-#                                                       MuonTriggerChainName = "TriggersInChain",
-#                                                       OutputLevel = INFO)					  
-#    ###########MuonGenericTracksMon_Trig############
-#    MuonGenericTracksMon_Trig = MuonGenericTracksMon(name = "MuonGenericTracksMon_Trig",
-#                                                     WhichTrackCollections = [1,1],
-#                                                     MuonTrackCollections = ["MooreTracks","ConvertedMBoyTracks" ],
-#                                                     NPhiBins = 360,
-#                                                     UseTriggerVector = True,
-#                                                     Muon_Trigger_Items = ["EF_2mu10", "EF_2mu4", "EF_2mu6", "EF_mu10", "EF_mu20", "EF_mu40"],
-#                                                     MuonTriggerChainName = "TriggersInChain",
-#                                                     OutputLevel = INFO)
-#    ###########TGCStandaloneTracksMon_Trig############
-# #   TGCStandaloneTracksMon_Trig = TGCStandaloneTracksMon(name = "TGCStandaloneTracksMon_Trig",
-# #                                                        TriggerAware = True,
-# #							TriggerDecisionTool = monTrigDecTool,
-# #                                                        Muon_Trigger_Items = ["MU0", "MU4", "MU6", "MU10", "MU11", "MU15", "MU20", "MU40", "MU0_TGC", "MU6_TGC", "MU0_TGC_HALO" ],
-# #                                                        OutputLevel = INFO)
-#    ############################################################
-#    ToolSvc += MuonSelectedTracksMon_Trig
-#    ToolSvc += MuonGenericTracksMon_Trig
-# #   ToolSvc += TGCStandaloneTracksMon_Trig
-#    muTrackMonMan.AthenaMonTools += [ MuonSelectedTracksMon_Trig ]
-#    muTrackMonMan.AthenaMonTools += [ MuonGenericTracksMon_Trig]
-# #   muTgcTrackMonMan.AthenaMonTools += [ TGCStandaloneTracksMon_Trig]
-#    print muTrackMonMan
-# #   print muTgcTrackMonMan    
-#    ###########MuonSelectedTracksMon_Trig - Specific#############
-#    MuonSelectedTracksMon_trigmu10 = MuonSelectedTracksMon(name = "MuonSelectedTracksMon_trigmu10",
-#                                                           WhichTrackCollections = [1,1],
-#                                                           MuonTrackCollections = ["MooreTracks" ,"ConvertedMBoyTracks" ],
-#                                                           UseTriggerVector = False,
-#                                                           OutputLevel = INFO)
-#    MuonSelectedTracksMon_trigmu20 = MuonSelectedTracksMon(name = "MuonSelectedTracksMon_trigmu20",
-#                                                           WhichTrackCollections = [1,1],
-#                                                           MuonTrackCollections = ["MooreTracks" ,"ConvertedMBoyTracks" ],
-#                                                           UseTriggerVector = False,
-#                                                           OutputLevel = INFO)
-#    MuonSelectedTracksMon_trigmu40 = MuonSelectedTracksMon(name = "MuonSelectedTracksMon_trigmu40",
-#                                                           WhichTrackCollections = [1,1],
-#                                                           MuonTrackCollections = ["MooreTracks" ,"ConvertedMBoyTracks" ],
-#                                                           UseTriggerVector = False,
-#                                                           OutputLevel = INFO)
-#    MuonSelectedTracksMon_trig2mu10 = MuonSelectedTracksMon(name = "MuonSelectedTracksMon_trig2mu10",
-#                                                            WhichTrackCollections = [1,1],
-#                                                            MuonTrackCollections = ["MooreTracks" ,"ConvertedMBoyTracks" ],
-#                                                            UseTriggerVector = False,
-#                                                            OutputLevel = INFO)
-#    MuonSelectedTracksMon_trig2mu4 = MuonSelectedTracksMon(name = "MuonSelectedTracksMon_trig2mu4",
-#                                                           WhichTrackCollections = [1,1],
-#                                                           MuonTrackCollections = ["MooreTracks" ,"ConvertedMBoyTracks" ],
-#                                                           UseTriggerVector = False,
-#                                                           OutputLevel = INFO)
-#    MuonSelectedTracksMon_trig2mu6 = MuonSelectedTracksMon(name = "MuonSelectedTracksMon_trig2mu6",
-#                                                           WhichTrackCollections = [1,1],
-#                                                           MuonTrackCollections = ["MooreTracks" ,"ConvertedMBoyTracks" ],
-#                                                           UseTriggerVector = False,
-#                                                           OutputLevel = INFO)
-#    MuonSelectedTracksMon_trigmu10.TrigDecisionTool = monTrigDecTool
-#    MuonSelectedTracksMon_trigmu20.TrigDecisionTool = monTrigDecTool
-#    MuonSelectedTracksMon_trigmu40.TrigDecisionTool = monTrigDecTool
-#    MuonSelectedTracksMon_trig2mu10.TrigDecisionTool = monTrigDecTool
-#    MuonSelectedTracksMon_trig2mu4.TrigDecisionTool = monTrigDecTool
-#    MuonSelectedTracksMon_trig2mu6.TrigDecisionTool = monTrigDecTool
-#    MuonSelectedTracksMon_trigmu10.TriggerChain = "EF_mu10"
-#    MuonSelectedTracksMon_trigmu20.TriggerChain = "EF_mu20"
-#    MuonSelectedTracksMon_trigmu40.TriggerChain = "EF_mu40"
-#    MuonSelectedTracksMon_trig2mu10.TriggerChain = "EF_2mu10"
-#    MuonSelectedTracksMon_trig2mu4.TriggerChain = "EF_2mu4"
-#    MuonSelectedTracksMon_trig2mu6.TriggerChain = "EF_2mu6"
-#    MuonSelectedTracksMon_trigmu10.MuonTriggerChainName = "EF_mu10"
-#    MuonSelectedTracksMon_trigmu20.MuonTriggerChainName = "EF_mu20"
-#    MuonSelectedTracksMon_trigmu40.MuonTriggerChainName = "EF_mu40"
-#    MuonSelectedTracksMon_trig2mu10.MuonTriggerChainName = "EF_2mu10"
-#    MuonSelectedTracksMon_trig2mu4.MuonTriggerChainName = "EF_2mu4"
-#    MuonSelectedTracksMon_trig2mu6.MuonTriggerChainName = "EF_2mu6"
-#    ToolSvc += MuonSelectedTracksMon_trigmu10
-#    ToolSvc += MuonSelectedTracksMon_trigmu20
-#    ToolSvc += MuonSelectedTracksMon_trigmu40
-#    ToolSvc += MuonSelectedTracksMon_trig2mu10
-#    ToolSvc += MuonSelectedTracksMon_trig2mu4
-#    ToolSvc += MuonSelectedTracksMon_trig2mu6
-#    muTrackMonMan.AthenaMonTools += [ MuonSelectedTracksMon_trigmu10]
-#    muTrackMonMan.AthenaMonTools += [ MuonSelectedTracksMon_trigmu20]
-#    muTrackMonMan.AthenaMonTools += [ MuonSelectedTracksMon_trigmu40]
-#    muTrackMonMan.AthenaMonTools += [ MuonSelectedTracksMon_trig2mu10]
-#    muTrackMonMan.AthenaMonTools += [ MuonSelectedTracksMon_trig2mu4]
-#    muTrackMonMan.AthenaMonTools += [ MuonSelectedTracksMon_trig2mu6]      
-#    print muTrackMonMan
-#    ###########MuonGenericTracksMon_Trig - Specific#############
-#    MuonGenericTracksMon_trigmu10 = MuonGenericTracksMon(name = "MuonGenericTracksMon_trigmu10",
-#                                                         WhichTrackCollections = [1,1],
-#                                                         MuonTrackCollections = ["MooreTracks" ,"ConvertedMBoyTracks" ],
-#                                                         UseTriggerVector = False,
-#                                                         OutputLevel = INFO)
-#    MuonGenericTracksMon_trigmu20 = MuonGenericTracksMon(name = "MuonGenericTracksMon_trigmu20",
-#                                                         WhichTrackCollections = [1,1],
-#                                                         MuonTrackCollections = ["MooreTracks" ,"ConvertedMBoyTracks" ],
-#                                                         UseTriggerVector = False,
-#                                                         OutputLevel = INFO)
-#    MuonGenericTracksMon_trigmu40 = MuonGenericTracksMon(name = "MuonGenericTracksMon_trigmu40",
-#                                                         WhichTrackCollections = [1,1],
-#                                                         MuonTrackCollections = ["MooreTracks" ,"ConvertedMBoyTracks" ],
-#                                                         UseTriggerVector = False,
-#                                                         OutputLevel = INFO)
-#    MuonGenericTracksMon_trig2mu10 = MuonGenericTracksMon(name = "MuonGenericTracksMon_trig2mu10",
-#                                                          WhichTrackCollections = [1,1],
-#                                                          MuonTrackCollections = ["MooreTracks" ,"ConvertedMBoyTracks" ],
-#                                                          UseTriggerVector = False,
-#                                                          OutputLevel = INFO)
-#    MuonGenericTracksMon_trig2mu4 = MuonGenericTracksMon(name = "MuonGenericTracksMon_trig2mu4",
-#                                                         WhichTrackCollections = [1,1],
-#                                                         MuonTrackCollections = ["MooreTracks" ,"ConvertedMBoyTracks" ],
-#                                                         UseTriggerVector = False,
-#                                                         OutputLevel = INFO)
-#    MuonGenericTracksMon_trig2mu6 = MuonGenericTracksMon(name = "MuonGenericTracksMon_trig2mu6",
-#                                                         WhichTrackCollections = [1,1],
-#                                                         MuonTrackCollections = ["MooreTracks" ,"ConvertedMBoyTracks" ],
-#                                                         UseTriggerVector = False,
-#                                                         OutputLevel = INFO)
-#    MuonGenericTracksMon_trigmu10.TrigDecisionTool = monTrigDecTool
-#    MuonGenericTracksMon_trigmu20.TrigDecisionTool = monTrigDecTool
-#    MuonGenericTracksMon_trigmu40.TrigDecisionTool = monTrigDecTool
-#    MuonGenericTracksMon_trig2mu10.TrigDecisionTool = monTrigDecTool
-#    MuonGenericTracksMon_trig2mu4.TrigDecisionTool = monTrigDecTool
-#    MuonGenericTracksMon_trig2mu6.TrigDecisionTool = monTrigDecTool
-#    MuonGenericTracksMon_trigmu10.TriggerChain = "EF_mu10"
-#    MuonGenericTracksMon_trigmu20.TriggerChain = "EF_mu20"
-#    MuonGenericTracksMon_trigmu40.TriggerChain = "EF_mu40"
-#    MuonGenericTracksMon_trig2mu10.TriggerChain = "EF_2mu10"
-#    MuonGenericTracksMon_trig2mu4.TriggerChain = "EF_2mu4"
-#    MuonGenericTracksMon_trig2mu6.TriggerChain = "EF_2mu6"
-#    MuonGenericTracksMon_trigmu10.MuonTriggerChainName = "EF_mu10"
-#    MuonGenericTracksMon_trigmu20.MuonTriggerChainName = "EF_mu20"
-#    MuonGenericTracksMon_trigmu40.MuonTriggerChainName = "EF_mu40"
-#    MuonGenericTracksMon_trig2mu10.MuonTriggerChainName = "EF_2mu10"
-#    MuonGenericTracksMon_trig2mu4.MuonTriggerChainName = "EF_2mu4"
-#    MuonGenericTracksMon_trig2mu6.MuonTriggerChainName = "EF_2mu6"
-#    ToolSvc += MuonGenericTracksMon_trigmu10
-#    ToolSvc += MuonGenericTracksMon_trigmu20
-#    ToolSvc += MuonGenericTracksMon_trigmu40
-#    ToolSvc += MuonGenericTracksMon_trig2mu10
-#    ToolSvc += MuonGenericTracksMon_trig2mu4
-#    ToolSvc += MuonGenericTracksMon_trig2mu6
-#    muTrackMonMan.AthenaMonTools += [ MuonGenericTracksMon_trigmu10]
-#    muTrackMonMan.AthenaMonTools += [ MuonGenericTracksMon_trigmu20]
-#    muTrackMonMan.AthenaMonTools += [ MuonGenericTracksMon_trigmu40]
-#    muTrackMonMan.AthenaMonTools += [ MuonGenericTracksMon_trig2mu10]
-#    muTrackMonMan.AthenaMonTools += [ MuonGenericTracksMon_trig2mu4]
-#    muTrackMonMan.AthenaMonTools += [ MuonGenericTracksMon_trig2mu6]
-#    print muTrackMonMan
diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/src/MuonGenericTracksMon.cxx b/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/src/MuonGenericTracksMon.cxx
deleted file mode 100755
index 27af512b2d6fe47b1d19edc35f3b00b621a391d9..0000000000000000000000000000000000000000
--- a/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/src/MuonGenericTracksMon.cxx
+++ /dev/null
@@ -1,639 +0,0 @@
-/*
-  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
-*/
-
-// ================================================================================
-// MuonGenericTracksMon.cxx
-// ------------------------------
-// AUTHORS:     N. Benekos, E. Christidi,  A. Cortes, A. Eppig, I. Nomidis, T. Liss
-//              B. Tong, Y. Liu, G. Cree
-// created:     November 2007
-// modified June 2008: for Trigger Aware monitoring :  A. Cortes (UIUC)
-// modified March 2015: XAOD migration and combination of track / segment / muon
-// description: Implementation code for the MuonGenericTracksMon
-// ============================================================================== 
-
-#include "MuonTrackMonitoring/MuonGenericTracksMon.h"
-#include "xAODEventInfo/EventInfo.h"
-#include "TrkMultiComponentStateOnSurface/MultiComponentStateOnSurface.h"
-#include "TrkMultiComponentStateOnSurface/MultiComponentState.h"
-#include "TrkEventPrimitives/ResidualPull.h"
-#include "TrkMeasurementBase/MeasurementBase.h" 
-#include "TrkTrack/TrackStateOnSurface.h"
-#include "TrkTrack/TrackCollection.h"
-//include Root dependencies
-#include <TH1F.h>
-
-// *********************************************************************
-// Public Methods
-// *********************************************************************
-
-MuonGenericTracksMon::MuonGenericTracksMon( const std::string & type, const std::string & name, const IInterface* parent )
-  :ManagedMonitorToolBase( type, name, parent ),
-  m_inst_lumi_bcid(0.0),
-  m_inst_lumi_lb(0.0),
-  m_current_lb(-1),
-  m_hNEvent(NULL),
-  m_oRecoLumiPlots(0),
-  m_oRecoMuonSegmentPlots(0),
-  m_oRecoMuonMSTrackPlots(0),
-  m_oRecoMuonMETrackPlots(0),
-  m_oRecoMuonIDTrackPlots(0),
-  m_oRecoMuonPlots(0),
-  m_oRecoPhysPlots(0),
-  m_oRecoVertexPlots(0),
-  m_useTrigger(true),
-  m_muonSelectionTool("CP::MuonSelectionTool/MuonSelectionTool"),
-  m_ZmumuResonanceSelectionTool("MuonResonanceSelectionTool/ZmumuResonanceSelectionTool"),
-  m_ZmumuResonancePairingTool("MuonResonancePairingTool/ZmumuResonancePairingTool"),
-  m_JpsimumuResonanceSelectionTool("MuonResonanceSelectionTool/JpsimumuResonanceSelectionTool"),
-  m_JpsimumuResonancePairingTool("MuonResonancePairingTool/JpsimumuResonancePairingTool"),
-  m_isMC(false)
-{
-
-  declareProperty("UseTriggerVector",     m_useTrigger); 
-  declareProperty("MuonTriggerChainName", m_MuonTriggerChainName);
-  declareProperty("Muon_Trigger_Items",   m_muon_triggers);
-  declareProperty("TriggerDecisionTool",  m_trigDecTool);
-  declareProperty("MuonCollection",                  m_muonsName            = "Muons");
-  declareProperty("MuonSegmentCollection",           m_muonSegmentsName     = "MuonSegments");
-  declareProperty("MuonTrackCollection",             m_muonTracksName       = "MuonSpectrometerTrackParticles");
-  declareProperty("MuonExtrapolatedTrackCollection", m_muonExtrapTracksName = "ExtrapolatedMuonTrackParticles");
-  declareProperty("InDetTrackParticles",             m_innerTracksName      = "InDetTrackParticles");
-  declareProperty("MuonSelectorTool",                m_muonSelectionTool);
-  declareProperty("ZmumuResonanceSelectionTool",     m_ZmumuResonanceSelectionTool);
-  declareProperty("JpsimumuResonanceSelectionTool",  m_JpsimumuResonanceSelectionTool);
-  declareProperty("MSVertexCollection",				 m_msVertexCollection   = "MSDisplacedVertex");
-}
-
-StatusCode MuonGenericTracksMon::initialize() { 
-  ATH_CHECK(ManagedMonitorToolBase::initialize());
-  ATH_CHECK(setupTools());
-  return StatusCode::SUCCESS;
-}
-
-//======================================================================================//
-StatusCode MuonGenericTracksMon::bookHistograms()
-//======================================================================================//
-{
-  ATH_MSG_DEBUG("In bookHistograms()");
-  
-  if(!(m_environment == AthenaMonManager::tier0    || 
-       m_environment == AthenaMonManager::tier0ESD || 
-       m_environment == AthenaMonManager::online   ||
-       m_environment == AthenaMonManager::AOD)){
-
-    return StatusCode::SUCCESS;
-  }
-    
-  MgmtAttr_t attr = ATTRIB_MANAGED;
-
-  //set the path with trigger chain name
-  std::string rootpath = "MuonPhysics/";
-  
-  if(newRunFlag()) {
-
-    //example of how to register a new histogram
-    m_hNEvent = new TH1F("Overview_nEvent", "Number of Events;LumiBlock;Nevents", 2000, -0.5, 1999.5);
-	   
-    std::string dirpath;
-    dirpath = rootpath + m_MuonTriggerChainName + "/Overview";
-
-    MonGroup mongroup_gen_overview(this, dirpath, run, attr ); 
-    bookInMongroup(m_hNEvent, mongroup_gen_overview).ignore();
-
-    if (m_MuonTriggerChainName != ""){
-
-      //book lumi associated info
-    	dirpath = m_MuonTriggerChainName + "Overview/" + m_sources[SOURCE::CBMUONS];//redefine for hist name
-    	MonGroup mongroup_overview2(this, rootpath + dirpath, run, attr);
-    	m_oRecoLumiPlots.push_back(new RecoLumiPlots(0, dirpath + "_", m_sources[SOURCE::CBMUONS]));
-    	bookInMongroup(*m_oRecoLumiPlots[0], mongroup_overview2, m_sources[SOURCE::CBMUONS]).ignore();
-
-    	dirpath = m_MuonTriggerChainName + "Overview/" + m_sources[SOURCE::NONCBMUONS];//redefine for hist name
-    	MonGroup mongroup_overview3(this, rootpath + dirpath, run, attr);
-    	m_oRecoLumiPlots.push_back(new RecoLumiPlots(0, dirpath + "_", m_sources[SOURCE::NONCBMUONS]));
-    	bookInMongroup(*m_oRecoLumiPlots[1], mongroup_overview3, m_sources[SOURCE::NONCBMUONS]).ignore();
-
-  		dirpath = m_MuonTriggerChainName + "Overview/" + m_sources[SOURCE::CONTAINER];//redefine for hist name
-  		MonGroup mongroup_overview(this, rootpath + dirpath, run, attr);
-  		m_oRecoLumiPlots.push_back(new RecoLumiPlots(0, dirpath + "_", m_sources[SOURCE::CONTAINER]));
-  		bookInMongroup(*m_oRecoLumiPlots[2], mongroup_overview, m_sources[SOURCE::CONTAINER]).ignore();
-  		//book segments
-  		dirpath = m_MuonTriggerChainName + "Segments/" + m_sources[SOURCE::CBMUONS];
-  		MonGroup mongroup_segments2(this, rootpath + dirpath, run, attr);
-  		m_oRecoMuonSegmentPlots.push_back(new RecoMuonSegmentPlots(0, dirpath));
-  		bookInMongroup(*m_oRecoMuonSegmentPlots[0], mongroup_segments2, m_sources[SOURCE::CBMUONS]).ignore();
-
-  		dirpath = m_MuonTriggerChainName + "Segments/" + m_sources[SOURCE::NONCBMUONS];
-  		MonGroup mongroup_segments3(this, rootpath + dirpath, run, attr);
-  		m_oRecoMuonSegmentPlots.push_back(new RecoMuonSegmentPlots(0, dirpath));
-  		bookInMongroup(*m_oRecoMuonSegmentPlots[1], mongroup_segments3, m_sources[SOURCE::NONCBMUONS]).ignore();
-
-  		dirpath = m_MuonTriggerChainName + "Segments/" + m_sources[SOURCE::CONTAINER];
-  		MonGroup mongroup_segments(this, rootpath + dirpath, run, attr);
-  		m_oRecoMuonSegmentPlots.push_back(new RecoMuonSegmentPlots(0, dirpath, true));
-  		bookInMongroup(*m_oRecoMuonSegmentPlots[2], mongroup_segments, m_sources[SOURCE::CONTAINER]).ignore();
-  		//book MS tracks
-  		dirpath = m_MuonTriggerChainName + "TracksMS/" + m_sources[SOURCE::CONTAINER];
-  		MonGroup mongroup_mstracks(this, rootpath + dirpath, run, attr);
-  		m_oRecoMuonMSTrackPlots.push_back(new RecoMuonTrackPlots(0, dirpath));
-  		bookInMongroup(*m_oRecoMuonMSTrackPlots[0], mongroup_mstracks, m_sources[SOURCE::CONTAINER], "MS").ignore();
-  		//book muons
-  		dirpath = m_MuonTriggerChainName + "Muons/" + m_sources[SOURCE::CBMUONS];
-  		MonGroup mongroup_mutracks(this, rootpath + dirpath, run, attr);
-  		m_oRecoMuonPlots.push_back(new RecoMuonPlots(0, dirpath, true));
-  		bookInMongroup(*m_oRecoMuonPlots[0], mongroup_mutracks, m_sources[SOURCE::CBMUONS], "").ignore();
-
-  		dirpath = m_MuonTriggerChainName + "Muons/" + m_sources[SOURCE::NONCBMUONS];
-  		MonGroup mongroup_mutracks2(this, rootpath + dirpath, run, attr);
-  		m_oRecoMuonPlots.push_back(new RecoMuonPlots(0, dirpath, false));
-  		bookInMongroup(*m_oRecoMuonPlots[1], mongroup_mutracks2, m_sources[SOURCE::NONCBMUONS], "NonCB").ignore();
-  		//book id tracks
-  		dirpath = m_MuonTriggerChainName + "TracksID/" + m_sources[SOURCE::CBMUONS];
-  		MonGroup mongroup_idtracks(this, rootpath + dirpath, run, attr);
-  		m_oRecoMuonIDTrackPlots.push_back(new RecoMuonIDTrackPlots(0, dirpath));
-  		bookInMongroup(*m_oRecoMuonIDTrackPlots[0], mongroup_idtracks, m_sources[SOURCE::CBMUONS], "ID").ignore();
-
-  		dirpath = m_MuonTriggerChainName + "TracksID/" + m_sources[SOURCE::NONCBMUONS];
-  		MonGroup mongroup_idtracks2(this, rootpath + dirpath, run, attr);
-  		m_oRecoMuonIDTrackPlots.push_back(new RecoMuonIDTrackPlots(0, dirpath));
-  		bookInMongroup(*m_oRecoMuonIDTrackPlots[1], mongroup_idtracks2, m_sources[SOURCE::NONCBMUONS], "ID").ignore();
-
-  		dirpath = m_MuonTriggerChainName + "TracksME/" + m_sources[SOURCE::CBMUONS];
-  		MonGroup mongroup_metracks(this, rootpath + dirpath, run, attr);
-  		m_oRecoMuonMETrackPlots.push_back(new RecoMuonTrackPlots(0, dirpath));
-  		bookInMongroup(*m_oRecoMuonMETrackPlots[0], mongroup_metracks, m_sources[SOURCE::CBMUONS], "ME").ignore();
-
-  		dirpath = m_MuonTriggerChainName + "TracksME/" + m_sources[SOURCE::NONCBMUONS];
-  		MonGroup mongroup_metracks2(this, rootpath + dirpath, run, attr);
-  		m_oRecoMuonMETrackPlots.push_back(new RecoMuonTrackPlots(0, dirpath));
-  		bookInMongroup(*m_oRecoMuonMETrackPlots[1], mongroup_metracks2, m_sources[SOURCE::NONCBMUONS], "ME").ignore();
-
-      dirpath = m_MuonTriggerChainName + "MSVertices/";
-	    MonGroup mongroup_msvertices(this, rootpath + dirpath, run, attr);
-	    m_oRecoVertexPlots.push_back(new RecoVertexPlots(0, dirpath));
-	    bookInMongroup(*m_oRecoVertexPlots[0], mongroup_msvertices, m_sources[SOURCE::CONTAINER]).ignore();
-	  
-    }
-    else{
-        for (int i = 0; i < SOURCE::N_SOURCE; i++) {
-
-    		dirpath = "Overview/" + m_sources[i];//redefine for hist name
-    		MonGroup mongroup_overview(this, rootpath + dirpath, run, attr);
-    		m_oRecoLumiPlots.push_back(new RecoLumiPlots(0, dirpath + "_", m_sources[i]));
-    		bookInMongroup(*m_oRecoLumiPlots[i], mongroup_overview, m_sources[i]).ignore();
-
-    		dirpath = "Segments/" + m_sources[i];
-    		MonGroup mongroup_segments(this, rootpath + dirpath, run, attr);
-        if(i == SOURCE::CBMUONS || i == SOURCE::CONTAINER) m_oRecoMuonSegmentPlots.push_back(new RecoMuonSegmentPlots(0, dirpath, true));
-        else                     m_oRecoMuonSegmentPlots.push_back(new RecoMuonSegmentPlots(0, dirpath, false));
-    		bookInMongroup(*m_oRecoMuonSegmentPlots[i], mongroup_segments, m_sources[i]).ignore();
-
-    		if(i > SOURCE::CBMUONS){//for MS tracks, only do not CB muons, since it overlaps with ME
-  		    dirpath = "TracksMS/" + m_sources[i];
-  		    MonGroup mongroup_mstracks(this, rootpath + dirpath, run, attr);
-  		    m_oRecoMuonMSTrackPlots.push_back(new RecoMuonTrackPlots(0, dirpath));
-  		    bookInMongroup(*m_oRecoMuonMSTrackPlots[i - 3], mongroup_mstracks, m_sources[i], "MS").ignore();
-    		}
-
-    		if(i != SOURCE::CONTAINER){//for IDME tracks and Muon, do not do container
-    			dirpath = "Muons/" + m_sources[i];
-    			MonGroup mongroup_mutracks(this, rootpath + dirpath, run, attr);
-    			if(i > SOURCE::CBMUONS)  m_oRecoMuonPlots.push_back(new RecoMuonPlots(0, dirpath, false));
-          else  m_oRecoMuonPlots.push_back(new RecoMuonPlots(0, dirpath, true));
-    			bookInMongroup(*m_oRecoMuonPlots[i], mongroup_mutracks, m_sources[i], "").ignore();
-
-  		    dirpath = "TracksME/" + m_sources[i];
-  		    MonGroup mongroup_metracks(this, rootpath + dirpath, run, attr);
-  		    m_oRecoMuonMETrackPlots.push_back(new RecoMuonTrackPlots(0, dirpath));
-  		    bookInMongroup(*m_oRecoMuonMETrackPlots[i], mongroup_metracks, m_sources[i], "ME").ignore();
-
-    			dirpath = "TracksID/" + m_sources[i];
-    			MonGroup mongroup_idtracks(this, rootpath + dirpath, run, attr);
-    			m_oRecoMuonIDTrackPlots.push_back(new RecoMuonIDTrackPlots(0, dirpath));
-    			bookInMongroup(*m_oRecoMuonIDTrackPlots[i], mongroup_idtracks, m_sources[i], "ID").ignore();
-    		}
-
-    		if(i == SOURCE::Z){
-  		    dirpath = rootpath + "/MuonTrkPhys/" + m_sources[i];
-  		    MonGroup mongroup_Zsignal(this, dirpath, run, attr);
-  		    m_oRecoPhysPlots.push_back(new RecoPhysPlots(0, "", m_sources[i]));//the naming for res is slightly diff
-  		    bookInMongroup(*m_oRecoPhysPlots[i], mongroup_Zsignal, m_sources[i]).ignore();
-    		}
-    		if(i == SOURCE::JPSI){
-  		    dirpath = rootpath + "/MuonTrkPhys/" + m_sources[i];
-  		    MonGroup mongroup_Jpsisignal(this, dirpath, run, attr);
-  		    m_oRecoPhysPlots.push_back(new RecoPhysPlots(0, "", m_sources[i]));//the naming for res is slightly diff
-  		    bookInMongroup(*m_oRecoPhysPlots[i], mongroup_Jpsisignal, m_sources[i]).ignore();
-    		}
-      }//end of loopoing over different m_sources
-    }//end of different trigger situations
-  }//end of new run condition
-
-  return StatusCode::SUCCESS;  
-}
-
-StatusCode MuonGenericTracksMon::bookInMongroup(TH1* hist, MonGroup& mongroup)
-{
-  ATH_MSG_DEBUG ("Initializing " << hist << " " << hist->GetName() << "...");
-  return (mongroup.regHist(hist));
-}
-
-StatusCode MuonGenericTracksMon::bookInMongroup(HistData& hist, MonGroup& mongroup, std::string source)
-{
-  ATH_MSG_INFO ("Initializing " << hist.first << " " << hist.first->GetName() << " " << hist.second << "...");
-  //change hist title
-  TString sHistTitle = hist.first->GetTitle();
-  source = m_MuonTriggerChainName + source;//add trig titles here
-  std::replace( source.begin(), source.end(), '/', ' ');//name clean
-  sHistTitle = sHistTitle.Insert(0, (source + ": ").c_str());
-  hist.first->SetTitle(sHistTitle);
-
-  ATH_CHECK(mongroup.regHist(hist.first));
-  return StatusCode::SUCCESS;
-}
-
-StatusCode MuonGenericTracksMon::bookInMongroup(PlotBase& valPlots, MonGroup& mongroup, std::string source)
-{
-  valPlots.initialize();
-  std::vector<HistData> hists = valPlots.retrieveBookedHistograms(); // HistData -> std::pair<TH1*, std::string>
-  for (auto hist: hists){
-    bookInMongroup(hist, mongroup, source).ignore();
-  }
-  return StatusCode::SUCCESS;
-}
-
-StatusCode MuonGenericTracksMon::bookInMongroup(PlotBase& valPlots, MonGroup& mongroup, std::string source, TString Montype)
-{
-  valPlots.initialize();
-  std::vector<HistData> hists = valPlots.retrieveBookedHistograms(); // HistData -> std::pair<TH1*, std::string> 
-  for (auto hist: hists) {
-
-    TString sHistName  = hist.first->GetName();
-    TString sHistTitle = hist.first->GetTitle();
-
-    // rebin and/or change the axis range label
-    // move rebin of all 2D eta_phi plots to post processing
-
-    if (sHistName.Contains("_eta_phi")){
-        hist.first->GetXaxis()->SetTitle("#eta");
-        hist.first->GetYaxis()->SetTitle("#phi");
-    }
-    else if (sHistName.EndsWith("_eta_pt")){
-        hist.first->GetYaxis()->SetTitle("p_{T} [GeV]");
-        hist.first->GetXaxis()->SetTitle("#eta");
-    }
-    else if (sHistName.EndsWith("_eta")){
-        hist.first->RebinX(2);
-        hist.first->GetXaxis()->SetTitle("#eta");
-    }
-    else if (sHistName.EndsWith("_phi")){
-        hist.first->RebinX(2);
-        hist.first->GetXaxis()->SetTitle("#phi");
-    }
-    else if (sHistName.EndsWith("_pt")){
-        hist.first->RebinX(2);
-        hist.first->GetXaxis()->SetLimits(0, 100);//consider repace with SetLimits(0, 100)
-        hist.first->GetXaxis()->SetTitle("p_{T} [GeV]");
-    }
-    else if (sHistName.EndsWith("_ddpt")){
-        hist.first->RebinX(3);
-    }
-    else if (sHistName.EndsWith("_z0")){
-        hist.first->RebinX(2);
-    }
-    else if (sHistName.EndsWith("_d0")){
-        hist.first->RebinX(2);
-    }
-
-    // for ID track hits, special treatment
-    if (sHistName.Contains("HitContent")){
-        hist.first->SetName(pathToHistName(m_MuonTriggerChainName) + "Tracks" + Montype + "_" + source + "_" + sHistName);
-    }
-
-    // change histogram title
-    if (Montype != ""){//do this only for tracks
-      if (sHistTitle.Contains("Track")) {
-          sHistTitle = sHistTitle.Replace(0, 6, Montype + " Track ");
-          hist.first->SetTitle(sHistTitle);
-      }
-      else if (sHistTitle.Contains("Reco Muon")) {
-           sHistTitle = sHistTitle.Replace(0, 9, Montype + " Track ");
-           hist.first->SetTitle(sHistTitle);
-      }
-      else hist.first->SetTitle(Montype + " Track " + sHistTitle);
-    }
-
-    bookInMongroup(hist, mongroup, source).ignore();
-  }
-  return StatusCode::SUCCESS;
-}
-
-//======================================================================================//
-StatusCode MuonGenericTracksMon::fillHistograms()
-{
-    ATH_MSG_DEBUG("In fillHistograms()");
-
-    const xAOD::EventInfo* eventInfo=nullptr;
-    ATH_CHECK(evtStore()->retrieve(eventInfo));
-
-    if(!(m_environment == AthenaMonManager::tier0    || 
-         m_environment == AthenaMonManager::tier0ESD || 
-         m_environment == AthenaMonManager::online   ||
-         m_environment == AthenaMonManager::AOD)){
-      
-        return StatusCode::SUCCESS;
-    }
-
-    ATH_MSG_DEBUG("LB " << eventInfo->lumiBlock() <<
-                  " instant " << ManagedMonitorToolBase::lbLuminosityPerBCID() <<
-                  " average " << ManagedMonitorToolBase::lbAverageLuminosity() <<
-                  " duration " <<  ManagedMonitorToolBase::lbDuration() << 
-                  " lbint " << ManagedMonitorToolBase::lbInteractionsPerCrossing()
-                  );
-    m_current_lb = eventInfo->lumiBlock();
-    m_hNEvent->Fill(m_current_lb, 1);
-
-    m_inst_lumi_bcid = ManagedMonitorToolBase::lbLuminosityPerBCID();
-    if(m_inst_lumi_bcid < 0){
-        ATH_MSG_DEBUG("Weird instantaneous luminosity per bcid. Setting to 0.");
-        m_inst_lumi_bcid = 0;
-    }
-    m_inst_lumi_lb = ManagedMonitorToolBase::lbAverageLuminosity();
-    if(m_inst_lumi_lb < 0){
-        ATH_MSG_DEBUG("Weird instantaneous luminosity per lb. Setting to 0.");
-        m_inst_lumi_lb = 0;
-    }
-
-    // retrieve containers
-    const xAOD::MuonSegmentContainer* MuonSegments=nullptr;
-    ATH_CHECK(evtStore()->retrieve(MuonSegments, m_muonSegmentsName));
-    const xAOD::TrackParticleContainer* tracksMS=nullptr;
-    ATH_CHECK(evtStore()->retrieve(tracksMS, m_muonTracksName));
-    const xAOD::MuonContainer* Muons=nullptr;
-    ATH_CHECK(evtStore()->retrieve(Muons, m_muonsName));
-    const xAOD::VertexContainer* MSVertices=nullptr;
-    ATH_CHECK(evtStore()->retrieve(MSVertices, m_msVertexCollection));
-
-    // check validity
-    if (!MuonSegments){
-        ATH_MSG_WARNING ("Couldn't retrieve MuonSegments container: " << m_muonSegmentsName);
-        return StatusCode::SUCCESS;
-    }
-    if (!tracksMS) {
-        ATH_MSG_WARNING ("Couldn't retrieve MS tracks container: " << m_muonTracksName);
-        return StatusCode::SUCCESS;
-    }
-    if (!Muons){
-        ATH_MSG_WARNING ("Couldn't retrieve Muons container: " << m_muonsName);
-        return StatusCode::SUCCESS;
-    }
-    if (!MSVertices){
-        ATH_MSG_WARNING ("Couldn't retrieve MS vertex container: " << m_msVertexCollection);
-        return StatusCode::SUCCESS;
-    }
-
-    // fill the histograms
-    if (m_MuonTriggerChainName != ""){
-        // plot luminosity related plots
-        plot_lumi_notrig(Muons, tracksMS, MuonSegments);
-
-        // plot segments container
-        for (const xAOD::MuonSegment* segment : *MuonSegments)
-        {
-            plot_segment(*segment, 2);//be consistent!
-        }
-
-        // plot tracks (MS) container
-        for (const xAOD::TrackParticle* track: *tracksMS)
-        {
-            plot_track(*track, 0);
-        }
-
-        // plot Muon container
-        for (const xAOD::Muon* muon: *Muons)
-        {
-            if(muon->muonType() == xAOD::Muon::Combined) {
-              plot_muon_notrig(*muon, 0);
-            }
-            else {
-              plot_muon_notrig(*muon, 1);
-            }
-        }
-        // plot ms vertices
-        for (const xAOD::Vertex* aVx: *MSVertices)
-        {
-            plot_vertex(*aVx, 0);
-        }
-    }
-    else{
-        // select muons from Jpsi & Z
-        auto muons_jpsi = m_JpsimumuResonanceSelectionTool->selectMuons(Muons, m_isMC, CP::SystematicSet());
-        auto muons_Z = m_ZmumuResonanceSelectionTool->selectMuons(Muons, m_isMC, CP::SystematicSet());
-
-        // find J/psi & Z candidates
-        auto resonances_jpsi = m_JpsimumuResonancePairingTool->buildPairs(muons_jpsi);
-        auto resonances_Z = m_ZmumuResonancePairingTool->buildPairs(muons_Z);
-        // plot luminosity related plots
-        plot_lumi(resonances_Z, resonances_jpsi, Muons, tracksMS, MuonSegments);
-
-        // plot muons, Z and Jpsi, only for collisions
-        if (m_dataType != AthenaMonManager::cosmics){
-      		for (auto resonance: resonances_Z)
-      		{
-      		  plot_muon(*resonance.first,  SOURCE::Z);
-      		  plot_muon(*resonance.second, SOURCE::Z);
-      		}
-      		plot_resonances(resonances_Z, SOURCE::Z);
-
-      		// plot muons, J/Psi
-      		for (auto resonance: resonances_jpsi)
-      		{
-      		  plot_muon(*resonance.first,  SOURCE::JPSI);
-      		  plot_muon(*resonance.second, SOURCE::JPSI);
-      		}
-      		plot_resonances(resonances_jpsi, SOURCE::JPSI);
-        }
-
-        // plot muons, all
-        for (const xAOD::Muon* muon: *Muons)
-        {
-            if(muon->muonType() == xAOD::Muon::Combined) {
-              plot_muon(*muon, SOURCE::CBMUONS);
-            }
-            else {
-              plot_muon(*muon, SOURCE::NONCBMUONS);
-            }
-        }
-
-        // plot segments container
-        for (const xAOD::MuonSegment* segment : *MuonSegments)
-        {
-            plot_segment(*segment, SOURCE::CONTAINER);
-        }
-
-        // plot tracks (MS) container
-        for (const xAOD::TrackParticle* track: *tracksMS)
-        {
-            plot_track(*track, SOURCE::CONTAINER - 3);
-        }
-        //clean the resonance candidates
-        for (const xAOD::Muon* muon : muons_jpsi.first) delete muon;
-        for (const xAOD::Muon* muon : muons_jpsi.second) delete muon;
-        for (const xAOD::Muon* muon : muons_Z.first) delete muon;
-        for (const xAOD::Muon* muon : muons_Z.second) delete muon;
-    }//end of different trigger situations
-    //finish all the plotting
-    return StatusCode::SUCCESS;
-}
-
-//======================================================================================//
-void MuonGenericTracksMon::plot_lumi(
-  std::vector<std::pair<const xAOD::Muon*, const xAOD::Muon*> > resonances_Z, 
-  std::vector<std::pair<const xAOD::Muon*, const xAOD::Muon*> > resonances_jpsi,
-  const xAOD::MuonContainer* Muons, 
-  const xAOD::TrackParticleContainer*   tracksMS, 
-  const xAOD::MuonSegmentContainer* MuonSegments)
-//======================================================================================//
-{   
-    //fill all the luminoisty related plot
-    m_oRecoLumiPlots[SOURCE::Z]->fill(resonances_Z, m_current_lb, m_inst_lumi_bcid, m_inst_lumi_lb);
-    m_oRecoLumiPlots[SOURCE::JPSI]->fill(resonances_jpsi, m_current_lb, m_inst_lumi_bcid, m_inst_lumi_lb);
-    m_oRecoLumiPlots[SOURCE::CBMUONS]->fill_CB(Muons, m_current_lb, m_inst_lumi_bcid, m_inst_lumi_lb);
-    m_oRecoLumiPlots[SOURCE::NONCBMUONS]->fill_Other(Muons, m_current_lb, m_inst_lumi_bcid, m_inst_lumi_lb);
-    m_oRecoLumiPlots[SOURCE::CONTAINER]->fill(tracksMS, m_current_lb, m_inst_lumi_bcid, m_inst_lumi_lb);
-    m_oRecoLumiPlots[SOURCE::CONTAINER]->fill(MuonSegments, m_current_lb, m_inst_lumi_bcid, m_inst_lumi_lb);
-}
-
-
-//======================================================================================//
-void MuonGenericTracksMon::plot_lumi_notrig(
-  const xAOD::MuonContainer* Muons, 
-  const xAOD::TrackParticleContainer*   tracksMS, 
-  const xAOD::MuonSegmentContainer* MuonSegments)
-//======================================================================================//
-{   
-    //fill all the luminoisty related plot
-    m_oRecoLumiPlots[0]->fill_CB(Muons, m_current_lb, m_inst_lumi_bcid, m_inst_lumi_lb);
-    m_oRecoLumiPlots[1]->fill_Other(Muons, m_current_lb, m_inst_lumi_bcid, m_inst_lumi_lb);
-    m_oRecoLumiPlots[2]->fill(tracksMS, m_current_lb, m_inst_lumi_bcid, m_inst_lumi_lb);
-    m_oRecoLumiPlots[2]->fill(MuonSegments, m_current_lb, m_inst_lumi_bcid, m_inst_lumi_lb);
-}
-
-//======================================================================================//
-void MuonGenericTracksMon::plot_muon(const xAOD::Muon& muon, int source)
-//======================================================================================//
-{   
-
-
-    xAOD::Muon::Quality my_quality = m_muonSelectionTool->getQuality(muon);
-    ATH_MSG_DEBUG ("Muon quality value: " << my_quality << " default value " << muon.quality());
-
-    m_oRecoMuonPlots[source]->fill(muon);
-    if (source == SOURCE::NONCBMUONS) m_oRecoMuonMSTrackPlots[source - 3]->fill(muon, MUON_COMPONENT::TRACK_MS);
-    m_oRecoMuonMETrackPlots[source]->fill(muon, MUON_COMPONENT::TRACK_ME);
-    m_oRecoMuonIDTrackPlots[source]->fill(muon, MUON_COMPONENT::TRACK_ID);
-    m_oRecoMuonSegmentPlots[source]->fill(muon);
-    m_oRecoMuonPlots[source]->fill(muon, my_quality);
-}
-
-//======================================================================================//
-void MuonGenericTracksMon::plot_muon_notrig(const xAOD::Muon& muon, int source)
-//======================================================================================//
-{   
-    xAOD::Muon::Quality my_quality = m_muonSelectionTool->getQuality(muon);
-    ATH_MSG_DEBUG ("Muon quality value: " << my_quality << " default value " << muon.quality());
-
-    m_oRecoMuonPlots[source]->fill(muon);
-    m_oRecoMuonPlots[source]->fill(muon, my_quality);
-    m_oRecoMuonIDTrackPlots[source]->fill(muon, MUON_COMPONENT::TRACK_ID);
-    m_oRecoMuonMETrackPlots[source]->fill(muon, MUON_COMPONENT::TRACK_ME);
-    m_oRecoMuonSegmentPlots[source]->fill(muon);
-}
-
-//======================================================================================//
-void MuonGenericTracksMon::plot_segment(const xAOD::MuonSegment& segment, int source)
-//======================================================================================//
-{
-
-    m_oRecoMuonSegmentPlots[source]->fill(segment);
-}
-
-//======================================================================================//
-void MuonGenericTracksMon::plot_track(const xAOD::TrackParticle& track, int source)
-//======================================================================================//
-{
-
-    m_oRecoMuonMSTrackPlots[source]->fill(track);
-}
-//======================================================================================//
-void MuonGenericTracksMon::plot_vertex(const xAOD::Vertex& aVx, int source)
-//======================================================================================//
-{
-
-    m_oRecoVertexPlots[source]->fill(aVx);
-}
-
-//======================================================================================//
-void MuonGenericTracksMon::plot_resonances(std::vector<std::pair<const xAOD::Muon*, const xAOD::Muon*> > resonances, int source)
-//======================================================================================//
-{
-    m_oRecoPhysPlots[source]->fill(resonances);
- 
-}
-
-//======================================================================================//
-StatusCode MuonGenericTracksMon::procHistograms()
-//======================================================================================//
-{ 
-  if(!(m_environment == AthenaMonManager::tier0    || 
-       m_environment == AthenaMonManager::tier0ESD || 
-       m_environment == AthenaMonManager::online   || 
-       m_environment == AthenaMonManager::AOD)){
-
-    return StatusCode::SUCCESS;
-  }
-  
-    ATH_MSG_DEBUG("MuonTrackMonitoring procHistograms()");
-    
-    if(endOfRunFlag()) {
-
-      //finish the post processing
-
-      //remove all the pointers
-      for (auto plots : m_oRecoLumiPlots)            delete plots;
-      for (auto plots : m_oRecoMuonSegmentPlots)     delete plots;
-      for (auto plots : m_oRecoMuonMSTrackPlots)     delete plots;
-      for (auto plots : m_oRecoMuonMETrackPlots)     delete plots;
-      for (auto plots : m_oRecoMuonIDTrackPlots)     delete plots;
-      for (auto plots : m_oRecoMuonPlots)            delete plots;
-      for (auto plots : m_oRecoPhysPlots)            delete plots;
-      for (auto plots : m_oRecoVertexPlots)          delete plots;
-
-    }
-
-  return StatusCode::SUCCESS;   
-}
-
-//======================================================================================//
-StatusCode MuonGenericTracksMon::setupTools()
-//======================================================================================//
-{
-  ATH_CHECK(m_ZmumuResonanceSelectionTool.retrieve());
-  ATH_MSG_DEBUG( "Retrieved " << m_ZmumuResonanceSelectionTool );
- 
-  ATH_CHECK(m_ZmumuResonancePairingTool.retrieve());
-  ATH_MSG_DEBUG( "Retrieved " << m_ZmumuResonancePairingTool );
- 
-  ATH_CHECK(m_JpsimumuResonanceSelectionTool.retrieve());
-  ATH_MSG_DEBUG( "Retrieved " << m_JpsimumuResonanceSelectionTool );
- 
-  ATH_CHECK(m_JpsimumuResonancePairingTool.retrieve());
-  ATH_MSG_DEBUG( "Retrieved " << m_JpsimumuResonancePairingTool );
- 
-  ATH_CHECK(m_muonSelectionTool.retrieve());
-  ATH_MSG_DEBUG( "Retrieved " << m_muonSelectionTool );
-
-  return StatusCode::SUCCESS;
-}  
diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/src/MuonTrackMonitorAlgorithm.cxx b/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/src/MuonTrackMonitorAlgorithm.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..a3d50de4a89eeb792c9021cac919858303768ca4
--- /dev/null
+++ b/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/src/MuonTrackMonitorAlgorithm.cxx
@@ -0,0 +1,420 @@
+/*
+	Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
+	2020 Matthias Schott - Uni Mainz
+*/
+
+#include "MuonTrackMonitoring/MuonTrackMonitorAlgorithm.h"
+
+MuonTrackMonitorAlgorithm::MuonTrackMonitorAlgorithm (const std::string& name, ISvcLocator* pSvcLocator)
+    :AthMonitorAlgorithm(name,pSvcLocator){}
+
+
+StatusCode MuonTrackMonitorAlgorithm::initialize()
+{
+	ATH_CHECK(m_MuonContainerKey.initialize());
+	return AthMonitorAlgorithm::initialize();
+}
+
+StatusCode MuonTrackMonitorAlgorithm::FillMuonInformation(std::string sIdentifier, std::vector<const xAOD::Muon*>	&vecMuons) const 
+{
+	/// Declaring all variables that are initialized via Python will be plotted
+	using namespace Monitored;
+	auto 	tool = getGroup("MuonTrackMonitorAlgorithm");
+	auto	MuonEta = Monitored::Scalar<float>((sIdentifier+"MuonEta").c_str(), 0);	
+	auto	MuonPhi = Monitored::Scalar<float>((sIdentifier+"MuonPhi").c_str(), 0);	
+	auto	MuonEtaTight = Monitored::Scalar<float>((sIdentifier+"MuonEtaTight").c_str(), 0);	
+	auto	MuonPhiTight = Monitored::Scalar<float>((sIdentifier+"MuonPhiTight").c_str(), 0);	
+	auto	MuonEtaMedium = Monitored::Scalar<float>((sIdentifier+"MuonEtaMedium").c_str(), 0);	
+	auto	MuonPhiMedium = Monitored::Scalar<float>((sIdentifier+"MuonPhiMedium").c_str(), 0);	
+	auto	MuonD0 = Monitored::Scalar<float>((sIdentifier+"MuonD0").c_str(), 0);	
+	auto	MuonZ0 = Monitored::Scalar<float>((sIdentifier+"MuonZ0").c_str(), 0);	
+	auto	MuonPt = Monitored::Scalar<float>((sIdentifier+"MuonPt").c_str(), 0);	
+	auto	MuonDPTIDME = Monitored::Scalar<float>((sIdentifier+"MuonDPTIDME").c_str(), 0);
+	auto	MuonsNBHits = Monitored::Scalar<float>((sIdentifier+"MuonNBHits").c_str(), 0);	
+	auto	MuonsNPixHits = Monitored::Scalar<float>((sIdentifier+"MuonNPixHits").c_str(), 0);	
+	auto	MuonsNSCTHits = Monitored::Scalar<float>((sIdentifier+"MuonNSCTHits").c_str(), 0);	
+	auto	MuonsNTRTHits = Monitored::Scalar<float>((sIdentifier+"MuonNTRTHits").c_str(), 0);	
+	auto	MuonsIDChi2NDF = Monitored::Scalar<float>((sIdentifier+"MuonIDChi2NDF").c_str(), 0);	
+	auto	MuonsMEChi2NDF = Monitored::Scalar<float>((sIdentifier+"MuonMEChi2NDF").c_str(), 0);	
+
+	/// Loop over all Muons
+	for(unsigned int n=0; n<vecMuons.size(); n++) {
+		const xAOD::Muon* muon = vecMuons[n];
+		xAOD::Muon::MuonType muonType = muon->muonType();
+		xAOD::Muon::Quality muonQuality	= muon->quality();
+
+		if (muonType==xAOD::Muon::Combined) {
+			const xAOD::TrackParticle *cbtp = nullptr;
+			const xAOD::TrackParticle *idtp = nullptr;
+			const xAOD::TrackParticle *mstp = nullptr;
+
+			ElementLink<xAOD::TrackParticleContainer> cbtpLink = muon->combinedTrackParticleLink();
+			if (cbtpLink.isValid()) cbtp = *cbtpLink;
+			if (cbtp) {
+				uint8_t hitval_numberOfBLayerHits, hitval_numberOfPixelHits, hitval_numberOfSCTHits, hitval_numberOfTRTHits;
+				//	uint8_t hitval_innerSmallHits, hitval_innerLargeHits, hitval_middleSmallHits, hitval_middleLargeHits, hitval_outerSmallHits, hitval_outerLargeHits;
+				cbtp->summaryValue(hitval_numberOfBLayerHits,	xAOD::SummaryType::numberOfInnermostPixelLayerHits);
+				cbtp->summaryValue(hitval_numberOfPixelHits,	xAOD::SummaryType::numberOfPixelHits);
+				cbtp->summaryValue(hitval_numberOfSCTHits,		xAOD::SummaryType::numberOfSCTHits);
+				cbtp->summaryValue(hitval_numberOfTRTHits,		xAOD::SummaryType::numberOfTRTHits);		
+
+				/// Basic kinematic Information
+				MuonEta = cbtp->eta();
+				MuonPhi	= cbtp->phi();
+				MuonPt	= cbtp->pt();
+				MuonZ0	= cbtp->z0();
+				fill(tool, MuonEta, MuonPhi, MuonPt, MuonZ0);
+
+				/// Hit Information of the ID
+				MuonsNBHits 	= static_cast<unsigned int>(hitval_numberOfBLayerHits);
+				MuonsNPixHits 	= static_cast<unsigned int>(hitval_numberOfPixelHits);
+				MuonsNSCTHits 	= static_cast<unsigned int>(hitval_numberOfSCTHits);
+				MuonsNTRTHits 	= static_cast<unsigned int>(hitval_numberOfTRTHits);
+				fill(tool, MuonsNBHits, MuonsNPixHits, MuonsNSCTHits, MuonsNTRTHits);
+
+				/// Save Eta/Phi Information for medium and tight muons, 
+				/// to be used for lates efficiency studies
+				if (muonQuality==xAOD::Muon::Medium) {
+					MuonEtaMedium = cbtp->eta();
+					MuonPhiMedium = cbtp->phi();
+					fill(tool, MuonEtaMedium, MuonPhiMedium);
+				}
+				if (muonQuality==xAOD::Muon::Tight) {
+					MuonEtaTight = cbtp->eta();
+					MuonPhiTight = cbtp->phi();
+					fill(tool, MuonEtaTight, MuonPhiTight);
+				}
+
+				/// Momentum Resolution and chi2 studies of MS and ID only tracks
+				ElementLink<xAOD::TrackParticleContainer> idtpLink = muon->inDetTrackParticleLink();
+				ElementLink<xAOD::TrackParticleContainer> mstpLink = muon->muonSpectrometerTrackParticleLink();
+				if (idtpLink.isValid()) idtp = *idtpLink;
+				if (mstpLink.isValid()) mstp = *mstpLink;
+				if (idtp && mstp) {
+					MuonDPTIDME 	= (idtp->pt() - mstp->pt()) / idtp->pt();
+					MuonsIDChi2NDF 	= idtp->chiSquared()/idtp->numberDoF();
+					MuonsMEChi2NDF 	= mstp->chiSquared()/mstp->numberDoF();	
+					fill(tool, MuonDPTIDME, MuonsIDChi2NDF, MuonsMEChi2NDF);
+				}
+			}
+		}
+	}
+	return StatusCode::SUCCESS;
+}
+	
+//========================================================================================================
+StatusCode	MuonTrackMonitorAlgorithm::analyseLowLevelMuonFeatures(const xAOD::MuonContainer* Muons, int lumiBlockID) const 
+{
+	using namespace Monitored;
+	/// Declaring all variables that are initialized via Python will be plotted
+	auto 	tool = getGroup("MuonTrackMonitorAlgorithm");
+	auto	MSAuthor = Monitored::Scalar<float>("MSAuthor", 0);
+	auto	MSQuality = Monitored::Scalar<float>("MSQuality", 0);
+	auto	MSType 	= Monitored::Scalar<float>("MSType", 0);
+	auto	MSLargeSectorR 	= Monitored::Scalar<float>("MSLargeSectorR", 0);
+	auto	MSLargeSectorZ 	= Monitored::Scalar<float>("MSLargeSectorZ", 0);
+	auto	MSSmallSectorR 	= Monitored::Scalar<float>("MSSmallSectorR", 0);
+	auto	MSSmallSectorZ 	= Monitored::Scalar<float>("MSSmallSectorZ", 0);
+	auto	MSEta = Monitored::Scalar<float>("MSEta", 0);
+	auto	MSPhi = Monitored::Scalar<float>("MSPhi", 0);
+	auto	MSPt = Monitored::Scalar<float>("MSPt", 0);
+	auto	NonCBMuonEta = Monitored::Scalar<float>("NonCBMuonEta", 0);	
+	auto	NonCBMuonPhi = Monitored::Scalar<float>("NonCBMuonPhi", 0);	
+	auto	CBMuonAuthor = Monitored::Scalar<float>("CBMuonAuthor", 0);	
+	auto	MSLumiBlockNumberOfMuonTracks = Monitored::Scalar<float>("MSLumiBlockNumberOfMuonTracks", 0);
+	auto	MSLumiBlockNumberOfSegments = Monitored::Scalar<float>("MSLumiBlockNumberOfSegments", 0);
+
+	/// Loop over all muons
+	for(const auto& muon : *Muons) {
+		xAOD::Muon::Quality muonQuality	= muon->quality();
+		xAOD::Muon::MuonType muonType =	muon->muonType();
+		xAOD::Muon::Author muonAuthor =	muon->author();
+
+		/// General Muon Control Plots
+		MSAuthor = muonAuthor;
+		MSQuality = muonQuality;
+		MSType = muonType;
+		MSEta = muon->eta();
+		MSPhi = muon->phi();
+		MSPt = muon->pt();
+		MSLumiBlockNumberOfMuonTracks  = lumiBlockID;
+		fill(tool, MSAuthor, MSQuality, MSType, MSEta, MSPhi, MSPt, MSLumiBlockNumberOfMuonTracks);
+
+		/// Do Muon Segments Plots
+		for (size_t nSeg=0; nSeg<muon->nMuonSegments();nSeg++) {
+			MSLumiBlockNumberOfSegments  = lumiBlockID;
+			fill(tool, MSLumiBlockNumberOfSegments);
+			const xAOD::MuonSegment* muonSegment = muon->muonSegment(nSeg);
+                        if (!muonSegment) {
+                           continue;
+                        }
+			MSLargeSectorR 	= sqrt(muonSegment->x()*muonSegment->x() + muonSegment->y()*muonSegment->y());
+			MSLargeSectorZ	= muonSegment->z();
+			MSSmallSectorR 	= sqrt(muonSegment->x()*muonSegment->x() + muonSegment->y()*muonSegment->y());
+			MSSmallSectorZ	= muonSegment->z();
+			int sector		= muonSegment->sector();
+			if(sector % 2 == 0) {
+				fill(tool, MSLargeSectorZ, MSLargeSectorR);
+			} else {
+				fill(tool, MSSmallSectorZ, MSSmallSectorR);
+			}
+		}
+		CBMuonAuthor = muonAuthor;
+		NonCBMuonEta = muon->eta();
+		NonCBMuonPhi = muon->phi();
+		fill(tool, CBMuonAuthor, NonCBMuonEta, NonCBMuonPhi);
+	}
+
+	return StatusCode::SUCCESS;
+}
+
+
+
+//========================================================================================================
+StatusCode	MuonTrackMonitorAlgorithm::analyseCombinedTracks(const xAOD::MuonContainer* Muons, int lumiBlockID) const {
+	using namespace Monitored;
+
+	/// Declaring all variables that are initialized via Python will be plotted
+	auto tool = getGroup("MuonTrackMonitorAlgorithm");
+	auto CBMuonSector = Monitored::Scalar<float>("CBMuonSector", 0);	
+	auto CBMuonCIndex = Monitored::Scalar<float>("CBMuonCIndex", 0);	
+	auto CBMuonEta1Triggered = Monitored::Scalar<float>("CBMuonEta1Triggered", 0);	
+	auto CBMuonPhi1Triggered = Monitored::Scalar<float>("CBMuonPhi1Triggered", 0);	
+	auto CBMuonEta1All = Monitored::Scalar<float>("CBMuonEta1All", 0);	
+	auto CBMuonPhi1All = Monitored::Scalar<float>("CBMuonPhi1All", 0);	
+	auto CBMuonLumiBlock = Monitored::Scalar<float>("CBMuonLumiBlock", 0);	
+
+	/// Select Combined Muons
+	std::vector<const xAOD::Muon*>	vecCombinedMuonsHighPT;
+	std::vector<const xAOD::Muon*>	vecCombinedMuons;
+
+	for(const auto& muon : *Muons) {
+		xAOD::Muon::MuonType muonType = muon->muonType();
+		if (muonType==xAOD::Muon::Combined) {
+			CBMuonLumiBlock = lumiBlockID;
+			fill(tool, CBMuonLumiBlock);
+
+			vecCombinedMuons.push_back(muon);
+			if (muon->pt() > m_CBmuons_minPt) vecCombinedMuonsHighPT.push_back(muon);
+
+			/// Provide Segment and Sector Plots
+			for (size_t nSeg=0; nSeg<muon->nMuonSegments();nSeg++) {
+				const xAOD::MuonSegment* muonSegment = muon->muonSegment(nSeg);
+                                if (!muonSegment) {
+                                   continue;
+                                }
+				CBMuonSector = muonSegment->sector();
+				CBMuonCIndex = muonSegment->chamberIndex();
+				fill(tool, CBMuonSector,CBMuonCIndex);
+			}
+		}
+	}
+
+	/// Fill the relevant Muon Information for each Combined Muon
+	
+	ATH_CHECK (FillMuonInformation("CB", vecCombinedMuons) );
+	
+	/// Trigger Studies
+	if (vecCombinedMuonsHighPT.size()==1) {
+		CBMuonEta1All	= vecCombinedMuonsHighPT[0]->eta();
+		CBMuonPhi1All	= vecCombinedMuonsHighPT[0]->phi();
+		fill(tool, CBMuonEta1All, CBMuonPhi1All);
+
+		bool isTriggered = false;
+		for(const auto& chain : m_hltchainList){
+			if(getTrigDecisionTool()->isPassed( chain ) ){
+				isTriggered = true;
+			}
+		}
+
+		if (isTriggered) {
+			CBMuonEta1Triggered = vecCombinedMuonsHighPT[0]->eta();
+			CBMuonPhi1Triggered = vecCombinedMuonsHighPT[0]->phi();
+			fill(tool, CBMuonEta1Triggered, CBMuonPhi1Triggered);
+		}
+	}
+
+	return StatusCode::SUCCESS;
+}
+
+
+//========================================================================================================
+StatusCode	MuonTrackMonitorAlgorithm::analyseZBosonCandidates(const xAOD::MuonContainer* Muons, int lumiBlockID) const {
+	using namespace Monitored;
+
+	/// Declaring all variables that are initialized via Python will be plotted
+	auto tool = getGroup("MuonTrackMonitorAlgorithm");
+	auto ZSector = Monitored::Scalar<float>("ZSector", 0);
+	auto ZChamber = Monitored::Scalar<float>("ZChamber", 0);
+	auto ZSectorEff = Monitored::Scalar<float>("ZSectorEff", 0);
+	auto ZChamberEff = Monitored::Scalar<float>("ZChamberEff", 0);
+	auto ZMass2D = Monitored::Scalar<float>("ZMass2D", 0);
+	auto ZEta2D = Monitored::Scalar<float>("ZEta2D", 0);
+	auto ZMass = Monitored::Scalar<float>("ZMass", 0);
+	auto ZMuonLumiBlock = Monitored::Scalar<float>("ZMuonLumiBlock", 0);	
+
+	std::vector<const xAOD::Muon*>	vecMuons_ZBoson;
+	std::vector<const xAOD::Muon*>	vecMuons_ZBoson_Candidates;
+	
+	/// Select Muons Relevant for Z
+	for(const auto& muon : *Muons) {
+		xAOD::Muon::MuonType muonType = muon->muonType();
+		if (muonType==xAOD::Muon::Combined) {
+			const xAOD::TrackParticle *cbtp = nullptr;
+			ElementLink<xAOD::TrackParticleContainer> cbtpLink = muon->combinedTrackParticleLink();
+			if (cbtpLink.isValid()) cbtp = *cbtpLink;
+
+			/// Select Z Boson
+			if (cbtp) {
+				float trkiso  = muon->isolation(xAOD::Iso::ptcone30)/muon->pt();
+				if (muonType==xAOD::Muon::Combined &&
+					cbtp &&
+					muon->pt()>m_ZBosonSelection_minPt &&
+					std::abs(muon->eta())<m_ZBosonSelection_maxEta &&
+					trkiso<m_ZBosonSelection_trkIsolation &&
+					std::abs(cbtp->z0())<m_ZBosonSelection_Z0Cut &&
+					std::abs(cbtp->d0())<m_ZBosonSelection_D0Cut )
+						vecMuons_ZBoson_Candidates.push_back(muon);
+			}
+		}
+	}
+
+	/// Z Boson related plots	
+	std::map<int, int>	mapTagged_ZBoson;
+	for (unsigned int n=0; n<vecMuons_ZBoson_Candidates.size(); n++)	
+		mapTagged_ZBoson[n]=0;
+	for (unsigned int n=0; n<vecMuons_ZBoson_Candidates.size(); n++)
+		for (unsigned int m=n+1; m<vecMuons_ZBoson_Candidates.size(); m++) {
+			TLorentzVector tVec1, tVec2;
+			tVec1.SetPtEtaPhiM(vecMuons_ZBoson_Candidates[n]->pt(), vecMuons_ZBoson_Candidates[n]->eta(), vecMuons_ZBoson_Candidates[n]->phi(), 0.0);
+			tVec2.SetPtEtaPhiM(vecMuons_ZBoson_Candidates[m]->pt(), vecMuons_ZBoson_Candidates[m]->eta(), vecMuons_ZBoson_Candidates[m]->phi(), 0.0);
+			if (vecMuons_ZBoson_Candidates[n]->charge()==vecMuons_ZBoson_Candidates[m]->charge()) continue;
+			if ((tVec1+tVec2).M()<m_ZBosonSelection_minMass)	continue;
+			if ((tVec1+tVec2).M()>m_ZBosonSelection_maxMass)	continue;
+
+			if (mapTagged_ZBoson[n]!=1) vecMuons_ZBoson.push_back(vecMuons_ZBoson_Candidates[n]);
+			mapTagged_ZBoson[n]=1;
+			if (mapTagged_ZBoson[m]!=1) vecMuons_ZBoson.push_back(vecMuons_ZBoson_Candidates[m]);
+			mapTagged_ZBoson[m]=1;
+
+			ZMass2D = (tVec1+tVec2).M();
+			ZEta2D	= tVec1.Eta();
+			fill(tool, ZMass2D, ZEta2D);
+			ZEta2D	= tVec2.Eta();
+			fill(tool, ZMass2D, ZEta2D);
+			ZMass	= (tVec1+tVec2).M();
+			fill(tool, ZMass);
+			
+			ZMuonLumiBlock =  lumiBlockID;
+			fill(tool, ZMuonLumiBlock);			
+		}
+
+	/// Fill the relevant Muon Information for each Z Boson Candidate Muon
+	ATH_CHECK( FillMuonInformation("Z", vecMuons_ZBoson) );		
+
+	return StatusCode::SUCCESS;
+}
+
+
+
+//========================================================================================================
+StatusCode	MuonTrackMonitorAlgorithm::analyseJPsiCandidates(const xAOD::MuonContainer* Muons, int lumiBlockID) const {
+	using namespace Monitored;
+
+	/// Declaring all variables that are initialized via Python will be plotted
+	auto 	tool = getGroup("MuonTrackMonitorAlgorithm");
+	auto	JPsiSector = Monitored::Scalar<float>("JPsiSector", 0);
+	auto	JPsiChamber = Monitored::Scalar<float>("JPsiChamber", 0);
+	auto	JPsiSectorEff = Monitored::Scalar<float>("JPsiSectorEff", 0);
+	auto	JPsiChamberEff = Monitored::Scalar<float>("JPsiChamberEff", 0);
+	auto	JPsiMass2D = Monitored::Scalar<float>("JPsiMass2D", 0);
+	auto	JPsiEta2D = Monitored::Scalar<float>("JPsiEta2D", 0);
+	auto	JPsiMass = Monitored::Scalar<float>("JPsiMass", 0);
+	auto	JPsiMuonLumiBlock = Monitored::Scalar<float>("JPsiMuonLumiBlock", 0);	
+
+	std::vector<const xAOD::Muon*>	vecMuons_JPsi;
+	std::vector<const xAOD::Muon*>	vecMuons_JPsi_Candidates;
+	
+	/// JPsi Muon Selection
+	for(const auto& muon : *Muons) {
+		xAOD::Muon::MuonType	muonType	=	muon->muonType();
+		if (muonType==xAOD::Muon::Combined) {
+			const xAOD::TrackParticle *cbtp = nullptr;
+			ElementLink<xAOD::TrackParticleContainer> cbtpLink = muon->combinedTrackParticleLink();
+			if (cbtpLink.isValid()) cbtp = *cbtpLink;
+
+			/// Do Combined Muon Plots
+			if (cbtp) {
+				float trkiso  = muon->isolation(xAOD::Iso::ptcone30)/muon->pt();
+				if (muonType==xAOD::Muon::Combined &&
+					cbtp &&
+					muon->pt()>m_JPsiSelection_minPt &&
+					std::abs(muon->eta())<m_JPsiSelection_maxEta &&
+					trkiso<m_JPsiSelection_trkIsolation &&
+					std::abs(cbtp->z0())<m_JPsiSelection_Z0Cut &&
+					std::abs(cbtp->d0())<m_JPsiSelection_D0Cut )
+						vecMuons_JPsi_Candidates.push_back(muon);
+			}
+		}
+	}
+
+	/// JPsi related plots	
+	std::map<int, int>	mapTagged_JPsi;
+	for (unsigned int n=0; n<vecMuons_JPsi_Candidates.size(); n++)	
+		mapTagged_JPsi[n]=0;
+	for (unsigned int n=0; n<vecMuons_JPsi_Candidates.size(); n++)
+		for (unsigned int m=n+1; m<vecMuons_JPsi_Candidates.size(); m++) {
+			TLorentzVector tVec1, tVec2;
+			tVec1.SetPtEtaPhiM(vecMuons_JPsi_Candidates[n]->pt(), vecMuons_JPsi_Candidates[n]->eta(), vecMuons_JPsi_Candidates[n]->phi(), 0.0);
+			tVec2.SetPtEtaPhiM(vecMuons_JPsi_Candidates[m]->pt(), vecMuons_JPsi_Candidates[m]->eta(), vecMuons_JPsi_Candidates[m]->phi(), 0.0);
+			if (vecMuons_JPsi_Candidates[n]->charge()==vecMuons_JPsi_Candidates[m]->charge()) continue;
+			if ((tVec1+tVec2).M()<m_JPsiSelection_minMass)	continue;
+			if ((tVec1+tVec2).M()>m_JPsiSelection_maxMass)	continue;
+
+			if (mapTagged_JPsi[n]!=1) vecMuons_JPsi.push_back(vecMuons_JPsi_Candidates[n]);
+			mapTagged_JPsi[n]=1;
+			if (mapTagged_JPsi[m]!=1) vecMuons_JPsi.push_back(vecMuons_JPsi_Candidates[m]);
+			mapTagged_JPsi[m]=1;
+
+			JPsiMass2D = (tVec1+tVec2).M();
+			JPsiEta2D	= tVec1.Eta();
+			fill(tool, JPsiMass2D, JPsiEta2D);
+			JPsiEta2D	= tVec2.Eta();
+			fill(tool, JPsiMass2D, JPsiEta2D);
+			JPsiMass	= (tVec1+tVec2).M();
+			fill(tool, JPsiMass);
+
+			JPsiMuonLumiBlock	 =  lumiBlockID;
+			fill(tool, JPsiMuonLumiBlock	);			
+		}
+	
+	/// Fill the relevant Muon Information for each JPsi Boson Candidate Muon
+	ATH_CHECK( FillMuonInformation("JPsi", vecMuons_JPsi) );		
+
+	return StatusCode::SUCCESS;
+}
+
+
+//========================================================================================================
+StatusCode MuonTrackMonitorAlgorithm::fillHistograms(const EventContext& ctx) const
+{
+	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();
+
+	const xAOD::MuonContainer* Muons = nullptr;
+	ATH_CHECK(evtStore()->retrieve(Muons, "Muons"));
+
+	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/src/PlotMuons.cxx b/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/src/PlotMuons.cxx
deleted file mode 100644
index aac1750363de0876525399c7dab98d58c0a793f4..0000000000000000000000000000000000000000
--- a/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/src/PlotMuons.cxx
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#include "MuonTrackMonitoring/PlotMuons.h"
-
-PlotMuons::PlotMuons(PlotBase* pParent, std::string sDir):PlotBase(pParent, sDir),
-    m_plots_All(this, "/", "Plot Muons"),
-    m_plots_RecoInfo(this, "/"),
-    m_plots_MomentumPull(this, "/"),
-    m_plots_MuonHitSummary(this, "/")
-{}
-
-void PlotMuons::fill(const xAOD::Muon& muon){
-  
-    m_plots_All.fill(muon);
-    m_plots_RecoInfo.fill(muon);
-    m_plots_MomentumPull.fill(muon);
-    m_plots_MuonHitSummary.fill(muon);
-    
-}
diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/src/PlotSegments.cxx b/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/src/PlotSegments.cxx
deleted file mode 100644
index 94ad68e1c9c0a92218157ccf4a06554c4ca3495e..0000000000000000000000000000000000000000
--- a/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/src/PlotSegments.cxx
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#include "MuonTrackMonitoring/PlotSegments.h"
-
-PlotSegments::PlotSegments(PlotBase* pParent, std::string sDir):PlotBase(pParent, sDir),
-    m_plots_Segments(this, "/")
-{}
-
-void PlotSegments::fill(const xAOD::Muon& muon){
-
-  std::cout << muon.pt() << std::endl;
-  // segments = get_associated_segments(muon)
-  // for segment in segments:
-  //     fill_segments(segment)
-
-}
-
-void PlotSegments::fill(const xAOD::MuonSegment& segment){
-
-  std::cout << segment.sector() << std::endl;
-    // m_plots_Segments.fill(segment);
-
-}
-
diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/src/PlotTracks.cxx b/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/src/PlotTracks.cxx
deleted file mode 100644
index eed9569c759299417938740093b3657c88c37d13..0000000000000000000000000000000000000000
--- a/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/src/PlotTracks.cxx
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#include "MuonTrackMonitoring/PlotTracks.h"
-
-PlotTracks::PlotTracks(PlotBase* pParent, std::string sDir):PlotBase(pParent, sDir),
-    m_plots_Impact(this, "/"),
-    m_plots_TrkRecoInfo(this, "/"),
-    m_plots_MSHit(this, "/")
-{}
-
-void PlotTracks::fill(const xAOD::Muon& muon){
-
-  std::cout << muon.pt() << std::endl; 
-  // tracksID = get_associated_tracks_ID(muon)
-  // for trackID in tracksID:
-  //     fill(trackID)
-  //
-  // tracksMS = get_associated_tracks_MS(muon)
-  // for trackMS in tracksMS:
-  //     fill(trackMS)
-  //
-  // tracksEX = get_associated_tracks_EX(muon)
-  // for trackEX in tracksEX:
-  //     fill(trackEX)
-
-}
-
-void PlotTracks::fill(const xAOD::TrackParticle& track){
-
-    std::cout << track.pt() << std::endl; 
-    // m_plots_Tracks.fill(track);
-
-}
-
diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/src/RecoLumiPlots.cxx b/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/src/RecoLumiPlots.cxx
deleted file mode 100644
index 1702367aac79fdb70304733a8d19d96b2a17114e..0000000000000000000000000000000000000000
--- a/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/src/RecoLumiPlots.cxx
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#include "MuonTrackMonitoring/RecoLumiPlots.h"
-
-RecoLumiPlots::RecoLumiPlots(PlotBase* pParent, std::string sDir, std::string recObj):PlotBase(pParent, sDir),
-
-  m_hNSegment_LB_1D(NULL),
-  m_hNMuonTrack_LB_1D(NULL),
-  m_hNMuon_LB_1D(NULL),
-  m_hNResonance_LB_1D(NULL),
-
-  m_hNSegment_LB(NULL),
-  m_hNMuonTrack_LB(NULL),
-  m_hNMuon_LB(NULL),
-  m_hNResonance_LB(NULL),
-
-  type(recObj),
-  name("other")
-{}
-
-void RecoLumiPlots::initializePlots()
-{
-
-  //Specify the names for different resonances
-  std::string Zsig("Z");
-  std::string Jsig("Jpsi");
-  std::string CBMuons("CBMuons");
-  std::string OtherMuons("NonCBMuons");
-
-  if      (!type.compare(Zsig))       {name = "Z";         }
-  else if (!type.compare(Jsig))       {name = "J/#psi";    }
-  else if (!type.compare(CBMuons))    {name = "CBMuons";   }
-  else if (!type.compare(OtherMuons)) {name = "NonCBMuons";}
-  else                                {name = "other";     }
-
-  n_lbs = 2500;
-
-  //Make sure the 1D hists has the same dimension as the 2D!
-  if (name == "other"){
-    m_hNSegment_LB      = Book2D("nSegment_LB_2D", "Number of Muon Segments Per LumiBlock;LumiBlock;Number of Segments",  n_lbs, -0.5, (float)(n_lbs)-0.5, 100, 0.5, 101.5);
-    m_hNMuonTrack_LB    = Book2D("nMuonTrack_LB_2D", "Number of Muon MS Tracks Per LumiBlock;LumiBlock;Number of Tracks", n_lbs, -0.5, (float)(n_lbs)-0.5,  21, 0.5, 21.5);
-    m_hNSegment_LB_1D   = Book1D("nSegment_LB", "Number of Muon Segments Per LumiBlock;LumiBlock;Number of Segments",     n_lbs, -0.5, (float)(n_lbs)-0.5);
-    m_hNMuonTrack_LB_1D = Book1D("nMuonTrack_LB", "Number of Muon MS Tracks Per LumiBlock;LumiBlock;Number of Tracks",    n_lbs, -0.5, (float)(n_lbs)-0.5);
-  }
-  else if (name == "CBMuons"){
-    m_hNMuon_LB = Book2D("nMuon_LB_2D", "Number of Muons Per LumiBlock;LumiBlock;Nmuons", n_lbs, -0.5, (float)(n_lbs)-0.5, 21, 0.5, 21.5);
-    m_hNMuon_LB_1D = Book1D("nMuon_LB", "Number of Muons Per LumiBlock;LumiBlock;Nmuons", n_lbs, -0.5, (float)(n_lbs)-0.5);
-  }
-  else if (name == "NonCBMuons"){
-    m_hNMuon_LB = Book2D("nMuon_LB_2D", "Number of non-CB Muons Per LumiBlock;LumiBlock;Nmuons", n_lbs, -0.5, (float)(n_lbs)-0.5, 21, 0.5, 21.5);
-    m_hNMuon_LB_1D = Book1D("nMuon_LB", "Number of non-CB Muons Per LumiBlock;LumiBlock;Nmuons", n_lbs, -0.5, (float)(n_lbs)-0.5);
-  }
-  else if (name == "Z" || name == "J/#psi"){
-    m_hNResonance_LB = Book2D("n" + type + "_LB_2D", "Number of " + name + " Per LumiBlock;LumiBlock;Number of " + name, n_lbs, -0.5, (float)(n_lbs)-0.5, 5, 0.5, 5.5);
-    m_hNResonance_LB_1D = Book1D("n" + type + "_LB", "Number of " + name + " Per LumiBlock;LumiBlock;Number of " + name, n_lbs, -0.5, (float)(n_lbs)-0.5);
-  }
-
-}
-
-//fill Segment related lb plots
-void RecoLumiPlots::fill(const xAOD::MuonSegmentContainer* MuonSegments, int current_lb, float inst_lumi_bcid, float inst_lumi_lb) {
-  
-  m_hNSegment_LB->Fill(current_lb, MuonSegments->size() + inst_lumi_bcid - inst_lumi_bcid + inst_lumi_lb - inst_lumi_lb);
-
-}
-
-//fill Track related plots
-void RecoLumiPlots::fill(const xAOD::TrackParticleContainer* MSTracks, int current_lb, float inst_lumi_bcid, float inst_lumi_lb){
-
-  m_hNMuonTrack_LB->Fill(current_lb, MSTracks->size() + inst_lumi_bcid - inst_lumi_bcid + inst_lumi_lb - inst_lumi_lb);
-
-}
-
-//fill CB muon related plots
-void RecoLumiPlots::fill_CB(const xAOD::MuonContainer* Muons, int current_lb, float inst_lumi_bcid, float inst_lumi_lb){
-
-  int NMuIDco = 0;
-
-  for(const auto mu : *Muons) {
-
-    //do a muon quality cut: 0 tight, 1 medium, 2 loss
-    if(mu->muonType() == xAOD::Muon::Combined){NMuIDco++;}
-
-  }
-
-  //only do this for combined muons
-  m_hNMuon_LB->Fill(current_lb, NMuIDco + inst_lumi_bcid - inst_lumi_bcid + inst_lumi_lb - inst_lumi_lb);
-
-}
-
-//fill other muon related plots
-void RecoLumiPlots::fill_Other(const xAOD::MuonContainer* Muons, int current_lb, float inst_lumi_bcid, float inst_lumi_lb){
-
-  int NMuIDco = 0;
-
-  for(const auto mu : *Muons) {
-
-    //do a muon quality cut: 0 tight, 1 medium, 2 loss
-    if(mu->muonType() != xAOD::Muon::Combined){NMuIDco++;}
-
-  }
-
-  //only do this for combined muons
-  m_hNMuon_LB->Fill(current_lb, NMuIDco + inst_lumi_bcid - inst_lumi_bcid + inst_lumi_lb - inst_lumi_lb);
-
-}
-
-//fill muon related plots
-void RecoLumiPlots::fill(std::vector<std::pair<const xAOD::Muon*, const xAOD::Muon*> > resonances, int current_lb, float inst_lumi_bcid, float inst_lumi_lb){
-
-  int Nresonance = resonances.size();
-
-  //only do this for combined muons
-  m_hNResonance_LB->Fill(current_lb, Nresonance + inst_lumi_bcid - inst_lumi_bcid + inst_lumi_lb - inst_lumi_lb);//playing really dumb here
-
-} 
-
diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/src/RecoMuonIDTrackPlots.cxx b/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/src/RecoMuonIDTrackPlots.cxx
deleted file mode 100644
index 97b7cfb918920fcc0d6a8c3bc6a05d63bed53ea5..0000000000000000000000000000000000000000
--- a/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/src/RecoMuonIDTrackPlots.cxx
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#include "MuonTrackMonitoring/RecoMuonIDTrackPlots.h"
-
-RecoMuonIDTrackPlots::RecoMuonIDTrackPlots(PlotBase* pParent, std::string sDir):PlotBase(pParent, sDir),
-m_oAllPlots(this, "/", "Reco Muon"),
-m_oImpactPlots(this, "/"),
-m_oTrkRecoInfoPlots(this, "/"),
-m_oIDHitPlots(this,"/"),
-m_pt_broad(NULL),
-m_eta_phi_broad(NULL)
-{}
-
-void RecoMuonIDTrackPlots::initializePlots(){
-  //booking histograms
-  m_pt_broad = Book1D("_pt_broad", "High p_{T} Distribution", 70, 100, 1500);
-  m_eta_phi_broad = Book2D("_eta_phi_broad", "High p_{T} Muon #eta #phi Distribution;;#eta;#phi", 52, -2.6, 2.6, 64, -3.2, 3.2);
-}
-
-//when the plot function called with a Muon Container
-//loop through each muon, get the corresponding link and fill it
-
-//when the plot function called with a Muon
-//get's the corresponding link and fill it
-void RecoMuonIDTrackPlots::fill(const xAOD::Muon& mu, int component){
-  if (component == 2 ){
-    ElementLink<xAOD::TrackParticleContainer> Mu_idtrack = mu.inDetTrackParticleLink();
-    if(Mu_idtrack.isValid()){
-      //std::cout<<"Plot base test ID track"<<std::endl;
-      const xAOD::TrackParticle* trk = *Mu_idtrack;
-      fill(*trk);
-    }
-  } 
-}
-
-
-void RecoMuonIDTrackPlots::fill(const xAOD::TrackParticle& muTP){
-  m_oAllPlots.fill(muTP);
-  m_oImpactPlots.fill(muTP);
-  m_oTrkRecoInfoPlots.fill(muTP);
-  m_oIDHitPlots.fill(muTP);
-  if (muTP.pt()/1000.0 > 100) {//ony for high pt muons
-    m_pt_broad->Fill(muTP.pt()/1000.0);
-    m_eta_phi_broad->Fill(muTP.eta(), muTP.phi());
-  }
-
-}
-
-
diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/src/RecoMuonPlots.cxx b/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/src/RecoMuonPlots.cxx
deleted file mode 100644
index bc100aadc2e2a50407cb9dee743b3f081b43b2c2..0000000000000000000000000000000000000000
--- a/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/src/RecoMuonPlots.cxx
+++ /dev/null
@@ -1,218 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#include "MuonTrackMonitoring/RecoMuonPlots.h"
-#include "MuonHistUtils/MuonEnumDefs.h"
-typedef ElementLink< xAOD::TrackParticleContainer > TrackLink;
-typedef ElementLink< xAOD::MuonContainer > MuonLink;
-
-RecoMuonPlots::RecoMuonPlots(PlotBase* pParent, std::string sDir, bool detail):PlotBase(pParent, sDir)
-
-, m_oAllPlots(this, "/", "Reco Muon")
-, m_oMuRecoInfoPlots(this, "/")
-, m_oImpactPlots(this, "/")
-, m_oMomentumPullPlots(this, "/")
-//, m_oMSHitPlots(this,"/")
-//, m_oMuonHitSummaryPlots(this,"/")
-//, m_oMuonIsolationPlots(this,"/")
-//, m_oMuonParamPlots(this,"/")
-//, m_oAllPlots_tight(this, "/Tight/", "Tight")
-//, m_oAllPlots_medium(this, "/Medium/", "Medium")
-//, m_oAllPlots_loose(this, "/Loose/", "Loose")
-//, m_oAllPlots_veryloose(this, "/Veryloose/", "Veryloose")
-, m_origin_eta_phi(NULL)
-, m_eff_tight(NULL)
-, m_eff_medium(NULL)
-, m_tight_eta_phi(NULL)
-, m_medium_eta_phi(NULL)
-//, m_eff_loose(NULL)
-//, m_eff_veryloose(NULL)
-, m_pt_broad(NULL)
-, m_eta_phi_broad(NULL)
-, m_eff_nPrec(NULL)
-, m_eff_nPhi(NULL)
-, m_eff_nTrigEta(NULL)
-, m_eff_ndof(NULL)
-, m_eff_chi2(NULL)
-, m_ID_eff_ndof(NULL)
-, m_ID_eff_chi2(NULL)
-, m_MS_eff_ndof(NULL)
-, m_MS_eff_chi2(NULL)
-{
-  Detail = detail;
-}
-
-void RecoMuonPlots::initializePlots(){
-  //be very careful here, bin size is the same as the defult value
-  std::vector<HistData> hists = m_oAllPlots.retrieveBookedHistograms(); // HistData -> std::pair<TH1*, std::string>
-  int xbins = 52;
-  int ybins = 64;
-  float xmin = -2.6;
-  float xmax = 2.6;
-  float ymin = -3.2;
-  float ymax = 3.2;
-  // for (auto hist: hists) {
-  //   TString sHistName = hist.first->GetName();
-  //   TString sHistTitle = hist.first->GetTitle();
-  //   //change the axis get label
-  //   if (sHistName.Contains("_eta_phi")){
-  //     xmin = hist.first->GetXaxis()->GetXmin();
-  //     xmax = hist.first->GetXaxis()->GetXmax();
-  //     ymin = hist.first->GetYaxis()->GetXmin();
-  //     ymax = hist.first->GetYaxis()->GetXmax();
-  //     xbins = hist.first->GetXaxis()->GetNbins();
-  //     ybins = hist.first->GetXaxis()->GetNbins();
-  //   }
-  // }
-
-  //now register!
-  m_origin_eta_phi= Book2D("_Origin_eta_phi",        "Original Distribution;#eta;#phi", xbins, xmin, xmax, ybins, ymin, ymax);
-  m_eff_tight     = Book2D("_Tight_eff",         "Tight Quality Efficiency;#eta;#phi", xbins, xmin, xmax, ybins, ymin, ymax);
-  m_eff_medium    = Book2D("_Medium_eff",        "Medium Quality Efficiency;#eta;#phi", xbins, xmin, xmax, ybins, ymin, ymax);
-  m_tight_eta_phi = Book2D("_Tight_eta_phi",     "Tight Muon #eta #phi Distribution;#eta;#phi", xbins, xmin, xmax, ybins, ymin, ymax);
-  m_medium_eta_phi = Book2D("_Medium_eta_phi",    "Medium Muon #eta #phi Distribution;#eta;#phi", xbins, xmin, xmax, ybins, ymin, ymax);
-  //m_eff_loose     = Book2D("_Loose_eff",          "Loose Quality Efficiency;#eta;#phi", xbins, xmin, xmax, ybins, ymin, ymax);
-  //m_eff_veryloose = Book2D("_Veryloose_eff", "Very Loose Quality Efficiency;#eta;#phi", xbins, xmin, xmax, ybins, ymin, ymax);
-  if (Detail){
-    m_pt_broad      = Book1D("_pt_broad", "High p_{T} Distribution;p_{T} [GeV]", 70, 100, 1500);
-    m_eta_phi_broad = Book2D("_eta_phi_broad", "High p_{T} Muon #eta #phi Distribution;#eta;#phi", xbins, xmin, xmax, ybins, ymin, ymax);
-
-    m_eff_nPrec    = Book2D("_eff_nPrec",   "average number of Precision Layers;#eta;#phi",   xbins, xmin, xmax, ybins, ymin, ymax);
-    m_eff_nPhi     = Book2D("_eff_nPhi",    "average number of Phi Layers;#eta;#phi",         xbins, xmin, xmax, ybins, ymin, ymax);
-    m_eff_nTrigEta = Book2D("_eff_nTrigEta","average number of Trigger Eta Layers;#eta;#phi", xbins, xmin, xmax, ybins, ymin, ymax);
-    m_eff_ndof     = Book2D("_eff_ndof",    "average number of hits;#eta;#phi",               xbins, xmin, xmax, ybins, ymin, ymax);
-    m_eff_chi2     = Book2D("_eff_chi2",    "average #chi^{2} per DOF;#eta;#phi",             xbins, xmin, xmax, ybins, ymin, ymax);
-    m_ID_eff_ndof  = Book2D("_ID_eff_ndof", "ID track average number of hits;#eta;#phi",      xbins, xmin, xmax, ybins, ymin, ymax);
-    m_ID_eff_chi2  = Book2D("_ID_eff_chi2", "ID track average #chi^{2} per DOF;#eta;#phi",    xbins, xmin, xmax, ybins, ymin, ymax);
-    m_MS_eff_ndof  = Book2D("_MS_eff_ndof", "MS track average number of hits;#eta;#phi",      xbins, xmin, xmax, ybins, ymin, ymax);
-    m_MS_eff_chi2  = Book2D("_MS_eff_chi2", "MS track average #chi^{2} per DOF;#eta;#phi",    xbins, xmin, xmax, ybins, ymin, ymax);
-
-    m_avg_hits_precision_inner    = Book2D("_avg_hits_precision_inner",    "avg. precision hits, inner;#eta;#phi",    xbins, xmin, xmax, ybins, ymin, ymax);
-    m_avg_hits_precision_middle   = Book2D("_avg_hits_precision_middle",   "avg. precision hits, middle;#eta;#phi",   xbins, xmin, xmax, ybins, ymin, ymax);
-    m_avg_hits_precision_outer    = Book2D("_avg_hits_precision_outer",    "avg. precision hits, outer;#eta;#phi",    xbins, xmin, xmax, ybins, ymin, ymax);
-    m_avg_hits_precision_extended = Book2D("_avg_hits_precision_extended", "avg. precision hits, extended;#eta;#phi", xbins, xmin, xmax, ybins, ymin, ymax);
-
-    m_avg_hits_trigger_layer1 = Book2D("_avg_hits_trigger_layer1", "avg. trigger hits, layer 1;#eta;#phi", xbins, xmin, xmax, ybins, ymin, ymax);
-    m_avg_hits_trigger_layer2 = Book2D("_avg_hits_trigger_layer2", "avg. trigger hits, layer 2;#eta;#phi", xbins, xmin, xmax, ybins, ymin, ymax);
-    m_avg_hits_trigger_layer3 = Book2D("_avg_hits_trigger_layer3", "avg. trigger hits, layer 3;#eta;#phi", xbins, xmin, xmax, ybins, ymin, ymax);
-    m_avg_hits_trigger_layer4 = Book2D("_avg_hits_trigger_layer4", "avg. trigger hits, layer 4;#eta;#phi", xbins, xmin, xmax, ybins, ymin, ymax);
-
-    m_avg_hits_ibl = Book2D("_avg_hits_ibl", "avg. IBL hits;#eta;#phi", xbins, xmin, xmax, ybins, ymin, ymax);
-    m_avg_hits_pix = Book2D("_avg_hits_pix", "avg. Pix hits;#eta;#phi", xbins, xmin, xmax, ybins, ymin, ymax);
-    m_avg_hits_sct = Book2D("_avg_hits_sct", "avg. SCT hits;#eta;#phi", xbins, xmin, xmax, ybins, ymin, ymax);
-    m_avg_hits_trt = Book2D("_avg_hits_trt", "avg. TRT hits;#eta;#phi", xbins, xmin, xmax, ybins, ymin, ymax);
-
-    m_avg_ddpt_idme = Book2D("_avg_ddpt_idme", "avg. |pt_{ID} - pt_{ME}| / pt_{CB};#eta;#phi", xbins, xmin, xmax, ybins, ymin, ymax);
-    m_avg_dptsignif = Book2D("_avg_dptsignif", "avg. momentum diff. signif.;#eta;#phi",      xbins, xmin, xmax, ybins, ymin, ymax);
-
-  }
-}
-
-void RecoMuonPlots::fill(const xAOD::Muon& mu){
-  //General Plots
-  m_oAllPlots.fill(mu);
-  m_oMuRecoInfoPlots.fill(mu);
-  m_oMomentumPullPlots.fill(mu);
-  //m_oMuonHitSummaryPlots.fill(mu);
-  //m_oMuonIsolationPlots.fill(mu);
-  //m_oMuonParamPlots.fill(mu);
-
-  const xAOD::TrackParticle* primaryTrk = mu.trackParticle(xAOD::Muon::Primary);
-  // tracking related plots
-  if (!primaryTrk) return;
-  m_oImpactPlots.fill(*primaryTrk);
-  //m_oMSHitPlots.fill(*primaryTrk);
-
-}
-
-void RecoMuonPlots::fill(const xAOD::Muon& mu, xAOD::Muon::Quality my_quality){
-
-  //always fill the origin plot
-  m_origin_eta_phi->Fill(mu.eta(), mu.phi());
-
-  //General Plots; inclusive
-  if (my_quality <= xAOD::Muon::Tight) m_tight_eta_phi->Fill(mu.eta(), mu.phi());
-  if (my_quality <= xAOD::Muon::Medium) m_medium_eta_phi->Fill(mu.eta(), mu.phi());
-  //if (my_quality <= xAOD::Muon::Loose) m_oAllPlots_loose.fill(mu);
-  //if (my_quality <= xAOD::Muon::VeryLoose) m_oAllPlots_veryloose.fill(mu);
-
-  if(!Detail) return;
-  if (mu.pt()/1000.0 > 100) {//ony for high pt muons
-    m_pt_broad->Fill(mu.pt()/1000.0);
-    m_eta_phi_broad->Fill(mu.eta(), mu.phi());
-  }
-  const xAOD::TrackParticle* primaryTrk = mu.trackParticle(xAOD::Muon::Primary);
-  const xAOD::TrackParticle* inDetTrk = mu.trackParticle(xAOD::Muon::InnerDetectorTrackParticle);
-  int correctEnum = (int) xAOD::Muon::MuonSpectrometerTrackParticle;
-  if (mu.isAvailable< ElementLink<xAOD::TrackParticleContainer> >("extrapolatedMuonSpectrometerTrackParticleLink") && (mu.auxdata< ElementLink<xAOD::TrackParticleContainer> >("extrapolatedMuonSpectrometerTrackParticleLink")).isValid()) correctEnum+=2; //check correct numbering in Muon.h
-  const xAOD::TrackParticle* msExtrapTrk = mu.trackParticle((xAOD::Muon::TrackParticleType) correctEnum);
-
-  //fill the ndof and chi2 as eta phi map; to calculate efficiencies in post processing
-  //if necessary, can use a quality cut here
-  if (primaryTrk) {
-    m_eff_ndof->Fill(primaryTrk->eta(), primaryTrk->phi(), primaryTrk->numberDoF());
-    m_eff_chi2->Fill(primaryTrk->eta(), primaryTrk->phi(), primaryTrk->chiSquared()/(primaryTrk->numberDoF() * 1.0));
-  }
-  if (inDetTrk) {
-    m_ID_eff_ndof->Fill(inDetTrk->eta(), inDetTrk->phi(), inDetTrk->numberDoF());
-    m_ID_eff_chi2->Fill(inDetTrk->eta(), inDetTrk->phi(), inDetTrk->chiSquared()/(inDetTrk->numberDoF() * 1.0));
-  }
-  if (msExtrapTrk) {
-    m_MS_eff_ndof->Fill(msExtrapTrk->eta(), msExtrapTrk->phi(), msExtrapTrk->numberDoF());
-    m_MS_eff_chi2->Fill(msExtrapTrk->eta(), msExtrapTrk->phi(), msExtrapTrk->chiSquared()/(msExtrapTrk->numberDoF() * 1.0));
-  }
-
-  if (!primaryTrk->summaryValue(hitval_numberOfPrecisionLayers,  xAOD::numberOfPrecisionLayers))  return; 
-  if (!primaryTrk->summaryValue(hitval_numberOfPhiLayers,        xAOD::numberOfPhiLayers))        return; 
-  if (!primaryTrk->summaryValue(hitval_numberOfTriggerEtaLayers, xAOD::numberOfTriggerEtaLayers)) return; 
-
-  if (!mu.summaryValue(hitval_innerSmallHits,     xAOD::MuonSummaryType::innerSmallHits))    return; 
-  if (!mu.summaryValue(hitval_innerLargeHits,     xAOD::MuonSummaryType::innerLargeHits))    return; 
-  if (!mu.summaryValue(hitval_middleSmallHits,    xAOD::MuonSummaryType::middleSmallHits))   return; 
-  if (!mu.summaryValue(hitval_middleLargeHits,    xAOD::MuonSummaryType::middleLargeHits))   return; 
-  if (!mu.summaryValue(hitval_outerSmallHits,     xAOD::MuonSummaryType::outerSmallHits))    return; 
-  if (!mu.summaryValue(hitval_outerLargeHits,     xAOD::MuonSummaryType::outerLargeHits))    return; 
-  if (!mu.summaryValue(hitval_extendedSmallHits,  xAOD::MuonSummaryType::extendedSmallHits)) return; 
-  if (!mu.summaryValue(hitval_extendedLargeHits,  xAOD::MuonSummaryType::extendedLargeHits)) return; 
-
-  if (!mu.summaryValue(hitval_etaLayer1Hits,      xAOD::MuonSummaryType::etaLayer1Hits)) return; 
-  if (!mu.summaryValue(hitval_etaLayer2Hits,      xAOD::MuonSummaryType::etaLayer2Hits)) return; 
-  if (!mu.summaryValue(hitval_etaLayer3Hits,      xAOD::MuonSummaryType::etaLayer3Hits)) return; 
-  if (!mu.summaryValue(hitval_etaLayer4Hits,      xAOD::MuonSummaryType::etaLayer4Hits)) return; 
-
-  if (!mu.summaryValue(hitval_numberOfBLayerHits, xAOD::SummaryType::numberOfInnermostPixelLayerHits)) return;
-  if (!mu.summaryValue(hitval_numberOfPixelHits,  xAOD::SummaryType::numberOfPixelHits))  return;
-  if (!mu.summaryValue(hitval_numberOfSCTHits,    xAOD::SummaryType::numberOfSCTHits))    return;
-  if (!mu.summaryValue(hitval_numberOfTRTHits,    xAOD::SummaryType::numberOfTRTHits))    return;
-
-  m_eff_nPrec    -> Fill(mu.eta(), mu.phi(), hitval_numberOfPrecisionLayers);
-  m_eff_nPhi     -> Fill(mu.eta(), mu.phi(), hitval_numberOfPhiLayers);
-  m_eff_nTrigEta -> Fill(mu.eta(), mu.phi(), hitval_numberOfTriggerEtaLayers);
-
-  m_avg_hits_precision_inner    -> Fill(mu.eta(), mu.phi(), hitval_innerSmallHits    + hitval_innerLargeHits);
-  m_avg_hits_precision_middle   -> Fill(mu.eta(), mu.phi(), hitval_middleSmallHits   + hitval_middleLargeHits);
-  m_avg_hits_precision_outer    -> Fill(mu.eta(), mu.phi(), hitval_outerSmallHits    + hitval_outerLargeHits);
-  m_avg_hits_precision_extended -> Fill(mu.eta(), mu.phi(), hitval_extendedSmallHits + hitval_extendedLargeHits);
-
-  m_avg_hits_trigger_layer1 -> Fill(mu.eta(), mu.phi(), hitval_etaLayer1Hits);
-  m_avg_hits_trigger_layer2 -> Fill(mu.eta(), mu.phi(), hitval_etaLayer2Hits);
-  m_avg_hits_trigger_layer3 -> Fill(mu.eta(), mu.phi(), hitval_etaLayer3Hits);
-  m_avg_hits_trigger_layer4 -> Fill(mu.eta(), mu.phi(), hitval_etaLayer4Hits);
-
-  m_avg_hits_ibl -> Fill(mu.eta(), mu.phi(), hitval_numberOfBLayerHits);
-  m_avg_hits_pix -> Fill(mu.eta(), mu.phi(), hitval_numberOfPixelHits);
-  m_avg_hits_sct -> Fill(mu.eta(), mu.phi(), hitval_numberOfSCTHits);
-  m_avg_hits_trt -> Fill(mu.eta(), mu.phi(), hitval_numberOfTRTHits);
-
-  if (primaryTrk && inDetTrk && msExtrapTrk) {
-      qoverp_diff   = fabs(inDetTrk->qOverP() - msExtrapTrk->qOverP());
-      qoverp_sigma  = sqrt(inDetTrk->definingParametersCovMatrix()(4,4) + msExtrapTrk->definingParametersCovMatrix()(4,4));
-      qoverp_signif = (qoverp_sigma     > 0) ? (qoverp_diff / qoverp_sigma) : -999;
-      ddpt_idme     = (primaryTrk->pt() > 0) ? fabs(inDetTrk->pt() - msExtrapTrk->pt()) / primaryTrk->pt() : -999;
-      
-      m_avg_ddpt_idme -> Fill(mu.eta(), mu.phi(), ddpt_idme);
-      m_avg_dptsignif -> Fill(mu.eta(), mu.phi(), qoverp_signif);
-  }
-
-}
diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/src/RecoMuonSegmentPlots.cxx b/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/src/RecoMuonSegmentPlots.cxx
deleted file mode 100644
index 61a837b7ffcbf99f6dd68c38cc5acf3a6b466325..0000000000000000000000000000000000000000
--- a/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/src/RecoMuonSegmentPlots.cxx
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
-  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
-*/
-
-#include "MuonTrackMonitoring/RecoMuonSegmentPlots.h"
-
-RecoMuonSegmentPlots::RecoMuonSegmentPlots(PlotBase* pParent, std::string sDir, bool detail):PlotBase(pParent, sDir)
-  ,  m_oMuonSegmentPlots(NULL)
-  ,  m_oMuonSegmentSlimPlots(NULL)
-  //declare the histograms
-{
-  Detail = detail;
-  if(Detail) m_oMuonSegmentPlots = new Muon::MuonSegmentPlots(this,"/");
-  else m_oMuonSegmentSlimPlots = new Muon::MuonSegmentSlimPlots(this,"/");
-}
-
-//when the plot function called with a Muon Container
-//loop through each muon, get the corresponding link and fill it
-void RecoMuonSegmentPlots::fill(const xAOD::MuonContainer& muContainer){
-  for (const auto mu : muContainer) {
-    fill(*mu);
-  }
-}
-
-//when the plot function called with a Muon
-//get's the corresponding link and fill it
-//Tony 2015.9.21: fix to go around the segment link problem for now
-void RecoMuonSegmentPlots::fill(const xAOD::Muon& mu){
-  const std::vector<ElementLink<DataVector<xAOD::MuonSegment_v1>>> Mu_Segments = mu.muonSegmentLinks();
-  fill(Mu_Segments);
-}
-
-//use the link to fill
-void RecoMuonSegmentPlots::fill(const std::vector<ElementLink<DataVector<xAOD::MuonSegment_v1>>> Mu_Segments){
-
-  for(const auto Mu_Segment : Mu_Segments){
-    const ElementLink<DataVector<xAOD::MuonSegment_v1>> Mu_seg = Mu_Segment;
-    if(Mu_seg.isValid()){
-      const xAOD::MuonSegment* seg = *Mu_seg;
-      fill(*seg);
-    }
-  }
-}
-
-
-void RecoMuonSegmentPlots::fill(const xAOD::MuonSegment& muonSeg) {
-  //General Plots
-  if (Detail) m_oMuonSegmentPlots->fill(muonSeg);
-  else m_oMuonSegmentSlimPlots->fill(muonSeg);
-}
-
-void RecoMuonSegmentPlots::initializePlots()
-{
-  //initialize temp plots
-}
-
diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/src/RecoMuonTrackPlots.cxx b/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/src/RecoMuonTrackPlots.cxx
deleted file mode 100644
index eff83b9efd7771aee0babdfefae9cf27fb418c97..0000000000000000000000000000000000000000
--- a/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/src/RecoMuonTrackPlots.cxx
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
-  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
-*/
-
-#include "MuonTrackMonitoring/RecoMuonTrackPlots.h"
-
-RecoMuonTrackPlots::RecoMuonTrackPlots(PlotBase* pParent, std::string sDir):PlotBase(pParent, sDir),
-m_oAllPlots(this, "/", "Reco Muon"),
-m_oImpactPlots(this, "/"),
-m_oTrkRecoInfoPlots(this, "/"),
-m_pt_broad(NULL),
-m_eta_phi_broad(NULL)
-{}
-
-void RecoMuonTrackPlots::initializePlots(){
-  //booking histograms
-  m_pt_broad = Book1D("_pt_broad", "High p_{T} Distribution", 70, 100, 1500);
-  m_eta_phi_broad = Book2D("_eta_phi_broad", "High p_{T} Muon #eta #phi Distribution;#eta;#phi", 52, -2.6, 2.6, 64, -3.2, 3.2);
-}
-
-//when the plot function called with a Muon Container
-//loop through each muon, get the corresponding link and fill it
-
-//when the plot function called with a Muon
-//get's the corresponding link and fill it
-void RecoMuonTrackPlots::fill(const xAOD::Muon& mu, int component){
-
-  if (component == 0 ) {
-    ElementLink<xAOD::TrackParticleContainer> Mu_MStrack = mu.muonSpectrometerTrackParticleLink();
-    if(Mu_MStrack.isValid()){
-      const xAOD::TrackParticle* trk = *Mu_MStrack;
-      fill(*trk);
-    }
-  }
-
-  if (component == 1 ){
-
-    ElementLink<xAOD::TrackParticleContainer> Mu_metrack = mu.trackParticleLink(xAOD::Muon::TrackParticleType::ExtrapolatedMuonSpectrometerTrackParticle);
-    if(Mu_metrack.isValid()){
-      const xAOD::TrackParticle* trk = *Mu_metrack;
-      fill(*trk);
-    }
-  }
-}
-
-
-void RecoMuonTrackPlots::fill(const xAOD::TrackParticle& muTP){
-  m_oAllPlots.fill(muTP);
-  m_oImpactPlots.fill(muTP);
-  m_oTrkRecoInfoPlots.fill(muTP);
-  
-  if (muTP.pt()/1000.0 > 100) {//ony for high pt muons
-    m_pt_broad->Fill(muTP.pt()/1000.0);
-    m_eta_phi_broad->Fill(muTP.eta(), muTP.phi());
-  }
-  
-}
-
-
diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/src/RecoPhysPlots.cxx b/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/src/RecoPhysPlots.cxx
deleted file mode 100644
index 66871a698b2de3468180119ff558ecd69569c99d..0000000000000000000000000000000000000000
--- a/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/src/RecoPhysPlots.cxx
+++ /dev/null
@@ -1,290 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#include "MuonTrackMonitoring/RecoPhysPlots.h"
-
-
-RecoPhysPlots::RecoPhysPlots(PlotBase *pParent, std::string sDir, std::string recObj):PlotBase(pParent, sDir),
-    m_Mass(0),
-    m_occupancy(0),
-    m_2occupancy(0),
-    // m_Efficiency(0),
-    // m_EffNumerator(0),
-    // m_EffDenominator(0),
-    // m_Efficiency_eta(0),
-    // m_EffNumerator_eta(0),
-    // m_EffDenominator_eta(0),
-    m_M_Mean(0),
-    m_M_Sigma(0),
-    m_M_EA_EA(0),
-    m_M_EA_BA(0),
-    m_M_EA_BC(0),
-    m_M_EA_EC(0),
-    m_M_BA_EA(0),
-    m_M_BA_BA(0),
-    m_M_BA_BC(0),
-    m_M_BA_EC(0),
-    m_M_BC_EA(0),
-    m_M_BC_BA(0),
-    m_M_BC_BC(0),
-    m_M_BC_EC(0),
-    m_M_EC_EA(0),
-    m_M_EC_BA(0),
-    m_M_EC_BC(0),
-    m_M_EC_EC(0),
-    type(recObj)
-{}
-
-void RecoPhysPlots::initializePlots(){
-
-    std::string Zsig("Z");
-    std::string Jsig("Jpsi");
-    std::string name;
-    bool doZ = false; bool doJ = false;
-
-    if (!type.compare(Zsig)) { name="Z"; doZ = true; }
-    else if (!type.compare(Jsig)) { name="J/#psi"; doJ = true; }
-    else { name="other"; }
-
-    int nBins = 100;
-    double minBin = 0.0;
-    double maxBin = 1000.0;
-
-    /// Error check for doZ and doJ both true here;
-
-    if (doZ) {
-      nBins = 100;
-      minBin = 60.0;
-      maxBin = 120.0;
-    }
-    else if (doJ) {
-      nBins = 30;
-      minBin = 2.5;
-      maxBin = 3.5;
-    }
-    //resonance mass distributuioin
-    m_Mass      = Book1D("m_"+type+"_Mass",      "m_Mass: M_{"+name+"} Mass;Mass [GeV];",              nBins, minBin, maxBin);
-    //resonance two muon distribution
-    m_occupancy = Book1D("m_"+type+"_occupancy", "m_occupancy: M_{"+name+"} Track Occupancy;;N_{#mu}",   8,  0.0,   8.0);
-    m_2occupancy = Book1D("m_"+type+"_2occupancy", "m_2occupancy: M_{"+name+"} Two Track Occupancy;;N_{#mu}",   16,  0.5,   16.5);
-    // //for resonance efficiency calculations
-    // m_Efficiency     = Book2D("m_"+type+"_Efficiency",     "m_Efficiency: M_{"+name+"} Efficiency",      8, 0.0, 8.0, 16, 1.0, 17.0);    
-    // m_EffNumerator   = Book2D("m_"+type+"_EffNumerator",   "m_EffNumerator: M_Efficiency Numerator",     8, 0.0, 8.0, 16, 1.0, 17.0);    
-    // m_EffDenominator = Book2D("m_"+type+"_EffDenominator", "m_EffDenominator: M_Efficiency Denominator", 8, 0.0, 8.0, 16, 1.0, 17.0);
-    // //for resonance efficiency calculations in eta bins, 1D plots
-    // m_Efficiency_eta     = Book1D("m_"+type+"_Efficiency_eta",     "m_Efficiency_eta: M_{"+name+"} Efficiency;#eta",      20, -2.5, 2.5);
-    // m_EffNumerator_eta   = Book1D("m_"+type+"_EffNumerator_eta",   "m_EffNumerator_eta: M_Efficiency Numerator;#eta",     20, -2.5, 2.5);
-    // m_EffDenominator_eta = Book1D("m_"+type+"_EffDenominator_eta", "m_EffDenominator_eta: M_Efficiency Denominator;#eta", 20, -2.5, 2.5);
-    //resonance mass distribution in each mass range
-    m_M_EA_EA = Book1D("m_"+type+"_M_EA_EA", "m_M_EA_EAM_{"+name+"} EA_{+} - EA_{-}; M_{"+name+"}[GeV];", nBins, minBin, maxBin);
-    m_M_EA_BA = Book1D("m_"+type+"_M_EA_BA", "m_M_EA_BAM_{"+name+"} EA_{+} - BA_{-}; M_{"+name+"}[GeV];", nBins, minBin, maxBin);
-    m_M_EA_BC = Book1D("m_"+type+"_M_EA_BC", "m_M_EA_BCM_{"+name+"} EA_{+} - BC_{-}; M_{"+name+"}[GeV];", nBins, minBin, maxBin);
-    m_M_EA_EC = Book1D("m_"+type+"_M_EA_EC", "m_M_EA_ECM_{"+name+"} EA_{+} - EC_{-}; M_{"+name+"}[GeV];", nBins, minBin, maxBin);
-    m_M_BA_EA = Book1D("m_"+type+"_M_BA_EA", "m_M_BA_EAM_{"+name+"} BA_{+} - EA_{-}; M_{"+name+"}[GeV];", nBins, minBin, maxBin);
-    m_M_BA_BA = Book1D("m_"+type+"_M_BA_BA", "m_M_BA_BAM_{"+name+"} BA_{+} - BA_{-}; M_{"+name+"}[GeV];", nBins, minBin, maxBin);
-    m_M_BA_BC = Book1D("m_"+type+"_M_BA_BC", "m_M_BA_BCM_{"+name+"} BA_{+} - BC_{-}; M_{"+name+"}[GeV];", nBins, minBin, maxBin);
-    m_M_BA_EC = Book1D("m_"+type+"_M_BA_EC", "m_M_BA_ECM_{"+name+"} BA_{+} - EC_{-}; M_{"+name+"}[GeV];", nBins, minBin, maxBin);
-    m_M_BC_EA = Book1D("m_"+type+"_M_BC_EA", "m_M_BC_EAM_{"+name+"} BC_{+} - EA_{-}; M_{"+name+"}[GeV];", nBins, minBin, maxBin);
-    m_M_BC_BA = Book1D("m_"+type+"_M_BC_BA", "m_M_BC_BAM_{"+name+"} BC_{+} - BA_{-}; M_{"+name+"}[GeV];", nBins, minBin, maxBin);
-    m_M_BC_BC = Book1D("m_"+type+"_M_BC_BC", "m_M_BC_BCM_{"+name+"} BC_{+} - BC_{-}; M_{"+name+"}[GeV];", nBins, minBin, maxBin);
-    m_M_BC_EC = Book1D("m_"+type+"_M_BC_EC", "m_M_BC_ECM_{"+name+"} BC_{+} - EC_{-}; M_{"+name+"}[GeV];", nBins, minBin, maxBin);
-    m_M_EC_EA = Book1D("m_"+type+"_M_EC_EA", "m_M_EC_EAM_{"+name+"} EC_{+} - EA_{-}; M_{"+name+"}[GeV];", nBins, minBin, maxBin);
-    m_M_EC_BA = Book1D("m_"+type+"_M_EC_BA", "m_M_EC_BAM_{"+name+"} EC_{+} - BA_{-}; M_{"+name+"}[GeV];", nBins, minBin, maxBin);
-    m_M_EC_BC = Book1D("m_"+type+"_M_EC_BC", "m_M_EC_BCM_{"+name+"} EC_{+} - BC_{-}; M_{"+name+"}[GeV];", nBins, minBin, maxBin);
-    m_M_EC_EC = Book1D("m_"+type+"_M_EC_EC", "m_M_EC_ECM_{"+name+"} EC_{+} - EC_{-}; M_{"+name+"}[GeV];", nBins, minBin, maxBin);
-    //for compare mass mean and sigma, done in post processing
-    m_M_Mean  = Book1D("m_"+type+"_M_Mean",  "m_M_Mean: M_{"+name+"} Mean;;M_{"+name+"}[GeV]",             16, 1.0, 17.0);
-    m_M_Sigma = Book1D("m_"+type+"_M_Sigma", "m_M_Sigma: #sigma(M_{"+name+"});;#sigma(M_{"+name+"})[GeV]", 16, 1.0, 17.0);
-
-    //label the plots
-    LabelCombinedEtaRegions(m_M_Mean->GetXaxis());
-    LabelCombinedEtaRegions(m_M_Sigma->GetXaxis());
-    LabelCombinedEtaRegions(m_2occupancy->GetXaxis());
-    LabelLargeEtaRegions(m_occupancy->GetXaxis());
-
-    // LabelLargeEtaRegions(m_EffNumerator->GetXaxis());
-    // LabelSectorAxis(m_EffDenominator->GetYaxis());
-    // LabelLargeEtaRegions(m_EffNumerator->GetXaxis());
-    // LabelSectorAxis(m_EffDenominator->GetYaxis());
-    // LabelLargeEtaRegions(m_Efficiency->GetXaxis());
-    // LabelSectorAxis(m_Efficiency->GetYaxis());
-}
-
-void RecoPhysPlots::fill(std::vector<std::pair<const xAOD::Muon*, const xAOD::Muon*> > mumucandidates){
-    for (auto mumu: mumucandidates){
-        const float invariant_mass = (mumu.first->p4() + mumu.second->p4()).M();
-        fill(mumu.first->eta(), mumu.second->eta(), invariant_mass);
-    }
-}
-
-void RecoPhysPlots::fill(const float eta_mu_plus, const float eta_mu_minus, const float invariant_mass){
-
-    float etaRegionCoarsePlus  = EtaRegionCoarse(eta_mu_plus);
-    float etaRegionCoarseMinus = EtaRegionCoarse(eta_mu_minus);
-    float etaRegionFinePlus    = EtaRegionFine(eta_mu_plus);
-    float etaRegionFineMinus   = EtaRegionFine(eta_mu_minus);
-  
-    if((etaRegionCoarsePlus == 3.5 && etaRegionCoarseMinus == 3.5)) {m_M_EA_EA->Fill(invariant_mass/1000.0); m_2occupancy->Fill(16);}
-    if((etaRegionCoarsePlus == 3.5 && etaRegionCoarseMinus == 2.5)) {m_M_EA_BA->Fill(invariant_mass/1000.0); m_2occupancy->Fill(15);}
-    if((etaRegionCoarsePlus == 3.5 && etaRegionCoarseMinus == 1.5)) {m_M_EA_BC->Fill(invariant_mass/1000.0); m_2occupancy->Fill(14);}
-    if((etaRegionCoarsePlus == 3.5 && etaRegionCoarseMinus == 0.5)) {m_M_EA_EC->Fill(invariant_mass/1000.0); m_2occupancy->Fill(13);}
-
-    if((etaRegionCoarsePlus == 2.5 && etaRegionCoarseMinus == 3.5)) {m_M_BA_EA->Fill(invariant_mass/1000.0); m_2occupancy->Fill(12);}
-    if((etaRegionCoarsePlus == 2.5 && etaRegionCoarseMinus == 2.5)) {m_M_BA_BA->Fill(invariant_mass/1000.0); m_2occupancy->Fill(11);}
-    if((etaRegionCoarsePlus == 2.5 && etaRegionCoarseMinus == 1.5)) {m_M_BA_BC->Fill(invariant_mass/1000.0); m_2occupancy->Fill(10);}
-    if((etaRegionCoarsePlus == 2.5 && etaRegionCoarseMinus == 0.5)) {m_M_BA_EC->Fill(invariant_mass/1000.0); m_2occupancy->Fill(9);}
-
-    if((etaRegionCoarsePlus == 1.5 && etaRegionCoarseMinus == 3.5)) {m_M_BC_EA->Fill(invariant_mass/1000.0); m_2occupancy->Fill(8);}
-    if((etaRegionCoarsePlus == 1.5 && etaRegionCoarseMinus == 2.5)) {m_M_BC_BA->Fill(invariant_mass/1000.0); m_2occupancy->Fill(7);}
-    if((etaRegionCoarsePlus == 1.5 && etaRegionCoarseMinus == 1.5)) {m_M_BC_BC->Fill(invariant_mass/1000.0); m_2occupancy->Fill(6);}
-    if((etaRegionCoarsePlus == 1.5 && etaRegionCoarseMinus == 0.5)) {m_M_BC_EC->Fill(invariant_mass/1000.0); m_2occupancy->Fill(5);}
-
-    if((etaRegionCoarsePlus == 0.5 && etaRegionCoarseMinus == 3.5)) {m_M_EC_EA->Fill(invariant_mass/1000.0); m_2occupancy->Fill(4);}
-    if((etaRegionCoarsePlus == 0.5 && etaRegionCoarseMinus == 2.5)) {m_M_EC_BA->Fill(invariant_mass/1000.0); m_2occupancy->Fill(3);}
-    if((etaRegionCoarsePlus == 0.5 && etaRegionCoarseMinus == 1.5)) {m_M_EC_BC->Fill(invariant_mass/1000.0); m_2occupancy->Fill(2);}
-    if((etaRegionCoarsePlus == 0.5 && etaRegionCoarseMinus == 0.5)) {m_M_EC_EC->Fill(invariant_mass/1000.0); m_2occupancy->Fill(1);}
-
-    m_Mass->Fill(invariant_mass/1000.0);
-    m_occupancy->Fill(etaRegionFinePlus);
-    m_occupancy->Fill(etaRegionFineMinus);
-
-}
-
-void RecoPhysPlots::finalizeRecoPlots(){
-    
-    // for(int bin = 1; bin < m_Efficiency->GetXaxis()->GetNbins(); bin++){
-    //     if(m_EffDenominator->GetBinContent(bin) > 0){
-    //         m_Efficiency->SetBinContent(bin, (m_EffNumerator->GetBinContent(bin)) / (m_EffDenominator->GetBinContent(bin)));
-    //     }
-    // }
-    
-    // for(int bin = 1; bin < m_Efficiency_eta->GetXaxis()->GetNbins(); bin++){
-    //     if(m_EffDenominator_eta->GetBinContent(bin) > 0){
-    //         m_Efficiency_eta->SetBinContent(bin, (m_EffNumerator_eta->GetBinContent(bin)) / (m_EffDenominator_eta->GetBinContent(bin)));
-    //     }
-    // }
-
-    SetResultsBin( 1, m_M_EC_EC);
-    SetResultsBin( 2, m_M_EC_BC);
-    SetResultsBin( 3, m_M_EC_BA);
-    SetResultsBin( 4, m_M_EC_EA);
-    SetResultsBin( 5, m_M_BC_EC);
-    SetResultsBin( 6, m_M_BC_BC);
-    SetResultsBin( 7, m_M_BC_BA);
-    SetResultsBin( 8, m_M_BC_EA);
-    SetResultsBin( 9, m_M_BA_EC);
-    SetResultsBin(10, m_M_BA_BC);
-    SetResultsBin(11, m_M_BA_BA);
-    SetResultsBin(12, m_M_BA_EA);
-    SetResultsBin(13, m_M_EA_EC);
-    SetResultsBin(14, m_M_EA_BC);
-    SetResultsBin(15, m_M_EA_BA);
-    SetResultsBin(16, m_M_EA_EA);
-}
-
-float RecoPhysPlots::EtaRegionFine(double eta)
-{
-  if (eta < -2.50) {return -1.;} // underflow
-  if (eta < -2.00) {return 0.5;} // CSC C
-  if (eta < -1.70) {return 1.5;} // ENDCAP C
-  if (eta < -1.05) {return 2.5;} // Trans C
-  if (eta <  0.00) {return 3.5;} // Barrel C
-  if (eta >  2.50) {return 8.5;} // OverFlow
-  if (eta >  2.00) {return 7.5;} // CSC A
-  if (eta >  1.70) {return 6.5;} // ENDCAP A
-  if (eta >  1.05) {return 5.5;} // Trans A
-  if (eta >  0.00) {return 4.5;} // Barrel A
-  return -1.;
-}
-
-float RecoPhysPlots::EtaRegionCoarse(double eta)
-{
-
-  if(eta < -2.50) {return -1.;} // underflow
-  if(eta < -1.05) {return 0.5;} // EC
-  if(eta <  0.00) {return 1.5;} // BC
-  if(eta <  1.05) {return 2.5;} // BA
-  if(eta <  2.50) {return 3.5;} // BC
-  return 4.5; // Overflow
-
-}
-bool RecoPhysPlots::LabelLargeEtaRegions(TAxis * axis)
-{
-  axis->SetBinLabel(1, "CSC C");
-  axis->SetBinLabel(2, "EC C");
-  axis->SetBinLabel(3, "TRANS C");
-  axis->SetBinLabel(4, "BARR C");
-  axis->SetBinLabel(5, "BARR A");
-  axis->SetBinLabel(6, "TRANS A");
-  axis->SetBinLabel(7, "EC A");
-  axis->SetBinLabel(8," CSC A");
-  axis->SetTitle("Detector #eta Regions");
-
-  return true;
-}
-
-bool RecoPhysPlots::LabelCombinedEtaRegions(TAxis * axis)
-{
-  axis->SetBinLabel( 1, "EC-EC");
-  axis->SetBinLabel( 2, "EC-BC");
-  axis->SetBinLabel( 3, "EC-BA");
-  axis->SetBinLabel( 4, "EC-EA");
-  axis->SetBinLabel( 5, "BC-EC");
-  axis->SetBinLabel( 6, "BC-BC");
-  axis->SetBinLabel( 7, "BC-BA");
-  axis->SetBinLabel( 8, "BC-EA");
-  axis->SetBinLabel( 9, "BA-EC");
-  axis->SetBinLabel(10, "BA-BC");
-  axis->SetBinLabel(11, "BA-BA");
-  axis->SetBinLabel(12, "BA-EA");
-  axis->SetBinLabel(13, "EA-EC");
-  axis->SetBinLabel(14, "EA-BC");
-  axis->SetBinLabel(15, "EA-BA");
-  axis->SetBinLabel(16, "EA-EA");
-
-  axis->SetTitle("#eta Region Permutations [+#mu, -#mu]");
-
-  return true;
-}
-
-bool RecoPhysPlots::LabelSectorAxis(TAxis * axis){
-
-  axis->SetTitle("#phi Sectors 1-16");
-  if(axis->GetNbins() == 16) axis->CenterLabels(kTRUE);
-
-  if(axis->GetNbins()%16){
-    std::cout << "Sector Axis Label Error, not a multiple of 16 bins!\n";
-    return false;
-  }
-
-  int nSectorDevisions = axis->GetNbins()/16;
-  int skip_counter     = 1;
-
-  axis->SetNdivisions(16,nSectorDevisions,0,kFALSE);
-
-
-  for (int i = 1; i <= axis->GetNbins(); i++) {
-
-    if (skip_counter == nSectorDevisions) {
-      axis->SetBinLabel(i,Form("%d",i/nSectorDevisions));
-      skip_counter = 1;
-    }else {
-      axis->SetBinLabel(i," ");
-      skip_counter++;
-    }
-
-  }
-
-  return true;
-}
-
-void RecoPhysPlots::SetResultsBin(int iBin, TH1* pInputHist){
-
-    m_M_Mean-> SetBinContent(iBin, pInputHist->GetMean(1));
-    m_M_Mean-> SetBinError(  iBin, pInputHist->GetMeanError(1));
-    m_M_Sigma->SetBinContent(iBin, pInputHist->GetRMS(1));
-
-}
-
-
diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/src/RecoVertexPlots.cxx b/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/src/RecoVertexPlots.cxx
deleted file mode 100644
index c836af8b7baa26d5b2605443bc1c1a64bb8fe16f..0000000000000000000000000000000000000000
--- a/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/src/RecoVertexPlots.cxx
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#include "MuonTrackMonitoring/RecoVertexPlots.h"
-
-
-RecoVertexPlots::RecoVertexPlots(PlotBase *pParent, std::string sDir):PlotBase(pParent, sDir),
-	m_nMDT(NULL),
-	m_nRPC(NULL),
-	m_nTGC(NULL),
-	m_nTracklets(NULL),
-	m_VertexEtaPhi(NULL)
-{}
-
-void RecoVertexPlots::initializePlots(){
-
-    m_nMDT = Book1D("m_MSVx_nMDT", "m MSVx nMDT: M MSVx MDT Hits;;N_{MDT}", 100,  0.0,  3000.);
-    m_nRPC = Book1D("m_MSVx_nRPC", "m MSVx nRPC: M MSVx RPC Hits;;N_{RPC}", 100,  0.0,  1000.);
-    m_nTGC = Book1D("m_MSVx_nTGC", "m MSVx nTGC: M MSVx TGC Hits;;N_{TGC}", 100,  0.0,  1000.);
-
-    m_nTracklets = Book1D("m_MSVx_nTracklets", "MSVx nTracklets: M MSVx Number of Tracklets; N_{trackletS}", 20,  0.0,  20.);   
-    m_VertexEtaPhi   = Book2D("m_VertexEtaPhi", "Vertex Eta Phi: M MSVx #eta vs. #phi; #eta; #phi", 25, -2.5, 25, 32, -3.2, 3.2);    
- 
-}
-
-void RecoVertexPlots::fill(const xAOD::Vertex& msVx){    
-  	TVector3 tmp_vx; tmp_vx.SetXYZ(msVx.x(),msVx.y(),msVx.z());
-    m_nMDT->Fill(msVx.auxdata< int >( "nMDT" ));
-    m_nRPC->Fill(msVx.auxdata< int >( "nRPC" ));
-    m_nTGC->Fill(msVx.auxdata< int >( "nTGC" ));
-    m_nTracklets->Fill(msVx.numberDoF()+1.);
-    m_VertexEtaPhi->Fill(tmp_vx.Eta(),tmp_vx.Phi());
-}
diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/src/components/MuonTrackMonitoring_entries.cxx b/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/src/components/MuonTrackMonitoring_entries.cxx
index ed8169f875e7483f9c14d8a1492a967546dfbbb7..725709de61b4f2b7b8ec97689c76b53a7b357e41 100644
--- a/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/src/components/MuonTrackMonitoring_entries.cxx
+++ b/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/src/components/MuonTrackMonitoring_entries.cxx
@@ -1,4 +1,8 @@
-#include "MuonTrackMonitoring/MuonGenericTracksMon.h"
- 
-DECLARE_COMPONENT( MuonGenericTracksMon )
- 
+/*
+      Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
+        2020 Matthias Schott - Uni Mainz
+*/
+
+#include "MuonTrackMonitoring/MuonTrackMonitorAlgorithm.h"
+DECLARE_COMPONENT( MuonTrackMonitorAlgorithm )
+