|
|
|||
File indexing completed on 2026-11-07 10:11:32
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/g4/detail/GeantBremsstrahlungProcess.hh 0006 //---------------------------------------------------------------------------// 0007 #pragma once 0008 0009 #include <iosfwd> 0010 #include <G4VEnergyLossProcess.hh> 0011 0012 #include "celeritas/ext/GeantPhysicsOptions.hh" 0013 0014 class G4ParticleDefinition; 0015 0016 namespace celeritas 0017 { 0018 namespace detail 0019 { 0020 //---------------------------------------------------------------------------// 0021 /*! 0022 * Electron/positron Bremsstrahlung process class derived from 0023 * \c G4eBremsstrahlung . The need for a new process class is to add the option 0024 * to manually select individual models. 0025 */ 0026 class GeantBremsstrahlungProcess : public G4VEnergyLossProcess 0027 { 0028 public: 0029 //!@{ 0030 //! \name Type aliases 0031 using Energy = units::MevEnergy; 0032 using ModelSelection = BremsModelSelection; 0033 //!@} 0034 0035 public: 0036 // Construct with model selection and energy limit 0037 GeantBremsstrahlungProcess(ModelSelection selection, 0038 double seltzer_berger_limit); 0039 0040 // True for electrons and positrons 0041 bool IsApplicable(G4ParticleDefinition const& particle) final; 0042 // Print documentation 0043 void ProcessDescription(std::ostream&) const override; 0044 0045 protected: 0046 // Initialise process by constructing selected models 0047 void InitialiseEnergyLossProcess(G4ParticleDefinition const*, 0048 G4ParticleDefinition const*) override; 0049 // Print class parameters 0050 void StreamProcessInfo(std::ostream& output) const override; 0051 0052 private: 0053 bool is_initialized_{false}; 0054 ModelSelection model_selection_; 0055 double sb_limit_; 0056 }; 0057 0058 //---------------------------------------------------------------------------// 0059 } // namespace detail 0060 } // 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 |
|