File indexing completed on 2026-04-09 07:49:08
0001 #pragma once
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011 #include "scuda.h"
0012 #include "squad.h"
0013 #include "sphoton.h"
0014 #include "sscint.h"
0015 #include "scerenkov.h"
0016 #include "sstate.h"
0017
0018 #if defined(__CUDACC__) || defined(__CUDABE__)
0019 #define QDEBUG_METHOD __device__
0020 #else
0021 #define QDEBUG_METHOD
0022 #endif
0023
0024
0025 struct qdebug
0026 {
0027 float wavelength ;
0028 float cosTheta ;
0029 float3 normal ;
0030 float3 direction ;
0031 float orient ;
0032 float value ;
0033
0034 sstate s ;
0035 quad2 prd ;
0036 sphoton p ;
0037 sscint scint_gs ;
0038 scerenkov cerenkov_gs ;
0039
0040 #if defined(__CUDACC__) || defined(__CUDABE__)
0041 #else
0042 void save(const char* dir) const ;
0043 void save_scint_gs(const char* dir) const ;
0044 void save_cerenkov_gs(const char* dir) const ;
0045 #endif
0046
0047 };
0048
0049 #if defined(__CUDACC__) || defined(__CUDABE__)
0050 #else
0051 #include "NP.hh"
0052
0053 inline void qdebug::save(const char* dir) const
0054 {
0055 s.save(dir);
0056
0057 NP* pr = NP::Make<float>(1,2,4) ;
0058 pr->read2( (float*)prd.cdata() );
0059 pr->save(dir, "prd.npy");
0060
0061 NP* ph = NP::Make<float>(1,4,4) ;
0062 ph->read2( (float*)p.cdata() );
0063 ph->save(dir, "p0.npy");
0064 }
0065
0066 inline void qdebug::save_scint_gs(const char* dir) const
0067 {
0068 NP* gs = NP::Make<float>(1,6,4) ;
0069 gs->read2( (float*)scint_gs.cdata() );
0070 gs->save(dir, "scint_gs.npy");
0071 }
0072
0073 inline void qdebug::save_cerenkov_gs(const char* dir) const
0074 {
0075 NP* gs = NP::Make<float>(1,6,4) ;
0076 gs->read2( (float*)cerenkov_gs.cdata() );
0077 gs->save(dir, "cerenkov_gs.npy");
0078 }
0079
0080
0081 #endif
0082
0083