Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-09-15 08:59:51

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 "RaytraceImager.hh"
0018 
0019 #include "corecel/sys/KernelLauncher.device.hh"
0020 #include "corecel/sys/ThreadId.hh"
0021 
0022 #include "detail/RaytraceExecutor.hh"
0023 
0024 namespace celeritas
0025 {
0026 //---------------------------------------------------------------------------//
0027 /*!
0028  * Launch the raytrace kernel on device.
0029  */
0030 template<class G>
0031 void RaytraceImager<G>::launch_raytrace_kernel(
0032     GeoParamsCRef<MemSpace::device> const& geo_params,
0033     GeoStateRef<MemSpace::device> const& geo_states,
0034     ImageParamsCRef<MemSpace::device> const& img_params,
0035     ImageStateRef<MemSpace::device> const& img_states) const
0036 {
0037     using CalcId = detail::VolumeIdCalculator;
0038 
0039     detail::RaytraceExecutor<GeoTrackView, CalcId> execute_thread{
0040         geo_params, geo_states, img_params, img_states, CalcId{}};
0041 
0042     static KernelLauncher<decltype(execute_thread)> const launch_kernel{
0043         std::string{"raytrace-"} + GeoTraits<G>::name};
0044     launch_kernel(geo_states.size(), StreamId{}, execute_thread);
0045 }
0046 
0047 //---------------------------------------------------------------------------//
0048 }  // namespace celeritas