Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-03-13 09:12:19

0001 //---------------------------------*-CUDA-*----------------------------------//
0002 // Copyright 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 /*!
0007  * \file geocel/rasterize/RaytraceImager.device.t.hh
0008  * \brief Template definition file for \c RaytraceImager .
0009  *
0010  * Include this file in a .cu file and instantiate it explicitly. When
0011  * instantiating, you must provide access to the GeoTraits specialization as
0012  * well as the data classes and track view.
0013  */
0014 //---------------------------------------------------------------------------//
0015 #pragma once
0016 
0017 #include "geocel/rasterize/RaytraceImager.hh"
0018 
0019 #include "corecel/sys/KernelLauncher.device.hh"
0020 
0021 #include "detail/RaytraceExecutor.hh"
0022 
0023 namespace celeritas
0024 {
0025 //---------------------------------------------------------------------------//
0026 /*!
0027  * Launch the raytrace kernel on device.
0028  */
0029 template<class G>
0030 void RaytraceImager<G>::launch_raytrace_kernel(
0031     GeoParamsCRef<MemSpace::device> const& geo_params,
0032     GeoStateRef<MemSpace::device> const& geo_states,
0033     ImageParamsCRef<MemSpace::device> const& img_params,
0034     ImageStateRef<MemSpace::device> const& img_states) const
0035 {
0036     using CalcId = detail::VolumeIdCalculator;
0037 
0038     detail::RaytraceExecutor<GeoTrackView, CalcId> execute_thread{
0039         geo_params, geo_states, img_params, img_states, CalcId{}};
0040 
0041     static KernelLauncher<decltype(execute_thread)> const launch_kernel{
0042         std::string{"raytrace-"} + GeoTraits<G>::name};
0043     launch_kernel(geo_states.size(), StreamId{0}, execute_thread);
0044 }
0045 
0046 //---------------------------------------------------------------------------//
0047 }  // namespace celeritas