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

Regression tests for CAIN-validated linear-Compton energy and angle spectra. More...

#include "LinearComptonSpectrumCommon.h"
#include "Utilities/Options.h"
#include "gtest/gtest.h"
#include <cstdlib>
#include <filesystem>
#include <sstream>
#include <stdexcept>
#include <string>
Include dependency graph for TestLinearComptonSpectrum.cpp:

Go to the source code of this file.

Functions

 TEST (TestLinearComptonSpectrum, WeakFieldSpectrumMatchesCainReference)
 
 TEST (TestLinearComptonSpectrum, WeakFieldSampledSpectrumMatchesCainReference)
 
 TEST (TestLinearComptonSpectrum, WeakFieldAngularSpectrumMatchesCainReference)
 
 TEST (TestLinearComptonSpectrum, WeakFieldSampledAngularSpectrumMatchesCainReference)
 
 TEST (TestLinearComptonSpectrum, WeakFieldJointSpectrumMatchesCainReference)
 
 TEST (TestLinearComptonSpectrum, WeakFieldSampledJointSpectrumMatchesCainReference)
 
 TEST (TestLinearComptonSpectrum, FiniteBeamSpectrumMatchesCainReference)
 
 TEST (TestLinearComptonSpectrum, FiniteBeamAngularSpectrumMatchesCainReference)
 
 TEST (TestLinearComptonSpectrum, FiniteBeamJointSpectrumMatchesCainReference)
 
 TEST (TestLinearComptonSpectrum, FiniteBeamEnergySpreadSpectrumMatchesCainReference)
 
 TEST (TestLinearComptonSpectrum, FiniteBeamEnergySpreadAngularSpectrumMatchesCainReference)
 
 TEST (TestLinearComptonSpectrum, FiniteBeamEnergySpreadJointSpectrumMatchesCainReference)
 
 TEST (TestLinearComptonSpectrum, FiniteBeamOverlapSpectrumMatchesCainReference)
 
 TEST (TestLinearComptonSpectrum, FiniteBeamOverlapAngularSpectrumMatchesCainReference)
 

Detailed Description

Regression tests for CAIN-validated linear-Compton energy and angle spectra.

This file mixes two validation styles:

  • direct deterministic comparisons against stored CAIN histograms for the single-electron benchmark, and
  • subprocess-driven regeneration of finite-beam benchmark CSV files through LinearComptonSpectrumBenchmark, followed by comparison against stored CAIN references.

The histogram checks use area, mean, and L1-distance tolerances instead of pointwise equality. That keeps the tests stable across small Monte Carlo and quadrature differences while still detecting shape regressions in the photon spectra.

Definition in file TestLinearComptonSpectrum.cpp.

Function Documentation

◆ TEST() [1/14]

TEST ( TestLinearComptonSpectrum  ,
FiniteBeamAngularSpectrumMatchesCainReference   
)

◆ TEST() [2/14]

TEST ( TestLinearComptonSpectrum  ,
FiniteBeamEnergySpreadAngularSpectrumMatchesCainReference   
)

◆ TEST() [3/14]

TEST ( TestLinearComptonSpectrum  ,
FiniteBeamEnergySpreadJointSpectrumMatchesCainReference   
)

◆ TEST() [4/14]

TEST ( TestLinearComptonSpectrum  ,
FiniteBeamEnergySpreadSpectrumMatchesCainReference   
)

This variant adds a small relative energy spread to the same finite-emittance beam. The tolerance is kept at the same scale as the zero-spread finite-beam case because the stored CAIN reference has high enough statistics to keep the broadened distributions stable.

Definition at line 347 of file TestLinearComptonSpectrum.cpp.

References LinearComptonBenchmark::histogramArea(), LinearComptonBenchmark::histogramL1Distance(), LinearComptonBenchmark::histogramMeanEnergyGeV(), and LinearComptonBenchmark::readSpectrumCSV().

Here is the call graph for this function:

◆ TEST() [5/14]

TEST ( TestLinearComptonSpectrum  ,
FiniteBeamJointSpectrumMatchesCainReference   
)

◆ TEST() [6/14]

TEST ( TestLinearComptonSpectrum  ,
FiniteBeamOverlapAngularSpectrumMatchesCainReference   
)

◆ TEST() [7/14]

TEST ( TestLinearComptonSpectrum  ,
FiniteBeamOverlapSpectrumMatchesCainReference   
)

◆ TEST() [8/14]

TEST ( TestLinearComptonSpectrum  ,
FiniteBeamSpectrumMatchesCainReference   
)

The finite-beam regressions allow a small normalization and shape tolerance because they combine Gaussian beam sampling with stochastic Compton event generation. The mean and L1 checks are the primary regression guards.

Definition at line 278 of file TestLinearComptonSpectrum.cpp.

References LinearComptonBenchmark::histogramArea(), LinearComptonBenchmark::histogramL1Distance(), LinearComptonBenchmark::histogramMeanEnergyGeV(), and LinearComptonBenchmark::readSpectrumCSV().

Here is the call graph for this function:

◆ TEST() [9/14]

TEST ( TestLinearComptonSpectrum  ,
WeakFieldAngularSpectrumMatchesCainReference   
)

◆ TEST() [10/14]

◆ TEST() [11/14]

TEST ( TestLinearComptonSpectrum  ,
WeakFieldSampledAngularSpectrumMatchesCainReference   
)

◆ TEST() [12/14]

◆ TEST() [13/14]

TEST ( TestLinearComptonSpectrum  ,
WeakFieldSampledSpectrumMatchesCainReference   
)

◆ TEST() [14/14]

TEST ( TestLinearComptonSpectrum  ,
WeakFieldSpectrumMatchesCainReference   
)