Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-09-15 08:54:44

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/inp/PhysicsProcess.hh
0006 //---------------------------------------------------------------------------//
0007 #pragma once
0008 
0009 #include <optional>
0010 
0011 #include "PhysicsModel.hh"
0012 
0013 namespace celeritas
0014 {
0015 namespace inp
0016 {
0017 //---------------------------------------------------------------------------//
0018 /*!
0019  * Construct a physics process for bremsstrahlung.
0020  */
0021 struct BremsProcess
0022 {
0023     std::optional<SeltzerBergerModel> sb{std::in_place};
0024     std::optional<RelBremsModel> rel{std::in_place};
0025     std::optional<MuBremsModel> mu;
0026 
0027     //! Use a unified relativistic/SB interactor
0028     bool combined_model{false};
0029 };
0030 //---------------------------------------------------------------------------//
0031 /*!
0032  * Construct a physics process for electron/positron pair production.
0033  */
0034 struct PairProductionProcess
0035 {
0036     //! Bethe-Heitler pair production
0037     std::optional<BetheHeitlerModel> bethe_heitler;
0038     //! Muonic pair production
0039     std::optional<MuPairProductionModel> mu;
0040 };
0041 
0042 //---------------------------------------------------------------------------//
0043 //!@{
0044 //! \name Process aliases
0045 //! \todo rename `em/model` to match, merge muon and electron proceses
0046 
0047 using BremsstrahlungProcess = BremsProcess;
0048 using GammaConversionProcess = PairProductionProcess;
0049 using MuPairProductionProcess = PairProductionProcess;
0050 
0051 //!@}
0052 
0053 //---------------------------------------------------------------------------//
0054 }  // namespace inp
0055 }  // namespace celeritas