Back to home page

EIC code displayed by LXR

 
 

    


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

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 geocel/vg/VecgeomParamsOutput.hh
0007 //---------------------------------------------------------------------------//
0008 #pragma once
0009 #include <memory>
0010 
0011 #include "corecel/io/OutputInterface.hh"
0012 
0013 namespace celeritas
0014 {
0015 class VecgeomParams;
0016 //---------------------------------------------------------------------------//
0017 /*!
0018  * Save extra debugging information about the VecGeom geometry.
0019  *
0020  * This is to be used in *addition* to the standard bbox/volume/surface data
0021  * saved by GeoParamsOutput.
0022  *
0023  * \sa geocel/GeoParamsOutput.hh
0024  */
0025 class VecgeomParamsOutput final : public OutputInterface
0026 {
0027   public:
0028     //!@{
0029     //! \name Type aliases
0030     using SPConstVecgeomParams = std::shared_ptr<VecgeomParams const>;
0031     //!@}
0032 
0033   public:
0034     // Construct from shared geometry data
0035     explicit VecgeomParamsOutput(SPConstVecgeomParams vecgeom);
0036 
0037     //! Category of data to write
0038     Category category() const final { return Category::internal; }
0039 
0040     //! Name of the entry inside the category.
0041     std::string_view label() const final { return "vecgeom"; }
0042 
0043     // Write output to the given JSON object
0044     void output(JsonPimpl*) const final;
0045 
0046   private:
0047     SPConstVecgeomParams vecgeom_;
0048 };
0049 
0050 //---------------------------------------------------------------------------//
0051 }  // namespace celeritas