Back to home page

EIC code displayed by LXR

 
 

    


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

0001 //----------------------------------*-C++-*----------------------------------//
0002 // Copyright 2023-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/ext/GeantVolumeMapper.hh
0007 //---------------------------------------------------------------------------//
0008 #pragma once
0009 
0010 #include "corecel/Config.hh"
0011 
0012 #include "geocel/GeoParamsInterface.hh"
0013 #include "celeritas/Types.hh"
0014 
0015 // Geant4 forward declaration
0016 class G4LogicalVolume;  // IWYU pragma: keep
0017 
0018 namespace celeritas
0019 {
0020 //---------------------------------------------------------------------------//
0021 /*!
0022  * Map a Geant4 logical volume to a Celeritas volume ID.
0023  */
0024 struct GeantVolumeMapper
0025 {
0026     GeoParamsInterface const& geo;
0027 
0028     // Convert a volume; null if not found; warn if inexact match
0029     VolumeId operator()(G4LogicalVolume const&) const;
0030 };
0031 
0032 #if !CELERITAS_USE_GEANT4
0033 inline VolumeId GeantVolumeMapper::operator()(G4LogicalVolume const&) const
0034 {
0035     CELER_NOT_CONFIGURED("Geant4");
0036 }
0037 #endif
0038 
0039 //---------------------------------------------------------------------------//
0040 }  // namespace celeritas