Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:59:33

0001 //----------------------------------*-C++-*----------------------------------//
0002 // Copyright 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 geocel/g4/GeantGeoTraits.hh
0007 //---------------------------------------------------------------------------//
0008 #pragma once
0009 
0010 #include "corecel/Config.hh"
0011 
0012 #include "geocel/GeoTraits.hh"
0013 
0014 namespace celeritas
0015 {
0016 //---------------------------------------------------------------------------//
0017 class GeantGeoParams;
0018 class GeantGeoTrackView;
0019 template<Ownership W, MemSpace M>
0020 struct GeantGeoParamsData;
0021 template<Ownership W, MemSpace M>
0022 struct GeantGeoStateData;
0023 
0024 #if CELERITAS_USE_GEANT4
0025 //---------------------------------------------------------------------------//
0026 /*!
0027  * Traits specialization for Geant4 geometry.
0028  */
0029 template<>
0030 struct GeoTraits<GeantGeoParams>
0031 {
0032     //! Params data used during runtime
0033     template<Ownership W, MemSpace M>
0034     using ParamsData = GeantGeoParamsData<W, M>;
0035 
0036     //! State data used during runtime
0037     template<Ownership W, MemSpace M>
0038     using StateData = GeantGeoStateData<W, M>;
0039 
0040     //! Geometry track view
0041     using TrackView = GeantGeoTrackView;
0042 
0043     //! Descriptive name for the geometry
0044     static constexpr inline char const* name = "Geant4";
0045 
0046     //! TO BE REMOVED: "native" file extension for this geometry
0047     static constexpr inline char const* ext = ".gdml";
0048 };
0049 #else
0050 //! Geant4 is unavailable
0051 template<>
0052 struct GeoTraits<GeantGeoParams> : NotConfiguredGeoTraits
0053 {
0054 };
0055 #endif
0056 
0057 //---------------------------------------------------------------------------//
0058 }  // namespace celeritas