code: def L(self,*args,**kwargs):
          
          #Make sure you are not using physical coordinates
          old_physical= kwargs.get('use_physical',None)
          kwargs['use_physical']= False
          Omega= kwargs.pop('Omega',None)
          t= kwargs.pop('t',None)
          thiso= self(*args,**kwargs)
          if not len(thiso.shape) == 2: thiso= thiso.reshape((thiso.shape[0],1))
          if len(thiso[:,0]) < 3:
              raise AttributeError("'linearOrbit has no angular momentum")
          elif len(thiso[:,0]) == 3 or len(thiso[:,0]) == 4:
              if Omega is None:
                  out= thiso[0,:]*thiso[2,:]
              else:
                  out= thiso[0,:]*(thiso[2,:]-Omega*t*thiso[0,:])
          elif len(thiso[:,0]) == 5:
              raise AttributeError("You must track the azimuth to get the angular momentum of a 3D Orbit")
          else: #len(thiso[:,0]) == 6
              vx= self.vx(*args,**kwargs)
              vy= self.vy(*args,**kwargs)
              vz= self.vz(*args,**kwargs)
              x= self.x(*args,**kwargs)
              y= self.y(*args,**kwargs)
              z= self.z(*args,**kwargs)
              out= nu.zeros((len(x),3))
              out[:,0]= y*vz-z*vy
              out[:,1]= z*vx-x*vz
              out[:,2]= x*vy-y*vx
          if not old_physical is None:
              kwargs['use_physical']= old_physical
          else:
              kwargs.pop('use_physical')
          return out
docs: NAME:
             L
          PURPOSE:
             calculate the angular momentum
          INPUT:
             (none)
          OUTPUT:
             angular momentum
          HISTORY:
             2010-09-15 - Written - Bovy (NYU)