Template class for threedimensional vectors.
This class represents a single ray.
LightSrcGauss_mc(const LightSrcGauss_mc &L)
GOAT::maths::Vector< double > genStartingPos()
LightSrcGauss_mc(maths::Vector< double > Pos, int N, double wvl, double w0, maths::Vector< double > focuspos, double D=1.0, maths::Vector< std::complex< double > > Pol=maths::Vector< std::complex< double > >(0.0, 1.0, 0.0), int raytype=LIGHTSRC_RAYTYPE_PRAY, double r0=1.0)
Main constructor for gaussian beam light source The direction of the beam is given by the starting po...
maths::Vector< double > focuspos
focal position
double w0
Waist diameter (fictitious !), only used for the correct calculation of the electric field distributi...
int N
number of rays (per direction)
maths::Vector< double > k
main direction of the light source
double r0
radius of the calculation sphere
maths::Vector< double > Pos
position of the light source (center of the square area of the light source)
int raytype
Strahltyp : ray oder ISTRAHL (=RAY oder IRAY)
double D
width of the square light source area
maths::Vector< std::complex< double > > Pol
polarisation (default: (0.0, 1.0, 0.0)
LightSrcLine_mc(maths::Vector< double > Pos, int N, double wvl, double size, maths::Vector< double > k=maths::ez, maths::Vector< double > direction=maths::ey)
constructor
maths::Vector< double > direction
void binReadItem(std::ifstream &os)
reads content of LightSrc from a binary file, represented by os (has to be specified by the derived c...
void binWriteItem(std::ofstream &os)
writes content of LightSrc in a binary file, represented by is (has to be specified by the derived cl...
GOAT::maths::Vector< double > genStartingPos()
int next(Ray_pow &S)
gives the next ray for the following calculations
LightSrcPlane_mc(const LightSrcPlane_mc &L)
LightSrcPlane_mc(maths::Vector< double > Pos, int N, double wvl, double D=100.0, maths::Vector< std::complex< double > > Pol=maths::Vector< std::complex< double > >(0.0, 1.0, 0.0), int raytype=LIGHTSRC_RAYTYPE_IRAY, double r0=100.0)
int next(tubedRay &S)
gives the next ray for the following calculations
GOAT::maths::Vector< double > genStartingPos()
int next(IRay &S)
gives the next ray for the following calculations
LightSrcPoint_mc(maths::Vector< double > Pos, int N, double wvl)
constructor
void binWriteItem(std::ofstream &os)
writes content of LightSrc in a binary file, represented by is (has to be specified by the derived cl...
void binReadItem(std::ifstream &os)
reads content of LightSrc from a binary file, represented by os (has to be specified by the derived c...
GOAT::maths::Vector< double > genDirection()
int next(tubedRay &S)
gives the next ray for the following calculations
void setRmin(double rmin)
double rmin
inner radius of the ring
void setRmax(double rmax)
LightSrcRing_mc(const LightSrcRing_mc &L)
LightSrcRing_mc(maths::Vector< double > Pos, int N, double wvl, double rmin, double rmax, maths::Vector< std::complex< double > > Pol=maths::Vector< std::complex< double > >(0.0, 1.0, 0.0), int raytype=LIGHTSRC_RAYTYPE_IRAY, double r0=100.0)
GOAT::maths::Vector< double > genStartingPos()
double rmax
outer radius of the ring
void reset()
sets the internal ray counter to zero (intended for internal use only)
int next(IRay &S)
gives the next ray for the following calculations
int next(Ray_pow &S)
gives the next ray for the following calculations
int next(tubedRay &S)
gives the next ray for the following calculations
void setRmax(double rmax)
set the outer radius to rmax
double getRmax()
returns outer radius
void setRmin(double rmin)
set the inner radius to rmin
int next(Ray_pow &S)
gives the next ray for the following calculations
LightSrcRingGauss_mc(const LightSrcRingGauss_mc &L)
virtual double area()
area A of the light source,
int next(IRay &S)
gives the next ray for the following calculations
double rmin
inner radius of the ring
LightSrcRingGauss_mc(maths::Vector< double > Pos, int N, double wvl, double rmin, double rmax, maths::Vector< std::complex< double > > Pol=maths::Vector< std::complex< double > >(0.0, 1.0, 0.0), int raytype=LIGHTSRC_RAYTYPE_IRAY, double r0=100.0)
LightSrcRingGauss_mc.
double getRmin()
returns inner radius
double sigma2
sigma^2, used for internal purposes (default value corresponds to a FWHM of 1um)
double rmax
outer radius of the ring
GOAT::maths::Vector< double > genStartingPos()
generate a position within the ring (needed by the next() method)
void setFWHM(double r)
set width of the gaussian distribution to r
This class provides a ray which carries a special power.
Abstract base class for all rays used for the raytracing process. This abstract base class for all ra...
This class represents a ray with a finite cross section. class tubedRay: This class represents a ray ...
#define LIGHTSRC_RAYTYPE_IRAY
Ray class : IRay.
#define LIGHTSRC_RAYTYPE_PRAY
Ray class : Pow_Ray.
Raytracer used for ultrashort pulse calculation with raytracing only.
This class is used for the iray class. This class is intended for internal use only....