Back to home page

EIC code displayed by LXR

 
 

    


Warning, file /include/geocel/vg/VecgeomParamsOutput.hh was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

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