fitinf for single tracks
km3io.tools.fitinf
fails for a single track:
[ins] In [1]: import km3io
[ins] In [2]: from km3net_testdata import data_path
[ins] In [3]: from km3io.definitions import fitparameters as kfit
[ins] In [4]: f = km3io.OfflineReader(data_path("offline/km3net_offline.root"))
[ins] In [5]: f.events.tracks.fitinf
Out[5]: <Array [[[0.00496, 0.00342, -295, ... [], []]] type='10 * var * var * float64'>
[ins] In [6]: km3io.tools.fitinf(kfit.JGANDALF_BETA0_RAD, f.events.tracks)
Out[6]: <Array [[0.00496, 0.00496, ... 0.0123]] type='10 * var * float64'>
[ins] In [7]: km3io.tools.fitinf(kfit.JGANDALF_BETA0_RAD, f.events[3].tracks)
Out[7]: <Array [0.00604, 0.00604, ... 0.0294, 0.00878] type='20 * float64'>
[ins] In [8]: km3io.tools.fitinf(kfit.JGANDALF_BETA0_RAD, f.events[3].tracks[0])
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
~/Dev/km3io/km3io/tools.py in fitinf(fitparam, tracks)
145 try:
--> 146 params = fit[count_nested(fit, axis=2) > index]
147 return ak1.Array([i[:, index] for i in params])
~/Dev/km3io/km3io/tools.py in count_nested(arr, axis)
175 if axis == 2:
--> 176 return ak1.count(arr, axis=2)
177
~/Dev/km3io/venv/lib/python3.8/site-packages/awkward1/operations/reducers.py in count(array, axis, keepdims, mask_identity)
101 return awkward1._util.wrap(
--> 102 layout.count(axis=axis, mask=mask_identity, keepdims=keepdims), behavior
103 )
ValueError: axis=2 exceeds the depth of the nested list structure (which is 1)
(https://github.com/scikit-hep/awkward-1.0/blob/0.2.36/src/libawkward/Content.cpp#L925)
During handling of the above exception, another exception occurred:
ValueError Traceback (most recent call last)
<ipython-input-8-4a631ce37098> in <module>
----> 1 km3io.tools.fitinf(kfit.JGANDALF_BETA0_RAD, f.events[3].tracks[0])
~/Dev/km3io/km3io/tools.py in fitinf(fitparam, tracks)
148 except ValueError:
149 # This is the case for tracks[:, 0] or any other selection.
--> 150 params = fit[count_nested(fit, axis=1) > index]
151 return params[:, index]
152
~/Dev/km3io/km3io/tools.py in count_nested(arr, axis)
172 return ak1.num(arr, axis=0)
173 if axis == 1:
--> 174 return ak1.num(arr, axis=1)
175 if axis == 2:
176 return ak1.count(arr, axis=2)
~/Dev/km3io/venv/lib/python3.8/site-packages/awkward1/operations/structure.py in num(array, axis, highlevel)
200 array, allow_record=False, allow_other=False
201 )
--> 202 out = layout.num(axis=axis)
203 if highlevel:
204 return awkward1._util.wrap(out, behavior=awkward1._util.behaviorof(array))
ValueError: 'axis' out of range for 'num'
(https://github.com/scikit-hep/awkward-1.0/blob/0.2.36/src/libawkward/array/NumpyArray.cpp#L1333)