File indexing completed on 2025-01-30 10:26:22
0001
0002
0003
0004
0005
0006
0007
0008
0009 #ifndef VECGEOM_VOLUMES_SPECIALIZEDTRD_H_
0010 #define VECGEOM_VOLUMES_SPECIALIZEDTRD_H_
0011
0012 #include "VecGeom/base/Global.h"
0013
0014 #include "VecGeom/volumes/kernel/TrdImplementation.h"
0015 #include "VecGeom/volumes/PlacedTrd.h"
0016 #include "VecGeom/volumes/SpecializedPlacedVolImplHelper.h"
0017
0018 namespace vecgeom {
0019 inline namespace VECGEOM_IMPL_NAMESPACE {
0020
0021 template <TranslationCode transCodeT, RotationCode rotCodeT, typename TrdTypeT>
0022 using SpecializedTrd = SIMDSpecializedVolImplHelper<TrdImplementation<TrdTypeT>, transCodeT, rotCodeT>;
0023
0024 using SimpleTrd = SpecializedTrd<translation::kGeneric, rotation::kGeneric, TrdTypes::UniversalTrd>;
0025
0026 template <typename Type>
0027 template <TranslationCode transCodeT, RotationCode rotCodeT>
0028 VECCORE_ATT_DEVICE
0029 VPlacedVolume *SUnplacedTrd<Type>::Create(LogicalVolume const *const logical_volume,
0030 Transformation3D const *const transformation,
0031 #ifdef VECCORE_CUDA
0032 const int id, const int copy_no, const int child_id,
0033 #endif
0034 VPlacedVolume *const placement)
0035 {
0036 (void)placement;
0037 return new SpecializedTrd<transCodeT, rotCodeT, Type>(logical_volume, transformation
0038 #ifdef VECCORE_CUDA
0039 ,
0040 id, copy_no, child_id
0041 #endif
0042 );
0043 }
0044
0045 }
0046 }
0047
0048 #endif