From 490e8ccf1ca159349f4dcb74db9a920cd7ff88c5 Mon Sep 17 00:00:00 2001
From: Helen Maguire <helen.maguire@cern.ch>
Date: Thu, 28 Oct 2021 12:01:08 +0200
Subject: [PATCH] Changes made after draft MR at Max's request

---
 .../share/InDetPVMPlotDefCommon.xml           | 101 ++++---
 .../InDetPhysValMonitoring_topOptions.py      |   1 -
 .../src/InDetPerfPlot_VertexTruthMatching.cxx | 265 ++++++++----------
 .../src/InDetPerfPlot_VertexTruthMatching.h   |  72 +++--
 .../src/InDetPerfPlot_nTracks.cxx             |   7 -
 .../src/InDetRttPlots.h                       |   2 +
 6 files changed, 203 insertions(+), 245 deletions(-)

diff --git a/InnerDetector/InDetValidation/InDetPhysValMonitoring/share/InDetPVMPlotDefCommon.xml b/InnerDetector/InDetValidation/InDetPhysValMonitoring/share/InDetPVMPlotDefCommon.xml
index 4559fdd5ed22..6f057d876a41 100644
--- a/InnerDetector/InDetValidation/InDetPhysValMonitoring/share/InDetPVMPlotDefCommon.xml
+++ b/InnerDetector/InDetValidation/InDetPhysValMonitoring/share/InDetPVMPlotDefCommon.xml
@@ -1080,7 +1080,7 @@
   <x title="#sigma(z_{0}) (mm)" n="50" lo="0.0" hi="5.0"/>
   <y title="Entries"/>
 </h>
-<!-- Helen OTP Vertex plots -->
+<!-- New Expert plots for Vertex classifications  -->
 <h id="vx_ntracks_matched" type="TH1" title="Number of tracks for matched PU vertices">
   <x title="Number of Matched PU Vertices" n="150" lo="0.0" hi="150"/>
   <y title="Number of Tracks" />
@@ -1130,39 +1130,38 @@
   <y title="Number of Tracks" />
 </h>
 <h id="vx_sumpT_matched" type="TH1" title="SumPt of tracks for matched vertices">
-  <x title="sum p_{T} (GeV)of tracks" n="100" lo="0.0" hi="150"/>
+  <x title="sum p_{T} (MeV)of tracks" n="100" lo="0.0" hi="150000"/>
   <y title="Entries" />
 </h>
 <h id="vx_sumpT_merged" type="TH1" title="SumPt of tracks for merged vertices">
-  <x title="sum p_{T} (GeV)of tracks" n="100" lo="0.0" hi="150"/>
+  <x title="sum p_{T} (MeV)of tracks" n="100" lo="0.0" hi="150000"/>
   <y title="Entries" />
 </h>
 <h id="vx_sumpT_split" type="TH1" title="SumPt of tracks for split vertices">
-  <x title="sum p_{T} (GeV)of tracks" n="100" lo="0.0" hi="150"/>
+  <x title="sum p_{T} (MeV)of tracks" n="100" lo="0.0" hi="150000"/>
   <y title="Entries" />
 </h>
 <h id="vx_sumpT_fake" type="TH1" title="SumPt of tracks for fake vertices">
-  <x title="sum p_{T} (GeV)of tracks" n="100" lo="0.0" hi="150"/>
+  <x title="sum p_{T} (MeV)of tracks" n="100" lo="0.0" hi="150000"/>
   <y title="Entries" />
 </h>
 <h id="vx_sumpT_HS_matched" type="TH1" title="SumPt of tracks for HS matched vertices">
-  <x title="sum p_{T} (GeV)of tracks" n="100" lo="0.0" hi="400"/>
+  <x title="sum p_{T} (MeV)of tracks" n="100" lo="0.0" hi="400000"/>
   <y title="Entries" />
 </h>
 <h id="vx_sumpT_HS_merged" type="TH1" title="SumPt of tracks for HS merged vertices">
-  <x title="sum p_{T} (GeV)of tracks" n="100" lo="0.0" hi="400"/>
+  <x title="sum p_{T} (MeV)of tracks" n="100" lo="0.0" hi="400000"/>
   <y title="Entries" />
 </h>
 <h id="vx_sumpT_HS_split" type="TH1" title="SumPt of tracks for HS split vertices">
-  <x title="sum p_{T} (GeV)of tracks" n="100" lo="0.0" hi="400"/>
+  <x title="sum p_{T} (MeV)of tracks" n="100" lo="0.0" hi="400000"/>
   <y title="Entries" />
 </h>
 <h id="vx_sumpT_HS_fake" type="TH1" title="SumPt of tracks for HS fake vertices">
-  <x title="sum p_{T} (GeV)of tracks" n="100" lo="0.0" hi="400"/>
+  <x title="sum p_{T} (MeV)of tracks" n="100" lo="0.0" hi="400000"/>
   <y title="Entries" />
 </h>
 
-<!--Helen OTP sum charge plots -->
 <h id="vx_sumCharge_matched" type="TH1" title="Sum of charges of tracks for matched vertices">
   <x title="sum of charges of tracks" n="51" lo="-25.0" hi="25"/>
   <y title="Entries" />
@@ -1605,21 +1604,21 @@
   <x title="Kurtosis for pt PU" n="100" lo="0" hi="20"/>
   <y title="Entries" />
 </h>
-<!-- Helen ALL vertices (PU and HS) -->
+<!-- ALL vertices (PU and HS) with sumpt > 20Mev -->
 <h id="vx_sumpT_ALL_matched" type="TH1" title="SumPt of tracks for ALL matched vertices">
-  <x title="sum p_{T} (GeV)of tracks" n="100" lo="20.0" hi="400"/>
+  <x title="sum p_{T} (MeV)of tracks" n="100" lo="20.0" hi="400000"/>
   <y title="Entries" />
 </h>
 <h id="vx_sumpT_ALL_merged" type="TH1" title="SumPt of tracks for ALL merged vertices">
-  <x title="sum p_{T} (GeV)of tracks" n="100" lo="20.0" hi="400"/>
+  <x title="sum p_{T} (MeV)of tracks" n="100" lo="20.0" hi="400000"/>
   <y title="Entries" />
 </h>
 <h id="vx_sumpT_ALL_split" type="TH1" title="SumPt of tracks for ALL split vertices">
-  <x title="sum p_{T} (GeV)of tracks" n="100" lo="20.0" hi="400"/>
+  <x title="sum p_{T} (MeV)of tracks" n="100" lo="20.0" hi="400000"/>
   <y title="Entries" />
 </h>
 <h id="vx_sumpT_ALL_fake" type="TH1" title="SumPt of tracks for ALL fake vertices">
-  <x title="sum p_{T} (GeV)of tracks" n="100" lo="20.0" hi="400"/>
+  <x title="sum p_{T} (MeV)of tracks" n="100" lo="20.0" hi="400000"/>
   <y title="Entries" />
 </h>
 <h id="vx_sumCharge_ALL_matched" type="TH1" title="Sum of charges of tracks for ALL matched vertices">
@@ -2025,147 +2024,147 @@
 </h>
 <h id="vx_track_z0_ALL_matched_vs_track_pt" type="TH2" title="Track z0 - vertex z0 matched vertices ">
   <x title="Track z0 - vertex z0 ALL" n="100" lo="-3.5" hi="3.5"/>
-  <y title= "Track Pt  (GeV)" n= "100" lo ="0" hi="100"  />
+  <y title= "Track Pt  (MeV)" n= "100" lo ="0" hi="100000"  />
 </h>
 <h id="vx_track_z0_ALL_merged_vs_track_pt" type="TH2" title="Track z0 - vertex z0 merged vertices ">
   <x title="Track z0 - vertex z0 ALL" n="100" lo="-3.5" hi="3.5"/>
-  <y title= "Track Pt  (GeV)" n= "100" lo ="0" hi="100"  />
+  <y title= "Track Pt  (MeV)" n= "100" lo ="0" hi="100000"  />
 </h>
 <h id="vx_track_z0_ALL_split_vs_track_pt" type="TH2" title="Track z0 - vertex z0 split vertices ">
   <x title="Track z0 - vertex z0 ALL" n="100" lo="-3.5" hi="3.5"/>
-  <y title= "Track Pt  (GeV)" n= "100" lo ="0" hi="100"  />
+  <y title= "Track Pt  (MeV)" n= "100" lo ="0" hi="100000"  />
 </h>
 <h id="vx_track_z0_HS_matched_vs_track_pt" type="TH2" title="Track z0 - vertex z0 HS matched vertices ">
   <x title="Track z0 - vertex z0 HS" n="100" lo="-3.5" hi="3.5"/>
-  <y title= "Track Pt  (GeV)" n= "100" lo ="0" hi="100"  />
+  <y title= "Track Pt  (MeV)" n= "100" lo ="0" hi="100000"  />
 </h>
 <h id="vx_track_z0_HS_merged_vs_track_pt" type="TH2" title="Track z0 - vertex z0 HS merged vertices ">
   <x title="Track z0 - vertex z0 HS" n="100" lo="-3.5" hi="3.5"/>
-  <y title= "Track Pt  (GeV)" n= "100" lo ="0" hi="100"  />
+  <y title= "Track Pt  (MeV)" n= "100" lo ="0" hi="100000"  />
 </h>
 <h id="vx_track_z0_HS_split_vs_track_pt" type="TH2" title="Track z0 - vertex z0 HS split vertices ">
   <x title="Track z0 - vertex z0 HS" n="100" lo="-3.5" hi="3.5"/>
-  <y title= "Track Pt  (GeV)" n= "100" lo ="0" hi="100"  />
+  <y title= "Track Pt  (MeV)" n= "100" lo ="0" hi="100000"  />
 </h>
 <h id="vx_track_z0_matched_vs_track_pt" type="TH2" title="Track z0 - vertex z0 PU matched vertices ">
   <x title="Track z0 - vertex z0 PU" n="100" lo="-3.5" hi="3.5"/>
-  <y title= "Track Pt  (GeV)" n= "100" lo ="0" hi="25"  />
+  <y title= "Track Pt  (MeV)" n= "100" lo ="0" hi="25000"  />
 </h>
 <h id="vx_track_z0_merged_vs_track_pt" type="TH2" title="Track z0 - vertex z0 PU merged vertices ">
   <x title="Track z0 - vertex z0 PU" n="100" lo="-3.5" hi="3.5"/>
-  <y title= "Track Pt  (GeV)" n= "100" lo ="0" hi="25"  />
+  <y title= "Track Pt  (MeV)" n= "100" lo ="0" hi="25000"  />
 </h>
 <h id="vx_track_z0_split_vs_track_pt" type="TH2" title="Track z0 - vertex z0 PU split vertices ">
   <x title="Track z0 - vertex z0 PU" n="100" lo="-3.5" hi="3.5"/>
-  <y title= "Track Pt  (GeV)" n= "100" lo ="0" hi="25"  />
+  <y title= "Track Pt  (MeV)" n= "100" lo ="0" hi="25000"  />
 </h>
 <h id="vx_track_d0_ALL_matched_vs_track_pt" type="TH2" title="Track d0 for matched vertices above sumPt > 20Gev">
   <x title="Track d0 ALL (mm)" n="100" lo="-2.0" hi="2.0"/>
-  <y title= "Track Pt  (GeV)" n= "50" lo ="0" hi="150"  />
+  <y title= "Track Pt  (MeV)" n= "50" lo ="0" hi="150000"  />
 </h>
 <h id="vx_track_d0_ALL_merged_vs_track_pt" type="TH2" title="Track d0 for merged vertices above sumPt > 20Gev">
   <x title="Track d0 ALL (mm)" n="100" lo="-2.0" hi="2.0"/>
-  <y title= "Track Pt  (GeV)" n= "50" lo ="0" hi="150"  />
+  <y title= "Track Pt  (MeV)" n= "50" lo ="0" hi="150000"  />
 </h>
 <h id="vx_track_d0_ALL_split_vs_track_pt" type="TH2" title="Track d0 for split vertices above sumPt > 20Gev">
   <x title="Track d0 ALL (mm)" n="100" lo="-2.0" hi="2.0"/>
-  <y title= "Track Pt  (GeV)" n= "50" lo ="0" hi="150"  />
+  <y title= "Track Pt  (MeV)" n= "50" lo ="0" hi="150000"  />
 </h>
 <h id="vx_track_d0_HS_matched_vs_track_pt" type="TH2" title="Track d0 for HS matched vertices ">
   <x title="Track d0 HS (mm)" n="100" lo="-2.0" hi="2.0"/>
-  <y title= "Track Pt  (GeV)" n= "50" lo ="0" hi="150"  />
+  <y title= "Track Pt  (MeV)" n= "50" lo ="0" hi="150000"  />
 </h>
 <h id="vx_track_d0_HS_merged_vs_track_pt" type="TH2" title="Track d0 for HS merged vertices ">
   <x title="Track d0 HS (mm)" n="100" lo="-2.0" hi="2.0"/>
-  <y title= "Track Pt  (GeV)" n= "50" lo ="0" hi="150"  />
+  <y title= "Track Pt  (MeV)" n= "50" lo ="0" hi="150000"  />
 </h>
 <h id="vx_track_d0_HS_split_vs_track_pt" type="TH2" title="Track d0 for HS split vertices ">
   <x title="Track d0 HS (mm)" n="100" lo="-2.0" hi="2.0"/>
-  <y title= "Track Pt  (GeV)" n= "50" lo ="0" hi="150"  />
+  <y title= "Track Pt  (MeV)" n= "50" lo ="0" hi="150000"  />
 </h>
 <h id="vx_track_d0_matched_vs_track_pt" type="TH2" title="Track d0 for PU matched vertices ">
   <x title="Track d0 PU (mm)" n="100" lo="-2.0" hi="2.0"/>
-  <y title= "Track Pt  (GeV)" n= "50" lo ="0" hi="50"  />
+  <y title= "Track Pt  (MeV)" n= "50" lo ="0" hi="50000"  />
 </h>
 <h id="vx_track_d0_merged_vs_track_pt" type="TH2" title="Track d0 for PU merged vertices ">
   <x title="Track d0 PU (mm)" n="100" lo="-2.0" hi="2.0"/>
-  <y title= "Track Pt  (GeV)" n= "50" lo ="0" hi="50"  />
+  <y title= "Track Pt  (MeV)" n= "50" lo ="0" hi="50000"  />
 </h>
 <h id="vx_track_d0_split_vs_track_pt" type="TH2" title="Track d0 for PU split vertices ">
   <x title="Track d0 PU (mm)" n="100" lo="-2.0" hi="2.0"/>
-  <y title= "Track Pt  (GeV)" n= "50" lo ="0" hi="50"  />
+  <y title= "Track Pt  (MeV)" n= "50" lo ="0" hi="50000"  />
 </h>
 <h id="vx_track_z0_err_ALL_matched_vs_track_pt" type="TH2" title="(Track z0 - vertex z0) over z_err matched vertices above sumPt > 20Gev">
   <x title="#sigma(z_{0}) (mm) ALL vertices" n="100" lo="0" hi="5"/>
-  <y title= "Track Pt  (GeV)" n= "50" lo ="0" hi="150"  />
+  <y title= "Track Pt  (MeV)" n= "50" lo ="0" hi="150000"  />
 </h>
 <h id="vx_track_z0_err_ALL_merged_vs_track_pt" type="TH2" title="(Track z0 - vertex z0) over z_err merged vertices above sumPt > 20Gev">
   <x title="#sigma(z_{0}) (mm) ALL vertices" n="100" lo="0" hi="5"/>
-  <y title= "Track Pt  (GeV)" n= "50" lo ="0" hi="150"  />
+  <y title= "Track Pt  (MeV)" n= "50" lo ="0" hi="150000"  />
 </h>
 <h id="vx_track_z0_err_ALL_split_vs_track_pt" type="TH2" title="(Track z0 - vertex z0) over z_err split vertices above sumPt > 20Gev">
   <x title="#sigma(z_{0}) (mm) ALL vertices" n="100" lo="0" hi="5"/>
-  <y title= "Track Pt  (GeV)" n= "50" lo ="0" hi="150"  />
+  <y title= "Track Pt  (MeV)" n= "50" lo ="0" hi="150000"  />
 </h>
 <h id="vx_track_z0_err_HS_matched_vs_track_pt" type="TH2" title="(Track z0 - vertex z0) over z_err HS matched vertices ">
   <x title="#sigma(z_{0}) (mm) HS vertices" n="100" lo="0" hi="5"/>
-  <y title= "Track Pt  (GeV)" n= "50" lo ="0" hi="150"  />
+  <y title= "Track Pt  (MeV)" n= "50" lo ="0" hi="150000"  />
 </h>
 <h id="vx_track_z0_err_HS_merged_vs_track_pt" type="TH2" title="(Track z0 - vertex z0) over z_err HS merged vertices ">
   <x title="#sigma(z_{0}) (mm) HS vertices" n="100" lo="0" hi="5"/>
-  <y title= "Track Pt  (GeV)" n= "50" lo ="0" hi="150"  />
+  <y title= "Track Pt  (MeV)" n= "50" lo ="0" hi="150000"  />
 </h>
 <h id="vx_track_z0_err_HS_split_vs_track_pt" type="TH2" title="(Track z0 - vertex z0) over z_err HS split vertices ">
   <x title="#sigma(z_{0}) (mm) HS vertices" n="100" lo="0" hi="5"/>
-  <y title= "Track Pt  (GeV)" n= "50" lo ="0" hi="150"  />
+  <y title= "Track Pt  (MeV)" n= "50" lo ="0" hi="150000"  />
 </h>
 <h id="vx_track_z0_err_matched_vs_track_pt" type="TH2" title="(Track z0 - vertex z0) over z_err PU matched vertices ">
   <x title="#sigma(z_{0}) (mm) PU vertices" n="100" lo="0" hi="5"/>
-  <y title= "Track Pt  (GeV)" n= "50" lo ="0" hi="50"  />
+  <y title= "Track Pt  (MeV)" n= "50" lo ="0" hi="50000"  />
 </h>
 <h id="vx_track_z0_err_merged_vs_track_pt" type="TH2" title="(Track z0 - vertex z0) over z_err PU merged vertices ">
   <x title="#sigma(z_{0}) (mm) PU vertices" n="100" lo="0" hi="5"/>
-  <y title= "Track Pt  (GeV)" n= "50" lo ="0" hi="50"  />
+  <y title= "Track Pt  (MeV)" n= "50" lo ="0" hi="50000"  />
 </h>
 <h id="vx_track_z0_err_split_vs_track_pt" type="TH2" title="(Track z0 - vertex z0) over z_err PU split vertices ">
   <x title="#sigma(z_{0}) (mm) PU vertices" n="100" lo="0" hi="5"/>
-  <y title= "Track Pt  (GeV)" n= "50" lo ="0" hi="50"  />
+  <y title= "Track Pt  (MeV)" n= "50" lo ="0" hi="50000"  />
 </h>
 <h id="vx_track_d0_err_ALL_matched_vs_track_pt" type="TH2" title="Track d0 over d0_err for matched vertices above sumPt > 20Gev ">
   <x title="#sigma(d_{0}) (mm) ALL vertices" n="100" lo="0" hi="1"/>
-  <y title= "Track Pt  (GeV)" n= "50" lo ="0" hi="150"  />
+  <y title= "Track Pt  (MeV)" n= "50" lo ="0" hi="150000"  />
 </h>
 <h id="vx_track_d0_err_ALL_merged_vs_track_pt" type="TH2" title="Track d0 over d0_err for merged vertices above sumPt > 20Gev">
   <x title="#sigma(d_{0}) (mm) ALL vertices" n="100" lo="0" hi="1"/>
-  <y title= "Track Pt  (GeV)" n= "50" lo ="0" hi="150"  />
+  <y title= "Track Pt  (MeV)" n= "50" lo ="0" hi="150000"  />
 </h>
 <h id="vx_track_d0_err_ALL_split_vs_track_pt" type="TH2" title="Track d0 over d0_err for split vertices above sumPt > 20Gev">
   <x title="#sigma(d_{0}) (mm) ALL vertices" n="100" lo="0" hi="1"/>
-  <y title= "Track Pt  (GeV)" n= "50" lo ="0" hi="150"  />
+  <y title= "Track Pt  (MeV)" n= "50" lo ="0" hi="150000"  />
 </h>
 <h id="vx_track_d0_err_HS_matched_vs_track_pt" type="TH2" title="Track d0 over d0_err for HS matched vertices ">
   <x title="#sigma(d_{0}) (mm) HS vertices" n="100" lo="0" hi="1"/>
-  <y title= "Track Pt  (GeV)" n= "50" lo ="0" hi="150"  />
+  <y title= "Track Pt  (MeV)" n= "50" lo ="0" hi="150000"  />
 </h>
 <h id="vx_track_d0_err_HS_merged_vs_track_pt" type="TH2" title="Track d0 over d0_err for HS merged vertices ">
   <x title="#sigma(d_{0}) (mm) HS vertices" n="100" lo="0" hi="1"/>
-  <y title= "Track Pt  (GeV)" n= "50" lo ="0" hi="150"  />
+  <y title= "Track Pt  (MeV)" n= "50" lo ="0" hi="150000"  />
 </h>
 <h id="vx_track_d0_err_HS_split_vs_track_pt" type="TH2" title="Track d0 over d0_err for HS split vertices ">
   <x title="#sigma(d_{0}) (mm) HS vertices" n="100" lo="0" hi="1"/>
-  <y title= "Track Pt  (GeV)" n= "50" lo ="0" hi="150"  />
+  <y title= "Track Pt  (MeV)" n= "50" lo ="0" hi="150000"  />
 </h>
 <h id="vx_track_d0_err_matched_vs_track_pt" type="TH2" title="Track d0 over d0_err for PU matched vertices ">
   <x title="#sigma(d_{0}) (mm) PU vertices" n="100" lo="0" hi="1"/>
-  <y title= "Track Pt  (GeV)" n= "50" lo ="0" hi="50"  />
+  <y title= "Track Pt  (MeV)" n= "50" lo ="0" hi="50000"  />
 </h>
 <h id="vx_track_d0_err_merged_vs_track_pt" type="TH2" title="Track d0 over d0_err for PU merged vertices ">
   <x title="#sigma(d_{0}) (mm) PU vertices" n="100" lo="0" hi="1"/>
-  <y title= "Track Pt  (GeV)" n= "50" lo ="0" hi="50"  />
+  <y title= "Track Pt  (MeV)" n= "50" lo ="0" hi="50000"  />
 </h>
 <h id="vx_track_d0_err_split_vs_track_pt" type="TH2" title="Track d0 over d0_err for PU split vertices ">
   <x title="#sigma(d_{0}) (mm) PU vertices" n="100" lo="0" hi="1"/>
-  <y title= "Track Pt  (GeV)" n= "50" lo ="0" hi="50"  />
+  <y title= "Track Pt  (MeV)" n= "50" lo ="0" hi="50000"  />
 </h>
 <!-- -->
 <!-- Bad Match Rate (BMR) plots -->
diff --git a/InnerDetector/InDetValidation/InDetPhysValMonitoring/share/InDetPhysValMonitoring_topOptions.py b/InnerDetector/InDetValidation/InDetPhysValMonitoring/share/InDetPhysValMonitoring_topOptions.py
index 5f1d5270e6e7..72afaaa06937 100644
--- a/InnerDetector/InDetValidation/InDetPhysValMonitoring/share/InDetPhysValMonitoring_topOptions.py
+++ b/InnerDetector/InDetValidation/InDetPhysValMonitoring/share/InDetPhysValMonitoring_topOptions.py
@@ -88,4 +88,3 @@ svcMgr.THistSvc.Output += ["M_output DATAFILE='"+MyArgs.outputFile+"' OPT='RECRE
 
 
 ToolSvc.InDetVertexTruthMatchTool.OutputLevel = 2
-#filesInput  /eos/user/h/hmaguire/valid1.410000.PowhegPythiaEvtGen_P2012_ttbar_hdamp172p5_nonallhad.recon.AOD.e4993_s3227_r12256/AOD.23443643._000509.pool.root.1
diff --git a/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/InDetPerfPlot_VertexTruthMatching.cxx b/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/InDetPerfPlot_VertexTruthMatching.cxx
index b30f70d538c5..1adf497adf0a 100644
--- a/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/InDetPerfPlot_VertexTruthMatching.cxx
+++ b/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/InDetPerfPlot_VertexTruthMatching.cxx
@@ -79,7 +79,7 @@ InDetPerfPlot_VertexTruthMatching::InDetPerfPlot_VertexTruthMatching(InDetPlotBa
     m_vx_hs_truth_z_pull_vs_nTrk(nullptr),
     m_vx_hs_truth_x_pull_vs_nTrk(nullptr),
     m_vx_hs_truth_y_pull_vs_nTrk(nullptr),
-   // New histos HRM Helen OTP
+   // New Expert Histograms for vertex classifiations
     m_vx_ntracks_matched(nullptr),
     m_vx_ntracks_merged(nullptr),
     m_vx_ntracks_split(nullptr),
@@ -100,7 +100,7 @@ InDetPerfPlot_VertexTruthMatching::InDetPerfPlot_VertexTruthMatching(InDetPlotBa
     m_vx_sumpT_HS_merged(nullptr),
     m_vx_sumpT_HS_split(nullptr),
     m_vx_sumpT_HS_fake(nullptr),
-    //Helen OTP sum of charges
+    
     m_vx_sumCharge_matched(nullptr),
     m_vx_sumCharge_merged(nullptr),
     m_vx_sumCharge_split(nullptr),
@@ -238,10 +238,6 @@ InDetPerfPlot_VertexTruthMatching::InDetPerfPlot_VertexTruthMatching(InDetPlotBa
     m_vx_z_asym_weighted_ALL_matched(nullptr),
     m_vx_z_asym_weighted_ALL_merged(nullptr),
     m_vx_z_asym_weighted_ALL_split(nullptr),
-    m_vx_d_asym_ALL_matched(nullptr),
-    m_vx_d_asym_ALL_merged(nullptr),
-    m_vx_d_asym_ALL_split(nullptr),
-    m_vx_d_asym_ALL_fake(nullptr),
     
     m_vx_track_weight_ALL_matched(nullptr),
     m_vx_track_weight_ALL_merged(nullptr),
@@ -253,6 +249,11 @@ InDetPerfPlot_VertexTruthMatching::InDetPerfPlot_VertexTruthMatching(InDetPlotBa
     m_vx_normalised_track_weight_ALL_split(nullptr),
     m_vx_normalised_track_weight_ALL_fake(nullptr),
 
+    m_vx_d_asym_ALL_matched(nullptr),
+    m_vx_d_asym_ALL_merged(nullptr),
+    m_vx_d_asym_ALL_split(nullptr),
+    m_vx_d_asym_ALL_fake(nullptr),
+
     m_vx_chi2Over_ndf_ALL_matched(nullptr),
     m_vx_chi2Over_ndf_ALL_merged(nullptr),
     m_vx_chi2Over_ndf_ALL_split(nullptr),
@@ -453,7 +454,7 @@ void InDetPerfPlot_VertexTruthMatching::initializePlots() {
         book(m_vx_hs_truth_x_pull_vs_nTrk, "vx_TYPE_truth_pull_x_vs_nTrk", "vx_hs_truth_pull_x_vs_nTrk");
         book(m_vx_hs_truth_y_pull_vs_nTrk, "vx_TYPE_truth_pull_y_vs_nTrk", "vx_hs_truth_pull_y_vs_nTrk");
      
-	// book the new histos  Helen OTP
+	// book the new expert histos for vertex classifications
 	book(m_vx_ntracks_matched,"vx_ntracks_matched");
     	book(m_vx_ntracks_merged,"vx_ntracks_merged");
     	book(m_vx_ntracks_split,"vx_ntracks_split");
@@ -474,7 +475,7 @@ void InDetPerfPlot_VertexTruthMatching::initializePlots() {
         book(m_vx_sumpT_HS_merged,"vx_sumpT_HS_merged");
         book(m_vx_sumpT_HS_split,"vx_sumpT_HS_split");
         book( m_vx_sumpT_HS_fake,"vx_sumpT_HS_fake");
-        // Helen OTP sum of charges
+        
         book(m_vx_sumCharge_matched,"vx_sumCharge_matched");
         book(m_vx_sumCharge_merged,"vx_sumCharge_merged");
         book(m_vx_sumCharge_split,"vx_sumCharge_split");
@@ -593,7 +594,7 @@ void InDetPerfPlot_VertexTruthMatching::initializePlots() {
         book(m_vx_pt_kurtosis_HS_merged,"vx_pt_kurtosis_HS_merged");
         book(m_vx_pt_kurtosis_HS_split,"vx_pt_kurtosis_HS_split");
         book(m_vx_pt_kurtosis_HS_fake,"vx_pt_kurtosis_HS_fake");
-        // Histograms with all vertices
+        
         book(m_vx_sumpT_ALL_matched,"vx_sumpT_ALL_matched");
         book(m_vx_sumpT_ALL_merged,"vx_sumpT_ALL_merged");
         book(m_vx_sumpT_ALL_split,"vx_sumpT_ALL_split");
@@ -1033,9 +1034,6 @@ void InDetPerfPlot_VertexTruthMatching::fill(const xAOD::Vertex* recoHardScatter
         float number_matched_PU = 0;
         float number_merged_PU = 0;
         float number_split_PU = 0;
-      
-   //   std::cout << "declaring vertex number variables helenmaguire";
-
  
         // Iterate over vertices:
         InDetVertexTruthMatchUtils::VertexMatchType matchType;
@@ -1099,18 +1097,19 @@ void InDetPerfPlot_VertexTruthMatching::fill(const xAOD::Vertex* recoHardScatter
 
 
 
-// Helen OTP - get sumpt for each vertex (not just for HS vertex)
-// For each vertex, loop over all tracks and get sumpt and sum of charges
-// also use this to get the z asymmetry around the vertex.
+       // New Expert histograms for observables for vertex classifications for HS and PU 
+       // For each vertex, loop over all tracks and get sumpt and sum of charges
+       // also use this to get the z asymmetry around the vertex.
    
-        
+         // Declaring variables for the observables        
          const xAOD::TrackParticle* trackTmp = nullptr;
          float sumPt =0;
+         float minpt = 20000 ; // minimum sum pt required for the 'All' vertices plots - 20 GeV
          float trackPt = 0;
          float sum_dD =0;
-
-         // get the charge associated with each track
          double sumCharge = 0;
+
+         // variables for calculation of delta Z asymmetry and delta d asymmetry
          float z_asym = 0;
          float d_asym = 0;
          float sumDZ = 0;
@@ -1125,26 +1124,22 @@ void InDetPerfPlot_VertexTruthMatching::fill(const xAOD::Vertex* recoHardScatter
 
          // make vector
          std::vector<float> track_deltaZ;
-         track_deltaZ.clear();
          std::vector<float> track_deltaD;
-         track_deltaD.clear();
          std::vector<float> track_deltaPt;
-         track_deltaPt.clear();
          std::vector<float> track_deltaZ_weighted;
-         track_deltaZ_weighted.clear();
-            // loop over tracks 
-            //  std::cout << "loop over tracks helenmaguire";
-            for (size_t i = 0; i < vertex->nTrackParticles(); i++) {
-                trackTmp = vertex->trackParticle(i);
-                trackPt = trackTmp->pt() / Gaudi::Units::GeV; 
-                deltaZ = trackTmp->z0() - vertex->z();
-                deltaD = trackTmp->d0();
-                const xAOD::ParametersCovMatrix_t covTrk = trackTmp->definingParametersCovMatrix();
+         // loop over tracks 
+         for (size_t i = 0; i < vertex->nTrackParticles(); i++) {
+            trackTmp = vertex->trackParticle(i);
+            trackPt = trackTmp->pt();  //  MeV 
+            sumPt = sumPt + trackPt;  // in MeV
+            deltaZ = trackTmp->z0() - vertex->z();
+            deltaD = trackTmp->d0();
+            const xAOD::ParametersCovMatrix_t covTrk = trackTmp->definingParametersCovMatrix();
         
  
-           if (vertex == bestRecoHSVtx_truth) {
+            if (vertex == bestRecoHSVtx_truth) {
  
-           switch (matchType) {
+             switch (matchType) {
                case InDetVertexTruthMatchUtils::VertexMatchType::MATCHED: {
                    fillHisto(m_vx_track_z0_HS_matched, deltaZ);
                    fillHisto(m_vx_track_d0_HS_matched, deltaD);
@@ -1177,12 +1172,12 @@ void InDetPerfPlot_VertexTruthMatching::fill(const xAOD::Vertex* recoHardScatter
                    fillHisto(m_vx_track_z0_err_HS_split_vs_track_pt,Amg::error(covTrk, 1), trackPt);
                    fillHisto(m_vx_track_d0_err_HS_split_vs_track_pt, Amg::error(covTrk, 0), trackPt);
                    break;
-              }
-              default: {
+               }
+               default: {
                    break;
                }
            
-            }   // end switch
+             }   // end switch
             }  // end if HS
             else {
              switch (matchType) {
@@ -1219,16 +1214,14 @@ void InDetPerfPlot_VertexTruthMatching::fill(const xAOD::Vertex* recoHardScatter
                    fillHisto(m_vx_track_d0_err_split_vs_track_pt, Amg::error(covTrk, 0), trackPt);
                    break;
                }
-              default: {
+               default: {
                    break;
                }
-            } // end switch
-           }  // end else
-
+             } // end switch
+            }  // end else
 
-             double minpt = 20 ; // GeV
-             if (sumPt/Gaudi::Units::GeV > minpt) {
 
+            if (sumPt > minpt) {
              switch (matchType) {
                case InDetVertexTruthMatchUtils::VertexMatchType::MATCHED: {
                    fillHisto(m_vx_track_z0_ALL_matched, deltaZ);
@@ -1263,38 +1256,32 @@ void InDetPerfPlot_VertexTruthMatching::fill(const xAOD::Vertex* recoHardScatter
                    fillHisto(m_vx_track_d0_err_ALL_split_vs_track_pt, Amg::error(covTrk, 0), trackPt);
                    break;
                }
-              default: {
+               default: {
                    break;
                }
 
              } // end switch
-           } // end if sumPt
-
-
-          
+            } // end if sumPt
+
+
+            if (trackTmp) {
+                 sumCharge = sumCharge + trackTmp->charge();
+                 track_deltaZ.push_back(deltaZ);
+                 track_deltaD.push_back(deltaD);
+                 track_deltaPt.push_back(trackTmp->pt());
+                 // get the track weight for each track to get the deltaZ/trk_weight
+                 float trk_weight = vertex->trackWeight(i);
+                 weighted_deltaZ = deltaZ*trk_weight;
+                 // sum of delta z
+                 sumDZ = sumDZ + deltaZ; 
+                 modsumDZ = modsumDZ + sqrt(deltaZ * deltaZ);
+                 sum_dD = sum_dD + trackTmp->d0();
+                 modsumDD = modsumDD + sqrt(deltaD * deltaD);
+                 weighted_sumDZ =  weighted_sumDZ + weighted_deltaZ;
+                 weighted_modsumDZ = weighted_modsumDZ + sqrt (weighted_deltaZ *weighted_deltaZ);
                
-                if (trackTmp) {
-                    sumPt = sumPt + trackTmp->pt();
-                    sumCharge = sumCharge + trackTmp->charge();
-                    track_deltaZ.push_back(deltaZ);
-                    track_deltaD.push_back(deltaD);
-                    track_deltaPt.push_back(trackTmp->pt());
-                    // get the track weight for each track to get the deltaZ/trk_weight
-//                    for (const float& trk_weight : vertex->trackWeights())  {
-                    float trk_weight = vertex->trackWeight(i);
-//                        track_deltaZ_weighted.push_back(deltaZ*trk_weight);
-                        weighted_deltaZ = deltaZ*trk_weight;
-  //                  }
-                    // sum of delta z
-                    sumDZ = sumDZ + deltaZ; 
-                    modsumDZ = modsumDZ + sqrt(deltaZ * deltaZ);
-                    sum_dD = sum_dD + trackTmp->d0();
-                    modsumDD = modsumDD + sqrt(deltaD * deltaD);
-                    weighted_sumDZ =  weighted_sumDZ + weighted_deltaZ;
-                    weighted_modsumDZ = weighted_modsumDZ + sqrt (weighted_deltaZ *weighted_deltaZ);
-               }
-
-            } // end loop over tracks
+            }
+           } // end loop over tracks
             if  (modsumDZ >0) {
                 z_asym = sumDZ/modsumDZ;
             }
@@ -1307,7 +1294,7 @@ void InDetPerfPlot_VertexTruthMatching::fill(const xAOD::Vertex* recoHardScatter
 
 
           
-            double av_sumPt =0;
+            double av_sumPt =0;  // in MeV
             double mean_Dz =0;
             mean_Dz=sumDZ/track_deltaZ.size(); //calculate average
             sum_dD=sum_dD/track_deltaD.size(); //calculate average
@@ -1316,17 +1303,17 @@ void InDetPerfPlot_VertexTruthMatching::fill(const xAOD::Vertex* recoHardScatter
             n = track_deltaZ.size(); // get number of tracks 
 
             double z_sd = 0; //  standard deviation
-            double z_skew = 0;
-            double z_kurt = 0;
-            double z_var=0;
-            double d_sd = 0;
-            double d_var = 0;
-            double d_kurt =0;
-            double d_skew =0;
-            double pt_sd = 0;
-            double pt_var = 0;
-            double pt_kurt =0;
-            double pt_skew =0;
+            double z_skew = 0;  // skewness of DeltaZ asymmetry
+            double z_kurt = 0;  // Kurtosis of DeltaZ asymmetry 
+            double z_var=0;     // variance of DeltaZ
+            double d_sd = 0;    // standard dev of d0
+            double d_var = 0;   // variance of d0
+            double d_skew =0;   // skewness of Delta d0 asymmetry
+            double d_kurt =0;   // Kurtosis of Delta d0 asymmetry
+            double pt_sd = 0;   // standard dev of pt 
+            double pt_var = 0;  // variance of pt
+            double pt_skew =0;  // skewness of pt asymmetry
+            double pt_kurt =0;  // Kurtosis of pt asymmetry
 
             for ( size_t i = 0; i < track_deltaZ.size(); i++) {
 
@@ -1334,7 +1321,7 @@ void InDetPerfPlot_VertexTruthMatching::fill(const xAOD::Vertex* recoHardScatter
                z_skew =(z_skew + (track_deltaZ.at(i) - mean_Dz )*(track_deltaZ.at(i) - mean_Dz )*(track_deltaZ.at(i) - mean_Dz ));
                z_kurt =(z_kurt + (track_deltaZ.at(i) - mean_Dz )*(track_deltaZ.at(i) - mean_Dz )*(track_deltaZ.at(i) - mean_Dz )*(track_deltaZ.at(i) - mean_Dz ));
 
-           } 
+            } 
                z_var = z_var/(n-1);
                z_sd = sqrt(z_var);
                z_skew = z_skew/((n-1)*z_sd*z_sd*z_sd);
@@ -1346,34 +1333,32 @@ void InDetPerfPlot_VertexTruthMatching::fill(const xAOD::Vertex* recoHardScatter
                d_skew =(d_skew + (track_deltaD.at(i) - sum_dD )*(track_deltaD.at(i) - sum_dD )*(track_deltaD.at(i) - sum_dD ));
                d_kurt =(d_kurt + (track_deltaD.at(i) - sum_dD )*(track_deltaD.at(i) - sum_dD )*(track_deltaD.at(i) - sum_dD )*(track_deltaD.at(i) - sum_dD ));
 
-           } 
+            } 
                d_var = d_var/(n-1);
                d_sd = sqrt(d_var);
                d_skew = d_skew/((n-1)*d_sd*d_sd*d_sd);
                d_kurt = d_kurt/((n-1)*d_sd*d_sd*d_sd*d_sd);
 
 
-           for ( size_t i = 0; i < track_deltaPt.size(); i++) {
+            for ( size_t i = 0; i < track_deltaPt.size(); i++) {
 
                pt_var =(pt_var + (track_deltaPt.at(i) - av_sumPt )*(track_deltaPt.at(i) - av_sumPt ));
                pt_skew =(pt_skew + (track_deltaPt.at(i) - av_sumPt )*(track_deltaPt.at(i) - av_sumPt )*(track_deltaPt.at(i) - av_sumPt ));
                pt_kurt =(pt_kurt + (track_deltaPt.at(i) - av_sumPt )*(track_deltaPt.at(i) - av_sumPt )*(track_deltaPt.at(i) - av_sumPt )*(track_deltaPt.at(i) - av_sumPt ));
 
-          }
+            }
                pt_var = pt_var/(n-1);
                pt_sd = sqrt(pt_var);
                pt_skew = pt_skew/((n-1)*pt_sd*pt_sd*pt_sd);
                pt_kurt = pt_kurt/((n-1)*pt_sd*pt_sd*pt_sd*pt_sd);
 
-          float ndf = vertex->numberDoF();
-          if (ndf != 0) {
-
+            float ndf = vertex->numberDoF();
+            if (ndf != 0) {
 
-
-           if (recoVtxMatchTypeInfo(*vertex) == InDetVertexTruthMatchUtils::VertexMatchType::MATCHED) {
-              if (vertex == bestRecoHSVtx_truth) {
+              if (recoVtxMatchTypeInfo(*vertex) == InDetVertexTruthMatchUtils::VertexMatchType::MATCHED) {
+               if (vertex == bestRecoHSVtx_truth) {
 	
-		 fillHisto(m_vx_sumpT_HS_matched,sumPt / Gaudi::Units::GeV);
+		 fillHisto(m_vx_sumpT_HS_matched,sumPt );
                  fillHisto(m_vx_sumCharge_HS_matched,sumCharge);
                  fillHisto(m_vx_sumCharge_N_trk_HS_matched, sumCharge/vertex->nTrackParticles());
                  fillHisto(m_vx_z_asym_HS_matched, z_asym);
@@ -1394,10 +1379,10 @@ void InDetPerfPlot_VertexTruthMatching::fill(const xAOD::Vertex* recoHardScatter
                      fillHisto(m_vx_normalised_track_weight_HS_matched, weight/n);
                  }
 
-              }	
-	      else { 
+               }	
+	       else { 
 		
-                 fillHisto(m_vx_sumpT_matched,sumPt / Gaudi::Units::GeV);
+                 fillHisto(m_vx_sumpT_matched,sumPt );
                  fillHisto(m_vx_sumCharge_matched,sumCharge);
                  fillHisto(m_vx_sumCharge_N_trk_matched, sumCharge/vertex->nTrackParticles());
                  fillHisto(m_vx_z_asym_matched, z_asym);
@@ -1413,16 +1398,14 @@ void InDetPerfPlot_VertexTruthMatching::fill(const xAOD::Vertex* recoHardScatter
                  fillHisto(m_vx_pt_kurtosis_matched, pt_kurt);
 
 
-
                  for (const float& weight : vertex->trackWeights()) {
                      fillHisto(m_vx_track_weight_matched, weight);
                      fillHisto(m_vx_normalised_track_weight_matched, weight/n);
                  }
-             }
+               }
 // fill some histograms that contain both HS and PU above a min pt - say 20GeV
-              double minpt = 20 ; // GeV
-              if (sumPt/Gaudi::Units::GeV > minpt) {
-                 fillHisto(m_vx_sumpT_ALL_matched,sumPt / Gaudi::Units::GeV);
+              if (sumPt > minpt) {
+                 fillHisto(m_vx_sumpT_ALL_matched,sumPt );
                  fillHisto(m_vx_sumCharge_ALL_matched,sumCharge);
                  fillHisto(m_vx_sumCharge_N_trk_ALL_matched, sumCharge/vertex->nTrackParticles());
                  fillHisto(m_vx_z_asym_ALL_matched, z_asym);
@@ -1441,13 +1424,13 @@ void InDetPerfPlot_VertexTruthMatching::fill(const xAOD::Vertex* recoHardScatter
                      fillHisto(m_vx_normalised_track_weight_ALL_matched, weight/n);
                  }
 
-            }
-           }  // end of if matched vertices
+              }
+             }  // end of if matched vertices
 
-           if (recoVtxMatchTypeInfo(*vertex) == InDetVertexTruthMatchUtils::VertexMatchType::MERGED) {
+             if (recoVtxMatchTypeInfo(*vertex) == InDetVertexTruthMatchUtils::VertexMatchType::MERGED) {
               if (vertex == bestRecoHSVtx_truth) {
               
-                 fillHisto(m_vx_sumpT_HS_merged, sumPt / Gaudi::Units::GeV);
+                 fillHisto(m_vx_sumpT_HS_merged, sumPt );
                  fillHisto(m_vx_sumCharge_HS_merged, sumCharge);
                  fillHisto(m_vx_sumCharge_N_trk_HS_merged, sumCharge/vertex->nTrackParticles());
                  fillHisto(m_vx_z_asym_HS_merged, z_asym);
@@ -1470,7 +1453,7 @@ void InDetPerfPlot_VertexTruthMatching::fill(const xAOD::Vertex* recoHardScatter
 
               }
               else {
-                 fillHisto(m_vx_sumpT_merged, sumPt / Gaudi::Units::GeV);
+                 fillHisto(m_vx_sumpT_merged, sumPt );
                  fillHisto(m_vx_sumCharge_merged, sumCharge);
                  fillHisto(m_vx_sumCharge_N_trk_merged, sumCharge/vertex->nTrackParticles());
                  fillHisto(m_vx_z_asym_merged, z_asym);
@@ -1490,9 +1473,8 @@ void InDetPerfPlot_VertexTruthMatching::fill(const xAOD::Vertex* recoHardScatter
                  }
 
               }
-              double minpt = 20 ; // GeV
-              if (sumPt/Gaudi::Units::GeV > minpt) {
-                 fillHisto(m_vx_sumpT_ALL_merged,sumPt / Gaudi::Units::GeV);
+              if (sumPt > minpt) {
+                 fillHisto(m_vx_sumpT_ALL_merged,sumPt );
                  fillHisto(m_vx_sumCharge_ALL_merged,sumCharge);
                  fillHisto(m_vx_sumCharge_N_trk_ALL_merged, sumCharge/vertex->nTrackParticles());
                  fillHisto(m_vx_z_asym_ALL_merged, z_asym);
@@ -1511,12 +1493,12 @@ void InDetPerfPlot_VertexTruthMatching::fill(const xAOD::Vertex* recoHardScatter
                      fillHisto(m_vx_normalised_track_weight_ALL_merged, weight/n);
                  }
 
-             }
-           }   //end of if merged vertices
+              }
+             }   //end of if merged vertices
 
-           if (recoVtxMatchTypeInfo(*vertex) == InDetVertexTruthMatchUtils::VertexMatchType::SPLIT) {
+             if (recoVtxMatchTypeInfo(*vertex) == InDetVertexTruthMatchUtils::VertexMatchType::SPLIT) {
               if (vertex == bestRecoHSVtx_truth) {
-                 fillHisto(m_vx_sumpT_HS_split, sumPt / Gaudi::Units::GeV);
+                 fillHisto(m_vx_sumpT_HS_split, sumPt );
                  fillHisto(m_vx_sumCharge_HS_split, sumCharge);
                  fillHisto(m_vx_sumCharge_N_trk_HS_split, sumCharge/vertex->nTrackParticles());
                  fillHisto(m_vx_z_asym_HS_split, z_asym);
@@ -1538,7 +1520,7 @@ void InDetPerfPlot_VertexTruthMatching::fill(const xAOD::Vertex* recoHardScatter
 
               }
               else {
-                 fillHisto(m_vx_sumpT_split, sumPt / Gaudi::Units::GeV);
+                 fillHisto(m_vx_sumpT_split, sumPt );
                  fillHisto(m_vx_sumCharge_split, sumCharge);
                  fillHisto(m_vx_sumCharge_N_trk_split, sumCharge/vertex->nTrackParticles());
                  fillHisto(m_vx_z_asym_split, z_asym);
@@ -1559,10 +1541,9 @@ void InDetPerfPlot_VertexTruthMatching::fill(const xAOD::Vertex* recoHardScatter
 
 
               }
-// fill some histograms that contain both HS and PU above a min pt - say 20GeV
-              double minpt = 20 ; // GeV
-              if (sumPt/Gaudi::Units::GeV > minpt) {
-                 fillHisto(m_vx_sumpT_ALL_split,sumPt / Gaudi::Units::GeV);
+
+              if (sumPt > minpt) {
+                 fillHisto(m_vx_sumpT_ALL_split,sumPt );
                  fillHisto(m_vx_sumCharge_ALL_split,sumCharge);
                  fillHisto(m_vx_sumCharge_N_trk_ALL_split, sumCharge/vertex->nTrackParticles());
                  fillHisto(m_vx_z_asym_ALL_split, z_asym);
@@ -1582,12 +1563,12 @@ void InDetPerfPlot_VertexTruthMatching::fill(const xAOD::Vertex* recoHardScatter
                  }
               }
 
-	   }   // end of if split vertices
+	     }   // end of if split vertices
 
 
-           if (recoVtxMatchTypeInfo(*vertex) == InDetVertexTruthMatchUtils::VertexMatchType::FAKE) {
+             if (recoVtxMatchTypeInfo(*vertex) == InDetVertexTruthMatchUtils::VertexMatchType::FAKE) {
               if (vertex == bestRecoHSVtx_truth) {
-                 fillHisto(m_vx_sumpT_HS_fake, sumPt / Gaudi::Units::GeV);
+                 fillHisto(m_vx_sumpT_HS_fake, sumPt );
                  fillHisto(m_vx_sumCharge_HS_fake, sumCharge);
                  fillHisto(m_vx_sumCharge_N_trk_HS_fake, sumCharge/vertex->nTrackParticles());
                  fillHisto(m_vx_z_asym_HS_fake, z_asym);
@@ -1607,7 +1588,7 @@ void InDetPerfPlot_VertexTruthMatching::fill(const xAOD::Vertex* recoHardScatter
 
               else {
 
-                 fillHisto(m_vx_sumpT_fake, sumPt / Gaudi::Units::GeV);
+                 fillHisto(m_vx_sumpT_fake, sumPt );
                  fillHisto(m_vx_sumCharge_fake, sumCharge);
                  fillHisto(m_vx_sumCharge_N_trk_fake, sumCharge/vertex->nTrackParticles());
                  fillHisto(m_vx_z_asym_fake, z_asym);
@@ -1624,10 +1605,9 @@ void InDetPerfPlot_VertexTruthMatching::fill(const xAOD::Vertex* recoHardScatter
                      fillHisto(m_vx_track_weight_fake, weight);
                  }
              }
-// fill some histograms that contain both HS and PU above a min pt - say 20GeV
-              double minpt = 20 ; // GeV
-              if (sumPt/Gaudi::Units::GeV > minpt) {
-                 fillHisto(m_vx_sumpT_ALL_fake,sumPt / Gaudi::Units::GeV);
+
+             if (sumPt > minpt) {
+                 fillHisto(m_vx_sumpT_ALL_fake,sumPt );
                  fillHisto(m_vx_sumCharge_ALL_fake,sumCharge);
                  fillHisto(m_vx_sumCharge_N_trk_ALL_fake, sumCharge/vertex->nTrackParticles());
                  fillHisto(m_vx_z_asym_ALL_fake, z_asym);
@@ -1645,8 +1625,8 @@ void InDetPerfPlot_VertexTruthMatching::fill(const xAOD::Vertex* recoHardScatter
                  }
 
              }
-           }   // end of fake vertices
-// Helen OTP count the number of vertices for each type per event
+            }   // end of fake vertices
+// Count the number of vertices for each type per event
          
 
          if (recoVtxMatchTypeInfo(*vertex) == InDetVertexTruthMatchUtils::VertexMatchType::MATCHED) {
@@ -1656,11 +1636,10 @@ void InDetPerfPlot_VertexTruthMatching::fill(const xAOD::Vertex* recoHardScatter
               else {
                  number_matched_PU++;         
               }
-              double minpt = 20 ; // GeV
-              if (sumPt/Gaudi::Units::GeV > minpt) {
+              if (sumPt > minpt) {
                   number_matched++;
              }
-        }
+         }
 
          if (recoVtxMatchTypeInfo(*vertex) == InDetVertexTruthMatchUtils::VertexMatchType::MERGED) {
               if (vertex == bestRecoHSVtx_truth) {
@@ -1669,11 +1648,10 @@ void InDetPerfPlot_VertexTruthMatching::fill(const xAOD::Vertex* recoHardScatter
               else {
                  number_merged_PU++;         
               }
-              double minpt = 20 ; // GeV
-              if (sumPt/Gaudi::Units::GeV > minpt) {
+              if (sumPt > minpt) {
                   number_merged++;
              }
-        }
+         }
 
          if (recoVtxMatchTypeInfo(*vertex) == InDetVertexTruthMatchUtils::VertexMatchType::SPLIT) {
               if (vertex == bestRecoHSVtx_truth) {
@@ -1682,8 +1660,7 @@ void InDetPerfPlot_VertexTruthMatching::fill(const xAOD::Vertex* recoHardScatter
               else {
                  number_split_PU++;         
               }
-              double minpt = 20 ; // GeV
-              if (sumPt/Gaudi::Units::GeV > minpt) {
+              if (sumPt > minpt) {
                   number_split++;    
              }
          }
@@ -1692,7 +1669,7 @@ void InDetPerfPlot_VertexTruthMatching::fill(const xAOD::Vertex* recoHardScatter
  
 
 
-// Add new histos to check for number of tracks for each vertex type Helen OTP  
+// New histos to check for number of tracks for each vertex type   
         for (const auto& vertex : vertexContainer.stdcont()) {
            if (vertex == bestRecoHSVtx_truth) {
 
@@ -1716,7 +1693,6 @@ void InDetPerfPlot_VertexTruthMatching::fill(const xAOD::Vertex* recoHardScatter
            }
            else {
 
-         
 
              if (recoVtxMatchTypeInfo(*vertex) == InDetVertexTruthMatchUtils::VertexMatchType::MATCHED) {
               
@@ -1736,8 +1712,7 @@ void InDetPerfPlot_VertexTruthMatching::fill(const xAOD::Vertex* recoHardScatter
              }
 
            }
-           double minpt = 20 ; // GeV
-           if (sumPt/Gaudi::Units::GeV > minpt) {
+           if (sumPt > minpt) {
              if (recoVtxMatchTypeInfo(*vertex) == InDetVertexTruthMatchUtils::VertexMatchType::MATCHED) {
               
                 fillHisto(m_vx_ntracks_ALL_matched, vertex->nTrackParticles());
@@ -1757,11 +1732,10 @@ void InDetPerfPlot_VertexTruthMatching::fill(const xAOD::Vertex* recoHardScatter
 
            }
    
-       } 
-     //     std::cout << " End loop over vertices  helenmaguire";
-        } // end loop over vertices
+        } 
+       } // end loop over vertices
 
-// Helen OTP - add new histos to count number of vertices per event
+// new histos to count number of vertices per event
         fillHisto(m_vx_nVertices_ALL_matched, number_matched);
         fillHisto(m_vx_nVertices_ALL_merged, number_merged);
         fillHisto(m_vx_nVertices_ALL_split, number_split);
@@ -1772,7 +1746,6 @@ void InDetPerfPlot_VertexTruthMatching::fill(const xAOD::Vertex* recoHardScatter
         fillHisto(m_vx_nVertices_merged, number_merged_PU);
         fillHisto(m_vx_nVertices_split, number_split_PU);
 
-
         // Now fill plots relating to the reconstruction of our truth HS vertex (efficiency and resolutions)
         if (truthHSVertices.size() != 0) {
             localPUDensity = getLocalPUDensity(truthHSVtx, truthHSVertices, truthPUVertices);
@@ -1855,8 +1828,8 @@ void InDetPerfPlot_VertexTruthMatching::fill(const xAOD::Vertex* recoHardScatter
             default: {
                 break;
             }
-        }
-    }
+        }  // End of switch
+    }   // end of EXpert plots - (if (m_iDetailLevel >= 200))
 
 } // end InDetPerfPlot_VertexTruthMatching::fill(const xAOD::VertexContainer& vertexContainer, const std::vector<const xAOD::TruthVertex*>& truthHSVertices, const std::vector<const xAOD::TruthVertex*>& truthPUVertices)
 
@@ -1864,8 +1837,6 @@ void InDetPerfPlot_VertexTruthMatching::finalizePlots() {
 
     if (m_iDetailLevel >= 200) {
         
-//        std::cout << " finalizePlots helenmaguire    !!!*";
-
         fillResoHist(m_vx_hs_truth_long_reso, m_vx_hs_truth_long_reso_vs_PU);
         fillResoHist(m_vx_hs_truth_trans_reso, m_vx_hs_truth_trans_reso_vs_PU);
     }
diff --git a/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/InDetPerfPlot_VertexTruthMatching.h b/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/InDetPerfPlot_VertexTruthMatching.h
index 9040d1665cf0..e47594aa95a8 100644
--- a/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/InDetPerfPlot_VertexTruthMatching.h
+++ b/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/InDetPerfPlot_VertexTruthMatching.h
@@ -121,7 +121,7 @@ private:
     TH2* m_vx_hs_truth_z_pull_vs_nTrk;
     TH2* m_vx_hs_truth_x_pull_vs_nTrk;
     TH2* m_vx_hs_truth_y_pull_vs_nTrk;
-    // New Histograms for #of tracks acssociated with each type of vertex  - Helen OTP
+    // New Histograms for Expert Plots for observables for different vertex classifications
     TH1* m_vx_ntracks_matched;
     TH1* m_vx_ntracks_merged;
     TH1* m_vx_ntracks_split;
@@ -134,7 +134,6 @@ private:
     TH1* m_vx_ntracks_ALL_merged;
     TH1* m_vx_ntracks_ALL_split;
     TH1* m_vx_ntracks_ALL_fake;
-    // Helen OTP - sum Pt of tracks for each type of vertex
     TH1* m_vx_sumpT_matched;
     TH1* m_vx_sumpT_merged;
     TH1* m_vx_sumpT_split;
@@ -143,7 +142,6 @@ private:
     TH1* m_vx_sumpT_HS_merged;
     TH1* m_vx_sumpT_HS_split;
     TH1* m_vx_sumpT_HS_fake;
-    // Helen OTP - sum of charges 
     TH1* m_vx_sumCharge_matched;
     TH1* m_vx_sumCharge_merged;
     TH1* m_vx_sumCharge_split;
@@ -152,7 +150,6 @@ private:
     TH1* m_vx_sumCharge_HS_merged;
     TH1* m_vx_sumCharge_HS_split;
     TH1* m_vx_sumCharge_HS_fake;
-    // Helen OTP - sum charge/n_trk
     TH1* m_vx_sumCharge_N_trk_HS_matched;
     TH1* m_vx_sumCharge_N_trk_HS_merged;
     TH1* m_vx_sumCharge_N_trk_HS_split;
@@ -161,14 +158,22 @@ private:
     TH1* m_vx_sumCharge_N_trk_merged;
     TH1* m_vx_sumCharge_N_trk_split;
     TH1* m_vx_sumCharge_N_trk_fake;
-    // Helen OTP asymmetery in z
+    
     TH1* m_vx_z_asym_matched;
     TH1* m_vx_z_asym_merged;
     TH1* m_vx_z_asym_split;
     TH1* m_vx_z_asym_fake;
+    TH1* m_vx_z_asym_HS_matched;
+    TH1* m_vx_z_asym_HS_merged;
+    TH1* m_vx_z_asym_HS_split;
+    TH1* m_vx_z_asym_HS_fake;
     TH1* m_vx_z_asym_weighted_matched;
     TH1* m_vx_z_asym_weighted_merged;
     TH1* m_vx_z_asym_weighted_split;
+    TH1* m_vx_z_asym_weighted_HS_matched;
+    TH1* m_vx_z_asym_weighted_HS_merged;
+    TH1* m_vx_z_asym_weighted_HS_split;
+    
     TH1* m_vx_track_weight_matched;
     TH1* m_vx_track_weight_merged;
     TH1* m_vx_track_weight_split;
@@ -177,14 +182,7 @@ private:
     TH1* m_vx_track_weight_HS_merged;
     TH1* m_vx_track_weight_HS_split;
     TH1* m_vx_track_weight_HS_fake;
-    TH1* m_vx_z_asym_HS_matched;
-    TH1* m_vx_z_asym_HS_merged;
-    TH1* m_vx_z_asym_HS_split;
-    TH1* m_vx_z_asym_HS_fake;
-    TH1* m_vx_z_asym_weighted_HS_matched;
-    TH1* m_vx_z_asym_weighted_HS_merged;
-    TH1* m_vx_z_asym_weighted_HS_split;
-    
+
     TH1* m_vx_normalised_track_weight_matched;
     TH1* m_vx_normalised_track_weight_merged;
     TH1* m_vx_normalised_track_weight_split;
@@ -212,41 +210,39 @@ private:
     TH1* m_vx_chi2Over_ndf_HS_split;
     TH1* m_vx_chi2Over_ndf_HS_fake;
 
-// histo to get skewness and kurtosis of z0 of tracks around vertex
-   
-    TH1* m_vx_z0_skewness_HS_matched;
-    TH1* m_vx_z0_kurtosis_HS_matched;
     TH1* m_vx_z0_skewness_matched;
-    TH1* m_vx_z0_kurtosis_matched;
-    TH1* m_vx_z0_skewness_HS_merged;
-    TH1* m_vx_z0_kurtosis_HS_merged;
     TH1* m_vx_z0_skewness_merged;
-    TH1* m_vx_z0_kurtosis_merged;
-    TH1* m_vx_z0_skewness_HS_split;
-    TH1* m_vx_z0_kurtosis_HS_split;
     TH1* m_vx_z0_skewness_split;
-    TH1* m_vx_z0_kurtosis_split;
-    TH1* m_vx_z0_skewness_HS_fake;
-    TH1* m_vx_z0_kurtosis_HS_fake;
     TH1* m_vx_z0_skewness_fake;
+    TH1* m_vx_z0_skewness_HS_matched;
+    TH1* m_vx_z0_skewness_HS_merged;
+    TH1* m_vx_z0_skewness_HS_split;
+    TH1* m_vx_z0_skewness_HS_fake;
+    TH1* m_vx_z0_kurtosis_matched;
+    TH1* m_vx_z0_kurtosis_merged;
+    TH1* m_vx_z0_kurtosis_split;
     TH1* m_vx_z0_kurtosis_fake;
+    TH1* m_vx_z0_kurtosis_HS_matched;
+    TH1* m_vx_z0_kurtosis_HS_merged;
+    TH1* m_vx_z0_kurtosis_HS_split;
+    TH1* m_vx_z0_kurtosis_HS_fake;
 
-    TH1* m_vx_d0_skewness_HS_matched;
-    TH1* m_vx_d0_skewness_HS_merged;
-    TH1* m_vx_d0_skewness_HS_split;
-    TH1* m_vx_d0_skewness_HS_fake;
     TH1* m_vx_d0_skewness_matched;
     TH1* m_vx_d0_skewness_merged;
     TH1* m_vx_d0_skewness_split;
     TH1* m_vx_d0_skewness_fake;
-    TH1* m_vx_d0_kurtosis_HS_matched;
-    TH1* m_vx_d0_kurtosis_HS_merged;
-    TH1* m_vx_d0_kurtosis_HS_split;
-    TH1* m_vx_d0_kurtosis_HS_fake;
+    TH1* m_vx_d0_skewness_HS_matched;
+    TH1* m_vx_d0_skewness_HS_merged;
+    TH1* m_vx_d0_skewness_HS_split;
+    TH1* m_vx_d0_skewness_HS_fake;
     TH1* m_vx_d0_kurtosis_matched;
     TH1* m_vx_d0_kurtosis_merged;
     TH1* m_vx_d0_kurtosis_split;
     TH1* m_vx_d0_kurtosis_fake;
+    TH1* m_vx_d0_kurtosis_HS_matched;
+    TH1* m_vx_d0_kurtosis_HS_merged;
+    TH1* m_vx_d0_kurtosis_HS_split;
+    TH1* m_vx_d0_kurtosis_HS_fake;
 
 
     TH1* m_vx_pt_skewness_matched;
@@ -304,15 +300,13 @@ private:
     TH1* m_vx_chi2Over_ndf_ALL_split;
     TH1* m_vx_chi2Over_ndf_ALL_fake;
 
-// histo to get skewness and kurtosis of z0 of tracks around vertex
-   
     TH1* m_vx_z0_skewness_ALL_matched;
-    TH1* m_vx_z0_kurtosis_ALL_matched;
     TH1* m_vx_z0_skewness_ALL_merged;
-    TH1* m_vx_z0_kurtosis_ALL_merged;
     TH1* m_vx_z0_skewness_ALL_split;
-    TH1* m_vx_z0_kurtosis_ALL_split;
     TH1* m_vx_z0_skewness_ALL_fake;
+    TH1* m_vx_z0_kurtosis_ALL_matched;
+    TH1* m_vx_z0_kurtosis_ALL_merged;
+    TH1* m_vx_z0_kurtosis_ALL_split;
     TH1* m_vx_z0_kurtosis_ALL_fake;
 
     TH1* m_vx_d0_skewness_ALL_matched;
diff --git a/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/InDetPerfPlot_nTracks.cxx b/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/InDetPerfPlot_nTracks.cxx
index 0282b470c965..c7e3a4f9af3d 100644
--- a/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/InDetPerfPlot_nTracks.cxx
+++ b/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/InDetPerfPlot_nTracks.cxx
@@ -32,13 +32,6 @@ InDetPerfPlot_nTracks::initializePlots() {
 
   book(m_ntracks_vs_mu,"ntracks_vs_mu");
   book(m_ntracks_vs_nvertices,"ntracks_vs_nvertices");
-  //book(m_ntracks_vs_nmatchedvertices,"ntracks_vs_nmatchedvertices");
-  //book(m_ntracks_vs_nmergedvertices,"ntracks_vs_nmergedvertices");
-  //book(m_ntracks_vs_nsplitvertices,"ntracks_vs_nsplitvertices");
-  //book(m_ntracks_vs_nfakevertices,"ntracks_vs_nfakevertices");
- 
-
-
 
 }
 
diff --git a/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/InDetRttPlots.h b/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/InDetRttPlots.h
index 4a41b8b369a4..2cc26d39dcfe 100644
--- a/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/InDetRttPlots.h
+++ b/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/InDetRttPlots.h
@@ -154,6 +154,8 @@ public:
   };
 
 private:
+  
+  /// configuration object
   InDetRttPlotConfig m_config; 
 
   /// key for the truth match prob 
-- 
GitLab