From c083a26fc7f2ec9dd57202e4fe5b197e54035695 Mon Sep 17 00:00:00 2001 From: Maximilian Reininghaus <maximilian.reininghaus@kit.edu> Date: Mon, 29 Apr 2019 13:13:50 -0300 Subject: [PATCH] set secondaries onshell --- Processes/UrQMD/UrQMD.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Processes/UrQMD/UrQMD.cc b/Processes/UrQMD/UrQMD.cc index 1f7e44215..04d5ae701 100644 --- a/Processes/UrQMD/UrQMD.cc +++ b/Processes/UrQMD/UrQMD.cc @@ -182,12 +182,14 @@ corsika::process::EProcessReturn UrQMD::DoInteraction(SetupProjectile& vProjecti for (int i = 0; i < sys_.npart; ++i) { auto const code = ConvertFromUrQMD(isys_.ityp[i], isys_.iso3[i]); - auto const energy = coor_.p0[i] * 1_GeV; + // "coor_.p0[i] * 1_GeV" is likely off-shell as UrQMD doesn't preserve masses well auto momentum = geometry::Vector( zAxisFrame, geometry::QuantityVector<dimensionless_d>{coor_.px[i], coor_.py[i], coor_.pz[i]} * 1_GeV); + auto const energy = sqrt(momentum.squaredNorm() + square(particles::GetMass(code))); + momentum.rebase(originalCS); // transform back into standard lab frame std::cout << i << " " << code << " " << momentum.GetComponents() << std::endl; -- GitLab