Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-04-09 07:49:17

0001 #!/usr/bin/env python
0002 """
0003 sgenstep__test.py
0004 ================
0005 
0006 ~/o/sysrap/tests/sgenstep__test.sh 
0007 
0008 """
0009 import os 
0010 import numpy as np
0011 u_ = lambda a:np.c_[np.unique(a,return_counts=True)]
0012 MODE = int(os.environ.get("MODE","0"))
0013 
0014 pvplt_plotter = None
0015 pvplt_viewpoint = None
0016 pvplt_arrows = None
0017 pvplt_lines = None
0018 pv = None
0019 
0020 if MODE in [2,3]:
0021     try:
0022         from opticks.ana.pvplt import pvplt_plotter, pvplt_viewpoint, pvplt_arrows, pvplt_lines
0023         import pyvista as pv
0024     except ImportError:
0025         pass
0026     pass
0027 pass 
0028     
0029 
0030 if __name__ == '__main__':
0031     path = os.path.expandvars("$GSPATH")
0032     gs = np.load(path)
0033     print(path)
0034     print(gs.shape)
0035 
0036     gentype = gs[:,0,0].view(np.int32)
0037     trackid = gs[:,0,1].view(np.int32)
0038     matline = gs[:,0,2].view(np.int32)
0039     numphoton = gs[:,0,3].view(np.int32)
0040 
0041     print("gentype\n", gentype)
0042     print("trackid\n", trackid)
0043     print("matline\n", matline)
0044     print("numphoton\n", numphoton)
0045 
0046     u_gentype = u_(gentype)
0047     u_trackid = u_(trackid)
0048     u_matline = u_(matline)
0049     u_numphoton = u_(numphoton)
0050 
0051     print("u_gentype\n", u_gentype)
0052     print("u_trackid\n", u_trackid)
0053     print("u_matline\n", u_matline)
0054     print("u_numphoton\n", u_numphoton)
0055 
0056     pos = gs[:,1,:3]
0057     print("pos\n", pos) 
0058 
0059     dp = gs[:,2,:3] 
0060     print("dp:DeltaPosition\n", dp)
0061  
0062     label = "sgenstep_test %s" % path
0063     print("label\n", label)
0064 
0065     r = 17800
0066 
0067 
0068     if MODE == 3:
0069         pl = pvplt_plotter(label=label) 
0070         pvplt_viewpoint( pl )
0071 
0072         sp = pv.Sphere(radius=r, start_theta=0, end_theta=180 )
0073         #pl.add_mesh(sp, color="white", show_edges=True, style="wireframe" )
0074         pl.add_mesh(sp)
0075 
0076         pvplt_lines( pl, pos, dp, linecolor="red", pointcolor="red" )
0077         cp = pl.show()
0078         print("cp\n", cp)
0079     else:
0080         print("MODE:%d not plotting : use MODE=3 to pvplt " % MODE ) 
0081     pass