Back to home page

EIC code displayed by LXR

 
 

    


Last indexation completed on 2026-06-26 08:40:40 UTC

 
  Name Size Date (UTC) Last indexed Description
  Name Size Date (UTC) Last indexed Description
folder Parent directory - 2026-06-26 07:00:47  
folder gl/ - 2026-06-26 07:00:45  
folder SGLFW_tests/ - 2026-06-26 07:00:45  
folder tests/ - 2026-06-26 07:00:45  
CheckGeo.cc 654 bytes 2026-06-26 07:00:45 2026-06-26 07:50:05

include "CheckGeo.hh"

CheckGeo.hh 585 bytes 2026-06-26 07:00:45 2026-06-26 07:50:05  
CMakeLists.txt 8745 bytes 2026-06-26 07:00:45 -  
config.cpp 11623 bytes 2026-06-26 07:00:45 2026-06-26 07:50:05

include <algorithm>

config.h 2677 bytes 2026-06-26 07:00:45 2026-06-26 07:50:05

pragma once

config_path.h.in 240 bytes 2026-06-26 07:00:45 -  
CUDA_CHECK.h 2932 bytes 2026-06-26 07:00:45 2026-06-26 07:50:05

pragma once

GL_CHECK.h 3146 bytes 2026-06-26 07:00:45 2026-06-26 07:50:05

Adapted from SDK/sutil/Exception.h

gleq.h 10955 bytes 2026-06-26 07:00:45 2026-06-26 07:50:05  
iexpand.h 5081 bytes 2026-06-26 07:00:45 2026-06-26 07:50:05  
njuffa_erfcinvf.h 4707 bytes 2026-06-26 07:00:45 2026-06-26 07:50:05  
np.h 4886 bytes 2026-06-26 07:00:45 2026-06-26 07:50:05

https://github.com/simoncblyth/np/ Extract from NP.hh NPU.hh minimal-ish code to write a NumPy file

NP.hh 260308 bytes 2026-06-26 07:00:45 2026-06-26 07:50:07  
NP_future.h 707 bytes 2026-06-26 07:00:45 2026-06-26 07:50:07  
NP_nanobind.h 5877 bytes 2026-06-26 07:00:45 2026-06-26 07:50:07  
NPFold.h 109668 bytes 2026-06-26 07:00:45 2026-06-26 07:50:08 collecting and persisting NP arrays keyed by relative paths
NPU.hh 88550 bytes 2026-06-26 07:00:45 2026-06-26 07:50:09  
NPX.h 35917 bytes 2026-06-26 07:00:45 2026-06-26 07:50:09 NP.hh related extras such as static converters
OPTICKS_LOG.hh 11573 bytes 2026-06-26 07:00:45 2026-06-26 07:50:09  
OpticksCSG.h 21779 bytes 2026-06-26 07:00:45 2026-06-26 07:50:09  
OpticksGenstep.h 10924 bytes 2026-06-26 07:00:45 2026-06-26 07:50:09

Genstep versioning Not using typedef enum for simplicity as this needs to be used everywhere.

OpticksPhoton.cc 4963 bytes 2026-06-26 07:00:45 2026-06-26 07:50:09

include <iostream>

OpticksPhoton.h 1977 bytes 2026-06-26 07:00:45 2026-06-26 07:50:09  
OpticksPhoton.hh 12367 bytes 2026-06-26 07:00:45 2026-06-26 07:50:09  
OPTIX_CHECK.h 2662 bytes 2026-06-26 07:00:45 2026-06-26 07:50:09  
PlainFormatter.hh 1544 bytes 2026-06-26 07:00:45 2026-06-26 07:50:09  
PLOG.hh 105 bytes 2026-06-26 07:00:45 2026-06-26 07:50:09  
S4.h 2368 bytes 2026-06-26 07:00:45 2026-06-26 07:50:09

After X4.hh

S4MaterialPropertyVector.h 12094 bytes 2026-06-26 07:00:45 2026-06-26 07:50:09

This provides serialization of int, string keyed maps of G4MaterialPropertyVector into NPFold as well as the import of the NPFold back into maps.

S4Random.h 2491 bytes 2026-06-26 07:00:45 2026-06-26 07:50:09

For all the bells and whistles use U4Random.hh S4Random.h aims to be a minimal headeronly alternative intended for use from standalone tests.

S4RandomArray.h 2892 bytes 2026-06-26 07:00:45 2026-06-26 07:50:09

S4RandomArray : Uses Current Engine, but collects the randoms Instanciation holds onto the current engine in m_engine and replaces it with itself.

S4RandomMonitor.h 2340 bytes 2026-06-26 07:00:45 2026-06-26 07:50:10

S4RandomMonitor Instanciation holds onto the current engine in m_engine and replaces it with itself.

s_bb.cc 54 bytes 2026-06-26 07:00:45 2026-06-26 07:50:10

include "s_bb.h" s_bb::POOL* s_bb::pool = nullptr ;

s_bb.h 9628 bytes 2026-06-26 07:00:45 2026-06-26 07:50:10

ctor adds to the pool dtor removes from the pool

s_csg.cc 56 bytes 2026-06-26 07:00:45 2026-06-26 07:50:10

include "s_csg.h" s_csg* s_csg::INSTANCE = nullptr ;

s_csg.h 6000 bytes 2026-06-26 07:00:45 2026-06-26 07:50:10 Manage persisting of CSG constituent nodes
S_get_option.cc 744 bytes 2026-06-26 07:00:45 2026-06-26 07:50:10  
S_get_option.hh 3351 bytes 2026-06-26 07:00:45 2026-06-26 07:50:10  
s_mock_erfcinvf.h 654 bytes 2026-06-26 07:00:45 2026-06-26 07:50:10

This is only intended to be included for MOCK_CUDA on CPU running, it defines a global function to standin for the CUDA equivalent.

s_mock_texture.h 5222 bytes 2026-06-26 07:00:45 2026-06-26 07:50:10

s_mock_texture : exploring CUDA texture lookup API on CPU The cudaTextureObject_t just probably typedef to unsigned long so its an "int" pointer.

s_pa.cc 54 bytes 2026-06-26 07:00:45 2026-06-26 07:50:10

include "s_pa.h" s_pa::POOL* s_pa::pool = nullptr ;

s_pa.h 3463 bytes 2026-06-26 07:00:45 2026-06-26 07:50:10  
s_pmt.h 35005 bytes 2026-06-26 07:00:45 2026-06-26 07:50:10  
s_pool.h 11897 bytes 2026-06-26 07:00:45 2026-06-26 07:50:10  
s_seq.h 6131 bytes 2026-06-26 07:00:45 2026-06-26 07:50:10 Loading and serving up precooked randoms, usaully GPU generated by curand
s_time.h 2412 bytes 2026-06-26 07:00:45 2026-06-26 07:50:10

This follows the approach of plog. Good for string time stamps, but not convenient for measuring durations. See schrono.h or stimer.h for that.

s_tv.cc 54 bytes 2026-06-26 07:00:45 2026-06-26 07:50:10

include "s_tv.h" s_tv::POOL* s_tv::pool = nullptr ;

s_tv.h 6049 bytes 2026-06-26 07:00:45 2026-06-26 07:50:10 simple wrapper to give uniform behaviour to spa/sxf/sbb
s_unique.h 6005 bytes 2026-06-26 07:00:45 2026-06-26 07:50:10 similar to np.unique
saabb.h 6285 bytes 2026-06-26 07:00:45 2026-06-26 07:50:10

pragma once

salloc.h 6109 bytes 2026-06-26 07:00:45 2026-06-26 07:50:10 debug out of memory errors on device
SAr.cc 4571 bytes 2026-06-26 07:00:45 2026-06-26 07:50:10  
SAr.hh 1639 bytes 2026-06-26 07:00:45 2026-06-26 07:50:10  
SArgs.cc 4544 bytes 2026-06-26 07:00:45 2026-06-26 07:50:10  
SArgs.hh 2015 bytes 2026-06-26 07:00:45 2026-06-26 07:50:10  
SArr.cc 21 bytes 2026-06-26 07:00:45 2026-06-26 07:50:10

include "SArr.hh"

SArr.hh 80 bytes 2026-06-26 07:00:45 2026-06-26 07:50:10  
SArrayDigest.cc 1079 bytes 2026-06-26 07:00:45 2026-06-26 07:50:10  
SArrayDigest.hh 1028 bytes 2026-06-26 07:00:45 2026-06-26 07:50:10  
SBacktrace.h 7070 bytes 2026-06-26 07:00:45 2026-06-26 07:50:10  
SBAS.h 2310 bytes 2026-06-26 07:00:45 2026-06-26 07:50:10 Basis mode used by SGLM
sbb.h 1283 bytes 2026-06-26 07:00:45 2026-06-26 07:50:10

pragma once

sbibit.cc 783 bytes 2026-06-26 07:00:45 2026-06-26 07:50:10  
sbibit.h 606 bytes 2026-06-26 07:00:45 2026-06-26 07:50:10 packs and unpacks 4*2bit integers into 8 bits
SBit.cc 12882 bytes 2026-06-26 07:00:45 2026-06-26 07:50:11  
SBit.hh 2068 bytes 2026-06-26 07:00:45 2026-06-26 07:50:11  
sbit_.cc 1678 bytes 2026-06-26 07:00:45 2026-06-26 07:50:11  
sbit_.h 1879 bytes 2026-06-26 07:00:45 2026-06-26 07:50:11 packs and unpacks 8*1bit bools into 8 bits
sbitmask.cc 1888 bytes 2026-06-26 07:00:45 2026-06-26 07:50:11  
sbitmask.h 1952 bytes 2026-06-26 07:00:45 2026-06-26 07:50:11

https://stackoverflow.com/questions/1392059/algorithm-to-generate-bit-mask

SBitSet.h 11904 bytes 2026-06-26 07:00:45 2026-06-26 07:50:11

Used for example from CSGFoundry::Load to implement dynamic prim selection.

sblackbody.h 845 bytes 2026-06-26 07:00:45 2026-06-26 07:50:11  
SBnd.h 20111 bytes 2026-06-26 07:00:45 2026-06-26 07:50:11 Used to fish material properties out of the boundary buffer
sboundary.h 10760 bytes 2026-06-26 07:00:45 2026-06-26 07:50:11 Q: pol comes in much later with stmm.h, how does it manage that ?
sc4u.cc 844 bytes 2026-06-26 07:00:45 2026-06-26 07:50:11  
sc4u.h 1926 bytes 2026-06-26 07:00:45 2026-06-26 07:50:11

pragma once

SCAM.h 1836 bytes 2026-06-26 07:00:45 2026-06-26 07:50:11  
scanvas.h 5999 bytes 2026-06-26 07:00:45 2026-06-26 07:50:11 ascii "painting" (formerly SCanvas.hh without .cc)
scarrier.h 1854 bytes 2026-06-26 07:00:45 2026-06-26 07:50:11

pragma once

SCE.h 2971 bytes 2026-06-26 07:00:45 2026-06-26 07:50:11

pragma once

SCenterExtentFrame.h 7929 bytes 2026-06-26 07:00:45 2026-06-26 07:50:11  
SCenterExtentGenstep.cc 5057 bytes 2026-06-26 07:00:45 2026-06-26 07:50:11

include "scuda.h"

SCenterExtentGenstep.hh 1631 bytes 2026-06-26 07:00:45 2026-06-26 07:50:11  
scerenkov.h 5257 bytes 2026-06-26 07:00:45 2026-06-26 07:50:11 Cerenkov genstep helpers
SCF.h 5493 bytes 2026-06-26 07:00:45 2026-06-26 07:50:11 Lightweight access to CSGFoundry geometry loaded from CFBASE directory
schrono.h 2252 bytes 2026-06-26 07:00:45 2026-06-26 07:50:11

Good for measuring durations, but complicated to extract string timestamps : see stime.h for that.

SCMD.h 80 bytes 2026-06-26 07:00:45 2026-06-26 07:50:11

pragma once struct SCMD { virtual int command(const char* cmd) = 0 ; };

SColor.cc 664 bytes 2026-06-26 07:00:45 2026-06-26 07:50:11  
SColor.hh 505 bytes 2026-06-26 07:00:45 2026-06-26 07:50:11  
SComp.h 13149 bytes 2026-06-26 07:00:45 2026-06-26 07:50:12 naming array components of QEvt/SEvt
SConstant.cc 84 bytes 2026-06-26 07:00:45 2026-06-26 07:50:12

include "SConstant.hh" const char* SConstant::ORIGINAL_DOMAIN_SUFFIX = "_ori" ;

SConstant.hh 128 bytes 2026-06-26 07:00:45 2026-06-26 07:50:12  
scontext.h 5923 bytes 2026-06-26 07:00:45 2026-06-26 07:50:12 holds sdevice.h structs for all and visible GPUs
SCount.cc 1195 bytes 2026-06-26 07:00:45 2026-06-26 07:50:12

include "SCount.hh"

SCount.hh 245 bytes 2026-06-26 07:00:45 2026-06-26 07:50:12  
scsg.cc 5562 bytes 2026-06-26 07:00:45 2026-06-26 07:50:12

include "scsg.hh"

scsg.hh 2805 bytes 2026-06-26 07:00:45 2026-06-26 07:50:12  
SCSGPrimSpec.h 5797 bytes 2026-06-26 07:00:45 2026-06-26 07:50:12

pragma once

SCtrl.cc 738 bytes 2026-06-26 07:00:45 2026-06-26 07:50:12  
SCtrl.hh 943 bytes 2026-06-26 07:00:45 2026-06-26 07:50:12  
sctx.h 4861 bytes 2026-06-26 07:00:45 2026-06-26 07:50:12 holding "thread local" state
SCU.h 5655 bytes 2026-06-26 07:00:45 2026-06-26 07:50:12

TODO: merge in SCU_.h

SCU_.h 2503 bytes 2026-06-26 07:00:45 2026-06-26 07:50:12

TODO : merge this with SCU.h

SCU_BufferView.h 6481 bytes 2026-06-26 07:00:45 2026-06-26 07:50:12  
scuda.h 84345 bytes 2026-06-26 07:00:45 2026-06-26 07:50:13  
scuda_double.h 1988 bytes 2026-06-26 07:00:45 2026-06-26 07:50:13

pragma once

SCUDA_Mesh.h 2458 bytes 2026-06-26 07:00:45 2026-06-26 07:50:13 uploads SMesh tri and holds SCU_Buf
SCUDA_MeshGroup.h 1859 bytes 2026-06-26 07:00:45 2026-06-26 07:50:13 collect vectors of NP from each SMeshGroup sub, upload together with SCU_BufferView
SCUDA_OutputBuffer.h 13140 bytes 2026-06-26 07:00:45 2026-06-26 07:50:13 Allows an OpenGL PBO buffer to be accessed from CUDA
scuda_pointer.h 624 bytes 2026-06-26 07:00:45 2026-06-26 07:50:13

https://github.com/ingowald/optix7course/blob/master/example08_addingTextures/devicePrograms.cu See env-;optix7c-

scuda_templated.h 1389 bytes 2026-06-26 07:00:45 2026-06-26 07:50:13

Use F2/F4/F4 within "template<typename F>" functions to standin for float2/3/4 or double2/3/4 in a more flexible way.

scurand.h 727 bytes 2026-06-26 07:00:45 2026-06-26 07:50:13

pragma once

SCurandChunk.h 17056 bytes 2026-06-26 07:00:45 2026-06-26 07:50:13

NB NOT GENERAL : THIS IS SPECIFIC TO curandStateXORWOW The Load_ and Save methods are specific to curandStateXORWOW, most of the rest is more general.

scurandref.h 1415 bytes 2026-06-26 07:00:45 2026-06-26 07:50:13  
SCurandSpec.h 2369 bytes 2026-06-26 07:00:45 2026-06-26 07:50:13  
SCurandState.h 9518 bytes 2026-06-26 07:00:45 2026-06-26 07:50:13 More Flexible+capable replacement for SCurandState.{hh,cc}
SCurandStateMonolithic.cc 4802 bytes 2026-06-26 07:00:45 2026-06-26 07:50:13

include <cassert>

SCurandStateMonolithic.hh 1045 bytes 2026-06-26 07:00:45 2026-06-26 07:50:13  
SDBG.h 1115 bytes 2026-06-26 07:00:45 2026-06-26 07:50:13  
sdebug.h 2153 bytes 2026-06-26 07:00:45 2026-06-26 07:50:13

pragma once

sdevice.h 16095 bytes 2026-06-26 07:00:45 2026-06-26 07:50:13  
SDice.hh 319 bytes 2026-06-26 07:00:45 2026-06-26 07:50:13  
SDigest.cc 9313 bytes 2026-06-26 07:00:45 2026-06-26 07:50:13  
sdigest.h 7942 bytes 2026-06-26 07:00:45 2026-06-26 07:50:14

Header-only hexdigest Uses the vendored Solar Designer MD5 implementation.

SDigest.hh 2440 bytes 2026-06-26 07:00:45 2026-06-26 07:50:14  
SDigestNP.cc 399 bytes 2026-06-26 07:00:45 2026-06-26 07:50:14

include <cassert>

SDigestNP.hh 329 bytes 2026-06-26 07:00:45 2026-06-26 07:50:14  
SDir.h 2498 bytes 2026-06-26 07:00:45 2026-06-26 07:50:14 header only dirent.h directory listing paths with supplied ext
SDir_test.cc 0 bytes 2026-06-26 07:00:45 2026-06-26 07:50:14  
SDirect.cc 740 bytes 2026-06-26 07:00:45 2026-06-26 07:50:14  
sdirect.h 2507 bytes 2026-06-26 07:00:45 2026-06-26 07:50:14 Stream redirection to silence noisy code unless VERBOSE is defined
SDirect.hh 2484 bytes 2026-06-26 07:00:45 2026-06-26 07:50:14  
sdirectory.h 3316 bytes 2026-06-26 07:00:45 2026-06-26 07:50:14

pragma once

sdomain.h 3572 bytes 2026-06-26 07:00:45 2026-06-26 07:50:14

Regarding hc_eVnm see U4PhysicalConstantsTest, there is slight difference from smath.h float value : could be arising from CLHEP version difference Wavelength fine domain np.linspace(60,820,761)

SEnabled.cc 921 bytes 2026-06-26 07:00:45 2026-06-26 07:50:14

include "SEnabled.hh"

SEnabled.hh 227 bytes 2026-06-26 07:00:45 2026-06-26 07:50:14  
SEvent.cc 11273 bytes 2026-06-26 07:00:45 2026-06-26 07:50:14

include <csignal>

sevent.h 26773 bytes 2026-06-26 07:00:45 2026-06-26 07:50:14 qudarap/QU.cc
SEvent.hh 2211 bytes 2026-06-26 07:00:45 2026-06-26 07:50:14  
SEventConfig.cc 74337 bytes 2026-06-26 07:00:45 2026-06-26 07:50:14

include <sstream>

SEventConfig.hh 26463 bytes 2026-06-26 07:00:45 2026-06-26 07:50:15  
SEvt.cc 153679 bytes 2026-06-26 07:00:45 2026-06-26 07:50:15  
SEvt.hh 23766 bytes 2026-06-26 07:00:45 2026-06-26 07:50:16  
sfactor.h 4160 bytes 2026-06-26 07:00:45 2026-06-26 07:50:16  
SFastSim_Debug.cc 904 bytes 2026-06-26 07:00:45 2026-06-26 07:50:16

include "SFastSim_Debug.hh"

SFastSim_Debug.hh 1425 bytes 2026-06-26 07:00:45 2026-06-26 07:50:16  
SFastSimOpticalModel.cc 274 bytes 2026-06-26 07:00:45 2026-06-26 07:50:16

include <cstring>

SFastSimOpticalModel.hh 950 bytes 2026-06-26 07:00:45 2026-06-26 07:50:16  
sflow.h 1306 bytes 2026-06-26 07:00:45 2026-06-26 07:50:16

Flow control enum and CPU only presentation

sfmt.h 756 bytes 2026-06-26 07:00:45 2026-06-26 07:50:16

pragma once

sfr.h 22510 bytes 2026-06-26 07:00:45 2026-06-26 07:50:16  
sframe.h 20633 bytes 2026-06-26 07:00:45 2026-06-26 07:50:16 NEW CODE SHOULD NOT USE sframe.h : INSTEAD USE sfr.h
SFrameConfig.cc 1103 bytes 2026-06-26 07:00:45 2026-06-26 07:50:16

include <sstream>

SFrameConfig.hh 530 bytes 2026-06-26 07:00:45 2026-06-26 07:50:16  
SFrameGenstep.cc 37377 bytes 2026-06-26 07:00:45 2026-06-26 07:50:16

include <limits>

SFrameGenstep.hh 2924 bytes 2026-06-26 07:00:45 2026-06-26 07:50:16  
sfreq.h 8185 bytes 2026-06-26 07:00:45 2026-06-26 07:50:17 count occurrence frequencies of strings and sorts by frequencies
SGDML.cc 2250 bytes 2026-06-26 07:00:45 2026-06-26 07:50:17  
SGDML.hh 1258 bytes 2026-06-26 07:00:45 2026-06-26 07:50:17  
SGen.h 4860 bytes 2026-06-26 07:00:45 2026-06-26 07:50:17

Used from SGLFW_Gen.h

SGenerate.h 2766 bytes 2026-06-26 07:00:45 2026-06-26 07:50:17  
SGenstep.h 13020 bytes 2026-06-26 07:00:45 2026-06-26 07:50:17 genstep static utilities
SGeo.cc 584 bytes 2026-06-26 07:00:45 2026-06-26 07:50:17

include <cstring>

SGeo.hh 1941 bytes 2026-06-26 07:00:45 2026-06-26 07:50:17  
SGeoConfig.cc 15202 bytes 2026-06-26 07:00:45 2026-06-26 07:50:17

include <iostream>

SGeoConfig.hh 3702 bytes 2026-06-26 07:00:45 2026-06-26 07:50:17  
sgeomdefs.h 561 bytes 2026-06-26 07:00:45 2026-06-26 07:50:17

pragma once

sgeomtools.h 5041 bytes 2026-06-26 07:00:45 2026-06-26 07:50:17

Adapt some extracts from G4GeomTools

SGLDisplay.h 12838 bytes 2026-06-26 07:00:45 2026-06-26 07:50:17 OpenGL shader pipeline that presents PBO to screen
SGLFW.h 37636 bytes 2026-06-26 07:00:45 2026-06-26 07:50:17 Light touch OpenGL render loop and key handling
SGLFW_Attrib.h 6795 bytes 2026-06-26 07:00:45 2026-06-26 07:50:17

SGLFW_GLboolean string parse SGLFW_bool string parse SGLFW_GLenum string parse SGLFW_Attrib parse attribute metadata strings such as "4,GL_FLOAT,GL_FALSE,64,0,false"

SGLFW_Buffer.h 1383 bytes 2026-06-26 07:00:45 2026-06-26 07:50:17

SGLFW_Buffer : minimal OpenGL buffer wrapper Old Opticks oglrap handled multi-buffers using RBuf held by Renderer See:: Renderer::createVertexArray

SGLFW_check.h 1867 bytes 2026-06-26 07:00:45 2026-06-26 07:50:17  
SGLFW_CUDA.h 2409 bytes 2026-06-26 07:00:45 2026-06-26 07:50:17 Coordinate SCUDA_OutputBuffer and SGLDisplay for display of interop buffers
SGLFW_Evt.h 3709 bytes 2026-06-26 07:00:45 2026-06-26 07:50:17 manage event data and corresponding OpenGL progs
SGLFW_Gen.h 1945 bytes 2026-06-26 07:00:45 2026-06-26 07:50:17  
SGLFW_GLEQ.h 5498 bytes 2026-06-26 07:00:45 2026-06-26 07:50:17

pragma once

SGLFW_Keys.h 2023 bytes 2026-06-26 07:00:45 2026-06-26 07:50:17 record of keyboard keys currently held down with modifiers bitfield summarization
SGLFW_Mesh.h 5193 bytes 2026-06-26 07:00:45 2026-06-26 07:50:17 create OpenGL buffers with SMesh and instance data and render
SGLFW_Program.h 15356 bytes 2026-06-26 07:00:45 2026-06-26 07:50:18 compile and link OpenGL pipeline using shader sources loaded from directory
SGLFW_Record.h 1929 bytes 2026-06-26 07:00:45 2026-06-26 07:50:18  
SGLFW_Scene.h 5462 bytes 2026-06-26 07:00:45 2026-06-26 07:50:18 manage scene data and OpenGL render pipelines
SGLFW_SOPTIX.h 833 bytes 2026-06-26 07:00:45 2026-06-26 07:50:18

pragma once

SGLFW_VAO.h 804 bytes 2026-06-26 07:00:45 2026-06-26 07:50:18

SGLFW_VAO : Minimal Vertex Array wrapper

SGLM.h 96280 bytes 2026-06-26 07:00:45 2026-06-26 07:50:18  
SGLM_Arcball.h 1790 bytes 2026-06-26 07:00:45 2026-06-26 07:50:18  
SGLM_Modifiers.h 4550 bytes 2026-06-26 07:00:45 2026-06-26 07:50:18 control keys enumeration
SGLM_Parse.h 2209 bytes 2026-06-26 07:00:45 2026-06-26 07:50:18  
SGLM_View.h 1290 bytes 2026-06-26 07:00:45 2026-06-26 07:50:18

pragma once

sgs.h 1834 bytes 2026-06-26 07:00:45 2026-06-26 07:50:18 Aiming to replace cfg4/CGenstep
SId.cc 1346 bytes 2026-06-26 07:00:45 2026-06-26 07:50:18  
SId.hh 1276 bytes 2026-06-26 07:00:45 2026-06-26 07:50:18  
sidxname.h 1328 bytes 2026-06-26 07:00:45 2026-06-26 07:50:18  
SLabel.h 4367 bytes 2026-06-26 07:00:45 2026-06-26 07:50:18

After the fact lookups of mmlable indices from labels. This was used to provide primitive "post-hoc" trimesh control prior to implementation of proper tri control.

SLabelCache.cc 63 bytes 2026-06-26 07:00:45 2026-06-26 07:50:18

include "SLabelCache.hh" template struct SLabelCache<int> ;

SLabelCache.hh 1011 bytes 2026-06-26 07:00:45 2026-06-26 07:50:18  
SLauncher.cc 742 bytes 2026-06-26 07:00:45 2026-06-26 07:50:18  
SLauncher.hh 922 bytes 2026-06-26 07:00:45 2026-06-26 07:50:18  
SLaunchSequence.h 5005 bytes 2026-06-26 07:00:45 2026-06-26 07:50:19  
slist.h 1003 bytes 2026-06-26 07:00:45 2026-06-26 07:50:19

pragma once

SLOG.cc 12206 bytes 2026-06-26 07:00:45 2026-06-26 07:50:19  
slog.h 2063 bytes 2026-06-26 07:00:45 2026-06-26 07:50:19

See notes/issues/logging_from_headeronly_impls.rst

SLOG.hh 3876 bytes 2026-06-26 07:00:45 2026-06-26 07:50:19  
SLOG_INIT.hh 4033 bytes 2026-06-26 07:00:45 2026-06-26 07:50:19  
SLogger.cc 1529 bytes 2026-06-26 07:00:45 2026-06-26 07:50:19  
SLogger.hh 1253 bytes 2026-06-26 07:00:45 2026-06-26 07:50:19  
SMap.cc 1925 bytes 2026-06-26 07:00:45 2026-06-26 07:50:19  
SMap.hh 1153 bytes 2026-06-26 07:00:45 2026-06-26 07:50:19  
SMath.cc 1755 bytes 2026-06-26 07:00:45 2026-06-26 07:50:19

include <cassert>

smath.h 4703 bytes 2026-06-26 07:00:45 2026-06-26 07:50:19

pragma once

SMath.hh 323 bytes 2026-06-26 07:00:45 2026-06-26 07:50:19  
smatsur.h 3552 bytes 2026-06-26 07:00:45 2026-06-26 07:50:19 ems" : enumeration of Material and Surface types
SMesh.h 27225 bytes 2026-06-26 07:00:45 2026-06-26 07:50:19 holds tri,vtx,nrm NP either from original G4VSolid conversion or concatenation
SMeshGroup.h 4913 bytes 2026-06-26 07:00:45 2026-06-26 07:50:19 collection of SMesh subs and names
SMeta.cc 1362 bytes 2026-06-26 07:00:45 2026-06-26 07:50:19

include <iostream>

smeta.h 1786 bytes 2026-06-26 07:00:45 2026-06-26 07:50:19

BASH_SOURCE fails to export

SMeta.hh 782 bytes 2026-06-26 07:00:45 2026-06-26 07:50:19  
sn.cc 48 bytes 2026-06-26 07:00:45 2026-06-26 07:50:19

include "sn.h" sn::POOL* sn::pool = nullptr ;

sn.h 144041 bytes 2026-06-26 07:00:45 2026-06-26 07:50:20 minimal pointer based transient binary tree node
snam.h 1556 bytes 2026-06-26 07:00:45 2026-06-26 07:50:20

pragma once

SName.h 22424 bytes 2026-06-26 07:00:45 2026-06-26 07:50:20 formerly CSG/CSGName.h
SNameOrder.h 2061 bytes 2026-06-26 07:00:45 2026-06-26 07:50:20 Ordering vectors of objects with GetName methods
SNameVec.cc 24 bytes 2026-06-26 07:00:45 2026-06-26 07:50:20

include "SNameVec.hh"

SNameVec.hh 1192 bytes 2026-06-26 07:00:45 2026-06-26 07:50:20  
snd.cc 42839 bytes 2026-06-26 07:00:45 2026-06-26 07:50:21  
snd.hh 9623 bytes 2026-06-26 07:00:45 2026-06-26 07:50:21  
sndtree.h 3106 bytes 2026-06-26 07:00:45 2026-06-26 07:50:21  
snode.h 5066 bytes 2026-06-26 07:00:45 2026-06-26 07:50:21 structural "volume" nodes
SOpticks.cc 3079 bytes 2026-06-26 07:00:45 2026-06-26 07:50:21

include "SArgs.hh"

SOpticks.hh 1727 bytes 2026-06-26 07:00:45 2026-06-26 07:50:21  
SOpticksKey.cc 6226 bytes 2026-06-26 07:00:45 2026-06-26 07:50:21  
SOpticksKey.hh 4071 bytes 2026-06-26 07:00:45 2026-06-26 07:50:21  
SOpticksResource.cc 21335 bytes 2026-06-26 07:00:45 2026-06-26 07:50:21

include <cassert>

SOpticksResource.hh 3565 bytes 2026-06-26 07:00:45 2026-06-26 07:50:21  
SOPTIX.cu 9801 bytes 2026-06-26 07:00:45 2026-06-26 07:50:21  
SOPTIX.h 3639 bytes 2026-06-26 07:00:45 2026-06-26 07:50:21 top level coordinator of triangulated raytrace render
SOPTIX.rst 3447 bytes 2026-06-26 07:00:45 -  
SOPTIX_Accel.h 7352 bytes 2026-06-26 07:00:45 2026-06-26 07:50:21 builds acceleration structure GAS or IAS from the buildInputs
SOPTIX_Binding.h 738 bytes 2026-06-26 07:00:45 2026-06-26 07:50:21 CPU/GPU SBT records
SOPTIX_BuildInput.h 2169 bytes 2026-06-26 07:00:45 2026-06-26 07:50:21  
SOPTIX_BuildInput_CPA.h 2369 bytes 2026-06-26 07:00:45 2026-06-26 07:50:21

SOPTIX_BuildInput_CPA As SCSGPrimSpec are passed around by value do not assume long lived pointer addresses back in the SCSGPrimSpec.

SOPTIX_BuildInput_IA.h 1422 bytes 2026-06-26 07:00:45 2026-06-26 07:50:21

pragma once

SOPTIX_BuildInput_Mesh.h 3572 bytes 2026-06-26 07:00:45 2026-06-26 07:50:21 create OptixBuildInput via "part" indexing into SCUDA_MeshGroup (Used from SOPTIX_MeshGroup)
SOPTIX_Context.h 2466 bytes 2026-06-26 07:00:45 2026-06-26 07:50:22 OptixDeviceContext + SOPTIX_Properties
SOPTIX_Desc.h 3150 bytes 2026-06-26 07:00:45 2026-06-26 07:50:22  
SOPTIX_getPRD.h 675 bytes 2026-06-26 07:00:45 2026-06-26 07:50:22 unpackPointer from optixPayload
SOPTIX_MeshGroup.h 3163 bytes 2026-06-26 07:00:45 2026-06-26 07:50:22 create SOPTIX_BuildInput_Mesh for each part of SCUDA_MeshGroup, use those to form SOPTIX_Accel gas
SOPTIX_Module.h 3828 bytes 2026-06-26 07:00:45 2026-06-26 07:50:22 Create OptixModule loaded from file
SOPTIX_OPT.h 11420 bytes 2026-06-26 07:00:45 2026-06-26 07:50:22 enum strings
SOPTIX_Options.h 8721 bytes 2026-06-26 07:00:45 2026-06-26 07:50:22 module and pipeline compile/link options
SOPTIX_Params.h 1162 bytes 2026-06-26 07:00:45 2026-06-26 07:50:22 render control
SOPTIX_Pipeline.h 9502 bytes 2026-06-26 07:00:45 2026-06-26 07:50:22 Create OptixPipeline from OptixModule
SOPTIX_Pixels.h 986 bytes 2026-06-26 07:00:45 2026-06-26 07:50:22

pragma once

SOPTIX_Properties.h 7998 bytes 2026-06-26 07:00:45 2026-06-26 07:50:22 optixDeviceContextGetProperty results
SOPTIX_SBT.h 7959 bytes 2026-06-26 07:00:45 2026-06-26 07:50:22 create sbt from pipeline and scene by uploding the prog and hitgroup records
SOPTIX_Scene.h 7652 bytes 2026-06-26 07:00:45 2026-06-26 07:50:22 top level, holds vectors of SCUDA_MeshGroup SOPTIX_MeshGroup and OptixInstance
spa.h 1032 bytes 2026-06-26 07:00:45 2026-06-26 07:50:22

last two param are zmin/zmax for multiple types:: CSG_ZSPHERE CSG_CYLINDER CSG_CONE

SPack.cc 6591 bytes 2026-06-26 07:00:45 2026-06-26 07:50:22

include <cassert>

SPack.hh 2548 bytes 2026-06-26 07:00:45 2026-06-26 07:50:22  
SPairVec.cc 1615 bytes 2026-06-26 07:00:45 2026-06-26 07:50:22  
SPairVec.hh 1253 bytes 2026-06-26 07:00:45 2026-06-26 07:50:22  
SPath.cc 18586 bytes 2026-06-26 07:00:45 2026-06-26 07:50:22  
spath.h 33356 bytes 2026-06-26 07:00:45 2026-06-26 07:50:22

Q: Whats the difference between spath::ResolvePath and spath::Resolve ? A: ResolvePath accepts only a single string element whereas Resolve accepts from 1 to 4 elements.

SPath.hh 4065 bytes 2026-06-26 07:00:45 2026-06-26 07:50:23  
SPhiCut.cc 2139 bytes 2026-06-26 07:00:45 2026-06-26 07:50:23

include "SLOG.hh"

SPhiCut.hh 245 bytes 2026-06-26 07:00:45 2026-06-26 07:50:23  
sphit.h 1533 bytes 2026-06-26 07:00:45 2026-06-26 07:50:23

Used by SEvt::getLocalHit interface for passing information from sframe into U4Hit Currently node_index is not included.

spho.h 5354 bytes 2026-06-26 07:00:45 2026-06-26 07:50:23 photon labelling used by genstep collection
sphoton.h 37213 bytes 2026-06-26 07:00:45 2026-06-26 07:50:23  
SPhoton_Debug.h 3058 bytes 2026-06-26 07:00:45 2026-06-26 07:50:23  
sphotonlite.h 13803 bytes 2026-06-26 07:00:45 2026-06-26 07:50:23  
SPlace.h 2709 bytes 2026-06-26 07:00:45 2026-06-26 07:50:23

pragma once

SPlaceCircle.h 2747 bytes 2026-06-26 07:00:45 2026-06-26 07:50:23

pragma once

SPlaceCylinder.h 3047 bytes 2026-06-26 07:00:45 2026-06-26 07:50:23

pragma once

SPlaceRing.h 1444 bytes 2026-06-26 07:00:45 2026-06-26 07:50:23

pragma once

SPlaceSphere.h 2889 bytes 2026-06-26 07:00:45 2026-06-26 07:50:23

pragma once

SPM.cu 10455 bytes 2026-06-26 07:00:45 2026-06-26 07:50:23  
SPM.hh 1427 bytes 2026-06-26 07:00:45 2026-06-26 07:50:23  
SPM_future.h 381 bytes 2026-06-26 07:00:45 2026-06-26 07:50:23  
SPMT.h 60524 bytes 2026-06-26 07:00:45 2026-06-26 07:50:24 summarize PMTSimParamData NPFold into the few arrays needed on GPU
SPMTAccessor.h 4173 bytes 2026-06-26 07:00:45 2026-06-26 07:50:24

Provides access to JUNO PMT data during standalone optical-only testing without j/PMTSim.

SPPM.cc 15961 bytes 2026-06-26 07:00:45 2026-06-26 07:50:24  
sppm.h 2268 bytes 2026-06-26 07:00:45 2026-06-26 07:50:24  
SPPM.hh 3562 bytes 2026-06-26 07:00:45 2026-06-26 07:50:24  
SPrd.h 6280 bytes 2026-06-26 07:00:45 2026-06-26 07:50:24

SPrd : used by QSimTest/fake_propagate This was moved from QPrd Dummy per-ray-data enabling pure-CUDA (no OptiX, no geometry) testing of propagation using QSimTest MOCK_PROPAGATE.

SPresent.h 1850 bytes 2026-06-26 07:00:45 2026-06-26 07:50:24

include <iostream>

sproc.h 4672 bytes 2026-06-26 07:00:45 2026-06-26 07:50:24

Implementations of VirtualMemoryUsageMB of a process.

SProcessHits_EPH.h 14412 bytes 2026-06-26 07:00:45 2026-06-26 07:50:24

o/sysrap/tests/SProcessHits_EPH_test.sh

SProf.cc 183 bytes 2026-06-26 07:00:45 2026-06-26 07:50:24

include "SProf.hh" char SProf::TAG[N] = {} ; std::vector<sprof> SProf::PROF = {} ; std::vector<std::string> SProf::NAME = {} ; std::vector<std::string> SProf::META = {} ;

sprof.h 4526 bytes 2026-06-26 07:00:45 2026-06-26 07:50:24  
SProf.hh 9529 bytes 2026-06-26 07:00:45 2026-06-26 07:50:24  
SProfile.h 2060 bytes 2026-06-26 07:00:45 2026-06-26 07:50:24  
sprop.h 3491 bytes 2026-06-26 07:00:45 2026-06-26 07:50:24  
sproplist.h 2497 bytes 2026-06-26 07:00:45 2026-06-26 07:50:24  
SPropMockup.h 4199 bytes 2026-06-26 07:00:45 2026-06-26 07:50:24 formerly SProp.hh
sqat4.h 25036 bytes 2026-06-26 07:00:45 2026-06-26 07:50:25

pragma once

squad.h 28255 bytes 2026-06-26 07:00:45 2026-06-26 07:50:25  
squad_double.h 1403 bytes 2026-06-26 07:00:45 2026-06-26 07:50:25

pragma once

squadx.h 643 bytes 2026-06-26 07:00:45 2026-06-26 07:50:25 facilitate storing uint64_t values into quad4 which uses 32 bit elements
SRand.cc 263 bytes 2026-06-26 07:00:45 2026-06-26 07:50:25

include <cstdlib>

SRand.hh 214 bytes 2026-06-26 07:00:45 2026-06-26 07:50:25  
SRandom.h 133 bytes 2026-06-26 07:00:45 2026-06-26 07:50:25

pragma once struct SRandom { virtual int getFlatCursor() const = 0 ; virtual double getFlatPrior() const = 0 ; };

srec.h 4724 bytes 2026-06-26 07:00:45 2026-06-26 07:50:25 highly domain compressed photon step records used for debugging only
SRecord.h 12347 bytes 2026-06-26 07:00:45 2026-06-26 07:50:25

Used from SGLFW_Evt.h

SRenderer.cc 742 bytes 2026-06-26 07:00:45 2026-06-26 07:50:25  
SRenderer.hh 1318 bytes 2026-06-26 07:00:45 2026-06-26 07:50:25  
SRG.h 1193 bytes 2026-06-26 07:00:45 2026-06-26 07:50:25 Raygen Mode
SRM.h 2099 bytes 2026-06-26 07:00:45 2026-06-26 07:50:25 Running Mode
srng.h 3427 bytes 2026-06-26 07:00:45 2026-06-26 07:50:25 picks curandState implementation
SRng.hh 301 bytes 2026-06-26 07:00:45 2026-06-26 07:50:25  
srng_traits.h 705 bytes 2026-06-26 07:00:45 2026-06-26 07:50:25 common RNG traits interface
srngcpu.h 3600 bytes 2026-06-26 07:00:45 2026-06-26 07:50:25 C++ standard random number generation
SRngSpec.cc 1621 bytes 2026-06-26 07:00:45 2026-06-26 07:50:25

include <cstdio>

SRngSpec.hh 881 bytes 2026-06-26 07:00:45 2026-06-26 07:50:25  
SScene.h 32713 bytes 2026-06-26 07:00:45 2026-06-26 07:50:25

Canonical SScene instance is member of SSim and is instanciated by the SSim ctor.

sscint.h 2699 bytes 2026-06-26 07:00:45 2026-06-26 07:50:25 scintillation genstep helpers
SSeq.cc 1285 bytes 2026-06-26 07:00:45 2026-06-26 07:50:25  
sseq.h 7622 bytes 2026-06-26 07:00:45 2026-06-26 07:50:25 photon level step-by-step history and material recording seqhis/seqmat using NSEQ 64 bit uint
SSeq.hh 1050 bytes 2026-06-26 07:00:45 2026-06-26 07:50:25  
sseq_array.h 2039 bytes 2026-06-26 07:00:45 2026-06-26 07:50:25

Facilitate history selection using seq array This is used from:: sseq_record.h

sseq_index.h 17115 bytes 2026-06-26 07:00:45 2026-06-26 07:50:26  
sseq_record.h 3463 bytes 2026-06-26 07:00:45 2026-06-26 07:50:26

Enable selection of photon records with particular histories such as "TO BT AB" Used from:: sysrap/tests/sseq_record_test.cc sysrap/SRecord.h

SSim.cc 26634 bytes 2026-06-26 07:00:45 2026-06-26 07:50:26

include <map>

SSim.hh 4900 bytes 2026-06-26 07:00:45 2026-06-26 07:50:26  
SSimtrace.h 4038 bytes 2026-06-26 07:00:45 2026-06-26 07:50:26

SSimtrace : aiming to replace X4Simtrace is very local centric it populates a default sframe with ce from the G4VSolid.

SSimulator.h 1100 bytes 2026-06-26 07:00:45 2026-06-26 07:50:26 pure virtual interface used from QSim, G4CXOpticks, CSGOptiX
ssincos.h 148 bytes 2026-06-26 07:00:45 2026-06-26 07:50:26

pragma once

sslice.h 3993 bytes 2026-06-26 07:00:45 2026-06-26 07:50:26 python style gs[start:stop] slice of genstep arrays/vectors
ssolid.h 5168 bytes 2026-06-26 07:00:45 2026-06-26 07:50:26  
SSortKV.cc 1221 bytes 2026-06-26 07:00:45 2026-06-26 07:50:26  
SSortKV.hh 1787 bytes 2026-06-26 07:00:45 2026-06-26 07:50:26  
SStackFrame.h 2753 bytes 2026-06-26 07:00:45 2026-06-26 07:50:26

SStackFrame Used for stack frame introspection based on *cxxabi.h*

sstamp.h 5127 bytes 2026-06-26 07:00:45 2026-06-26 07:50:26

pragma once

sstandard.h 21256 bytes 2026-06-26 07:00:45 2026-06-26 07:50:26 standard domain arrays
sstate.h 3554 bytes 2026-06-26 07:00:45 2026-06-26 07:50:26

pragma once

sstr.h 37769 bytes 2026-06-26 07:00:45 2026-06-26 07:50:27

pragma once

SSys.cc 18999 bytes 2026-06-26 07:00:45 2026-06-26 07:50:27  
ssys.h 30853 bytes 2026-06-26 07:00:45 2026-06-26 07:50:27

Note that strings like "1e-9" parse ok into float/double.

SSys.hh 4999 bytes 2026-06-26 07:00:45 2026-06-26 07:50:27  
ssystime.h 1936 bytes 2026-06-26 07:00:45 2026-06-26 07:50:27  
st.h 611 bytes 2026-06-26 07:00:45 2026-06-26 07:50:27

st : complete binary tree expressions cf with CSG/csg_postorder.h that is used on GPU for these // tree_nodes_ = lambda height:( (0x1 << (1+(height))) - 1 )

stag.h 11674 bytes 2026-06-26 07:00:45 2026-06-26 07:50:27 random consumption tags for simulation alignment purposes
stexture.h 364 bytes 2026-06-26 07:00:45 2026-06-26 07:50:27

pragma once

SThetaCut.cc 4369 bytes 2026-06-26 07:00:45 2026-06-26 07:50:27

include <csignal>

SThetaCut.hh 262 bytes 2026-06-26 07:00:45 2026-06-26 07:50:27  
STime.cc 1171 bytes 2026-06-26 07:00:45 2026-06-26 07:50:27  
STime.hh 962 bytes 2026-06-26 07:00:45 2026-06-26 07:50:27  
stimer.h 6942 bytes 2026-06-26 07:00:45 2026-06-26 07:50:27  
STimes.cc 3130 bytes 2026-06-26 07:00:45 2026-06-26 07:50:27  
STimes.hh 1305 bytes 2026-06-26 07:00:45 2026-06-26 07:50:27  
stmm.h 20606 bytes 2026-06-26 07:00:45 2026-06-26 07:50:27 Thin/Thick Multi-layer Stack TMM "Transfer Matrix Method" A,R,T calculation
storch.h 18332 bytes 2026-06-26 07:00:45 2026-06-26 07:50:28 torch genstep helpers
storchtype.h 2214 bytes 2026-06-26 07:00:45 2026-06-26 07:50:28  
stra.h 24923 bytes 2026-06-26 07:00:45 2026-06-26 07:50:28  
STrackInfo.h 4459 bytes 2026-06-26 07:00:45 2026-06-26 07:50:28

formerly U4TrackInfo.h) Formerly uses templated STrackInfo but as doing dynamic cast on such a type is not possible that is dangerous as must rely on no other track info subclasses being in use.

stran.h 21870 bytes 2026-06-26 07:00:45 2026-06-26 07:50:28 Tran
STranche.cc 2624 bytes 2026-06-26 07:00:45 2026-06-26 07:50:28  
STranche.hh 1286 bytes 2026-06-26 07:00:45 2026-06-26 07:50:28  
stree.h 237342 bytes 2026-06-26 07:00:45 2026-06-26 07:50:30 u4/U4Tree.h
strid.h 14424 bytes 2026-06-26 07:00:45 2026-06-26 07:50:30

strid::Encode Formerly kludge skipped e=0 for some non-valid reason "kludge to keep [:,3,3] 1.

strided_range.h 3255 bytes 2026-06-26 07:00:45 2026-06-26 07:50:30  
SU.cu 6241 bytes 2026-06-26 07:00:45 2026-06-26 07:50:30  
SU.hh 2189 bytes 2026-06-26 07:00:45 2026-06-26 07:50:30  
SUniformRand.h 2470 bytes 2026-06-26 07:00:45 2026-06-26 07:50:30

This adapts u4/U4UniformRand.h to try to get rid of Geant4 dependency.

suniquename.h 1244 bytes 2026-06-26 07:00:45 2026-06-26 07:50:30

This allows storing large numbers of repetitive names without repeating them, by storing integer indices into the names vector instead of storing all the repeated names.

SVec.cc 4397 bytes 2026-06-26 07:00:45 2026-06-26 07:50:30  
svec.h 6956 bytes 2026-06-26 07:00:45 2026-06-26 07:50:30 static vector<T> utilities
SVec.hh 1609 bytes 2026-06-26 07:00:45 2026-06-26 07:50:30  
sview.h 1837 bytes 2026-06-26 07:00:45 2026-06-26 07:50:30

Templated reinterpretation of bits allowing to view unsigned int as float and double and vice versa.

sxf.h 744 bytes 2026-06-26 07:00:45 2026-06-26 07:50:30 simple wrapper to give uniform behaviour to spa/sxf/sbb
sxyz.h 47 bytes 2026-06-26 07:00:45 2026-06-26 07:50:30

pragma once enum { XYZ, YZ, XZ, XY } ;

SYSRAP_API_EXPORT.hh 789 bytes 2026-06-26 07:00:45 2026-06-26 07:50:30  
SYSRAP_LOG.cc 1110 bytes 2026-06-26 07:00:45 2026-06-26 07:50:30  
SYSRAP_LOG.hh 1321 bytes 2026-06-26 07:00:45 2026-06-26 07:50:30  
tcomplex.h 1279 bytes 2026-06-26 07:00:45 2026-06-26 07:50:30

Based on Yuxiangs implementation following ROOT TComplex.h https://root.cern.ch/doc/master/TComplex_8h_source.html

torch.cpp 662 bytes 2026-06-26 07:00:45 2026-06-26 07:50:30

include <curand_kernel.h>

torch.h 764 bytes 2026-06-26 07:00:45 2026-06-26 07:50:30

pragma once