Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-09-17 08:53:40

0001 //------------------------------- -*- C++ -*- -------------------------------//
0002 // Copyright Celeritas contributors: see top-level COPYRIGHT file for details
0003 // SPDX-License-Identifier: (Apache-2.0 OR MIT)
0004 //---------------------------------------------------------------------------//
0005 //! \file celeritas/io/ImportElement.hh
0006 //---------------------------------------------------------------------------//
0007 #pragma once
0008 
0009 #include <string>
0010 #include <vector>
0011 
0012 namespace celeritas
0013 {
0014 //---------------------------------------------------------------------------//
0015 /*!
0016  * Store nuclide data.
0017  *
0018  * For nuclear mass, see `G4NucleiProperties::GetNuclearMass(int A, int Z)`.
0019  *
0020  * \todo Rename ImportNuclide
0021  */
0022 struct ImportIsotope
0023 {
0024     std::string name;  //!< Isotope label
0025     int atomic_number{0};  //!< Atomic number Z
0026     int atomic_mass_number{0};  //!< Atomic number A
0027     double binding_energy{0};  //!< Nuclear binding energy (BE) [MeV]
0028     double proton_loss_energy{0};  //!< BE(A, Z) - BE(A-1, Z-1) [MeV]
0029     double neutron_loss_energy{0};  //!< BE(A, Z) - BE(A-1, Z) [MeV]
0030     double nuclear_mass{0};  //!< Sum of nucleons' mass + binding energy [MeV]
0031 };
0032 
0033 //---------------------------------------------------------------------------//
0034 /*!
0035  * Store element data.
0036  *
0037  * \c IsotopeIndex maps the isotope in the \c ImportData::isotopes vector.
0038  */
0039 struct ImportElement
0040 {
0041     //!@{
0042     //! \name Type aliases
0043     using IsotopeIndex = unsigned int;
0044     using IsotopeFrac = std::pair<IsotopeIndex, double>;
0045     using VecIsotopeFrac = std::vector<IsotopeFrac>;
0046     //!@}
0047 
0048     std::string name;
0049     int atomic_number{};
0050     double atomic_mass{};  //!< [amu]
0051     VecIsotopeFrac isotopes_fractions;  //!< Isotopic fractional abundance
0052 };
0053 
0054 //---------------------------------------------------------------------------//
0055 }  // namespace celeritas