Celeritas
0.5.0-86+4a8eea4
|
Store imported physics data from external sources. More...
#include <ImportData.hh>
Public Types | |
Type aliases | |
using | ZInt = int |
using | GeoMatIndex = unsigned int |
using | ImportSBMap = std::map< ZInt, ImportPhysics2DVector > |
using | ImportLivermorePEMap = std::map< ZInt, ImportLivermorePE > |
using | ImportAtomicRelaxationMap = std::map< ZInt, ImportAtomicRelaxation > |
using | ImportNeutronElasticMap = std::map< ZInt, ImportPhysicsVector > |
Public Attributes | |
std::string | units |
Unit system of the stored data: "cgs", "clhep", or "si". | |
Material data | |
std::vector< ImportIsotope > | isotopes |
std::vector< ImportElement > | elements |
std::vector< ImportGeoMaterial > | geo_materials |
std::vector< ImportPhysMaterial > | phys_materials |
Spatial region data | |
std::vector< ImportRegion > | regions |
std::vector< ImportVolume > | volumes |
Physics data | |
std::vector< ImportParticle > | particles |
std::vector< ImportProcess > | processes |
std::vector< ImportMscModel > | msc_models |
ImportSBMap | sb_data |
ImportLivermorePEMap | livermore_pe_data |
ImportNeutronElasticMap | neutron_elastic_data |
ImportAtomicRelaxationMap | atomic_relaxation_data |
ImportMuPairProductionTable | mu_pair_production_data |
Physics configuration options | |
ImportEmParameters | em_params |
ImportTransParameters | trans_params |
Optical data | |
ImportOpticalParameters | optical_params |
std::vector< ImportOpticalModel > | optical_models |
std::vector< ImportOpticalMaterial > | optical_materials |
Store imported physics data from external sources.
All the data imported to Celeritas is stored in this single entity. This struct can be used in memory or recorded in a ROOT TBranch as a single TTree entry, which will be read by RootImporter
to load the data into Celeritas. Currently, the TTree and TBranch names are hardcoded as geant4_data and ImportData in RootImporter
.
Each entity's id is defined by its vector position. An ImportElement
with id = 3 is stored at elements
[3] . The same is true for geometry/physics/materials (all of which have an independent index!) and volumes.
Seltzer-Berger, Livermore PE, and atomic relaxation data are loaded based on atomic numbers, and thus are stored in maps. To retrieve specific data use find(atomic_number)
.
The unit system of the data is stored in the "units" string. If empty (backward compatibility) or "cgs" the embedded contents are in CGS. If "clhep" the units are CLHEP (the native Geant4 unit system). The convert_to_native
function will convert a data structure in place and update the units label. Refer to base/Units.hh
for further information on unit systems.