OversteppingLimit and pathLimit setting
Closes #672 (closed)
This MR concludes the shift to the new intersect(...)
method:
- the last path/limit settings are moved from the
Navigator
to theStepper
. This prepares for theMultiComponentStepper
- it harmonises the
updateSurfaceStatus(...)
, i.e. it lets theStepper
decide how to set the step estimation to a surface - it moves the
releaseStep()
to theStepper
itself - it moves the public API of
ConstrainedStep
out of thedetail
namespace - it fixes the
LoopCorrection
to know about negative path lengths - adapts the
StepperConcept
for this. - it finally removes the HACK code (which becomes dead code, tested on 5*10^6 tracks) :
// @HOTFIX to break the RK step trying, @TODO will be replaced
// by proper overstepping mechanism
if (++stepAttempts == 100) {
// step in mm steps, costly but should do
state.stepping.stepSize = state.stepping.navDir * 1_mm;
break;
}
This MR also fixes the problem of potential loops (still present in the GenericDetector examples), this is an example of pT = 50 MeV
tracks with full loop protection.
With this MR, mu~200
fatras simulation will run finally at Hz level:
Edited by Andreas Salzburger