since evals defaults to None, does this line work? Just trying it like this crahs for me with 

In [5]: rtop = 1.0 / np.sqrt((4 * np.pi * tau) ** 3 * np.prod(evals))
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-5-ec76adbae4aa> in <module>()
----> 1 rtop = 1.0 / np.sqrt((4 * np.pi * tau) ** 3 * np.prod(evals))

TypeError: unsupported operand type(s) for *: 'float' and 'NoneType'