Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-03-13 09:29:30

0001 /*
0002  * SpecializedCone.h
0003  *
0004  *  Created on: May 14, 2014
0005  *      Author: swenzel
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 } // namespace VECGEOM_IMPL_NAMESPACE
0044 } // namespace vecgeom
0045 
0046 #endif // VECGEOM_VOLUMES_SPECIALIZEDCONE_H_