diff --git a/InnerDetector/InDetRecTools/InDetVKalVxInJetTool/InDetVKalVxInJetTool/InDetTrkInJetType.h b/InnerDetector/InDetRecTools/InDetVKalVxInJetTool/InDetVKalVxInJetTool/InDetTrkInJetType.h
index f192f9ef81402a3383385b03a531d4490b338b8b..452143dc8a6ea52d9d4a3e48e922e259cad6ffe8 100644
--- a/InnerDetector/InDetRecTools/InDetVKalVxInJetTool/InDetVKalVxInJetTool/InDetTrkInJetType.h
+++ b/InnerDetector/InDetRecTools/InDetVKalVxInJetTool/InDetVKalVxInJetTool/InDetTrkInJetType.h
@@ -23,12 +23,18 @@
 #include <vector>
 #include "AthenaBaseComps/AthAlgTool.h"
 #include "GaudiKernel/ToolHandle.h"
-#include "TLorentzVector.h"
 #include "xAODTracking/TrackParticleContainer.h"
-#include  "TrkVKalVrtFitter/TrkVKalVrtFitter.h"
-#include  "Particle/TrackParticle.h"
+#include "TrkVertexFitterInterfaces/IVertexFitter.h"
 //
 
+class TLorentzVector;
+namespace Rec{
+  class TrackParticle;
+}
+
+namespace Trk{
+  class TrkVKalVrtFitter;
+}
 namespace TMVA { class Reader; }
 
 namespace InDet {
@@ -80,23 +86,23 @@ namespace InDet {
     float m_Z0_limUpp;
     std::string m_calibFileName;
     ToolHandle < Trk::IVertexFitter >  m_fitterSvc;
-    Trk::TrkVKalVrtFitter*   m_fitSvc;
-
-    int m_initialised;
-
-    float m_prbS;
-    float m_Sig3D;
-    float m_prbP;
-    float m_d0;
-    float m_vChi2;
-    float m_pTvsJet;
-    float m_prodTJ;
-    float m_SigZ;
-    float m_SigR;
-    float m_ptjet;
-    float m_etajet;
-    float   m_ibl;
-    float   m_bl;
+    Trk::TrkVKalVrtFitter*   m_fitSvc{};
+
+    int m_initialised{};
+
+    float m_prbS{};
+    float m_Sig3D{};
+    float m_prbP{};
+    float m_d0{};
+    float m_vChi2{};
+    float m_pTvsJet{};
+    float m_prodTJ{};
+    float m_SigZ{};
+    float m_SigR{};
+    float m_ptjet{};
+    float m_etajet{};
+    float   m_ibl{};
+    float   m_bl{};
  };
 
 
diff --git a/InnerDetector/InDetRecTools/InDetVKalVxInJetTool/src/BTagVrtSec.cxx b/InnerDetector/InDetRecTools/InDetVKalVxInJetTool/src/BTagVrtSec.cxx
index e18a662ac0508e9aaa2caf0cdf34e603ef6b097a..a3e01652538cc3924963506badcb7fe35fe6c820 100755
--- a/InnerDetector/InDetRecTools/InDetVKalVxInJetTool/src/BTagVrtSec.cxx
+++ b/InnerDetector/InDetRecTools/InDetVKalVxInJetTool/src/BTagVrtSec.cxx
@@ -38,8 +38,8 @@ namespace InDet{
     if(N==1) return Vec[0];
     if(N>1){
       std::vector<float> tmp(Vec);
-      std::sort(tmp.begin(),tmp.end());
-      return (tmp[(N-1)/2]+tmp[N/2])/2.;
+      std::sort(tmp.begin(),tmp.end());  //can use nth_element instead of completely sorting, it's quicker
+      return (tmp[(N-1)/2]+tmp[N/2])/2.; //only true if the number of elements is even?
     }
     return 0.;
   }
@@ -758,6 +758,7 @@ namespace InDet{
             }
 	 }
       }
+      if (not m_curTup) return; //something very wrong
       if(m_fillHist){  m_curTup->ptjet=JetDir.Perp();  m_curTup->etajet=fabs(JetDir.Eta()); m_curTup->phijet=JetDir.Phi();
                        m_curTup->nTrkInJet=std::min(NTracks,DevTuple::maxNTrk); };
       if(nTrkHF==0) return; //======  No at all good HF tracks 
diff --git a/InnerDetector/InDetRecTools/InDetVKalVxInJetTool/src/InDetTrkInJetType.cxx b/InnerDetector/InDetRecTools/InDetVKalVxInJetTool/src/InDetTrkInJetType.cxx
index 49a0c844966a441ef511188f7690496bb4749876..174e8787bd3f32e75ecf42572c4eeba3cba4c012 100644
--- a/InnerDetector/InDetRecTools/InDetVKalVxInJetTool/src/InDetTrkInJetType.cxx
+++ b/InnerDetector/InDetRecTools/InDetVKalVxInJetTool/src/InDetTrkInJetType.cxx
@@ -6,6 +6,10 @@
 #include "TMVA/MethodBase.h"
 #include "TMVA/Reader.h"
 #include "PathResolver/PathResolver.h"
+#include "TLorentzVector.h"
+#include "TrkVKalVrtFitter/TrkVKalVrtFitter.h"
+
+#include  "Particle/TrackParticle.h"
 //
 //-------------------------------------------------
 namespace InDet {
diff --git a/InnerDetector/InDetRecTools/InDetVKalVxInJetTool/src/Utilities.cxx b/InnerDetector/InDetRecTools/InDetVKalVxInJetTool/src/Utilities.cxx
index b1fd5d2caa6a4d85dae19f01904fce3d61d47ff8..5c322d61c54f76eaeb1226dc026a40559d98e2aa 100755
--- a/InnerDetector/InDetRecTools/InDetVKalVxInJetTool/src/Utilities.cxx
+++ b/InnerDetector/InDetRecTools/InDetVKalVxInJetTool/src/Utilities.cxx
@@ -11,20 +11,21 @@
 //-------------------------------------------------
 // Other stuff
 #include <cmath>
-//#include<iostream>
 
 
 namespace InDet{  
 
   double InDetVKalVxInJetTool::RankBTrk(double TrkPt, double JetPt, double Signif)  const
   {
-     double coeffSig=1.0;
-     double s_prob=(Signif-coeffSig)/Signif;   // Old probability to be b-track
+    //code re-ordered to avoid divide by zero
      double coeffPt=10.;
-     double pfrac=(TrkPt-m_cutPt)/sqrt(JetPt);
+     double pfrac=(TrkPt-m_cutPt)/std::sqrt(JetPt);
      double p_prob= pfrac/(coeffPt+pfrac);    // Old probability to be b-track
+     if (Signif == 0.) return p_prob; //should be less than some epsilon?
+     //
+     double coeffSig=1.0;
+     double s_prob=(Signif-coeffSig)/Signif;   // Old probability to be b-track
      if(TrkPt + JetPt == 0.) return s_prob;
-     else if(Signif == 0.)   return p_prob;
      //----------------------------------Initial definition of selective variable
      double contrib=0.4;
      return (1.+contrib)*std::max(s_prob,0.)+(1.-contrib)*p_prob;