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