Skip to content
Snippets Groups Projects
Commit 8be65bf0 authored by Vadim Kostyukhin's avatar Vadim Kostyukhin
Browse files

Add Z reco-truth histograms for identified Primary Vertex

parent 5f215d98
6 merge requests!58791DataQualityConfigurations: Modify L1Calo config for web display,!46784MuonCondInterface: Enable thread-safety checking.,!46776Updated LArMonitoring config file for WD to match new files produced using MT,!45405updated ART test cron job,!42417Draft: DIRE and VINCIA Base Fragments for Pythia 8.3,!41692IDPVM add default PV Zreco-Ztruth histograms
...@@ -756,6 +756,14 @@ ...@@ -756,6 +756,14 @@
<x title="Vertex Truth-Matched type" n="5" lo="-0.5" hi="4.5"/> <x title="Vertex Truth-Matched type" n="5" lo="-0.5" hi="4.5"/>
<y title="Entries"/> <y title="Entries"/>
</h> </h>
<h id="vx_z_diff" type="TH1F" title="PV selected-truth Z difference">
<x title="Vertex Truth-Matched type" n="100" lo="-0.5" hi="0.5"/>
<y title="Entries"/>
</h>
<h id="vx_z_diff_pull" type="TH1F" title="PV selected-truth Z difference pull">
<x title="Vertex Truth-Matched type" n="100" lo="-5.0" hi="5.0"/>
<y title="Entries"/>
</h>
<h id="vx_hs_classification" type="TH1F" title="Event hardscatter vertex classification"> <h id="vx_hs_classification" type="TH1F" title="Event hardscatter vertex classification">
<x title="Hardscatter classification" n="5" lo="-0.5" hi="4.5"/> <x title="Hardscatter classification" n="5" lo="-0.5" hi="4.5"/>
<y title="Entries"/> <y title="Entries"/>
......
...@@ -81,6 +81,8 @@ InDetPerfPlot_VertexTruthMatching::InDetPerfPlot_VertexTruthMatching(InDetPlotBa ...@@ -81,6 +81,8 @@ InDetPerfPlot_VertexTruthMatching::InDetPerfPlot_VertexTruthMatching(InDetPlotBa
void InDetPerfPlot_VertexTruthMatching::initializePlots() { void InDetPerfPlot_VertexTruthMatching::initializePlots() {
book(m_vx_type_truth,"vx_type_truth"); book(m_vx_type_truth,"vx_type_truth");
book(m_vx_z_diff,"vx_z_diff");
book(m_vx_z_diff_pull,"vx_z_diff_pull");
if (m_iDetailLevel >= 200) { if (m_iDetailLevel >= 200) {
book(m_vx_hs_classification,"vx_hs_classification"); book(m_vx_hs_classification,"vx_hs_classification");
book(m_vx_nReco_vs_nTruth_inclusive,"vx_nReco_vs_nTruth_inclusive"); book(m_vx_nReco_vs_nTruth_inclusive,"vx_nReco_vs_nTruth_inclusive");
...@@ -314,7 +316,15 @@ const xAOD::TruthVertex* InDetPerfPlot_VertexTruthMatching::getTruthVertex(const ...@@ -314,7 +316,15 @@ const xAOD::TruthVertex* InDetPerfPlot_VertexTruthMatching::getTruthVertex(const
return truthVtx; return truthVtx;
} }
void InDetPerfPlot_VertexTruthMatching::fill(const xAOD::Vertex& vertex) { void InDetPerfPlot_VertexTruthMatching::fill(const xAOD::Vertex& vertex, const xAOD::TruthVertex * tvrt) {
if(tvrt){
float diff_z=vertex.z()-tvrt->z();
const AmgSymMatrix(3)& covariance = vertex.covariancePosition();
float err_z = fabs(Amg::error(covariance, 2)) > 1e-7 ? Amg::error(covariance, 2) : 1000.;
fillHisto(m_vx_z_diff,diff_z);
fillHisto(m_vx_z_diff_pull,diff_z/err_z);
}
// Get the match type info for each vertex: // Get the match type info for each vertex:
const static xAOD::Vertex::Decorator<InDetVertexTruthMatchUtils::VertexMatchType> recoVtxMatchTypeInfo("VertexMatchType"); const static xAOD::Vertex::Decorator<InDetVertexTruthMatchUtils::VertexMatchType> recoVtxMatchTypeInfo("VertexMatchType");
......
...@@ -41,13 +41,15 @@ ...@@ -41,13 +41,15 @@
class InDetPerfPlot_VertexTruthMatching: public InDetPlotBase { class InDetPerfPlot_VertexTruthMatching: public InDetPlotBase {
public: public:
InDetPerfPlot_VertexTruthMatching(InDetPlotBase* pParent, const std::string& dirName, const int iDetailLevel = 10); InDetPerfPlot_VertexTruthMatching(InDetPlotBase* pParent, const std::string& dirName, const int iDetailLevel = 10);
void fill(const xAOD::Vertex& vertex); void fill(const xAOD::Vertex& vertex, const xAOD::TruthVertex * tvrt =0);
void fill(const xAOD::VertexContainer& vertexContainer, const std::vector<const xAOD::TruthVertex*>& truthHSVertices, const std::vector<const xAOD::TruthVertex*>& truthPUVertices); void fill(const xAOD::VertexContainer& vertexContainer, const std::vector<const xAOD::TruthVertex*>& truthHSVertices, const std::vector<const xAOD::TruthVertex*>& truthPUVertices);
private: private:
int m_iDetailLevel; int m_iDetailLevel;
float m_cutMinTruthRecoRadialDiff = 0.1; float m_cutMinTruthRecoRadialDiff = 0.1;
///truth type ///truth type
TH1* m_vx_type_truth; TH1* m_vx_type_truth;
TH1* m_vx_z_diff;
TH1* m_vx_z_diff_pull;
///hardscatter classification ///hardscatter classification
TH1* m_vx_hs_classification; TH1* m_vx_hs_classification;
///vertex reco efficiency ///vertex reco efficiency
......
...@@ -316,7 +316,8 @@ InDetRttPlots::fill(const xAOD::VertexContainer& vertexContainer, const std::vec ...@@ -316,7 +316,8 @@ InDetRttPlots::fill(const xAOD::VertexContainer& vertexContainer, const std::vec
ATH_MSG_DEBUG("IN InDetRttPlots::fill, filling for all vertices"); ATH_MSG_DEBUG("IN InDetRttPlots::fill, filling for all vertices");
if (vtx->vertexType() == xAOD::VxType::PriVtx) { if (vtx->vertexType() == xAOD::VxType::PriVtx) {
m_hardScatterVertexPlots.fill(*vtx); m_hardScatterVertexPlots.fill(*vtx);
m_hardScatterVertexTruthMatchingPlots.fill(*vtx); if(truthHSVertices.size()>0)m_hardScatterVertexTruthMatchingPlots.fill(*vtx,truthHSVertices[0]);
else m_hardScatterVertexTruthMatchingPlots.fill(*vtx);
ATH_MSG_DEBUG("IN InDetRttPlots::fill, filling for all HS vertex"); ATH_MSG_DEBUG("IN InDetRttPlots::fill, filling for all HS vertex");
} }
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment