Skip to content

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 the Stepper. This prepares for the MultiComponentStepper
  • it harmonises the updateSurfaceStatus(...), i.e. it lets the Stepper decide how to set the step estimation to a surface
  • it moves the releaseStep() to the Stepper itself
  • it moves the public API of ConstrainedStep out of the detail 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.

Screenshot_2019-12-03_at_11.45.06

With this MR, mu~200 fatras simulation will run finally at Hz level: Screenshot_2019-12-09_at_11.32.05

Edited by Andreas Salzburger

Merge request reports