Back to home page

EIC code displayed by LXR

 
 

    


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

0001 //----------------------------------*-C++-*----------------------------------//
0002 // Copyright 2021-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/SeltzerBergerReader.hh
0007 //---------------------------------------------------------------------------//
0008 #pragma once
0009 
0010 #include <string>
0011 
0012 #include "celeritas/phys/AtomicNumber.hh"
0013 
0014 #include "ImportSBTable.hh"
0015 
0016 namespace celeritas
0017 {
0018 //---------------------------------------------------------------------------//
0019 /*!
0020  * Read Seltzer-Berger data from Geant4's $G4LEDATA files.
0021  *
0022  * Use \c operator() to retrieve data for different atomic numbers.
0023  *
0024  * \code
0025     SeltzerBergerReader sb_reader();
0026     auto sb_data_vector = sb_reader(1); // Hydrogen
0027    \endcode
0028  */
0029 class SeltzerBergerReader
0030 {
0031   public:
0032     //!@{
0033     //! \name Type aliases
0034     using result_type = ImportSBTable;
0035     //!@}
0036 
0037   public:
0038     // Construct using $G4LEDATA
0039     SeltzerBergerReader();
0040 
0041     // Construct from a user defined path
0042     explicit SeltzerBergerReader(char const* path);
0043 
0044     // Read data from ascii for the given element
0045     result_type operator()(AtomicNumber atomic_number) const;
0046 
0047   private:
0048     std::string path_;
0049 };
0050 
0051 //---------------------------------------------------------------------------//
0052 }  // namespace celeritas