CSS forced collinear splittings cause infinite loop when CSS_EW_MODE enabled
The commits to introduce forced splittings of IS heavy quarks ( aec0789d and 9b40323d) seem to not actually force the splitting if the kinematics fail - unless CSS_EW_MODE is enabled. In that case, the splitting is repeatedly forced, somehow bypassing the counter introduced in the second commit, and event generation stalls. This has been difficult to reliably replicate, since changing almost any runcard parameter results in a different event stalling.
In my installation (latest master 55e648d6 on IPPP Centos7), the following runcard stalls at event 3515:
BEAMS: [2212, 2212]
BEAM_ENERGIES: 6500
SCALES: VAR{Abs2(p[2]+p[3])}
EVENTS: 100
EVENT_GENERATION_MODE: Weighted
EVENT_SEED_MODE: 3
PROCESSES:
- 1 -1 -> 12 -12:
Order: {QCD: 0, EW: 2}
ME_Generator: Amegic
CSS_EW_MODE: 1
CSS_FORCED_DECAYS: true
YFS:
MODE: 0
BEAM_REMNANTS: None
FRAGMENTATION: None
MI_HANDLER: None
Switching either CSS_EW_MODE or CSS_FORCED_DECAYS to false fixes the stalling issue. Inspecting the debugging output in either case shows a g -> c cb splitting, then MakeKinematics() failing, and a different splitting occurring instead. With the above runcard as-is, the splitting continues to be forced and we get an infinite loop.
Since CSS_EW_MODE is off by default currently, I think this is not a blocker for 3.0.0 but since we advertise it in the manual we do need to fix this.