47 unsigned int iLowest(0);
61 return std::pair<StepLimitType, double>(
static_cast<StepLimitType>(iLowest), lowest);
126 printOut <<
"stp_fieldCurv (medium limit): stepsize limited by curvature and magnetic field inhomogenities";
129 printOut <<
"stp_momLoss (medium limit): stepsize limited by stepper because maximum momLoss is reached";
132 printOut <<
"stp_sMax (medium limit): stepsize limited by SMax defined in #estimateStep()";
135 printOut <<
"stp_sMaxArg (hard limit): stepsize limited by argument maxStepArg passed to #estimateStep()";
138 printOut <<
"stp_boundary (hard limit): stepsize limited by stepper because material boundary is encountered";
141 printOut <<
"stp_plane (hard limit): stepsize limited because destination plane is reached";
void reduceLimit(StepLimitType type, double value)
absolute of value will be taken! If limit is already lower, it will stay.
StepLimits & operator=(const StepLimits &other)
std::pair< StepLimitType, double > getLowestLimit(double margin=1.E-3) const
Get the lowest limit.
std::vector< double > limits_
void setStepSign(char signedVal)
sets stepSign_ to sign of signedVal
double getLowestLimitVal(double margin=1.E-3) const
Get the unsigned numerical value of the lowest limit.
static const double maxLimit_
Defines for I/O streams used for error and debug printing.