File indexing completed on 2026-04-10 07:49:32
0001
0002 import numpy as np
0003 import sys
0004 import pyvista as pv
0005
0006 from opticks.ana.pvplt import *
0007 from opticks.ana.fold import Fold
0008 from opticks.ana.p import *
0009 from opticks.ana.r import *
0010
0011 from opticks.sysrap.stag import stag
0012 tag = stag()
0013
0014
0015 PIDX = int(os.environ.get("PIDX","-1"))
0016
0017 if __name__ == '__main__':
0018 t = Fold.Load(os.path.expandvars("$FOLD/CXRaindropTest"))
0019 r = t.record if hasattr(t,'record') else None
0020 p = t.photon if hasattr(t,'photon') else None
0021
0022 st = stag.Split(t.tag) if hasattr(t,"tag") else None
0023
0024 if p is None:
0025 print("FATAL : no photon loaded from t.base %s " % t.base )
0026 sys.exit(0)
0027 pass
0028
0029 r_pos = r[:,:,0,:3].reshape(-1,3)
0030 r_mom = r[:,:,1,:3].reshape(-1,3)
0031 r_pol = r[:,:,2,:3].reshape(-1,3)
0032 r_flag = flag__(r.reshape(-1,4,4))
0033 r_flag_label = hm.label( r_flag )
0034
0035 r_cells = make_record_cells( r )
0036
0037 r_poly = pv.PolyData()
0038 r_poly.points = r_pos
0039 r_poly.lines = r_cells
0040 r_poly["flag_label"] = r_flag_label
0041
0042 r_tube = r_poly.tube(radius=1)
0043 PLOT = "PLOT" in os.environ
0044 if PLOT:
0045 pl = pvplt_plotter()
0046
0047
0048
0049 pl.add_points( r_pos )
0050 pl.show()
0051 pass
0052
0053
0054
0055 s = str(p[:10,:3])
0056 a = np.array( s.split("\n") + [""] ).reshape(-1,4)
0057
0058 for i in range(len(a)):
0059 if not (PIDX == -1 or PIDX == i): continue
0060 if PIDX > -1: print("PIDX %d " % PIDX)
0061
0062 if not r is None:
0063 print("r[i,:,:3]")
0064 print(r[i,:,:3])
0065 print("\n\nbflagdesc_(r[i,j])")
0066 for j in range(len(r[i])):
0067 print(bflagdesc_(r[i,j]) )
0068 pass
0069 pass
0070
0071 print("\n")
0072 print("p")
0073 print("\n".join(a[i]))
0074 print(bflagdesc_(p[i]))
0075 print("\n")
0076 pass
0077
0078
0079
0080