Fork me on GitHub

Changeset 7b0e00c in git for modules/ParticlePropagator.cc


Ignore:
Timestamp:
Feb 22, 2016, 2:29:04 PM (9 years ago)
Author:
Dan Guest <dguest@…>
Parents:
cf0c13c
Message:

Change candidate momentum to reflect the perigee momentum

In the particle propagator the candidate momentum is currently copied
from the truth particle momentum. This is correct for prompt
particles, but inconsistent with most (all?) collider experiments,
which use the perigee momentum. The effect is especially noticeable in
low-pt tracks coming from a highly displaced vertex.

This commit fixes this by adjusting the candidate px and py, and by
extension the candidate dxy. The discrepancy should have a minimal
effect on most quantities, but could prevent problems which arise if
the user adds any vertex reconstruction algorithms to the standard
Delphes modules.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • modules/ParticlePropagator.cc

    rcf0c13c r7b0e00c  
    239239      zd = z + (TMath::Sqrt(xd*xd + yd*yd) - TMath::Sqrt(x*x + y*y))*pz/pt;
    240240
     241      // use perigee momentum rather than original particle
     242      // momentum, since the orignal particle momentum isn't known
     243      double r_sign = std::signbit(r) ? 1 : -1;
     244      px = r_sign * pt * (y_c / r_c);
     245      py = r_sign * pt * (-x_c / r_c);
     246      double eta_p = candidateMomentum.Eta();
     247      double phi_p = std::atan2(py, px);
     248      candidateMomentum.SetPtEtaPhiE(pt, eta_p, phi_p, candidateMomentum.E());
     249
    241250      // calculate impact paramater
    242251      dxy = (xd*py - yd*px)/pt;
Note: See TracChangeset for help on using the changeset viewer.