Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-02-22 10:31:22

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