Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-11-07 10:11:40

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 celeritas/optical/OpticalSizes.hh
0006 //---------------------------------------------------------------------------//
0007 #pragma once
0008 
0009 #include "corecel/Types.hh"
0010 
0011 namespace celeritas
0012 {
0013 //---------------------------------------------------------------------------//
0014 /*!
0015  * Per-process optical state and buffer capacities.
0016  *
0017  * This stores the resolved values from \c inp::OpticalStateCapacity: all
0018  * values have been validated and device-dependent defaults have been applied
0019  * at setup time. These should be *integrated* across streams, *per process*.
0020  */
0021 struct OpticalSizes
0022 {
0023     size_type primaries{};
0024     size_type tracks{};
0025     size_type generators{};
0026 
0027     size_type streams{};
0028 
0029     //! True if all values are assigned and valid
0030     explicit operator bool() const
0031     {
0032         return primaries && tracks && generators && streams;
0033     }
0034 };
0035 
0036 //---------------------------------------------------------------------------//
0037 }  // namespace celeritas