![]() |
|
|||
File indexing completed on 2025-02-22 10:31:27
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 celeritas/optical/CerenkovParams.hh 0007 //---------------------------------------------------------------------------// 0008 #pragma once 0009 0010 #include "corecel/Types.hh" 0011 #include "corecel/data/CollectionMirror.hh" 0012 #include "corecel/data/ParamsDataInterface.hh" 0013 0014 #include "CerenkovData.hh" 0015 0016 namespace celeritas 0017 { 0018 namespace optical 0019 { 0020 class MaterialParams; 0021 0022 //---------------------------------------------------------------------------// 0023 /*! 0024 * Build and manage Cerenkov data. 0025 */ 0026 class CerenkovParams final : public ParamsDataInterface<CerenkovData> 0027 { 0028 public: 0029 //!@{ 0030 //! \name Type aliases 0031 using SPConstMaterial = std::shared_ptr<MaterialParams const>; 0032 //!@} 0033 0034 public: 0035 // Construct with optical property data 0036 explicit CerenkovParams(SPConstMaterial material); 0037 0038 //! Access physics material on the host 0039 HostRef const& host_ref() const final { return data_.host_ref(); } 0040 0041 //! Access physics material on the device 0042 DeviceRef const& device_ref() const final { return data_.device_ref(); } 0043 0044 private: 0045 CollectionMirror<CerenkovData> data_; 0046 }; 0047 0048 //---------------------------------------------------------------------------// 0049 } // namespace optical 0050 } // namespace celeritas
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
![]() ![]() |