Skip to content

Fix charge for momentum determination with pT kick

Michel De Cian requested to merge decianm-fixChargePtKick into 2024-patches

Fix charge for momentum determination with pT kick.

In TrackPtKick the charge sign was wrongly estimated for Magnet Down, for StandaloneMuonRec for Magnet Up. This came from a double usage of the field information in the following lines:

    // charge
    int sign = 1;
    if ( curv < TrackParameters::hiTolerance ) { sign *= -1; }
    if ( bdl.x() < TrackParameters::hiTolerance ) { sign *= -1; }
    q = -1. * ( magnet.isDown() ? -1 : 1 ) * sign;

where bdl.x() and magnet.isDown() are both sensitive to the orientation of the magnetic field. Given that the original TrackPtKick has been used for a while I tried to trace back to source of the code. Looking at the original code in @erodrigu repository in 2005 (and thanks for keeping this page alive for almost 20 years!) I already see that the magnet polarity information was used twice. Unless I am missing something, this was wrong for quite some time, or some definition changed in the background and it was not taken into account by modifying the code.

@needham for the original author.

@rmatev @rowina @mveghel @dovombru

Edited by Michel De Cian

Merge request reports

Loading