Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-04-10 07:50:28

0001 #!/usr/bin/env python
0002 
0003 import os, logging, numpy as np
0004 log = logging.getLogger(__name__)
0005 
0006 from opticks.ana.fold import Fold
0007 from opticks.ana.p import * 
0008 from opticks.sysrap.sevt import SEvt
0009 
0010 MODE = int(os.environ.get("MODE","2"))
0011 if MODE > 0:
0012     from opticks.ana.pvplt import * 
0013 else:
0014     pass
0015 pass
0016 
0017 axes = 0, 2  # X,Z
0018 H,V = axes 
0019 
0020 
0021 if __name__ == '__main__':
0022     logging.basicConfig(level=logging.INFO)
0023 
0024     FOLD = os.environ.get("FOLD", None)
0025     log.info(" -- SEvt.Load FOLD" )
0026     a = SEvt.Load(FOLD, symbol="a")   # optional photon histories 
0027     print(a)
0028 
0029     SPECS = np.array(a.f.U4R_names.lines)
0030     st_ = a.f.aux[:,:,2,3].view(np.int32)
0031     st = SPECS[st_]
0032 
0033  
0034     w_fk_ = "np.where(a.fk>0)"
0035     w_fk = eval(w_fk_)
0036     print(w_fk_,"\n",w_fk) 
0037 
0038     w_fk8_ = "np.where(a.fk==8)"
0039     w_fk8 = eval(w_fk8_)
0040     print(w_fk8_,"\n",w_fk8) 
0041 
0042 
0043     tab_fk_ = "np.c_[np.unique(a.fk,return_counts=True)]"  
0044     tab_fk  = eval(tab_fk_)
0045     print(tab_fk_,"\n",tab_fk) 
0046      
0047     qqtab_fk_ =  "np.c_[np.unique(a.qq[w_fk], return_counts=True)]"
0048     qqtab_fk = eval(qqtab_fk_)  
0049     print(qqtab_fk_,"\n",qqtab_fk) 
0050 
0051     post_fk_ = "a.f.record[tuple(w_fk[0]),tuple(w_fk[1]),0]"
0052     post_fk = eval(post_fk_)  
0053     print(post_fk_,"\n",post_fk) 
0054 
0055     post_fk8_ = "a.f.record[tuple(w_fk8[0]),tuple(w_fk8[1]),0] # FAKE_MANUAL all on midline "
0056     post_fk8 = eval(post_fk8_)  
0057     print(post_fk8_,"\n",post_fk8) 
0058 
0059     tab_st_fk_ = "np.c_[np.unique(st[w_fk],return_counts=True)]"
0060     tab_st_fk = eval(tab_st_fk_)
0061     print(tab_st_fk_,"\n",tab_st_fk) 
0062 
0063     tab_st_fk8_ = "np.c_[np.unique(st[w_fk8],return_counts=True)]"
0064     tab_st_fk8 = eval(tab_st_fk8_)
0065     print(tab_st_fk8_,"\n",tab_st_fk8_) 
0066   
0067 
0068 
0069     #label0, ppos0 = None, None
0070     label0, ppos0 = "b:%s" % post_fk_ , post_fk[:,:3]
0071 
0072     #label1, ppos1 = None, None
0073     label1, ppos1 = "r:%s" % post_fk8_ ,post_fk8
0074 
0075 
0076     HEADLINE = "%s %s" % ( a.LAYOUT, a.CHECK )
0077     label = "\n".join( filter(None, [HEADLINE, label0, label1]))
0078     print(label)
0079 
0080     if MODE == 0:
0081         print("not plotting as MODE 0  in environ")
0082     elif MODE == 2:
0083         fig, axs = mpplt_plotter(label=label)
0084         assert len(axs) == 1 
0085         ax = axs[0]
0086 
0087         ax.set_ylim(-250,250)
0088         ax.set_xlim(-500,500)
0089 
0090         if not ppos0 is None: ax.scatter( ppos0[:,H], ppos0[:,V], s=1 )  
0091         if not ppos1 is None: ax.scatter( ppos1[:,H], ppos1[:,V], s=1, c="r" )  
0092 
0093         fig.show()
0094     elif MODE == 3:
0095         pl = pvplt_plotter(label)
0096         os.environ["EYE"] = "0,100,165"
0097         os.environ["LOOK"] = "0,0,165"
0098         pvplt_viewpoint(pl)
0099         pl.add_points(ppos0)
0100         pl.show()
0101     pass
0102 pass