From 2c10502ded97bbfe995bd4b4bf08833e232ef84b Mon Sep 17 00:00:00 2001
From: Atlas-Software Librarian <Atlas-Software.Librarian@cern.ch>
Date: Fri, 8 Apr 2016 15:58:09 +0200
Subject: [PATCH] 'CMakeLists.txt' (InDetGlobalMonitoring-00-09-39)

	* Fix for unchecked statuscodes
	* Fix for coverity issue (integer division to initialise double)
	* Fix for using nullptr initialisation for pointers
	* Added vertex per LB histograms
	* Added distributions of shared Pixel and SCT hits and split Pixel hits by eta-phi
---
 .../InDetGlobalMonitoring/CMakeLists.txt      | 60 +++++++++++++
 .../src/InDetGlobalBCMTool.cxx                |  4 +-
 .../src/InDetGlobalBeamSpotMonTool.cxx        | 51 +++++------
 .../src/InDetGlobalErrorMonTool.cxx           | 23 +++--
 .../src/InDetGlobalPrimaryVertexMonTool.cxx   |  7 ++
 .../src/InDetGlobalPrimaryVertexMonTool.h     |  3 +
 .../src/InDetGlobalTrackMonTool.cxx           | 90 ++++++++++++++-----
 .../src/InDetGlobalTrackMonTool.h             |  4 +
 8 files changed, 183 insertions(+), 59 deletions(-)
 create mode 100644 InnerDetector/InDetMonitoring/InDetGlobalMonitoring/CMakeLists.txt

diff --git a/InnerDetector/InDetMonitoring/InDetGlobalMonitoring/CMakeLists.txt b/InnerDetector/InDetMonitoring/InDetGlobalMonitoring/CMakeLists.txt
new file mode 100644
index 00000000000..5c051360e09
--- /dev/null
+++ b/InnerDetector/InDetMonitoring/InDetGlobalMonitoring/CMakeLists.txt
@@ -0,0 +1,60 @@
+################################################################################
+# Package: InDetGlobalMonitoring
+################################################################################
+
+# Declare the package name:
+atlas_subdir( InDetGlobalMonitoring )
+
+# Declare the package's dependencies:
+atlas_depends_on_subdirs( PUBLIC
+                          GaudiKernel
+                          PRIVATE
+                          Commission/CommissionEvent
+                          Control/AthenaBaseComps
+                          Control/AthenaMonitoring
+                          DetectorDescription/AtlasDetDescr
+                          DetectorDescription/IdDictDetDescr
+                          DetectorDescription/Identifier
+                          Event/EventInfo
+                          Event/EventPrimitives
+                          Event/xAOD/xAODTracking
+                          Generators/GeneratorObjects
+                          InnerDetector/InDetConditions/InDetBeamSpotService
+                          InnerDetector/InDetConditions/InDetConditionsSummaryService
+                          InnerDetector/InDetConditions/PixelConditionsServices
+                          InnerDetector/InDetConditions/SCT_ConditionsServices
+                          InnerDetector/InDetDetDescr/InDetIdentifier
+                          InnerDetector/InDetDetDescr/InDetReadoutGeometry
+                          InnerDetector/InDetDetDescr/PixelGeoModel
+                          InnerDetector/InDetRawEvent/InDetBCM_RawData
+                          InnerDetector/InDetRawEvent/InDetRawData
+                          InnerDetector/InDetRecEvent/InDetPrepRawData
+                          InnerDetector/InDetRecEvent/InDetRIO_OnTrack
+                          InnerDetector/InDetRecTools/InDetTrackSelectionTool
+                          Tools/LWHists
+                          Tracking/TrkDetDescr/TrkSurfaces
+                          Tracking/TrkEvent/TrkEventPrimitives
+                          Tracking/TrkEvent/TrkMeasurementBase
+                          Tracking/TrkEvent/TrkParameters
+                          Tracking/TrkEvent/TrkParticleBase
+                          Tracking/TrkEvent/TrkTrack
+                          Tracking/TrkEvent/TrkTrackSummary
+                          Tracking/TrkEvent/TrkTruthData
+                          Tracking/TrkEvent/VxVertex
+                          Tracking/TrkExtrapolation/TrkExInterfaces
+                          Tracking/TrkTools/TrkToolInterfaces )
+
+# External dependencies:
+find_package( CLHEP )
+find_package( ROOT COMPONENTS Core Tree MathCore Hist RIO pthread )
+
+# Component(s) in the package:
+atlas_add_component( InDetGlobalMonitoring
+                     src/*.cxx
+                     src/components/*.cxx
+                     INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS}
+                     LINK_LIBRARIES ${ROOT_LIBRARIES} ${CLHEP_LIBRARIES} GaudiKernel CommissionEvent AthenaBaseComps AthenaMonitoringLib AtlasDetDescr IdDictDetDescr Identifier EventInfo EventPrimitives xAODTracking GeneratorObjects InDetIdentifier InDetReadoutGeometry InDetBCM_RawData InDetRawData InDetPrepRawData InDetRIO_OnTrack LWHists TrkSurfaces TrkEventPrimitives TrkMeasurementBase TrkParameters TrkParticleBase TrkTrack TrkTrackSummary TrkTruthData VxVertex TrkExInterfaces TrkToolInterfaces )
+
+# Install files from the package:
+atlas_install_headers( InDetGlobalMonitoring )
+
diff --git a/InnerDetector/InDetMonitoring/InDetGlobalMonitoring/src/InDetGlobalBCMTool.cxx b/InnerDetector/InDetMonitoring/InDetGlobalMonitoring/src/InDetGlobalBCMTool.cxx
index a45d7595ee3..ec3bd95856e 100755
--- a/InnerDetector/InDetMonitoring/InDetGlobalMonitoring/src/InDetGlobalBCMTool.cxx
+++ b/InnerDetector/InDetMonitoring/InDetGlobalMonitoring/src/InDetGlobalBCMTool.cxx
@@ -1076,8 +1076,8 @@ StatusCode InDetGlobalBCMTool::fillHistograms(){
     } */
 
     for(unsigned int bc_counter = 0; bc_counter < bc_readout; bc_counter++){
-      double nROD0abortfraction = 100*((nROD0HitLG[bc_counter]*11)+nROD0HitHG[bc_counter])/36;
-      double nROD1abortfraction = 100*((nROD1HitLG[bc_counter]*11)+nROD1HitHG[bc_counter])/36;
+      double nROD0abortfraction = 100*((nROD0HitLG[bc_counter]*11)+nROD0HitHG[bc_counter])/36.0;
+      double nROD1abortfraction = 100*((nROD1HitLG[bc_counter]*11)+nROD1HitHG[bc_counter])/36.0;
       if (nROD0abortfraction != 0 || nROD1abortfraction !=0) {
 	double nabortfraction = (nROD0abortfraction+nROD1abortfraction)/2;
 	AbortFraction->Fill(nabortfraction);
diff --git a/InnerDetector/InDetMonitoring/InDetGlobalMonitoring/src/InDetGlobalBeamSpotMonTool.cxx b/InnerDetector/InDetMonitoring/InDetGlobalMonitoring/src/InDetGlobalBeamSpotMonTool.cxx
index 5b5b685e2ea..0d47c653361 100755
--- a/InnerDetector/InDetMonitoring/InDetGlobalMonitoring/src/InDetGlobalBeamSpotMonTool.cxx
+++ b/InnerDetector/InDetMonitoring/InDetGlobalMonitoring/src/InDetGlobalBeamSpotMonTool.cxx
@@ -35,31 +35,32 @@ InDetGlobalBeamSpotMonTool::InDetGlobalBeamSpotMonTool( const std::string & type
   :InDetGlobalMotherMonTool( type, name, parent ),
    m_beamCondSvc("BeamCondSvc",name),
    m_hasBeamCondSvc(false),
-   m_hTrNPt(0),
-   m_hTrPt(0),
-   m_hTrDPhi(0),
-   m_hBsX(0),
-   m_hBsY(0),
-   m_hBsZ(0),
-   m_hBsTiltX(0),
-   m_hBsTiltY(0),
-   m_hPvN(0),
-   m_hPvNPriVtx(0),
-   m_hPvNPileupVtx(0),
-   m_hPvX(0),
-   m_hPvY(0),
-   m_hPvZ(0),
-   m_hPvErrX(0),
-   m_hPvErrY(0),
-   m_hPvErrZ(0),
-   m_hPvChiSqDoF(0),
-   m_hPvXZ(0),
-   m_hPvYZ(0),
-   m_hPvYX(0),
-   m_hPvNTracksAll(0),
-   m_hPvNTracks(0),
-   m_hPvTrackPt(0),
-   m_hPvTrackEta(0)
+   m_hTrNPt(nullptr),
+   m_hTrPt(nullptr),
+   m_hTrDPhi(nullptr),
+   m_hTrDPhiCorr(nullptr),
+   m_hBsX(nullptr),
+   m_hBsY(nullptr),
+   m_hBsZ(nullptr),
+   m_hBsTiltX(nullptr),
+   m_hBsTiltY(nullptr),
+   m_hPvN(nullptr),
+   m_hPvNPriVtx(nullptr),
+   m_hPvNPileupVtx(nullptr),
+   m_hPvX(nullptr),
+   m_hPvY(nullptr),
+   m_hPvZ(nullptr),
+   m_hPvErrX(nullptr),
+   m_hPvErrY(nullptr),
+   m_hPvErrZ(nullptr),
+   m_hPvChiSqDoF(nullptr),
+   m_hPvXZ(nullptr),
+   m_hPvYZ(nullptr),
+   m_hPvYX(nullptr),
+   m_hPvNTracksAll(nullptr),
+   m_hPvNTracks(nullptr),
+   m_hPvTrackPt(nullptr),
+   m_hPvTrackEta(nullptr)
 {
   declareProperty("beamCondSvc",m_beamCondSvc);
   declareProperty("useBeamspot",m_useBeamspot=true);
diff --git a/InnerDetector/InDetMonitoring/InDetGlobalMonitoring/src/InDetGlobalErrorMonTool.cxx b/InnerDetector/InDetMonitoring/InDetGlobalMonitoring/src/InDetGlobalErrorMonTool.cxx
index 6367cd72033..b00d34e909e 100755
--- a/InnerDetector/InDetMonitoring/InDetGlobalMonitoring/src/InDetGlobalErrorMonTool.cxx
+++ b/InnerDetector/InDetMonitoring/InDetGlobalMonitoring/src/InDetGlobalErrorMonTool.cxx
@@ -35,6 +35,12 @@ InDetGlobalErrorMonTool::InDetGlobalErrorMonTool( const std::string & type,
   m_disabledGeoSCT(),
   m_disabledModulesMapPixel( 0 ),
   m_disabledModulesMapSCT( 0 ),
+  m_badModulesMapPixel(nullptr),
+  m_errorModulesMapPixel(nullptr),
+  m_errorModulesMapSCT(nullptr),
+  m_totalModulesMapPixel(nullptr),
+  m_totalModulesMapSCT(nullptr),
+  m_totalModulesMapSi(nullptr),
   c_nBinsEta( 200 ),
   c_rangeEta( 2.5 ),
   c_nBinsPhi( 200 )
@@ -70,6 +76,7 @@ StatusCode InDetGlobalErrorMonTool::bookHistogramsRecurrent()
 {
     MonGroup monGr_shift( this, "InDetGlobal/Track/DeadModules", run, ATTRIB_UNMANAGED );
   
+    bool status = true;
   if ( newRun )
     {
       m_disabledModulesMapPixel = new TH2F( "disabledModulesMapPixel", "Map of disabled modules for Pixel", 
@@ -104,16 +111,16 @@ StatusCode InDetGlobalErrorMonTool::bookHistogramsRecurrent()
 					 c_nBinsEta, -c_rangeEta, c_rangeEta, 
 					 c_nBinsPhi, -M_PI, M_PI );
       
-      monGr_shift.regHist( m_disabledModulesMapPixel ).isSuccess();
-      monGr_shift.regHist( m_errorModulesMapPixel ).isSuccess();
-      monGr_shift.regHist( m_disabledModulesMapSCT ).isSuccess();
-      monGr_shift.regHist( m_errorModulesMapSCT ).isSuccess();
-      monGr_shift.regHist( m_totalModulesMapPixel ).isSuccess();
-      monGr_shift.regHist( m_totalModulesMapSCT ).isSuccess();
-      monGr_shift.regHist( m_totalModulesMapSi ).isSuccess();
+      status &= monGr_shift.regHist( m_disabledModulesMapPixel ).isSuccess();
+      status &= monGr_shift.regHist( m_errorModulesMapPixel ).isSuccess();
+      status &= monGr_shift.regHist( m_disabledModulesMapSCT ).isSuccess();
+      status &= monGr_shift.regHist( m_errorModulesMapSCT ).isSuccess();
+      status &= monGr_shift.regHist( m_totalModulesMapPixel ).isSuccess();
+      status &= monGr_shift.regHist( m_totalModulesMapSCT ).isSuccess();
+      status &= monGr_shift.regHist( m_totalModulesMapSi ).isSuccess();
     }
   
-  return StatusCode::SUCCESS;
+  return ( status ) ? StatusCode::SUCCESS : StatusCode::FAILURE;
 }
 
 /*---------------------------------------------------------*/
diff --git a/InnerDetector/InDetMonitoring/InDetGlobalMonitoring/src/InDetGlobalPrimaryVertexMonTool.cxx b/InnerDetector/InDetMonitoring/InDetGlobalMonitoring/src/InDetGlobalPrimaryVertexMonTool.cxx
index b0e6776a90a..076dd28ccc7 100755
--- a/InnerDetector/InDetMonitoring/InDetGlobalMonitoring/src/InDetGlobalPrimaryVertexMonTool.cxx
+++ b/InnerDetector/InDetMonitoring/InDetGlobalMonitoring/src/InDetGlobalPrimaryVertexMonTool.cxx
@@ -5,6 +5,7 @@
 #include <vector>
 #include "LWHists/TH1F_LW.h"
 #include "LWHists/TH2F_LW.h"
+#include "LWHists/TProfile_LW.h"
 #include "TGraph.h"
 #include "TMath.h"
 
@@ -27,6 +28,7 @@ InDetGlobalPrimaryVertexMonTool::InDetGlobalPrimaryVertexMonTool( const std::str
    m_hPvN(0),
    m_hPvNPriVtx(0),
    m_hPvNPileupVtx(0),
+   m_hPvN_LB(0),
    m_hPvNaveMu(0),
    m_hPvX(0),
    m_hPvY(0),
@@ -101,6 +103,9 @@ StatusCode InDetGlobalPrimaryVertexMonTool::bookHistogramsRecurrent() {
     m_hPvY          = makeAndRegisterTH1F(al_primaryvertex_shift,"pvY","Primary vertex: y;y (mm)",500,-5.,5.);
     m_hPvZ          = makeAndRegisterTH1F(al_primaryvertex_shift,"pvZ","Primary vertex: z;z (mm)",100,-200.,200.);
     m_hPvN          = makeAndRegisterTH1F(al_primaryvertex_shift,"pvN","Total number of vertices (primary and pile up);Total number of vertices",20,0.,20.);
+    if ( al_primaryvertex_shift.regHist( m_hPvN_LB = TProfile_LW::create("pvN_LB", "Total number of vertices (primary and pile up) vs LB", 2000, 0.5, 2000.5 ) ).isFailure() )
+	ATH_MSG_WARNING ("Unable to book histogram with name = "+std::string("pvN_LB"));
+    
     m_hPvNPriVtx    = makeAndRegisterTH1F(al_primaryvertex_expert,"pvNPriVtx","Number of primary vertices;Number of primary vertices",3,0.,3.);
     m_hPvNPileupVtx = makeAndRegisterTH1F(al_primaryvertex_expert,"pvNPileupVtx","Number of pileup vertices;Number of pile up vertices",20,0.,20.);
     if ( AthenaMonManager::environment() != AthenaMonManager::online )
@@ -202,6 +207,8 @@ StatusCode InDetGlobalPrimaryVertexMonTool::fillHistograms() {
   }
 
   m_hPvN->Fill(vxContainer->size()-1);  // exclude dummy vertex
+  m_hPvN_LB->Fill( m_manager->lumiBlockNumber(), vxContainer->size()-1);
+  
   if ( AthenaMonManager::environment() != AthenaMonManager::online )
   {
       m_hPvNaveMu->Fill( lbAverageInteractionsPerCrossing(), vxContainer->size()-1 );
diff --git a/InnerDetector/InDetMonitoring/InDetGlobalMonitoring/src/InDetGlobalPrimaryVertexMonTool.h b/InnerDetector/InDetMonitoring/InDetGlobalMonitoring/src/InDetGlobalPrimaryVertexMonTool.h
index 16fd36bbfa7..7ddef3d777a 100755
--- a/InnerDetector/InDetMonitoring/InDetGlobalMonitoring/src/InDetGlobalPrimaryVertexMonTool.h
+++ b/InnerDetector/InDetMonitoring/InDetGlobalMonitoring/src/InDetGlobalPrimaryVertexMonTool.h
@@ -11,6 +11,7 @@
 
 class TH1F_LW;
 class TH2F_LW;
+class TProfile_LW;
 
 namespace Trk {
   class VxCandidate;
@@ -36,6 +37,8 @@ protected:
         TH1F_LW* m_hPvN;
         TH1F_LW* m_hPvNPriVtx;
         TH1F_LW* m_hPvNPileupVtx;
+
+        TProfile_LW* m_hPvN_LB;
     
         TH2F_LW* m_hPvNaveMu;
     
diff --git a/InnerDetector/InDetMonitoring/InDetGlobalMonitoring/src/InDetGlobalTrackMonTool.cxx b/InnerDetector/InDetMonitoring/InDetGlobalMonitoring/src/InDetGlobalTrackMonTool.cxx
index 2535fdae455..5a2c5dd0be4 100755
--- a/InnerDetector/InDetMonitoring/InDetGlobalMonitoring/src/InDetGlobalTrackMonTool.cxx
+++ b/InnerDetector/InDetMonitoring/InDetGlobalMonitoring/src/InDetGlobalTrackMonTool.cxx
@@ -77,6 +77,14 @@ InDetGlobalTrackMonTool::InDetGlobalTrackMonTool( const std::string & type,
       m_trkSummaryTool("Trk::TrackSummaryTool/InDetTrackSummaryTool"),
       m_CombinedTracksName("Tracks"),
       m_ForwardTracksName("ResolvedForwardTracks"),
+      sct_holes(nullptr),
+      trt_holes(nullptr),
+      pixel_holes(nullptr),
+      comb_holes(nullptr),
+      silicon_vs_trt(nullptr),
+      sct_vs_pixels(nullptr),
+      holes_quality(nullptr),
+      holes_quality_profile(nullptr),
       m_Trk_nLoose(nullptr),
       m_Trk_eta_phi(nullptr),
       m_Trk_eta_phi_LoosePrimary_ratio(nullptr),
@@ -90,10 +98,17 @@ InDetGlobalTrackMonTool::InDetGlobalTrackMonTool( const std::string & type,
       m_Trk_noIBLhits_LB(nullptr),
       m_Trk_noBLhits_LB(nullptr),
       m_Trk_noTRText_LB(nullptr),
+      m_Trk_noIBLhits_frac_LB(nullptr),
+      m_Trk_noBLhits_frac_LB(nullptr),
+      m_Trk_noTRText_frac_LB(nullptr),
+      m_trtID(nullptr),
+      m_sctID(nullptr),
+      m_pixelID(nullptr),
       m_holes_eta_phi(nullptr),
       m_holes_eta_pt(nullptr),
       m_holes_phi_pt(nullptr), 
       m_holes_eta_phi_n(nullptr),
+      m_holesComb2(nullptr),
       m_holes_hits(nullptr),
       m_holesvshits(nullptr),
       m_holesvshits_ECA(nullptr),
@@ -108,6 +123,9 @@ InDetGlobalTrackMonTool::InDetGlobalTrackMonTool( const std::string & type,
       m_trk_hits_eta_phi{nullptr},
       m_trk_disabled_eta_phi{nullptr},
       m_trk_hits_LB{nullptr},
+      m_trk_shared_pix_eta_phi(nullptr),
+      m_trk_split_pix_eta_phi(nullptr),
+      m_trk_shared_sct_eta_phi(nullptr),
       m_Trk_FORW_FA_eta_phi(nullptr),
       m_Trk_FORW_FC_eta_phi(nullptr),
       m_Trk_FORW_qoverp(nullptr),
@@ -263,6 +281,24 @@ StatusCode InDetGlobalTrackMonTool::bookHistograms()
 			 "#eta", "#phi" ).ignore();
     }
     
+    registerManHist( m_trk_shared_pix_eta_phi,  "InDetGlobal/Hits", detailsInterval,
+		     "Trk_nPixShared_eta_phi","Number of Pixel shared hits per track, eta-phi profile",
+		     m_nBinsEta, -c_etaRange, c_etaRange,
+		     m_nBinsPhi,-M_PI,M_PI,
+		     "#eta", "#phi" ).ignore();
+
+    registerManHist( m_trk_split_pix_eta_phi,  "InDetGlobal/Hits", detailsInterval,
+		     "Trk_nPixSplit_eta_phi","Number of Pixel split hits per track, eta-phi profile",
+		     m_nBinsEta, -c_etaRange, c_etaRange,
+		     m_nBinsPhi,-M_PI,M_PI,
+		     "#eta", "#phi" ).ignore();
+
+    registerManHist( m_trk_shared_sct_eta_phi,  "InDetGlobal/Hits", detailsInterval,
+		     "Trk_nSCTShared_eta_phi","Number of SCT shared hits per track, eta-phi profile",
+		     m_nBinsEta, -c_etaRange, c_etaRange,
+		     m_nBinsPhi,-M_PI,M_PI,
+		     "#eta", "#phi" ).ignore();
+    
     // Forward Pixel tracks
     if ( m_doForwardTracks )
     {	
@@ -678,12 +714,18 @@ void InDetGlobalTrackMonTool::FillHits( const Trk::Track *track, const Trk::Trac
     m_trk_disabled_eta_phi[1]->Fill( perigee->eta(), perigee->parameters()[Trk::phi0], 
 				     ( summary->get(Trk::numberOfPixelDeadSensors) >= 0 ) ? summary->get(Trk::numberOfPixelDeadSensors) : 0 );
     m_trk_hits_LB[1]->Fill( m_manager->lumiBlockNumber(), pixHits );
-	
+    m_trk_shared_pix_eta_phi->Fill( perigee->eta(), perigee->parameters()[Trk::phi0],
+				    ( summary->get(Trk::numberOfPixelSharedHits) >= 0 ) ? summary->get(Trk::numberOfPixelSharedHits) : 0 );
+    m_trk_split_pix_eta_phi->Fill( perigee->eta(), perigee->parameters()[Trk::phi0],
+				   ( summary->get(Trk::numberOfPixelSplitHits) >= 0 ) ? summary->get(Trk::numberOfPixelSplitHits) : 0 );
+    
     m_trk_hits_eta_phi[2]->Fill(  perigee->eta(), perigee->parameters()[Trk::phi0],sctHits );
     m_trk_disabled_eta_phi[2]->Fill( perigee->eta(), perigee->parameters()[Trk::phi0], 
-				     ( summary->get(Trk::numberOfSCTDeadSensors) >= 0 ) ? summary->get(Trk::numberOfSCTDeadSensors) : 0 );
+				     ( summary->get(Trk::numberOfSCTDeadSensors) >= 0 ) ? summary->get(Trk::numberOfSCTDeadSensors) : 0 ) ;
     m_trk_hits_LB[2]->Fill( m_manager->lumiBlockNumber(), sctHits );
-
+    m_trk_shared_sct_eta_phi->Fill( perigee->eta(), perigee->parameters()[Trk::phi0],
+				    ( summary->get(Trk::numberOfSCTSharedHits) >= 0 ) ? summary->get(Trk::numberOfSCTSharedHits) : 0 );
+    
     m_trk_hits_eta_phi[3]->Fill( perigee->eta(), perigee->parameters()[Trk::phi0],trtHits );
     m_trk_disabled_eta_phi[3]->Fill( perigee->eta(), perigee->parameters()[Trk::phi0], 
 				     ( summary->get(Trk::numberOfTRTDeadStraws) >= 0 ) ? summary->get(Trk::numberOfTRTDeadStraws) : 0 );
@@ -693,6 +735,8 @@ void InDetGlobalTrackMonTool::FillHits( const Trk::Track *track, const Trk::Trac
 
 void InDetGlobalTrackMonTool::FillEtaPhi( const Trk::Track *track, const Trk::TrackSummary* summary )
 {
+    if ( ! track || ! summary ) return;
+	
     const Trk::Perigee *perigee = track->perigeeParameters();
     float eta = perigee->eta();
     float phi = perigee->parameters()[Trk::phi0];
@@ -700,28 +744,26 @@ void InDetGlobalTrackMonTool::FillEtaPhi( const Trk::Track *track, const Trk::Tr
     /// Map of all extended tracks
     m_Trk_eta_phi->Fill( eta, phi );
     bool isTight = false;
-    if ( track )
+
+    // Loose primary tracks
+    if ( m_loosePri_selTool->accept(*track) )
     {
-	// Loose primary tracks
-	if ( m_loosePri_selTool->accept(*track) )
-	{
-	    m_Trk_eta_phi_LoosePrimary_ratio->Fill( eta, phi, 1 );
-	}
-	else
-	{
-	    m_Trk_eta_phi_LoosePrimary_ratio->Fill( eta, phi, 0 );
-	}
-	
-	/// TRACKSEL: Tight
-	if ( m_tight_selTool->accept(*track) )
-	{
-	    isTight = true;
-	    m_Trk_eta_phi_Tight_ratio->Fill( eta, phi, 1 );
-	}
-	else
-	{
-	    m_Trk_eta_phi_Tight_ratio->Fill( eta, phi, 0 );
-	}
+	m_Trk_eta_phi_LoosePrimary_ratio->Fill( eta, phi, 1 );
+    }
+    else
+    {
+	m_Trk_eta_phi_LoosePrimary_ratio->Fill( eta, phi, 0 );
+    }
+    
+    /// TRACKSEL: Tight
+    if ( m_tight_selTool->accept(*track) )
+    {
+	isTight = true;
+	m_Trk_eta_phi_Tight_ratio->Fill( eta, phi, 1 );
+    }
+    else
+    {
+	m_Trk_eta_phi_Tight_ratio->Fill( eta, phi, 0 );
     }
 
     /// Innermost layer
diff --git a/InnerDetector/InDetMonitoring/InDetGlobalMonitoring/src/InDetGlobalTrackMonTool.h b/InnerDetector/InDetMonitoring/InDetGlobalMonitoring/src/InDetGlobalTrackMonTool.h
index 497074bb262..cfb7c6f2662 100755
--- a/InnerDetector/InDetMonitoring/InDetGlobalMonitoring/src/InDetGlobalTrackMonTool.h
+++ b/InnerDetector/InDetMonitoring/InDetGlobalMonitoring/src/InDetGlobalTrackMonTool.h
@@ -212,6 +212,10 @@ private:
     std::array<TProfile2D *, 4> m_trk_disabled_eta_phi;
     std::array<TProfile *,4> m_trk_hits_LB;
     
+    TProfile2D * m_trk_shared_pix_eta_phi;
+    TProfile2D * m_trk_split_pix_eta_phi;
+    TProfile2D * m_trk_shared_sct_eta_phi;
+    
     //--- Combined tracks debug histograms-----------------------------------
     TH2F * m_Trk_FORW_FA_eta_phi;
     TH2F * m_Trk_FORW_FC_eta_phi;
-- 
GitLab