![]() |
|
|||
File indexing completed on 2025-02-22 10:31:20
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/ext/detail/GeantBremsstrahlungProcess.hh 0007 //---------------------------------------------------------------------------// 0008 #pragma once 0009 0010 #include <iosfwd> 0011 #include <G4ParticleDefinition.hh> 0012 #include <G4VEnergyLossProcess.hh> 0013 0014 #include "../GeantPhysicsOptions.hh" 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 ModelSelection = BremsModelSelection; 0032 //!@} 0033 0034 public: 0035 // Construct with model selection 0036 explicit GeantBremsstrahlungProcess(ModelSelection selection); 0037 0038 // True for electrons and positrons 0039 bool IsApplicable(G4ParticleDefinition const& particle) final; 0040 // Print documentation 0041 void ProcessDescription(std::ostream&) const override; 0042 0043 //! Which models are used 0044 ModelSelection model_selection() const { return model_selection_; } 0045 0046 protected: 0047 // Initialise process by constructing selected models 0048 void InitialiseEnergyLossProcess(G4ParticleDefinition const*, 0049 G4ParticleDefinition const*) override; 0050 // Print class parameters 0051 void StreamProcessInfo(std::ostream& output) const override; 0052 0053 private: 0054 bool is_initialized_; 0055 ModelSelection model_selection_; 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 |
![]() ![]() |