diff --git a/InnerDetector/InDetValidation/InDetPhysValMonitoring/share/InDetPVMPlotDefCommon.xml b/InnerDetector/InDetValidation/InDetPhysValMonitoring/share/InDetPVMPlotDefCommon.xml index 85c485645d0a8e012baa8bf735518de26899acb0..8a3e04e692761681962c5724779d1e466257fb66 100644 --- a/InnerDetector/InDetValidation/InDetPhysValMonitoring/share/InDetPVMPlotDefCommon.xml +++ b/InnerDetector/InDetValidation/InDetPhysValMonitoring/share/InDetPVMPlotDefCommon.xml @@ -2011,3 +2011,12 @@ <x title="jet_{p_{T}} [GeV]" n="20" lo="100.0" hi="5000."/> <y title="Fake Rate" lo="0.0" hi="2.0"/> </h> + +<h id="ntracks_vs_mu" type="TH2" title="Number of tracks versus #GT#mu#LT"> + <x title="#GT#mu#LT" n="100" lo="0.0" hi="&EXPMU;"/> + <y title="Number of Tracks" n="200" lo="0.0" hi="&EXPTRK;"/> +</h> +<h id="ntracks_vs_nvertices" type="TH2" title="Number of tracks versus number ofvertices"> + <x title="Number of Vertices" n="100" lo="0.0" hi="&EXPMU;"/> + <y title="Number of Tracks" n="200" lo="0.0" hi="&EXPTRK;"/> +</h> diff --git a/InnerDetector/InDetValidation/InDetPhysValMonitoring/share/InDetPVMPlotDefRun2.xml b/InnerDetector/InDetValidation/InDetPhysValMonitoring/share/InDetPVMPlotDefRun2.xml index 9bae4ec990e780ac7e4e8d232c99534b79acaa1f..68ea7a0c2b7b20f4b15280e68f97f9ff520927ef 100644 --- a/InnerDetector/InDetValidation/InDetPhysValMonitoring/share/InDetPVMPlotDefRun2.xml +++ b/InnerDetector/InDetValidation/InDetPhysValMonitoring/share/InDetPVMPlotDefRun2.xml @@ -33,6 +33,9 @@ <!-- dR plots for tracks in jets --> <!ENTITY DRMAX "0.4"> <!ENTITY SMALLDRMAX "0.1"> +<!-- Number of tracks vs MU --> +<!ENTITY EXPMU "100"> +<!ENTITY EXPTRK "2000"> <!-- histogram definitions common to Run2 and ITk --> <!ENTITY Common SYSTEM "InDetPVMPlotDefCommon.xml"> ]> diff --git a/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/InDetPerfPlot_nTracks.cxx b/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/InDetPerfPlot_nTracks.cxx index e6cb8020c71a8fa1174e5150d281b67784fa96f3..a261480fd99862f5bc7b39c0e41fbf1136ab93c7 100644 --- a/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/InDetPerfPlot_nTracks.cxx +++ b/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/InDetPerfPlot_nTracks.cxx @@ -29,6 +29,9 @@ InDetPerfPlot_nTracks::initializePlots() { hd = retrieveDefinition("num_truthmatch_match"); m_counters[MATCHEDRECO] = Book1D(hd.name, hd.allTitles, hd.nBinsX, hd.xAxis.first, hd.xAxis.second, prependDirectory); + + book(m_ntracks_vs_mu,"ntracks_vs_mu"); + book(m_ntracks_vs_nvertices,"ntracks_vs_nvertices"); } void @@ -37,3 +40,10 @@ InDetPerfPlot_nTracks::fill(const unsigned int freq, const CounterCategory count fillHisto((m_counters[counter]), freq); } } + +void InDetPerfPlot_nTracks::fill(const unsigned int ntracks, const unsigned int muu, const unsigned int nvertices) { + + fillHisto(m_ntracks_vs_mu, muu, ntracks); + fillHisto(m_ntracks_vs_nvertices, nvertices, ntracks); + +} diff --git a/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/InDetPerfPlot_nTracks.h b/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/InDetPerfPlot_nTracks.h index 4f81209f9a1a4fb21f738d83d8931f038157b1ca..2028fdb69937495c3c2ac575a55cf1cebefefe99 100644 --- a/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/InDetPerfPlot_nTracks.h +++ b/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/InDetPerfPlot_nTracks.h @@ -23,9 +23,12 @@ public: ALLRECO, SELECTEDRECO, ALLTRUTH, SELECTEDTRUTH, ALLASSOCIATEDTRUTH, MATCHEDRECO, N_COUNTERS }; void fill(const unsigned int freq, const CounterCategory counter); + void fill(const unsigned int ntracks, const unsigned int mu, const unsigned int nvertices); + private: TH1* m_counters[N_COUNTERS]; - + TH2* m_ntracks_vs_mu; + TH2* m_ntracks_vs_nvertices; void initializePlots(); }; diff --git a/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/InDetPhysValMonitoringTool.cxx b/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/InDetPhysValMonitoringTool.cxx index f64218a070dfff8a85f348da7970fe847f672614..16e22d4e2da9c0aeb7b91b3a14c2d025a2091601 100644 --- a/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/InDetPhysValMonitoringTool.cxx +++ b/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/InDetPhysValMonitoringTool.cxx @@ -285,7 +285,7 @@ InDetPhysValMonitoringTool::fillHistograms() { // std::vector<const xAOD::TrackParticle*> selectedTracks {}; selectedTracks.reserve(tracks->size()); - unsigned int nTrackBAT = 0, nTrackSTD = 0, nTrackANT = 0; + unsigned int nTrackBAT = 0, nTrackSTD = 0, nTrackANT = 0, nTrackTOT = 0; for (const auto& thisTrack: *tracks) { //FIXME: Why is this w.r.t the primary vertex? const asg::AcceptData& accept = m_trackSelectionTool->accept(*thisTrack, primaryvertex); @@ -303,7 +303,7 @@ InDetPhysValMonitoringTool::fillHistograms() { if(isBAT) nTrackBAT++; if(isSTD) nTrackSTD++; if(isANT) nTrackANT++; - + nTrackTOT++; m_monPlots->fill(*thisTrack); m_monPlots->fill(*thisTrack, puEvents, nVertices); //fill mu dependent plots const xAOD::TruthParticle* associatedTruth = getAsTruth.getTruth(thisTrack); @@ -335,6 +335,8 @@ InDetPhysValMonitoringTool::fillHistograms() { } m_monPlots->fill(nTrackANT, nTrackSTD, nTrackBAT, puEvents, nVertices); + m_monPlots->fill(nTrackTOT, puEvents, nVertices); + //FIXME: I don't get why... this is here if (m_truthSelectionTool.get()) { ATH_MSG_DEBUG( CutFlow(tmp_truth_cutflow).report(m_truthSelectionTool->names()) ); diff --git a/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/InDetRttPlots.cxx b/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/InDetRttPlots.cxx index cf279e1a3dc0255b3be28dff73f5c6f65f015d27..a8b5d688748980c22cc4f6b26b2589317b05bf15 100644 --- a/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/InDetRttPlots.cxx +++ b/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/InDetRttPlots.cxx @@ -187,6 +187,14 @@ InDetRttPlots::fill(const unsigned int nTrkANT, const unsigned int nTrkSTD, cons m_anTrackingPlots.fill(nTrkANT, nTrkSTD, nTrkBAT, mu, nVtx); +} + +void +InDetRttPlots::fill(const unsigned int ntracks, const unsigned int mu, const unsigned int nvertices) { + + m_nTracks.fill(ntracks, mu, nvertices); + + } // //Fill plots for selected truth particle diff --git a/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/InDetRttPlots.h b/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/InDetRttPlots.h index 5c10e024d408cd97101106ba783885805a8861af..c5383ace813dd1758757b334eaf5024ee59c8063 100644 --- a/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/InDetRttPlots.h +++ b/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/InDetRttPlots.h @@ -54,7 +54,8 @@ public: ///fill for things needing track only void fill(const xAOD::TrackParticle& particle); void fill(const xAOD::TrackParticle& particle, const float mu, const unsigned int nVtx); //mu dependent plots - void fill(const unsigned int nTrkANT, const unsigned int nTrkSTD, const unsigned int nTrkBAT, const float mu, const unsigned int nVtx); + void fill(const unsigned int nTrkANT, const unsigned int nTrkSTD, const unsigned int nTrkBAT, const float mu, const unsigned int nVtx); + void fill(const unsigned int nTracks, const unsigned int mu, const unsigned nVtx); ///fill for things needing truth only void fill(const xAOD::TruthParticle& particle); ///Fill for efficiency plots