Physics

struct Physics

Set up physics options.

Todo:

Move optical and hadronic physics options from celeritas::GeantPhysicsOptions

Move particle data from celeritas::ImportParticle

Add function for injecting user processes for celeritas::PhysicsParams

Public Members

std::optional<EmPhysics> em = {std::in_place}

Enable electromagnetic physics.

std::optional<OpticalPhysics> optical

Enable optical photon physics.

std::optional<HadronicPhysics> hadronic

Enable hadronic physics.

std::optional<DecayPhysics> decay

Enable decay physics.

struct EmPhysics

Electromagnetic physics processes and options.

Energy loss and slowing down

bool eloss_spline = {false}

Use cubic spline interpolation for energy loss.

Public Members

std::optional<BremsProcess> brems = {std::in_place}

Bremsstrahlung process.

std::optional<PairProductionProcess> pair_production = {std::in_place}

Electron+positron pair production process.

struct OpticalPhysics

Optical physics processes and options.

struct HadronicPhysics

Hadronic physics processes and options.

This can be used to enable or set up Geant4 hadronic physics.

Processes

struct BremsProcess

Construct a physics process for bremsstrahlung.

Public Members

bool combined_model = {false}

Use a unified relativistic/SB interactor.

bool integral_xs = {true}

Use integral method for sampling discrete interaction length.

Models

struct SeltzerBergerModel

Seltzer-Berger bremsstrahlung model.

Todo:

Move sb_data from celeritas::ImportData here.

struct RelBremsModel

Relativistic bremsstrahlung model.

Public Members

bool enable_lpm = {true}

Account for LPM effect at very high energies.

struct MuBremsModel

Muon bremsstrahlung model.