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.

Todo:

The ProcessBuilder is the “general” process builder type and should be refactored once import data is moved into the inp classes. The user_processes can be set externally or via FrameworkInput.geant.ignore_processes.

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.

Optical photon generation

bool cherenkov = {true}

Generate Cherenkov photons.

Todo:

Replace with a mapping of VolumeId to ScintillationPhysics or CherenkovPhysics

bool scintillation = {true}

Generate scintillation photons.

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.

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.