OPALX (Object Oriented Parallel Accelerator Library for Exascal) master (dc2a29eed580)
OPALX
Loading...
Searching...
No Matches
TestMuonDecaySpectrum.cpp File Reference

Distribution-level test of MuonDecay against the polarized V-A angular spectrum. More...

#include <gtest/gtest.h>
#include <mpi.h>
#include <array>
#include <cmath>
#include <cstddef>
#include <iostream>
#include <memory>
#include <string>
#include <vector>
#include "Ippl.h"
#include "PartBunch/ParticleContainer.hpp"
#include "Physics/MuonDecay.h"
#include "Physics/ParticleProperties.h"
#include "Physics/Physics.h"
#include "Processes/GlobalProcesses/MuonDecay.h"
#include "SpectrumTestSupport.h"
#include "Utilities/Options.h"
Include dependency graph for TestMuonDecaySpectrum.cpp:

Go to the source code of this file.

Detailed Description

Distribution-level test of MuonDecay against the polarized V-A angular spectrum.

Fires fully-polarized muons (|P| = 1, spin along \(+\hat z\)) at rest through the full MuonDecay::createDaughterParticles pipeline (ParticleContainer + Kokkos pool seeded from Options::seed), reads the daughter electron momenta back to the host, and compares the \(\cos\theta\) distribution ( \(\theta\) measured from the muon spin) against the analytic V-A angular marginal

\[ p(c) = \frac{1}{2}\left(1 + A\,c\right), \quad A = s\,|P|\,\frac{N}{Z}, \quad N = \int_{a}^{1} 2 x^2 (2x - 1)\,dx, \quad Z = \int_{a}^{1} 2 x^2 (3 - 2x)\,dx, \quad a = x_{\min}, \]

where \(s = \mathrm{asymSign}\) is \(+1\) for \(\mu^-\) and \(-1\) for \(\mu^+\). The energy marginal \(f(x) = 2 x^2 (3 - 2x)\) is the polarization-independent Michel spectrum and is covered elsewhere (TestMuonDecay).

References:

Tests in this file:

  • MuonDecaySpectrumTest::MuMinusAngularSpectrumMatchesPolarization — drives the full pipeline with \(\mu^-\) (asymmetry sign \(s = +1\)) and checks the daughter \(\cos\theta\) histogram against the linear analytic form \(p(c) \propto 1 + A c\) with the slope \(A\) predicted by the integrals above.
  • MuonDecaySpectrumTest::MuPlusAngularSpectrumMatchesPolarization — same setup with \(\mu^+\) ( \(s = -1\)), checking that the slope \(A\) flips sign relative to \(\mu^-\) — the V-A signature.

Writes muon_angular_spectrum_mu_minus.csv and muon_angular_spectrum_mu_plus.csv into the test working directory; those CSVs are consumed by tools/spectrum_plots/plot_spectrum.py (use –overlay to compare the two).

Definition in file TestMuonDecaySpectrum.cpp.