Fix mismatched decay descriptor and input variable in ParticleCombiners
This merge request fixes a mismatch between the the decay descriptor and input list into ParticleCombiner in the Majorana neutrino / Heavy Neutral Lepton (HNL) lines with long and downstream tracks for a lepton-pion final state. The issue was identified in Issue #988. Several cuts are also applied to keep the bandwidth impact of this fix manageable.
An example of the issue is below:
def makeParticleFoo(inputs):
...
...
....
return ParticleCombiner(
(muons, pions),
DecayDescriptor = 'KS0 -> pi+ mu-,
...
)
ParticleCombiner takes inputs whose particle ID do not match the decay descriptor. It then looks for pions in the muon particle container and muons in the pion particle container. In both cases, it finds no particles, and returns no output. The effect of this then the silent and total loss of all output for all affected lines. The fix is simply matching the input ordering to the decay descriptor ordering. E.g. (muons, pions) -> (pions, muons)
The issue dates back to the initial implementation of the lines in 2022. Lepton-lepton final states and T track reconstruction are unaffected.
From a physics perspective, this is not catastrophic. It has been established that the primary sensitivity for HNLs outside of existing limits is due to T tracks (downstream tracks would also contribute, but are known to be dysfunctional). Long tracks (i.e. shorter lifetimes) are still covered by the lepton-lepton decay modes which have a higher branching fraction and cover the same parameter space (in the standard HNL model). This is particularly relevant for HNL masses > 3 GeV where the lepton-pion phenomenology has a branching fraction approximately an order of magnitude less than the lepton-lepton final state.
A fix without any further tuning has been determined to give an unacceptable +170 MB/s bandwidth increase. For this reason, several cuts are tightened. All 'loose' lines are also removed. The idea was to have raw banks persisted with tight lines and raw banks not persisted with loose lines. However, this was never implemented and, bandwidth being limited, is considered unnecessary (Spencer's note: I would rather any additional bandwidth for HNLs to be allocated to either the T track lines or a downstream tracking selection matching the T track implementation).
With the additional cuts, this merge request contributes to an overall ~-30 MB/s bandwidth decrease. Details are given on a per-line basis below. A particular highlight is that the Hlt2QEE_BpToMajoE_MajoToEE_LL_TightDecision is forecast to drop from the 2nd highest BW QEE turbo line to something like the 15th.
| Line | Reference Rate (kHz) | Reference Total Bandwidth (MB/s) | Comparison Rate (kHz) | Comparison Total Bandwidth (MB/s) | Difference in Rate (kHz) | Difference in Total Bandwidth (MB/s) |
|---|---|---|---|---|---|---|
| Hlt2QEE_BpToMajoMu_MajoToEPi_DD_TightDecision | 0 | 0 | 0.0774 | 0.320635 | 0.0774 | 0.320635 |
| Hlt2QEE_BpToMajoMu_MajoToEPi_LL_TightDecision | 0 | 0 | 0.0129 | 0.110498 | 0.0129 | 0.110498 |
| Hlt2QEE_BpToMajoE_MajoToEMu_DD_TightDecision | 0.0129 | 0.0854358 | 0 | 0 | -0.0129 | -0.0854358 |
| Hlt2QEE_BpToMajoMu_MajoToEE_DD_TightDecision | 0.0387 | 0.222816 | 0.0258 | 0.11284 | -0.0129 | -0.109976 |
| Hlt2QEE_BpToMajoMu_MajoToEMu_DD_TightDecision | 0.1935 | 0.701114 | 0.0903 | 0.32602 | -0.1032 | -0.375094 |
| Hlt2QEE_BuToKs0Pi_Ks0ToPiPi_LLDecision | 0.2322 | 0.802073 | 0.1032 | 0.341622 | -0.129 | -0.460451 |
| Hlt2QEE_BpToMajoMu_MajoToMuE_LL_TightDecision | 0.1161 | 0.960776 | 0.0516 | 0.408418 | -0.0645 | -0.552358 |
| Hlt2QEE_BpToMajoE_MajoToMuMu_LL_TightDecision | 0.3096 | 2.47844 | 0.2193 | 1.69301 | -0.0903 | -0.785429 |
| Hlt2QEE_BuToKs0Pi_Ks0ToPiPi_DDDecision | 0.6579 | 2.17851 | 0.4128 | 1.38838 | -0.2451 | -0.790132 |
| Hlt2QEE_BpToMajoMu_MajoToMuE_DD_TightDecision | 0.258 | 1.58646 | 0.0645 | 0.263527 | -0.1935 | -1.32294 |
| Hlt2QEE_BpToMajoMu_MajoToEMu_LL_TightDecision | 0.129 | 1.67721 | 0.0258 | 0.306497 | -0.1032 | -1.37072 |
| Hlt2QEE_BpToMajoE_MajoToEE_DD_TightDecision | 0.5031 | 2.25642 | 0.0387 | 0.170211 | -0.4644 | -2.0862 |
| Hlt2QEE_BpToMajoE_MajoToMuE_LL_TightDecision | 0.6321 | 3.72111 | 0.2709 | 1.28971 | -0.3612 | -2.4314 |
| Hlt2QEE_BpToMajoE_MajoToEMu_LL_TightDecision | 0.645 | 3.90383 | 0.2064 | 1.05695 | -0.4386 | -2.84689 |
| Hlt2QEE_BpToMajoMu_MajoToEE_LL_TightDecision | 0.4515 | 3.42556 | 0.0387 | 0.302399 | -0.4128 | -3.12317 |
| Hlt2QEE_BpToMajoE_MajoToEE_LL_TightDecision | 5.1084 | 25.1025 | 0.6966 | 3.27897 | -4.4118 | -21.8235 |