diff --git a/InnerDetector/InDetMonitoring/InDetGlobalMonitoring/CMakeLists.txt b/InnerDetector/InDetMonitoring/InDetGlobalMonitoring/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..5c051360e091b4969f114ee620c2aa4c1cd2a5c4 --- /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 a45d7595ee3fe52a84479f2edf68921bf9197d75..ec3bd95856e6d239365c05a55792cdf01fb255dd 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 5b5b685e2ea547118b49877bf554a9f62e49da5d..0d47c65336151080440760e2e50b73d2dc25e5b5 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 6367cd72033792089d39bbb8d5af5b20f4f0f9ce..b00d34e909e15f19d0c720ebe93034372489dc6b 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 b0e6776a90a410e3ead9a3e791e315b3f7e70112..076dd28ccc7a06bb1c847f8cda30a3d6253517ce 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 16fd36bbfa7b4e8f7d547ae333d2e23d21c93cb8..7ddef3d777a30d004ccf88939c1261a672ae43e0 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 2535fdae455ea38c5519cf6f64e384a80ff5436d..5a2c5dd0be4078ac552d726ba7b9ed6f11473c17 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 497074bb262aec3d5d59570f8a393a0eb0d01ced..cfb7c6f2662d0be67525bbaba48a6bb170c015b9 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;