Skip to content

Hardcoded Proton Mass in Inclusive Kinematics Reconstruction #2560

@rahmans1

Description

@rahmans1

Bug: Hardcoded Proton Mass in Inclusive Kinematics Reconstruction

Not sure if it's a bug or a feature....

Affected Files

  • src/algorithms/reco/InclusiveKinematicsDA.cc:79
  • src/algorithms/reco/InclusiveKinematicsElectron.cc:64
  • src/algorithms/reco/InclusiveKinematicsJB.cc:63
  • src/algorithms/reco/InclusiveKinematicsSigma.cc:79
  • src/algorithms/reco/InclusiveKinematicsESigma.cc:87

Description

All reconstructed inclusive kinematics methods hardcode the proton mass (PDG 2212)
when computing W and ν, regardless of the actual beam hadron species. This produces
incorrect results for ion beams (e.g. Au, Pb, He-3).

Example (DA method)

// InclusiveKinematicsDA.cc:79-85
static const auto m_proton = m_particleSvc.particle(2212).mass;  // hardcoded
const auto nu_da = Q2_da / (2. * m_proton * x_da);
const auto W_da  = sqrt(m_proton * m_proton + 2 * m_proton * nu_da - Q2_da);

What Works Correctly

The beam 4-momentum construction already uses the actual PDG mass of the beam particle:

// InclusiveKinematicsDA.cc:46-49
const auto& pi_particle = (*mc_beam_protons)[0];
const PxPyPzEVector pi(round_beam_four_momentum(
    pi_particle.getMomentum(),
    m_particleSvc.particle(pi_particle.getPDG()).mass,  // correct
    {41.0, 100.0, 275.0}, m_crossingAngle));

So x, Q2, and y are computed correctly. Only W and ν are affected.

Reference: Correct Pattern

InclusiveKinematicsTruth.cc:55 already does this correctly:

const auto pi_mass = m_particleSvc.particle(pi_coll[0].getPDG()).mass;

Proposed Fix

Replace the hardcoded lookup with the actual beam particle PDG mass in each affected
file, following the pattern used in InclusiveKinematicsTruth:

// Before
static const auto m_proton = m_particleSvc.particle(2212).mass;

// After
const auto m_beam = m_particleSvc.particle(pi_particle.getPDG()).mass;

Then substitute m_beam for m_proton in the W and ν expressions.

Note: For nuclear ion beams, whether to use the full ion mass or the per-nucleon
mass in W and ν is a physics convention that should be confirmed with collaborators.

Impact Summary

| Variable | Reconstructed methods | Truth method |
|----------|-----------------------|--------------|
| x, Q2, y | Correct               | Correct      |
| W, ν     | Wrong for ion beams   | Correct      |
| ```      |                       |              |

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions