Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-30 10:26:21

0001 /// @file SpecializedHype.h
0002 /// @author Raman Sehgal (raman.sehgal@cern.ch)
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 } // namespace VECGEOM_IMPL_NAMESPACE
0042 } // namespace vecgeom
0043 
0044 #endif // VECGEOM_VOLUMES_SPECIALIZEDHYPE_H_