Loading data into Celeritas

Problem data can be imported directly from Geant4 or loaded from a ROOT file.

using celeritas::inp::PhysicsImport = std::variant<PhysicsFromGeant, PhysicsFromFile>

Physics import specification.

In the JSON representation, a "_type" field selects the variant alternative using one of the following values:

  • “geant”: PhysicsFromGeant

  • ”file”: PhysicsFromFile

The following input types select the source of the imported physics data.

struct PhysicsFromFile

Load physics data from a ROOT file.

Todo:

This should be replaced with a “ProblemFromFile” that supports ROOT or JSON. Currently it loads directly into ImportData as a stopgap. We may also want to completely replace ROOT.

Public Members

std::string input

Path to the problem input file.

struct PhysicsFromGeant

Options for importing data from in-memory Geant4.

Todo:

  • Use “offload particle types” (variant: grouping, G4PD*, PDG)

  • Load all processes applicable to offload particles

  • Determine particle list from process->secondary mapping

  • Always load interpolation flags; clear them elsewhere if user wants to

  • Load all materials visible to geometry (and eventually fix PhysMatId vs GeoMatId)

Public Members

std::vector<std::string> ignore_processes

Do not use Celeritas physics for the given Geant4 process names.

GeantImportDataSelection data_selection

Only import a subset of available Geant4 data.

struct PhysicsFromGeantFiles

Options for loading cross section data from Geant4 data files.

Todo:

Since Geant4 data structures don’t provide access to these, we must read them ourselves. Maybe add accessors to Geant4 and eliminate these/roll them upstream?

Defaults:

  • livermore_dir: usually $G4LEDATA/livermore/phot_epics2014

  • neutron_dir: usually $G4PARTICLEXSDATA/neutron

  • fluor_dir: usually $G4LEDATA/fluor

  • auger_dir: usually $G4LEDATA/auger

Public Members

std::string livermore_dir

Livermore photoelectric data directory.

std::string neutron_dir

Neutron cross section data directory.

std::string fluor_dir

Fluorescence transition probabilities and subshells.

std::string auger_dir

Auger transition probabilities.