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