Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-05-27 07:24:26

0001 // This file is part of the ACTS project.
0002 //
0003 // Copyright (C) 2016 CERN for the benefit of the ACTS project
0004 //
0005 // This Source Code Form is subject to the terms of the Mozilla Public
0006 // License, v. 2.0. If a copy of the MPL was not distributed with this
0007 // file, You can obtain one at https://mozilla.org/MPL/2.0/.
0008 
0009 #pragma once
0010 
0011 // Project include(s).
0012 #include "detray/core/detector.hpp"
0013 #include "detray/definitions/units.hpp"
0014 #include "detray/navigation/caching_navigator.hpp"
0015 #include "detray/propagator/actors.hpp"
0016 #include "detray/propagator/propagator.hpp"
0017 #include "detray/propagator/rk_stepper.hpp"
0018 #include "detray/tracks/tracks.hpp"
0019 
0020 // Detray test include(s)
0021 #include "detray/test/device/cuda/bfield.hpp"
0022 
0023 // Tutorial include(s)
0024 #include "detray/tutorial/types.hpp"
0025 
0026 namespace detray::tutorial {
0027 
0028 // Detector
0029 using metadata_t = detray::tutorial::toy_metadata;
0030 using detector_host_t = detector<metadata_t, host_container_types>;
0031 using detector_device_t = detector<metadata_t, device_container_types>;
0032 
0033 using algebra_t = metadata_t::algebra_type;
0034 using scalar = detray::tutorial::scalar;
0035 
0036 // Navigator
0037 using navigator_t = caching_navigator<detector_device_t>;
0038 
0039 // Stepper
0040 using host_field_t = covfie::field<detray::bfield::inhom_bknd_t<scalar>>;
0041 using device_field_t =
0042     covfie::field<detray::bfield::cuda::inhom_bknd_t<scalar>>;
0043 using stepper_t = rk_stepper<device_field_t::view_t, algebra_t>;
0044 
0045 // Actors
0046 using actor_chain_t = actor_chain<
0047     actor::pathlimit_aborter<scalar>,
0048     actor::parameter_updater<algebra_t,
0049                              actor::pointwise_material_interactor<algebra_t>>>;
0050 
0051 // Propagator
0052 using propagator_t = propagator<stepper_t, navigator_t, actor_chain_t>;
0053 
0054 // Free track parameters
0055 using track_t = detray::free_track_parameters<detray::tutorial::algebra_t>;
0056 
0057 /// Propagation tutorial function
0058 void propagation(
0059     typename detector_host_t::view_type det_data,
0060     typename device_field_t::view_t field_data,
0061     const vecmem::data::vector_view<free_track_parameters<algebra_t>>
0062         tracks_data);
0063 
0064 }  // namespace detray::tutorial