Fix remaining boundary surface misses
There are still situations, where the boundary surface is missed in the navigation and the navigation carries on. In the following example you see two tracks escaping the tracker volume:
Eventually, the loop protection kicks in, but ideally this should not happen.
I've added an option to pick single events/tracks to dump into debug stream in the framework:
PropagatorOptions options(context.geoContext, context.magFieldContext);
options.pathLimit = pathLength;
options.debug = m_cfg.debugOutput;
// Check if the event number overrules the debug output
if (options.debug and m_cfg.debugEventNr > 0){
options.debug = (m_cfg.debugEventNr == context.eventNumber);
// check if the trackc number overrules the debug output
if (options.debug and m_cfg.debugTrackNr > 0){
options.debug = (m_cfg.debugTrackNr == testNumber);
}
}
Turns out the BoundarySurface
is not reachable, I refined the screen output for such cases:
>>> LStrip::Barrel | Boundary 1 out of 1 not reachable, switching to next.
So, the compatible boundary found to leave the volume is not valid anymore, I will implement a re-triggering of the boundary search in this case.
Implementing this yields:
Edited by Andreas Salzburger