diff --git a/InnerDetector/InDetExample/InDetRecExample/python/ConfiguredSecVertexFinding.py b/InnerDetector/InDetExample/InDetRecExample/python/ConfiguredSecVertexFinding.py
index 1e02be2a53c59d42fafdcbc1021feab6855d76f5..3fe9d48dcdb73c7c39073d730e01c6f418866cee 100644
--- a/InnerDetector/InDetExample/InDetRecExample/python/ConfiguredSecVertexFinding.py
+++ b/InnerDetector/InDetExample/InDetRecExample/python/ConfiguredSecVertexFinding.py
@@ -137,11 +137,10 @@ class ConfiguredSecVertexFinding:
             InDet__SingleTrackConversionTool)
         InDetSingleTrackSecVtx = InDet__SingleTrackConversionTool(
             name=prefix+"SingleTrackTool",
-            ConversionFinderHelperTool=InDetSecVxHelper,
-            Extrapolator=Extrapolator,
             MaxBLayerHits=VertexCuts.SingleTrk_MaxBLayerHits(),
             MinInitialHitRadius=VertexCuts.SingleTrk_MinInitialHitRadius(),
-            MinInitialHitRadius_noBlay=VertexCuts.SingleTrk_MinInitialHitRadius_noBlay(),
+            MinInitialHitRadius_noBlay=(
+                VertexCuts.SingleTrk_MinInitialHitRadius_noBlay()),
             MinRatioOfHLhits=VertexCuts.SingleTrk_MinRatioOfHLhits())
         if (printConfig):
             print(InDetSingleTrackSecVtx)
diff --git a/InnerDetector/InDetRecTools/InDetConversionFinderTools/InDetConversionFinderTools/SingleTrackConversionTool.h b/InnerDetector/InDetRecTools/InDetConversionFinderTools/InDetConversionFinderTools/SingleTrackConversionTool.h
index 31a7e6465dfa6e6d41bb7235557aa661cf5f065f..aa61e7a52b033e8689fc1ae2cb5454ba9d75af70 100644
--- a/InnerDetector/InDetRecTools/InDetConversionFinderTools/InDetConversionFinderTools/SingleTrackConversionTool.h
+++ b/InnerDetector/InDetRecTools/InDetConversionFinderTools/InDetConversionFinderTools/SingleTrackConversionTool.h
@@ -40,10 +40,6 @@ public:
   virtual StatusCode initialize() override;
   virtual StatusCode finalize() override;
 
-  /** Build single track conversion candidate. Trk::Track interface.  */
-  xAOD::Vertex* buildSingleTrackConversion(const Trk::Track* track) const;
-  /** Select single track conversion candidates.  Trk::Track interface. */
-  bool selectSingleTrackConversion(const Trk::Track* track) const;
   /** Build single track conversion candidate. xAOD::TrackParticle interface. */
   xAOD::Vertex* buildSingleTrackParticleConversion(
     const xAOD::TrackParticle*,
@@ -52,18 +48,6 @@ public:
   bool selectSingleTrackParticleConversion(const xAOD::TrackParticle*) const;
 
 protected:
-  /** Conversion helper tool. */
-  ToolHandle<InDet::ConversionFinderUtils> m_helpertool{
-    this,
-    "ConversionFinderHelperTool",
-    "InDet::ConversionFinderUtils",
-    "Helper for conversion finding"
-  };
-  //!< Track extrapolator tool.
-  ToolHandle<Trk::IExtrapolator> m_extrapolator{ this,
-                                                 "Extrapolator",
-                                                 "",
-                                                 "Track Extrapolator Tool" };
   double m_minInitR; /** Minimum initial hit radius in order to consider track
                         as coming from photon conversion */
   double m_minInitR_noBLay; /** Minimum initial hit radius in order to consider
diff --git a/InnerDetector/InDetRecTools/InDetConversionFinderTools/src/SingleTrackConversionTool.cxx b/InnerDetector/InDetRecTools/InDetConversionFinderTools/src/SingleTrackConversionTool.cxx
index 51e28aa3b52df046010e137a75dc75bdade030ec..6374a5b25bd3fcf4d963df324e5cd174ff8fc420 100644
--- a/InnerDetector/InDetRecTools/InDetConversionFinderTools/src/SingleTrackConversionTool.cxx
+++ b/InnerDetector/InDetRecTools/InDetConversionFinderTools/src/SingleTrackConversionTool.cxx
@@ -77,23 +77,6 @@ namespace InDet {
   // init method
   // -------------------------------------------------------
   StatusCode SingleTrackConversionTool::initialize() {
-
-    /* Get the track selector tool from ToolSvc */
-    if ( m_helpertool.retrieve().isFailure() ) {
-      ATH_MSG_FATAL("Failed to retrieve tool " << m_helpertool);
-      return StatusCode::FAILURE;
-    }
-      ATH_MSG_INFO("Retrieved tool " << m_helpertool);
-
-
-    /* Get the extrapolator */
-    if (m_extrapolator.retrieve().isFailure()) {
-      ATH_MSG_FATAL("Failed to retrieve tool " << m_extrapolator);
-      return StatusCode::FAILURE;
-    }
-      ATH_MSG_INFO("Retrieved tool " << m_extrapolator);
-
-
     return StatusCode::SUCCESS;
   }
 
@@ -104,234 +87,6 @@ namespace InDet {
     return StatusCode::SUCCESS;
   }
 
-  // -------------------------------------------------------
-  // Create a RecVertex at the first measurement of the track
-  // -------------------------------------------------------
-  xAOD::Vertex*
-  SingleTrackConversionTool::buildSingleTrackConversion(
-    const Trk::Track* track) const
-  {
-
-    // some local variables
-    const Trk::TrackParameters* tp = nullptr;
-    AmgSymMatrix(5)  em ;
-    em.setZero();
-    Amg::Vector3D  gp ;
-    gp.setZero();
-    // double chi2 = 0.; int Ndf = 0;
-
-    // get track states on surface
-    const DataVector<const Trk::TrackStateOnSurface>* tsos = track->trackStateOnSurfaces();
-    if(!tsos) return nullptr;
-
-    // iterate over them
-    DataVector<const Trk::TrackStateOnSurface>::const_iterator its,itse = tsos->end();
-    for(its=tsos->begin();its!=itse;++its) {
-
-      // check if this is the first measurement
-      if((*its)->type(Trk::TrackStateOnSurface::Measurement)) {
-
-        // get the parameters at this surface
-        tp = (*its)->trackParameters();
-        if(!tp) {
-          ATH_MSG_WARNING ("Require parameters at first measurement, conversion finder logic broken");
-          return nullptr;
-        }
-
-        em = *(tp->covariance());
-        gp = (tp->position());
-        break;
-      }
-    }
-
-    if(!tp) {
-      return nullptr;
-    }
-
-    //
-    // --- Need to compute a global position covariance matrix as J.C.JT
-    //
-
-    // get transform
-    const Amg::Transform3D  T( tp->associatedSurface().transform());
-
-    // this will be the new transform
-    AmgSymMatrix(3) nCovVtx;
-
-    // ME: use the surface to find out what we do, do not hardcode the geoemtry
-
-    if ( Trk::Surface::Plane == tp->associatedSurface().type() ){
-
-      ///The local position parameters covariance matrix C (2x2)
-      double p11 = em(Trk::locX, Trk::locX);
-      double p12 = em(Trk::locX, Trk::locY);
-      double p21 = em(Trk::locY, Trk::locX);
-      double p22 = em(Trk::locY, Trk::locY);
-
-      ///The Jacobian matrix J (3x2)
-      double Ax[3] = {T(0,0),T(1,0),T(2,0)};
-      double Ay[3] = {T(0,1),T(1,1),T(2,1)};
-      double a11 = Ax[0]; double a12 = Ay[0];
-      double a21 = Ax[1]; double a22 = Ay[1];
-      double a31 = Ax[2]; double a32 = Ay[2];
-
-      ///The A = J.C (3x2)
-      double A11 = a11*p11 + a12*p21; double A12 = a11*p12 + a12*p22;
-      double A21 = a21*p11 + a22*p21; double A22 = a21*p12 + a22*p22;
-      double A31 = a31*p11 + a32*p21; double A32 = a31*p12 + a32*p22;
-
-      ///The A.JT = J.C.JT (3x3)
-      double P11 = a11*A11 + A12*a12; double P12 = A11*a21 + A12*a22; double P13 = A11*a31 + A12*a32;
-      double P21 = A21*a11 + A22*a12; double P22 = A21*a21 + A22*a22; double P23 = A21*a31 + A22*a32;
-      double P31 = A31*a11 + A32*a12; double P32 = A31*a21 + A32*a22; double P33 = A31*a31 + A32*a32;
-
-      ///Construct the new covariance matrix (3x3)
-      nCovVtx(0,0) = P11; nCovVtx(0,1) = P12; nCovVtx(0,2) = P13;
-      nCovVtx(1,0) = P21; nCovVtx(1,1) = P22; nCovVtx(1,2) = P23;
-      nCovVtx(2,0) = P31; nCovVtx(2,1) = P32; nCovVtx(2,2) = P33;
-    }
-    else if (  Trk::Surface::Line == tp->associatedSurface().type()  ) {
-
-      //The local position parameters covariance matrix C (2x2)
-      double p11 = em(Trk::locR, Trk::locR);
-      double p12 = em(Trk::locR, Trk::locZ);
-      double p21 = em(Trk::locZ, Trk::locR);
-      double p22 = em(Trk::locZ, Trk::locZ);
-
-      ///The straight line surface (wire) global directions
-      double A[3] = {T(0,2),T(1,2),T(2,2)};
-
-      ///The particle global direction
-      double Px = tp->momentum().x();
-      double Py = tp->momentum().y();
-      double Pz = tp->momentum().z();
-
-      ///The Jacobian matrix J (3x2)
-      double Bx = A[1]*Pz-A[2]*Py;
-      double By = A[2]*Px-A[0]*Pz;
-      double Bz = A[0]*Py-A[1]*Px;
-      double Bn = 1./sqrt(Bx*Bx+By*By+Bz*Bz); Bx*=Bn; By*=Bn; Bz*=Bn;
-      double a11 = Bx; double a12 = A[0];
-      double a21 = By; double a22 = A[1];
-      double a31 = Bz; double a32 = A[2];
-
-      ///The A = J.C (3x2)
-      double A11 = a11*p11 + a12*p21; double A12 = a11*p12 + a12*p22;
-      double A21 = a21*p11 + a22*p21; double A22 = a21*p12 + a22*p22;
-      double A31 = a31*p11 + a32*p21; double A32 = a31*p12 + a32*p22;
-
-      ///The A.JT = J.C.JT (3x3)
-      double P11 = a11*A11 + A12*a12; double P12 = A11*a21 + A12*a22; double P13 = A11*a31 + A12*a32;
-      double P21 = A21*a11 + A22*a12; double P22 = A21*a21 + A22*a22; double P23 = A21*a31 + A22*a32;
-      double P31 = A31*a11 + A32*a12; double P32 = A31*a21 + A32*a22; double P33 = A31*a31 + A32*a32;
-
-      ///Construct the new covariance matrix (3x3)
-      nCovVtx(0,0) = P11; nCovVtx(0,1) = P12; nCovVtx(0,2) = P13;
-      nCovVtx(1,0) = P21; nCovVtx(1,1) = P22; nCovVtx(1,2) = P23;
-      nCovVtx(2,0) = P31; nCovVtx(2,1) = P32; nCovVtx(2,2) = P33;
-    }
-    else {
-      ATH_MSG_ERROR ("Wrong type of surface, not supported !");
-      return nullptr;
-    }
-
-    // Create the corresponding vector of tracks at that RecVertex. Contains one
-    // track with a new redefined measured perigee.
-    std::vector<Trk::VxTrackAtVertex> tmpVTAV;
-
-    // get the perigee
-    Trk::PerigeeSurface perigeeSurface(gp);
-    const Trk::TrackParameters* perpar = m_extrapolator->extrapolate(
-      *tp, perigeeSurface, Trk::anyDirection, false, Trk::pion);
-    if(!perpar || !perpar->covariance() ){
-      ATH_MSG_WARNING ("Perigee creation for single track at its first measurement failed, should never happen !");
-      return nullptr;
-    }
-
-
-    Trk::TrackParameters* pp = perpar->clone();
-    delete perpar;
-    Trk::VxTrackAtVertex trkV(1., pp);
-
-    Trk::LinkToTrack * linkTT = new Trk::LinkToTrack();
-
-    linkTT->setElement(track);
-    trkV.setOrigTrack(linkTT);
-    tmpVTAV.push_back(trkV);
-
-    xAOD::Vertex* vertex = new xAOD::Vertex();
-    vertex->makePrivateStore();
-    vertex->setPosition(gp);
-    vertex->setCovariancePosition(nCovVtx);
-    vertex->setVertexType(xAOD::VxType::ConvVtx);
-    vertex->setFitQuality( 0, 0);
-    for (unsigned int i = 0; i < tmpVTAV.size() ; ++i) {
-      Trk::VxTrackAtVertex vtxTrack = tmpVTAV[i];
-      vertex->vxTrackAtVertex().push_back(vtxTrack);
-    }
-
-    return vertex;
-  }
-
-  // -------------------------------------------------------
-  // preselection cuts on tracks
-  // -------------------------------------------------------
-  bool
-  SingleTrackConversionTool::selectSingleTrackConversion(
-    const Trk::Track* track) const
-  {
-
-    const Trk::TrackParameters* trkPar = m_helpertool->getTrkParameters(track);
-
-    if (!trkPar) {
-      return false;
-    }
-
-    /*
-     * This should be already present from previous
-     * steps
-     */
-    const Trk::TrackSummary* tSum =track->trackSummary();
-    if (!tSum) {
-      return false;
-    }
-    bool pass = true;
-
-    const bool expectedHitInBLayer =
-      tSum->get(Trk::expectInnermostPixelLayerHit);
-    if (expectedHitInBLayer) {
-      // ME: cut on minInitR if blayer is ok
-      if (trkPar->position().perp() < m_minInitR)
-        pass = false;
-    } else {
-      // ME: cut on minInitR_NBLay if blayer is off
-      if (trkPar->position().perp() < m_minInitR_noBLay)
-        pass = false;
-    }
-
-    int nTrtHits = tSum->get(Trk::numberOfTRTHits);
-    int nTrtOutliers = tSum->get(Trk::numberOfTRTOutliers);
-    int ntrt = nTrtHits + nTrtOutliers;
-    int nTrtXenonHits = tSum->get(Trk::numberOfTRTXenonHits);
-
-    if (ntrt > 0 &&
-        (!m_PIDonlyForXe ||
-         nTrtXenonHits == ntrt)) { // only check TRT PID if m_PIDonlyForXe is
-                                   // false or all TRT hits are Xenon hits
-      double prob = tSum->getPID(Trk::eProbabilityHT);
-      if (prob < m_singleThreshold)
-        pass = false;
-    }
-
-    // do we reject tracks with blayer ?
-    int nBLHits = tSum->get(Trk::numberOfInnermostPixelLayerHits) +
-                  tSum->get(Trk::numberOfInnermostPixelLayerOutliers);
-    if (nBLHits > m_maxBLhits)
-      pass = false;
-
-    delete tSum;
-    return pass;
-  }
 
   // -------------------------------------------------------
   // building single track conversions from a particle