我尝试在 uproot4 中使用 TLorentz 向量。
但我发现“uproot_methods”模块中的方法现在可以与 Awkward 高级数组一起使用。
错误信息#----------------------------->
Traceback (最近一次调用最后):文件“/home/jwkim/anaconda3/lib/python3.8/site-packages/awkward/array/base.py”,第 389 行,在 _util_toarray 返回 cls.numpy.frombuffer(值,dtype= getattr(value, "dtype", defaultdtype)).reshape(getattr(value, "shape", -1)) TypeError: a bytes-like object is required, not 'Array'
在处理上述异常的过程中,又出现了一个异常:
回溯(最后一次调用):文件“anal.py”,第 19 行,在 Electron_T2vec = TVector2Array.from_polar(Electron_pt,Electron_phi) 文件“/home/jwkim/anaconda3/lib/python3.8/site-packages/awkward/ util.py”,第 112 行,在 func_wrapper 换行中,arrays = unwrap_jagged(cls, awkcls, _normalize_arrays(cls, arrays)) 文件“/home/jwkim/anaconda3/lib/python3.8/site-packages/awkward/util. py”,第 84 行,在 _normalize_arrays arrays[i] = cls.awkward.util.toarray(arrays[i], cls.awkward.numpy.float64) 文件“/home/jwkim/anaconda3/lib/python3.8/site -packages/awkward/util.py”,第 32 行,在 toarray 中返回尴尬.array.base.AwkwardArray._util_toarray(value, defaultdtype, passthrough=passthrough) 文件“/home/jwkim/anaconda3/lib/python3.8/site -packages/awkward/array/base.py”,第 394 行,在 _util_toarray 中返回 cls.numpy。数组(值,复制=假)文件“/home/jwkim/anaconda3/lib/python3.8/site-packages/awkward1/highlevel.py”,第 1310 行,在数组
返回尴尬1._connect._numpy.convert_to_array(self._layout,args,kwargs)文件“/home/jwkim/anaconda3/lib/python3.8/site-packages/awkward1/_connect/_numpy.py”,第16行,在convert_to_array 输出 = 尴尬1.operations.convert.to_numpy(layout, allow_missing=False) 文件“/home/jwkim/anaconda3/lib/python3.8/site-packages/awkward1/operations/convert.py”,第 313 行,在 to_numpy return to_numpy(array.toRegularArray(), allow_missing=allow_missing) ValueError: in ListOffsetArray64, cannot convert to RegularArray because subarray lengths are not regular
---------------------- ----------------------------> ##
似乎“uproot_method”只支持笨拙的.array.jagged.JaggedArray。
有没有其他方法可以在 uproot4 (尴尬的高级数组)中使用 TLorentz 向量?
我正在尝试将此基于 uproot3 和笨拙0 的代码转换为基于 uproot4 和笨拙1 的代码。
https://github.com/JW-corp/J.W_Analysis/blob/main/Uproot/anal.py
谢谢你!