optics
Class GaussianBeam

java.lang.Object
  extended by optics.Optics
      extended by optics.Ray
          extended by optics.ParaxialRay
              extended by optics.GaussianBeam

public class GaussianBeam
extends ParaxialRay

Class to implement a Gaussian Beam that can be traced using using the ParaxialMatrix and ParaxialGroup classes. The Gaussian beam extends a ParaxialRay by adding the complex beam parameter.


Field Summary
protected  optics.math.Complex beam
          The complex beam parameter (actually 1/q).
 
Fields inherited from class optics.ParaxialRay
angle, height, plane
 
Fields inherited from class optics.Ray
intensity, monitor, waveLength
 
Fields inherited from class optics.Optics
DEFAULT_WAVELENGTH, errorStream, fmt, MICRONS, version
 
Constructor Summary
GaussianBeam(double lambda, double waist)
          Constrctor to form a GuassianBeam at the origin, with height 0, angle 0 in plane 0, with specifed wavelength at beam waist
GaussianBeam(double h, double a, double p, double lambda, double waist)
          Constructor to form a GuassianBeam with specifed beam waist.
 
Method Summary
 double getAlpha()
          Method to get Alpha parameter.
 optics.math.Complex getBeamParameter()
          Method the complex beam parameter q.
 double getBeamRadius()
          Method to get the current beam radius.
 double getBeamWaist()
          Method to get the beam waist of the current GaussianBeam.
 double getBeamWaistLocation()
          Method to get the beam waist location in global coordinates.
 double getCurvature()
          Method to get the curvature of the beam wavefront
 double getDivergenceAngle()
          Method to get the farfield divergence angle of the beam in radians.
 boolean mult(ParaxialMatrix p)
          Method to multiply the current GuassianBeam by a ParaxialMatrix.
 void setBeamParameter(optics.math.Complex q)
          Method to set the complex beam parameter
 String toString()
          Method to get the GaussianBeam information in a String
 
Methods inherited from class optics.ParaxialRay
clone, crosses, crossesZero, edit, getAngle, getAngleInDegrees, getHeight, getPlane, getPosition, heightInPlane, isInvalid, main, pointInPlane, propagate, propagateThrough, propagateThrough, propagateTo, setAngle, setAngle, setAngleInDegrees, setHeight, setInvalid, setPlane
 
Methods inherited from class optics.Ray
addMonitor, clearMonitor, getIntensity, getMonitor, getWaveLength, isValid, monitorUpdate, setIntensity, setWaveLength
 
Methods inherited from class optics.Optics
getDefaultWaveLength, getErrorStream, getFormatString, getName, getStaticName, getVersion, printError, setDefaultWaveLength, setErrorStream, setFormatString, setMicrons
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

beam

protected optics.math.Complex beam
The complex beam parameter (actually 1/q).

Constructor Detail

GaussianBeam

public GaussianBeam(double h,
                    double a,
                    double p,
                    double lambda,
                    double waist)
Constructor to form a GuassianBeam with specifed beam waist.

Parameters:
h - height from optical axis
a - angle with respect to optical axis
p - the plane
lambda - wavelength in microms
waist - the beam waist.

GaussianBeam

public GaussianBeam(double lambda,
                    double waist)
Constrctor to form a GuassianBeam at the origin, with height 0, angle 0 in plane 0, with specifed wavelength at beam waist

Parameters:
lambda - wavelength in microms
waist - beam waist in mm
Method Detail

getBeamParameter

public optics.math.Complex getBeamParameter()
Method the complex beam parameter q.

Returns:
Complex the Complex beam parameter.

setBeamParameter

public void setBeamParameter(optics.math.Complex q)
Method to set the complex beam parameter

Parameters:
q - the Complex beam parameter.

getCurvature

public double getCurvature()
Method to get the curvature of the beam wavefront

Returns:
double the wavefront curvature.

getAlpha

public double getAlpha()
Method to get Alpha parameter.

Returns:
double the alpha paramater

getBeamRadius

public double getBeamRadius()
Method to get the current beam radius.

Returns:
double the

toString

public String toString()
Method to get the GaussianBeam information in a String

Overrides:
toString in class ParaxialRay
Returns:
String the information as a String.

getBeamWaist

public double getBeamWaist()
Method to get the beam waist of the current GaussianBeam. Note this is the minumum possible beam waste and not the current radius.

Returns:
double the beam waist

getDivergenceAngle

public double getDivergenceAngle()
Method to get the farfield divergence angle of the beam in radians.

Returns:
double the divergence angle

getBeamWaistLocation

public double getBeamWaistLocation()
Method to get the beam waist location in global coordinates.

Returns:
double location of the beam waist.

mult

public boolean mult(ParaxialMatrix p)
Method to multiply the current GuassianBeam by a ParaxialMatrix.

Overrides:
mult in class ParaxialRay
Parameters:
p - the ParaxialMatrix
Returns:
boolean true if sucessful, false if there is a NaN.