![]() |
|
|||
File indexing completed on 2025-02-22 10:31:15
0001 //----------------------------------*-C++-*----------------------------------// 0002 // Copyright 2021-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/em/data/BetheHeitlerData.hh 0007 //---------------------------------------------------------------------------// 0008 #pragma once 0009 0010 #include "corecel/Macros.hh" 0011 #include "corecel/Types.hh" 0012 #include "celeritas/Quantities.hh" 0013 #include "celeritas/Types.hh" 0014 0015 namespace celeritas 0016 { 0017 //---------------------------------------------------------------------------// 0018 /*! 0019 * Particle IDs used in Bethe-Heitler. 0020 */ 0021 struct BetheHeitlerIds 0022 { 0023 //! ID of an electron 0024 ParticleId electron; 0025 //! ID of an positron 0026 ParticleId positron; 0027 //! ID of a gamma 0028 ParticleId gamma; 0029 0030 //! Check whether the IDs are assigned 0031 explicit CELER_FUNCTION operator bool() const 0032 { 0033 return electron && positron && gamma; 0034 } 0035 }; 0036 0037 //---------------------------------------------------------------------------// 0038 /*! 0039 * Device data for creating a BetheHeitlerInteractor. 0040 */ 0041 struct BetheHeitlerData 0042 { 0043 //! Model/particle IDs 0044 BetheHeitlerIds ids; 0045 //! Electron mass [MevMass] 0046 units::MevMass electron_mass; 0047 //! LPM flag 0048 bool enable_lpm{false}; 0049 0050 //! Include a dielectric suppression effect in LPM functions 0051 static CELER_CONSTEXPR_FUNCTION bool dielectric_suppression() 0052 { 0053 return false; 0054 } 0055 0056 //! Check whether the data is assigned 0057 explicit CELER_FUNCTION operator bool() const 0058 { 0059 return ids && electron_mass > zero_quantity(); 0060 } 0061 }; 0062 0063 using BetheHeitlerHostRef = BetheHeitlerData; 0064 using BetheHeitlerDeviceRef = BetheHeitlerData; 0065 0066 //---------------------------------------------------------------------------// 0067 } // 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 |
![]() ![]() |