GUI section of photon seqhis/seqmat subsets titled is working for some events, but not others Any selection other than “All” in both seqhis and seqmat makes all photons disappear.
The persisted phosel and recsel are all zeroes:
ggv-;ggv-pmt-test --cfg4 ## create
ggv-;ggv-pmt-test --cfg4 --load ## vizualize
In [1]: run pmt_test_evt.py
WARNING:env.numerics.npy.evt:init_index finds too few (ps)phosel uniques : 1
WARNING:env.numerics.npy.evt:init_index finds too few (rs)recsel uniques : 1
Evt(-4,"torch","PmtInBox","PmtInBox/torch/-4 : ", seqs="[]")
fdom : (3, 1, 4) : (metadata) 3*float4 domains of position, time, wavelength (used for compression)
idom : (1, 1, 4) : (metadata) int domain
ox : (500000, 4, 4) : (photons) final photon step
wl : (500000,) : (photons) wavelength
post : (500000, 4) : (photons) final photon step: position, time
dirw : (500000, 4) : (photons) final photon step: direction, weight
polw : (500000, 4) : (photons) final photon step: polarization, wavelength
flags : (500000,) : (photons) final photon step: flags
c4 : (500000,) : (photons) final photon step: dtype split uint8 view of ox flags
rx : (500000, 10, 2, 4) : (records) photon step records
ph : (500000, 1, 2) : (records) photon history flag/material sequence
ps : (500000, 1, 4) : (photons) phosel sequence frequency index lookups (uniques 1)
rs : (250000, 10, 2, 4) : (records) recsel sequence frequency index lookups (uniques 1)
In [2]: evt.ps
Out[2]:
A(pstorch,-4,PmtInBox)(photons) phosel sequence frequency index lookups (uniques 1)
A([[[0, 0, 0, 0]],
[[0, 0, 0, 0]],
[[0, 0, 0, 0]],
...
In [3]: evt.rs
Out[3]:
A()sliced
A([[[[0, 0, 0, 0],
[0, 0, 0, 0]],
[[0, 0, 0, 0],
[0, 0, 0, 0]],
[[0, 0, 0, 0],
[0, 0, 0, 0]],
Also the shape looks funny:
ps : (500000, 1, 4) : (photons) phosel sequence frequency index lookups (uniques 1)
rs : (250000, 10, 2, 4) : (records) recsel sequence frequency index lookups (uniques 1)
Actually this was due to python level reshaping, not a problem with the original, now fixed:
In [1]: run pmt_test_evt.py
WARNING:env.numerics.npy.evt:init_index finds too few (ps)phosel uniques : 1
WARNING:env.numerics.npy.evt:init_index finds too few (rs)recsel uniques : 1
WARNING:env.numerics.npy.evt:init_index finds too few (rsr)reshaped-recsel uniques : 1
Evt(-4,"torch","PmtInBox","PmtInBox/torch/-4 : ", seqs="[]")
fdom : (3, 1, 4) : (metadata) 3*float4 domains of position, time, wavelength (used for compression)
idom : (1, 1, 4) : (metadata) int domain
ox : (500000, 4, 4) : (photons) final photon step
wl : (500000,) : (photons) wavelength
post : (500000, 4) : (photons) final photon step: position, time
dirw : (500000, 4) : (photons) final photon step: direction, weight
polw : (500000, 4) : (photons) final photon step: polarization, wavelength
flags : (500000,) : (photons) final photon step: flags
c4 : (500000,) : (photons) final photon step: dtype split uint8 view of ox flags
rx : (500000, 10, 2, 4) : (records) photon step records
ph : (500000, 1, 2) : (records) photon history flag/material sequence
ps : (500000, 1, 4) : (photons) phosel sequence frequency index lookups (uniques 1)
rs : (500000, 10, 1, 4) : (records) RAW recsel sequence frequency index lookups (uniques 1)
rsr : (500000, 10, 1, 4) : (records) RESHAPED recsel sequence frequency index lookups (uniques 1)
Did recent changes in NumpyEvt mess up the recsel shape? Perhaps are matching record shape ?:
301 NPY<unsigned char>* phosel = NPY<unsigned char>::make(num_photons,1,4); // shape (np,1,4) (formerly initialized to 0)
302 setPhoselData(phosel);
303
304 NPY<unsigned char>* recsel = NULL ;
305 if(m_flat)
306 recsel = NPY<unsigned char>::make(num_records,1,4); // shape (nr,1,4) (formerly initialized to 0)
307 else
308 recsel = NPY<unsigned char>::make(num_photons, m_maxrec,1,4); // shape (nr,1,4) (formerly initialized to 0)
309
310 setRecselData(recsel);
311 }
ggv-;ggv-pmt-test --load
ggv-;ggv-g4gun --dbg --load --target 3153 --optixviz
Looking at a good index, see the phosel and recsel are not persisted:
In [4]: run g4gun.py
WARNING:env.numerics.npy.evt:init_index finds too few (ps)phosel uniques : 0
WARNING:env.numerics.npy.evt:init_index finds too few (rs)recsel uniques : 0
Evt(-1,"G4Gun","G4Gun","G4Gun/G4Gun/-1 : ", seqs="[]")
fdom : (3, 1, 4) : (metadata) 3*float4 domains of position, time, wavelength (used for compression)
idom : (1, 1, 4) : (metadata) int domain
ox : (226486, 4, 4) : (photons) final photon step
wl : (226486,) : (photons) wavelength
post : (226486, 4) : (photons) final photon step: position, time
dirw : (226486, 4) : (photons) final photon step: direction, weight
polw : (226486, 4) : (photons) final photon step: polarization, wavelength
flags : (226486,) : (photons) final photon step: flags
c4 : (226486,) : (photons) final photon step: dtype split uint8 view of ox flags
rx : (226486, 10, 2, 4) : (records) photon step records
ph : (226486, 1, 2) : (records) photon history flag/material sequence
ps : (0, 1, 4) : (photons) phosel sequence frequency index lookups (uniques 0)
rs : (0, 10, 2, 4) : (records) recsel sequence frequency index lookups (uniques 0)
### rs shape? should it not be (0, 10, 1, 4)
Yep, twas incorrect python level reshaping:
rx : (226486, 10, 2, 4) : (records) photon step records
ph : (226486, 1, 2) : (records) photon history flag/material sequence
ps : (0, 1, 4) : (photons) phosel sequence frequency index lookups (uniques 0)
rs : (0, 10, 1, 4) : (records) RAW recsel sequence frequency index lookups (uniques 0)
rsr : (0, 10, 1, 4) : (records) RESHAPED recsel sequence frequency index lookups (uniques 0)
In [8]: map(hex_, np.unique(evt.seqmat))
Out[8]:
['0x11',
'0x111',
'0x1111',
'0x11111',
'0x111111',
'0x1111111',
'0x11111111',
'0x111111111',
'0x1111111111']
In [9]: map(hex_, np.unique(evt.seqhis))
Out[9]:
['0x4f',
'0x46f',
'0x4cf',
'0x40cf',
'0x466f',
'0x4c6f',
In [13]: print evt.history.table
-1:G4Gun
4f 0.927 209840 [2 ] G4GUN AB
cccbcccccf 0.037 8474 [10] G4GUN BT BT BT BT BT BR BT BT BT
4cccccccf 0.017 3752 [9 ] G4GUN BT BT BT BT BT BT BT AB
4ccf 0.004 884 [4 ] G4GUN BT BT AB
4ccbcccccf 0.001 299 [10] G4GUN BT BT BT BT BT BR BT BT AB
b00cc0cf 0.001 261 [8 ] G4GUN BT ?0? BT BT ?0? ?0? BR
cccccccccf 0.001 261 [10] G4GUN BT BT BT BT BT BT BT BT BT
4cccccf 0.001 200 [7 ] G4GUN BT BT BT BT BT AB
4ccccf 0.001 195 [6 ] G4GUN BT BT BT BT AB
4cc00cc0cf 0.001 184 [10] G4GUN BT ?0? BT BT ?0? ?0? BT BT AB
ccbccccccf 0.001 181 [10] G4GUN BT BT BT BT BT BT BR BT BT
4cbcccccf 0.001 181 [9 ] G4GUN BT BT BT BT BT BR BT AB
ccbcccc0cf 0.001 165 [10] G4GUN BT ?0? BT BT BT BT BR BT BT
4ccccccc6f 0.001 118 [10] G4GUN SC BT BT BT BT BT BT BT AB
4cccccc0cf 0.001 116 [10] G4GUN BT ?0? BT BT BT BT BT BT AB
4cc0cccf 0.000 78 [8 ] G4GUN BT BT BT ?0? BT BT AB