          /*
          // 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();
          }*/
