diff --git a/Tracking/TrkVertexFitter/TrkVertexSeedFinderUtils/src/GaussianTrackDensity.cxx b/Tracking/TrkVertexFitter/TrkVertexSeedFinderUtils/src/GaussianTrackDensity.cxx index 7be55385a3cb8c6763de926c6767f5e23bc6af79..146e7e668c011e8134bf8989217cfa14faacc421 100644 --- a/Tracking/TrkVertexFitter/TrkVertexSeedFinderUtils/src/GaussianTrackDensity.cxx +++ b/Tracking/TrkVertexFitter/TrkVertexSeedFinderUtils/src/GaussianTrackDensity.cxx @@ -112,14 +112,11 @@ namespace Trk const double d0SignificanceCut = m_d0MaxSignificance * m_d0MaxSignificance; const double z0SignificanceCut = m_z0MaxSignificance * m_z0MaxSignificance; - for (const TrackParameters* iparam : perigeeList) - { - const Perigee* itrk = dynamic_cast<const Perigee*>(iparam); - if (itrk != nullptr) - { - density.addTrack (*itrk, - d0SignificanceCut, - z0SignificanceCut); + for (const TrackParameters* iparam : perigeeList) { + if (iparam && iparam->surfaceType() == Trk::Surface::Perigee) { + density.addTrack(*(static_cast<const Perigee*>(iparam)), + d0SignificanceCut, + z0SignificanceCut); } } } @@ -129,12 +126,12 @@ namespace Trk GaussianTrackDensity::TrackEntry::TrackEntry(double c0, double c1, double c2, - double zMin, double zMax) + double zMin, double zMax) : c_0(c0), c_1(c1), c_2(c2), lowerBound(zMin), upperBound(zMax) { } // Dummy constructor for binary search - GaussianTrackDensity::TrackEntry::TrackEntry(double z) + GaussianTrackDensity::TrackEntry::TrackEntry(double z) : c_0(0), c_1(0), c_2(0), lowerBound(z), upperBound(z) { } @@ -149,10 +146,10 @@ namespace Trk double GaussianTrackDensity::TrackDensity::trackDensity (double z) const { double firstDeriv, secondDeriv = 0; // unused in this case - double density = 0; + double density = 0; // use the existing trackDensity method to avoid duplication of logic - trackDensity(z,density,firstDeriv,secondDeriv); - return density; + trackDensity(z,density,firstDeriv,secondDeriv); + return density; } @@ -168,14 +165,14 @@ namespace Trk { TrackDensityEval densityResult(z); for (const auto & trackAndPerigeePair : m_lowerMap){ - densityResult.addTrack(trackAndPerigeePair.first); + densityResult.addTrack(trackAndPerigeePair.first); } density = densityResult.density(); firstDerivative = densityResult.firstDerivative(); - secondDerivative = densityResult.secondDerivative(); + secondDerivative = densityResult.secondDerivative(); } - std::pair<double,double> + std::pair<double,double> GaussianTrackDensity::TrackDensity::globalMaximumWithWidth (MsgStream& msg) const { // strategy: @@ -200,7 +197,7 @@ namespace Trk double slope = 0.0; double curvature = 0.0; trackDensity( trialZ, density, slope, curvature ); - if ( curvature >= 0.0 || density <= 0.0 ) continue; + if ( curvature >= 0.0 || density <= 0.0 ) continue; updateMaximum( trialZ, density, curvature, maximumPosition, maximumDensity, maxCurvature); trialZ += stepSize( density, slope, curvature ); trackDensity( trialZ, density, slope, curvature );