IAP GITLAB

Skip to content
Snippets Groups Projects
Commit dff92c25 authored by Maximilian Reininghaus's avatar Maximilian Reininghaus :vulcan:
Browse files

commented testCOMBoost

parent 4e16ef98
No related branches found
No related tags found
No related merge requests found
......@@ -39,33 +39,42 @@ TEST_CASE("boosts") {
return E * E / cSquared - p.squaredNorm();
};
MassType const projectileMass = 4_GeV / cSquared;
Vector<momentum_d> pProjectileLab{rootCS, {0_GeV / c, 100_GeV / c, 0_GeV / c}};
// define projectile kinematics in lab frame
MassType const projectileMass = 1._GeV / cSquared;
Vector<momentum_d> pProjectileLab{rootCS, {0_GeV / c, 1_PeV / c, 0_GeV / c}};
EnergyType const eProjectileLab = energy(projectileMass, pProjectileLab);
// define target kinematics in lab frame
MassType const targetMass = 1_GeV / cSquared;
Vector<momentum_d> pTargetLab{rootCS, {0_Ns, 0_Ns, 0_Ns}};
EnergyType const eTargetLab = energy(targetMass, pTargetLab);
// define boost to com frame
COMBoost boost(eProjectileLab, pProjectileLab, targetMass);
// boost projecticle
auto const [eProjectileCoM, pProjectileCoM] =
boost.toCoM(eProjectileLab, pProjectileLab);
// boost target
auto const [eTargetCoM, pTargetCoM] = boost.toCoM(eTargetLab, pTargetLab);
// sum of momenta in CoM, should be 0
auto const sumPCoM = pProjectileCoM + pTargetCoM;
CHECK(sumPCoM[2] / (1_GeV / c) == Approx(0).margin(absMargin));
// mandelstam-s should be invariant under transformation
CHECK(s(eProjectileLab + eTargetLab,
pProjectileLab.GetComponents() + pTargetLab.GetComponents()) /
(1_GeV / c) / (1_GeV / c) ==
Approx(s(eProjectileCoM + eTargetCoM, pProjectileCoM + pTargetCoM) / (1_GeV / c) /
(1_GeV / c)));
CHECK(sumPCoM[2] / (1_GeV / c) == Approx(0).margin(absMargin));
// boost back...
auto const [eProjectileBack, pProjectileBack] =
boost.fromCoM(eProjectileCoM, pProjectileCoM);
// ...should yield original values before the boosts
CHECK(eProjectileBack / eProjectileLab == Approx(1));
CHECK((pProjectileBack - pProjectileLab).norm() / (1_GeV / c) ==
Approx(0).margin(absMargin));
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment