code: def sigangledAngle(self,dangle,assumeZeroMean=True,smallest=False,
                         simple=False):
          
          if smallest: eigIndx= 0
          else: eigIndx= 1
          if simple:
              dt= self.meantdAngle(dangle,use_physical=False)
              return numpy.sqrt(self._sigangle2
                                +self._sortedSigOEig[eigIndx]*dt**2.)
          aplow= numpy.amax([numpy.sqrt(self._sortedSigOEig[eigIndx])*self._tdisrupt*5.,
                             self._sigangle])
          numsig2= integrate.quad(lambda x: x**2.*self.pangledAngle(x,dangle),
                                      aplow,-aplow)[0]
          if not assumeZeroMean:
              nummean= integrate.quad(lambda x: x*self.pangledAngle(x,dangle),
                                      aplow,-aplow)[0]
          else:
              nummean= 0.
          denom= integrate.quad(self.pangledAngle,aplow,-aplow,(dangle,))[0]
          if denom == 0.: return numpy.nan
          else: return numpy.sqrt(numsig2/denom-(nummean/denom)**2.)
docs: NAME:
  
             sigangledAngle
  
          PURPOSE:
  
             calculate the dispersion in the perpendicular angle at a given angle
  
          INPUT:
  
             dangle - angle offset along the stream
  
             assumeZeroMean= (True) if True, assume that the mean is zero (should be)
  
             smallest= (False) calculate for smallest eigenvalue direction rather than for middle
  
             simple= (False), if True, return an even simpler estimate
  
          OUTPUT:
  
             dispersion in the perpendicular angle at this angle
  
          HISTORY:
  
             2013-12-06 - Written - Bovy (IAS)