Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-04-10 07:49:32

0001 #!/usr/bin/env python
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         #pl.add_mesh( r_tube )
0047         #pvplt_polarized( pl, r_pos, r_mom, r_pol, factor=60 )
0048         #pl.add_point_labels(r_poly, "flag_label", point_size=20, font_size=36)
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