|
OPALX (Object Oriented Parallel Accelerator Library for Exascal) master (dc2a29eed580)
OPALX
|


Go to the source code of this file.
Classes | |
| struct | Physics::LinearBreitWheeler::SamplingKernel |
| Host-only cached data for repeated linear Breit-Wheeler event sampling. More... | |
| struct | Physics::LinearBreitWheeler::SampledEvent |
| One sampled linear Breit-Wheeler event. More... | |
Namespaces | |
| namespace | Physics |
| namespace | Physics::LinearBreitWheeler |
Functions | |
| double | Physics::LinearBreitWheeler::photonEnergyFromWavelengthGeV (double wavelength_m) |
| Convert a laser wavelength to a single-photon energy. | |
| double | Physics::LinearBreitWheeler::invariantSGeV2 (double photon1EnergyGeV, double photon2EnergyGeV, const Vector_t< double, 3 > &photon1Direction, const Vector_t< double, 3 > &photon2Direction) |
| Two-photon invariant \(s\) for Breit-Wheeler pair production. | |
| double | Physics::LinearBreitWheeler::thresholdInvariantSGeV2 () |
| Threshold invariant for \(\gamma + \gamma \to e^- + e^+\). | |
| bool | Physics::LinearBreitWheeler::isAboveThreshold (double invariantSGeV2) |
| Check whether pair creation is kinematically allowed. | |
| double | Physics::LinearBreitWheeler::pairBetaCM (double invariantSGeV2) |
| Outgoing lepton speed in the pair center-of-momentum frame. | |
| double | Physics::LinearBreitWheeler::totalCrossSection (double invariantSGeV2) |
| Total unpolarized linear Breit-Wheeler cross section. | |
| double | Physics::LinearBreitWheeler::proposalZToScatteringCosineCM (double invariantSGeV2, double proposalZ) |
| Map CAIN's proposal parameter \(z \in [-1,1]\) to the CM scattering cosine. | |
| double | Physics::LinearBreitWheeler::unpolarizedAngularWeight (double invariantSGeV2, double proposalZ) |
| Evaluate the unpolarized CAIN-aligned angular kernel in proposal coordinates. | |
| SamplingKernel | Physics::LinearBreitWheeler::makeSamplingKernel (double highEnergyPhotonEnergyGeV, double laserPhotonEnergyGeV, const Vector_t< double, 3 > &highEnergyDirection, const Vector_t< double, 3 > &laserDirection) |
| Build a cached sampling kernel for repeated sampled events. | |
| std::mt19937_64 | Physics::LinearBreitWheeler::makeHostRandomEngine (std::uint64_t streamIndex=0) |
Build a deterministic host RNG from Options::seed. | |
| SampledEvent | Physics::LinearBreitWheeler::sampleEvent (const SamplingKernel &kernel, std::mt19937_64 &engine) |
| Sample one unpolarized linear Breit-Wheeler event. | |
| struct Physics::LinearBreitWheeler::SamplingKernel |
Host-only cached data for repeated linear Breit-Wheeler event sampling.
This structure stores the fixed two-photon geometry used in the first OPALX Breit-Wheeler validation path. It is intentionally scalar and host-side, matching the staged approach already used for linear Compton benchmarking.
The incoming state consists of two photons:
The corresponding two-photon invariant is
\[ s = 2 E_\gamma \omega_L (1 - \hat n_\gamma \cdot \hat n_L). \]
Pair creation is kinematically allowed only for \(s \ge 4 m_e^2\).
Definition at line 32 of file LinearBreitWheeler.h.

| Class Members | ||
|---|---|---|
| double | cmLorentzGamma | Lorentz factor of the CM frame relative to the laboratory frame. |
| Vector_t< double, 3 > | cmVelocity | Dimensionless CM boost velocity. |
| Vector_t< double, 3 > | highEnergyDirection | Normalized incoming high-energy photon direction. |
| double | highEnergyPhotonEnergyGeV | Incoming high-energy photon energy in the lab frame [GeV]. |
| double | invariantSGeV2 = 0.0 | Two-photon invariant \(s\) in GeV^2. |
| Vector_t< double, 3 > | laserDirection | Normalized incoming laser-photon direction. |
| double | laserPhotonEnergyGeV | Incoming laser-photon energy in the lab frame [GeV]. |
| double | pairBetaCM = 0.0 |
Outgoing lepton speed \(\beta = \sqrt{1 - 4m_e^2/s}\) in the pair CM frame. |
| double | rejectionUpperBound = 0.0 |
Conservative rejection-sampling envelope for the unpolarized CAIN-aligned angular kernel. |
| struct Physics::LinearBreitWheeler::SampledEvent |
One sampled linear Breit-Wheeler event.
The first benchmark path keeps only the unpolarized kinematics. The event is represented by the center-of-momentum scattering variables and by the final laboratory-frame electron and positron four-momenta.
Definition at line 59 of file LinearBreitWheeler.h.

| Class Members | ||
|---|---|---|
| double | azimuthCM = 0.0 | Center-of-momentum azimuth \(\phi\) in rad. |
| double | electronEnergyLabGeV | Outgoing electron energy in the lab frame [GeV]. |
| Vector_t< double, 3 > | electronMomentumLabGeV | Outgoing electron three-momentum in the lab frame [GeV/c]. |
| double | positronEnergyLabGeV | Outgoing positron energy in the lab frame [GeV]. |
| Vector_t< double, 3 > | positronMomentumLabGeV | Outgoing positron three-momentum in the lab frame [GeV/c]. |
| double | scatteringCosineCM | Center-of-momentum scattering cosine \(\cos\theta\). |