Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-12-15 10:22:47

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 orange/OrangeParamsOutput.hh
0006 //---------------------------------------------------------------------------//
0007 #pragma once
0008 #include <memory>
0009 
0010 #include "corecel/io/OutputInterface.hh"
0011 
0012 namespace celeritas
0013 {
0014 class OrangeParams;
0015 //---------------------------------------------------------------------------//
0016 /*!
0017  * Save detailed debugging information about the ORANGE geometry.
0018  *
0019  * This is to be used in *addition* to the standard bbox/volume/surface data
0020  * saved by GeoParamsOutput.
0021  *
0022  * \sa celeritas/geo/GeoParamsOutput.hh
0023  */
0024 class OrangeParamsOutput final : public OutputInterface
0025 {
0026   public:
0027     //!@{
0028     //! \name Type aliases
0029     using SPConstOrangeParams = std::shared_ptr<OrangeParams const>;
0030     //!@}
0031 
0032   public:
0033     // Construct from shared geometry data
0034     explicit OrangeParamsOutput(SPConstOrangeParams orange);
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 "orange"; }
0041 
0042     // Write output to the given JSON object
0043     void output(JsonPimpl*) const final;
0044 
0045   private:
0046     SPConstOrangeParams orange_;
0047 };
0048 
0049 //---------------------------------------------------------------------------//
0050 }  // namespace celeritas