Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-09-16 08:52:22

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/ImportVolume.hh
0006 //---------------------------------------------------------------------------//
0007 #pragma once
0008 
0009 #include <string>
0010 
0011 namespace celeritas
0012 {
0013 //---------------------------------------------------------------------------//
0014 /*!
0015  * Store region description and attributes.
0016  */
0017 struct ImportRegion
0018 {
0019     std::string name;
0020     bool field_manager{false};
0021     bool production_cuts{false};
0022     bool user_limits{false};
0023 };
0024 
0025 //---------------------------------------------------------------------------//
0026 /*!
0027  * Store logical volume properties.
0028  *
0029  * \note The "phys material ID" is the index of the MaterialCutsCouple, and the
0030  * "geo material ID" is the index of the Material (physical properties).
0031  *
0032  * \note The index of this volume in the \c volumes vector is the "instance ID"
0033  * which is not necessarily reproducible.
0034  */
0035 struct ImportVolume
0036 {
0037     //!@{
0038     //! \name Type aliases
0039     using Index = unsigned int;
0040     //!@}
0041 
0042     static constexpr Index unspecified = -1;
0043 
0044     Index geo_material_id{unspecified};  //!< Material defined by geometry
0045     Index region_id{unspecified};  //!< Optional region associated
0046     Index phys_material_id{unspecified};  //!< Material modified by physics
0047     std::string name;
0048     std::string solid_name;
0049 
0050     //! Whether this represents a physical volume or is just a placeholder
0051     explicit operator bool() const { return geo_material_id != unspecified; }
0052 };
0053 
0054 //---------------------------------------------------------------------------//
0055 }  // namespace celeritas