Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-09-19 08:49:41

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/alongstep/detail/AlongStepKernels.hh
0006 //---------------------------------------------------------------------------//
0007 #pragma once
0008 
0009 #include "celeritas/em/data/FluctuationData.hh"
0010 #include "celeritas/em/data/UrbanMscData.hh"
0011 #include "celeritas/global/ActionInterface.hh"
0012 #include "celeritas/global/CoreTrackDataFwd.hh"
0013 
0014 namespace celeritas
0015 {
0016 namespace detail
0017 {
0018 //---------------------------------------------------------------------------//
0019 //! Apply MSC step limiter (UrbanMsc)
0020 void launch_limit_msc_step(CoreStepActionInterface const& action,
0021                            DeviceCRef<UrbanMscData> const& msc_data,
0022                            CoreParams const& params,
0023                            CoreState<MemSpace::device>& state);
0024 
0025 //---------------------------------------------------------------------------//
0026 //! Apply linear propagation
0027 void launch_propagate(CoreStepActionInterface const& action,
0028                       CoreParams const& params,
0029                       CoreState<MemSpace::device>& state);
0030 
0031 //---------------------------------------------------------------------------//
0032 //! Apply MSC scattering (UrbanMsc)
0033 void launch_apply_msc(CoreStepActionInterface const& action,
0034                       DeviceCRef<UrbanMscData> const& msc_data,
0035                       CoreParams const& params,
0036                       CoreState<MemSpace::device>& state);
0037 
0038 //---------------------------------------------------------------------------//
0039 //! Update track times
0040 void launch_update_time(CoreStepActionInterface const& action,
0041                         CoreParams const& params,
0042                         CoreState<MemSpace::device>& state);
0043 
0044 //---------------------------------------------------------------------------//
0045 //! Apply energy loss with fluctuations
0046 void launch_apply_eloss(CoreStepActionInterface const& action,
0047                         DeviceCRef<FluctuationData> const& fluct,
0048                         CoreParams const& params,
0049                         CoreState<MemSpace::device>& state);
0050 
0051 //---------------------------------------------------------------------------//
0052 //! Apply energy loss without fluctuations
0053 void launch_apply_eloss(CoreStepActionInterface const& action,
0054                         CoreParams const& params,
0055                         CoreState<MemSpace::device>& state);
0056 //---------------------------------------------------------------------------//
0057 //! Update the track state at the end of along-step
0058 void launch_update_track(CoreStepActionInterface const& action,
0059                          CoreParams const& params,
0060                          CoreState<MemSpace::device>& state);
0061 
0062 //---------------------------------------------------------------------------//
0063 }  // namespace detail
0064 }  // namespace celeritas