Backward Compatibility Tests
This page summarizes our backward-compatibility studies for the neutrino channel in KKMC (Fortran) and KKMCee (C++), using LEP-style neutrino observables and cuts. It also explains how to generate samples with mixed \(\tau\) decays, and outlines the changes required to compile and run older F77 versions of KKMC with present-day compilers.
LEP-Style Neutrino Observable: Nu7 Cut
As a benchmark, we tried to recreate the observables defined in Ref. [1] and we used the Nu7 cut defined in Ref. [2] for the process \(e^+e^- \to \nu\bar{\nu}n\gamma\).
The selection requires at least one photon satisfying:
- \(x_T > 0.05\)
- \(|\cos\theta_\gamma| < \cos(\pi/12)\)
where \(x_T = p_T^\gamma / E_{\text{beam}}\), and \(\theta_\gamma\) is the angle of the photon with respect to the beam axis.
Important note on event weights
A potentially confusing point is the meaning of data card parameter #10:
- #10 = 0: generates a weight-one sample
- #10 = 1: generates a weighted-event sample
When using weighted events, the event weights must be included consistently in the evaluation of acceptances and cut cross-sections. If this is not done, the extracted result can be biased. The file to be modified in the F77 4.32.01 version of KKMC is ffbench/ProdMC.f. The selection is implemented in Robol1 subroutine.
Comparison table
| Configuration | Cross-section [pb] | Notes |
|---|---|---|
| Reference result from Ref. [1] | 4.5206 +- 0.00454 | CEEX1 benchmark |
| KKMC Fortran, varied-weighted events | 4.551 | Parameter #10 = 1 |
| KKMC Fortran, weight-one events | 4.529 | Parameter #10 = 0 |
| KKMCee C++, varied-weighted events | 4.550 | Parameter #10 = 1 |
| KKMCee C++, weight-one events | 4.563 | Parameter #10 = 0 |
Summary
The results from the different implementations are consistent within the statistical uncertainty of the 1M-event samples. After applying the proper weighted-event normalization, the results are compatible with the historical LEP benchmark.
Reference
- [1] D. Bardin, S. Jadach, T. Riemann, Z. Was, Prediction for \(\bar{\nu} \nu \gamma\) Production at LEP, hep-ph/0110371.
- [2] M. Kobel, Z. Was, Two-Fermion Production in Electron-Positron Collisions, hep-ph/0007180
Generating Sample Of Mixed \(\tau\) Decays
It is possible to generate samples in which the two \(\tau\) leptons are forced to decay into different classes of channels. For example, one may want \(\tau^+\) to decay leptonically, while \(\tau^-\) is restricted to selected one-prong hadronic modes.
This can be achieved by modifying the routine TAURDF, which allows separate decay-channel settings for \(\tau^+\) and \(\tau^-\) before event generation.
In the example below, the routine is adjusted so that:
- \(\tau^-\) decays only leptonically (\(e\nu\bar{\nu}\) or \(\mu\nu\bar{\nu}\)),
- \(\tau^+\) decays only into a selected mixture of hadronic one-prong modes:- \(\pi\nu,\; \pi\pi^0\nu,\; \pi\pi^0\pi^0\nu.\)
The implementation requires editing TAURDF by hand.
A Fortran example is provided here:
At present, this kind of channel selection is naturally implemented on the Fortran side. In principle, one could also implement the same logic in C++ and integrate it into the basf2 framework. However, this may conflict with Belle II software conventions, so one should first decide which approach is preferred and consistent with the framework rules.
Legacy Compiler Fixes For Old F77 KKMC
Old versions of KKMC f77 will not compile with present day compilers. The following changes are necessary:
- In file dizet/bhang4_640.f, add "REAL\(*\)8 X" after line number 1634 "IMPLICIT REAL\(*\)8(A-H,O-W,Y-Z)".
- In file KK2F/CEEX.f, remove "CosThetD" from line 1217.
- In file KK2F/CEEX.f, add "DOUBLE PRECISION CosThetD" after line number 1219 "DOUBLE COMPLEX GSW(100)".
- In file glibk/GLK.f, change "m_index" to "m_idmax" in line number 1869.