/* // Missing-mass reconstruction for 27Al + alpha -> alpha + 27Al*. // The beam travels along +z; the target alpha is at rest. if (std::isfinite(EBeam_track) && std::isfinite(Tb_recon) && EBeam_track >= 0.0 && Tb_recon >= 0.0 && projectileDirection.Mag2() > 0.0) { const double beamMass = al27Iso.Mass; const double alphaMass = alphaIso.Mass; const double beamMomentum = std::sqrt(EBeam_track * (EBeam_track + 2.0 * beamMass)); const double alphaMomentum = std::sqrt(Tb_recon * (Tb_recon + 2.0 * alphaMass)); TLorentzVector beam4; beam4.SetPxPyPzE(0.0, 0.0, beamMomentum, beamMass + EBeam_track); TLorentzVector target4; target4.SetPxPyPzE(0.0, 0.0, 0.0, alphaMass); TLorentzVector outgoingAlpha4; outgoingAlpha4.SetVectM(projectileDirection.Unit() * alphaMomentum, alphaMass); const TLorentzVector missingAl27 = beam4 + target4 - outgoingAlpha4; const double missingMass2 = missingAl27.M2(); Ex_kin = missingMass2 >= 0.0 ? std::sqrt(missingMass2) - beamMass : TMath::QuietNaN(); EBeam_kin = EBeam_track; vX_kin = vX_track; vY_kin = vY_track; vZ_kin = vZ_track; } else { Ex_kin = TMath::QuietNaN(); }*/