Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-04-17 08:35:30

0001 /// \file DeviceGlobals.h
0002 /// \author Andrei Gheata 23/08/2024
0003 
0004 #ifndef VECGEOM_MANAGEMENT_DEVICEGLOBALS_H_
0005 #define VECGEOM_MANAGEMENT_DEVICEGLOBALS_H_
0006 
0007 #include "VecGeom/base/Cuda.h"
0008 #include "VecGeom/base/Global.h"
0009 
0010 #pragma once
0011 namespace vecgeom {
0012 
0013 namespace cuda {
0014 class VPlacedVolume;
0015 class LogicalVolume;
0016 } // namespace cuda
0017 
0018 VECGEOM_DEVICE_FORWARD_DECLARE(struct VolumeTree;);
0019 VECGEOM_DEVICE_FORWARD_DECLARE(class LogicalVolume;);
0020 VECGEOM_DEVICE_FORWARD_DECLARE(class VPlacedVolume;);
0021 
0022 struct VolumeTree;
0023 
0024 // we put some global data into a separate namespace
0025 // this is done since CUDA does not support static const members in class definitions
0026 namespace globaldevicegeomdata {
0027 inline VECCORE_ATT_DEVICE VolumeTree *gVolumeTree                      = nullptr;
0028 inline VECCORE_ATT_DEVICE cuda::VPlacedVolume *gCompactPlacedVolBuffer = nullptr;
0029 inline VECCORE_ATT_DEVICE cuda::LogicalVolume *gDeviceLogicalVolumes   = nullptr;
0030 inline VECCORE_ATT_DEVICE NavIndex_t *gNavIndex                        = nullptr; // address of navigation index table
0031 inline VECCORE_ATT_DEVICE int gMaxDepth                                = 0;
0032 } // namespace globaldevicegeomdata
0033 } // namespace vecgeom
0034 #endif