def Jz(self,**kwargs):
        """
        NAME:
           Jz
        PURPOSE:
           Calculate the vertical action
        INPUT:
           +scipy.integrate.quad keywords
        OUTPUT:
           J_z(z,vz)/ro/vc + estimate of the error
        HISTORY:
           2012-06-01 - Written - Bovy (IAS)
        """
        if hasattr(self,'_Jz'):
            return self._Jz
        zmax= self.calczmax()
        if zmax == -9999.99: return nu.array([9999.99,nu.nan])
        Ez= calcEz(self._z,self._vz,self._verticalpot)
        self._Jz= 2.*integrate.quad(_JzIntegrand,0.,zmax,
                                    args=(Ez,self._verticalpot),
                                    **kwargs)[0]/nu.pi
        return self._Jz
NAME:
           Jz
        PURPOSE:
           Calculate the vertical action
        INPUT:
           +scipy.integrate.quad keywords
        OUTPUT:
           J_z(z,vz)/ro/vc + estimate of the error
        HISTORY:
           2012-06-01 - Written - Bovy (IAS)