Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-10-29 09:13:54

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 geocel/GeoInterface.hh
0006 //! Utility functions for host geometry interfaces.
0007 //---------------------------------------------------------------------------//
0008 #pragma once
0009 
0010 #include <string>
0011 
0012 #include "corecel/Types.hh"
0013 
0014 namespace celeritas
0015 {
0016 //---------------------------------------------------------------------------//
0017 template<class RT>
0018 class GeoTrackInterface;
0019 class GeoParamsInterface;
0020 class VolumeParams;
0021 
0022 //---------------------------------------------------------------------------//
0023 
0024 struct StreamableUniqueVolName
0025 {
0026     GeoTrackInterface<real_type> const& geo;
0027     VolumeParams const& params;
0028 
0029     friend std::ostream& operator<<(std::ostream& os,
0030                                     StreamableUniqueVolName const& suvn);
0031 };
0032 
0033 //---------------------------------------------------------------------------//
0034 
0035 // Get the descriptive, robust volume name based on the geo state
0036 std::string volume_name(GeoTrackInterface<real_type> const& geo,
0037                         VolumeParams const& params);
0038 
0039 // Get a robust name using impl volume params
0040 std::string volume_name(GeoTrackInterface<real_type> const& geo,
0041                         GeoParamsInterface const& params);
0042 
0043 // Get the descriptive, robust volume instance name based on the geo state
0044 std::string volume_instance_name(GeoTrackInterface<real_type> const& geo,
0045                                  VolumeParams const& params);
0046 
0047 // Get the descriptive, robust volume instance name based on the geo state
0048 std::string unique_volume_name(GeoTrackInterface<real_type> const& geo,
0049                                VolumeParams const& params);
0050 
0051 //---------------------------------------------------------------------------//
0052 }  // namespace celeritas