|
OPALX (Object Oriented Parallel Accelerator Library for Exascal) master (dc2a29eed580)
OPALX
|
#include "Physics/LinearCompton.h"#include "Physics/Physics.h"#include "Utilities/OpalException.h"#include "Utilities/Options.h"#include <algorithm>#include <cmath>#include <cstdint>#include <limits>#include <random>#include <string>
Go to the source code of this file.
Namespaces | |
| namespace | Physics |
| namespace | Physics::LinearCompton |
Functions | |
| double | Physics::LinearCompton::photonEnergyFromWavelengthGeV (double wavelength_m) |
| Convert a laser wavelength to a single-photon energy. | |
| double | Physics::LinearCompton::electronGamma (double electronTotalEnergyGeV) |
| Compute the electron Lorentz factor from total energy. | |
| double | Physics::LinearCompton::electronBeta (double electronTotalEnergyGeV) |
| Compute the electron speed in units of c from total energy. | |
| double | Physics::LinearCompton::restFrameIncomingPhotonEnergyGeV (double electronTotalEnergyGeV, double laserPhotonEnergyGeV, const Vector_t< double, 3 > &beamDirection, const Vector_t< double, 3 > &laserDirection) |
| Compute the incoming photon energy in the electron rest frame. | |
| Vector_t< double, 3 > | Physics::LinearCompton::restFrameIncomingPhotonDirection (double electronTotalEnergyGeV, const Vector_t< double, 3 > &beamDirection, const Vector_t< double, 3 > &laserDirection) |
| Incoming laser-photon direction in the electron rest frame. | |
| Vector_t< double, 3 > | Physics::LinearCompton::labPhotonDirection (double electronTotalEnergyGeV, const Vector_t< double, 3 > &beamDirection, const Vector_t< double, 3 > &laserDirection, double scatteringCosineERF, double azimuthERF) |
| Laboratory-frame photon direction from electron-rest-frame scattering angles. | |
| std::mt19937_64 | Physics::LinearCompton::makeHostRandomEngine (std::uint64_t streamIndex=0) |
| Create a deterministic host-side random engine for Monte Carlo validation. | |
| SamplingKernel | Physics::LinearCompton::makeSamplingKernel (double electronTotalEnergyGeV, double laserPhotonEnergyGeV, const Vector_t< double, 3 > &beamDirection, const Vector_t< double, 3 > &laserDirection) |
| Build a cached sampling kernel for repeated event generation. | |
| SampledEvent | Physics::LinearCompton::sampleEvent (const SamplingKernel &kernel, std::mt19937_64 &engine) |
| Sample one unpolarized linear-Compton event on the host. | |
| double | Physics::LinearCompton::invariantKappa (double incomingPhotonEnergyERFGeV) |
| Compute the dimensionless Klein-Nishina parameter \(\\kappa = \\omega_1/m_e\). | |
| double | Physics::LinearCompton::invariantX (double incomingPhotonEnergyERFGeV) |
| Compute CAIN's linear-Compton invariant \(x = 2 \\omega_1 / m_e\). | |
| double | Physics::LinearCompton::invariantX (double electronTotalEnergyGeV, double laserPhotonEnergyGeV, const Vector_t< double, 3 > &beamDirection, const Vector_t< double, 3 > &laserDirection) |
| Compute CAIN's linear-Compton invariant directly from laboratory quantities. | |
| double | Physics::LinearCompton::scatteredPhotonEnergyMinERFGeV (double incomingPhotonEnergyERFGeV) |
| Minimum scattered photon energy in the electron rest frame. | |
| double | Physics::LinearCompton::scatteredPhotonEnergyMaxERFGeV (double incomingPhotonEnergyERFGeV) |
| Maximum scattered photon energy in the electron rest frame. | |
| double | Physics::LinearCompton::scatteredPhotonEnergyERFGeV (double incomingPhotonEnergyERFGeV, double scatteringCosineERF) |
| Compute the scattered photon energy in the electron rest frame. | |
| double | Physics::LinearCompton::differentialCrossSectionSolidAngleERF (double incomingPhotonEnergyERFGeV, double scatteringCosineERF) |
| Unpolarized Klein-Nishina differential cross section in solid angle. | |
| double | Physics::LinearCompton::differentialCrossSectionOmegaERF (double incomingPhotonEnergyERFGeV, double scatteredPhotonEnergyERFGeV) |
| Unpolarized Klein-Nishina differential cross section in the scattered-photon energy. | |
| double | Physics::LinearCompton::totalCrossSection (double incomingPhotonEnergyERFGeV) |
| Total unpolarized Klein-Nishina cross section. | |
| double | Physics::LinearCompton::thomsonCrossSection () |
| Thomson limit cross section. | |
| double | Physics::LinearCompton::restFrameScatteringCosineForLabForwardPhoton (double electronTotalEnergyGeV, const Vector_t< double, 3 > &beamDirection, const Vector_t< double, 3 > &laserDirection) |
| Rest-frame scattering cosine corresponding to a lab-forward photon. | |
| double | Physics::LinearCompton::labPhotonEnergyGeV (double electronTotalEnergyGeV, double laserPhotonEnergyGeV, const Vector_t< double, 3 > &beamDirection, const Vector_t< double, 3 > &laserDirection, double scatteringCosineERF, double azimuthERF) |
| Laboratory-frame photon energy from electron-rest-frame scattering angles. | |
| double | Physics::LinearCompton::labForwardPhotonEnergyGeV (double electronTotalEnergyGeV, double laserPhotonEnergyGeV, const Vector_t< double, 3 > &beamDirection, const Vector_t< double, 3 > &laserDirection) |
| Forward scattered photon energy in the laboratory frame. | |