Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-02-22 10:31:24

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