OPALX (Object Oriented Parallel Accelerator Library for Exascal) master (dc2a29eed580)
OPALX
Loading...
Searching...
No Matches
LinearComptonSpectrumCommon.h File Reference
#include "Physics/LinearCompton.h"
#include "Physics/Physics.h"
#include <algorithm>
#include <cmath>
#include <cstdint>
#include <filesystem>
#include <fstream>
#include <iomanip>
#include <sstream>
#include <stdexcept>
#include <string>
#include <vector>
Include dependency graph for LinearComptonSpectrumCommon.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  LinearComptonBenchmark::SpectrumConfig
 
struct  LinearComptonBenchmark::SpectrumHistogram
 
struct  LinearComptonBenchmark::AngleConfig
 
struct  LinearComptonBenchmark::AngleHistogram
 
struct  LinearComptonBenchmark::JointConfig
 
struct  LinearComptonBenchmark::JointHistogram
 

Namespaces

namespace  LinearComptonBenchmark
 

Functions

SpectrumHistogram LinearComptonBenchmark::integrateLabSpectrum (const SpectrumConfig &config)
 
SpectrumHistogram LinearComptonBenchmark::sampleLabSpectrum (const SpectrumConfig &config, std::size_t sampleCount, std::uint64_t streamIndex=0)
 
void LinearComptonBenchmark::writeSpectrumCSV (const SpectrumHistogram &histogram, const std::filesystem::path &outputPath)
 
SpectrumHistogram LinearComptonBenchmark::readSpectrumCSV (const std::filesystem::path &inputPath)
 
double LinearComptonBenchmark::histogramMeanEnergyGeV (const SpectrumHistogram &histogram)
 
double LinearComptonBenchmark::histogramArea (const SpectrumHistogram &histogram)
 
double LinearComptonBenchmark::histogramL1Distance (const SpectrumHistogram &lhs, const SpectrumHistogram &rhs)
 
double LinearComptonBenchmark::photonPolarAngleRad (const Vector_t< double, 3 > &photonDirection, const Vector_t< double, 3 > &beamDirection)
 
AngleHistogram LinearComptonBenchmark::integrateLabAngularSpectrum (const AngleConfig &config)
 
AngleHistogram LinearComptonBenchmark::sampleLabAngularSpectrum (const AngleConfig &config, std::size_t sampleCount, std::uint64_t streamIndex=0)
 
void LinearComptonBenchmark::writeAngleCSV (const AngleHistogram &histogram, const std::filesystem::path &outputPath)
 
AngleHistogram LinearComptonBenchmark::readAngleCSV (const std::filesystem::path &inputPath)
 
double LinearComptonBenchmark::angleHistogramMeanRad (const AngleHistogram &histogram)
 
double LinearComptonBenchmark::angleHistogramArea (const AngleHistogram &histogram)
 
double LinearComptonBenchmark::angleHistogramL1Distance (const AngleHistogram &lhs, const AngleHistogram &rhs)
 
std::size_t LinearComptonBenchmark::jointHistogramIndex (const JointHistogram &histogram, std::size_t energyBin, std::size_t thetaBin)
 
JointHistogram LinearComptonBenchmark::integrateLabJointSpectrum (const JointConfig &config)
 
JointHistogram LinearComptonBenchmark::sampleLabJointSpectrum (const JointConfig &config, std::size_t sampleCount, std::uint64_t streamIndex=0)
 
void LinearComptonBenchmark::writeJointCSV (const JointHistogram &histogram, const std::filesystem::path &outputPath)
 
JointHistogram LinearComptonBenchmark::readJointCSV (const std::filesystem::path &inputPath)
 
double LinearComptonBenchmark::jointHistogramArea (const JointHistogram &histogram)
 
double LinearComptonBenchmark::jointHistogramMeanEnergyGeV (const JointHistogram &histogram)
 
double LinearComptonBenchmark::jointHistogramMeanThetaRad (const JointHistogram &histogram)
 
double LinearComptonBenchmark::jointHistogramL1Distance (const JointHistogram &lhs, const JointHistogram &rhs)
 

Class Documentation

◆ LinearComptonBenchmark::SpectrumConfig

struct LinearComptonBenchmark::SpectrumConfig

Definition at line 20 of file LinearComptonSpectrumCommon.h.

Collaboration diagram for LinearComptonBenchmark::SpectrumConfig:
Collaboration graph
Class Members
int azimuthPanels = 720
Vector_t< double, 3 > beamDirection
size_t bins = 80
int cosinePanels = 720
double electronTotalEnergyGeV = 1.0
double energyMaxGeV = 0.01
double energyMinGeV = 0.0
Vector_t< double, 3 > laserDirection
double wavelength_m = 1.03e-6

◆ LinearComptonBenchmark::SpectrumHistogram

struct LinearComptonBenchmark::SpectrumHistogram

Definition at line 40 of file LinearComptonSpectrumCommon.h.

Collaboration diagram for LinearComptonBenchmark::SpectrumHistogram:
Collaboration graph
Class Members
double binWidthGeV = 0.0
vector< double > centersGeV
vector< double > counts
vector< double > densityPerGeV
double totalWeight = 0.0

◆ LinearComptonBenchmark::AngleConfig

struct LinearComptonBenchmark::AngleConfig

Definition at line 241 of file LinearComptonSpectrumCommon.h.

Collaboration diagram for LinearComptonBenchmark::AngleConfig:
Collaboration graph
Class Members
int azimuthPanels = 720
Vector_t< double, 3 > beamDirection
size_t bins = 80
int cosinePanels = 720
double electronTotalEnergyGeV = 1.0
Vector_t< double, 3 > laserDirection
double thetaMaxRad = 0.02
double thetaMinRad = 0.0
double wavelength_m = 1.03e-6

◆ LinearComptonBenchmark::AngleHistogram

struct LinearComptonBenchmark::AngleHistogram

Definition at line 261 of file LinearComptonSpectrumCommon.h.

Collaboration diagram for LinearComptonBenchmark::AngleHistogram:
Collaboration graph
Class Members
double binWidthRad = 0.0
vector< double > centersRad
vector< double > counts
vector< double > densityPerRad
double totalWeight = 0.0

◆ LinearComptonBenchmark::JointConfig

struct LinearComptonBenchmark::JointConfig

Definition at line 481 of file LinearComptonSpectrumCommon.h.

Collaboration diagram for LinearComptonBenchmark::JointConfig:
Collaboration graph
Class Members
int azimuthPanels = 720
Vector_t< double, 3 > beamDirection
int cosinePanels = 720
double electronTotalEnergyGeV = 1.0
size_t energyBins = 60
double energyMaxGeV = 0.01
double energyMinGeV = 0.0
Vector_t< double, 3 > laserDirection
size_t thetaBins = 60
double thetaMaxRad = 0.02
double thetaMinRad = 0.0
double wavelength_m = 1.03e-6

◆ LinearComptonBenchmark::JointHistogram

struct LinearComptonBenchmark::JointHistogram

Definition at line 504 of file LinearComptonSpectrumCommon.h.

Collaboration diagram for LinearComptonBenchmark::JointHistogram:
Collaboration graph
Class Members
vector< double > counts
vector< double > densityPerGeVRad
double energyBinWidthGeV = 0.0
vector< double > energyCentersGeV
double thetaBinWidthRad = 0.0
vector< double > thetaCentersRad
double totalWeight = 0.0