GOAT (Geometrical optics application tool) 0.1
Loading...
Searching...
No Matches
GOAT::raytracing::DetectorPlane Class Reference

This class provides a plane detector, defined by its center point and its side length. The detector plane is spanned by the vectors e1 and e2. The absolute value of the vectors e1 and e2 are the cell widths in the corresponding direction. More...

#include <detector.h>

Inheritance diagram for GOAT::raytracing::DetectorPlane:
GOAT::raytracing::Detector GOAT::raytracing::Kirchhoff

Public Member Functions

bool cross (maths::Vector< double > P, maths::Vector< double > k, int &i1, int &i2, double &l)
 implementation of the intersection checking function for the plane detector
 DetectorPlane (maths::Vector< double > P, maths::Vector< double > e1, maths::Vector< double > e2, int n1, int n2)
 DetectorPlane (maths::Vector< double > P, maths::Vector< double > n, double d, int N)
 DetectorPlane (void)
void setNorm (maths::Vector< double > n)
 set the normal on the detector
Public Member Functions inherited from GOAT::raytracing::Detector
void clean ()
 Clean all data, i.e. all data is set to zero (Data array is not removed)
void clear ()
 clear
double D1 ()
 return the length in the first direction
double D2 ()
 return the length in the second direction
 Detector (const Detector &Det)
 copy constructor
 Detector (int n1, int n2)
 Constructor which is called by the size of the array (n1 x n2)
 Detector (void)
maths::Vector< double > gete1 ()
 returns the direction of the first axis of the detector
maths::Vector< double > gete2 ()
 returns the direction of the second axis of the detector
bool load (const char *fn)
void mult (double fac)
 Multiply with factor. This functions multiplies all elements of the detector with the factor fac.
int N1 ()
 returns the dimension of the array in the first direction
int N2 ()
 returns the dimension of the array in the second direction
maths::Vector< double > norm ()
 returns the normal vector of the detectors surface
maths::Vector< std::complex< double > > & operator() (int i1, int i2)
 bracket operator which gives the content inside the array determined by the indices i1 and i2
Detectoroperator= (const Detector &D)
maths::Vector< double > position ()
 returns the position of the detector
void save (const char *fn)
 stores the content (the whole vector)
void saveabs (const char *fn)
 stores the content (absolute value of the electric field) of the detector array in the file determined by its filename fn
void saveimag (const char *fn, int coord)
 stores the content (imaginary part of one component of the the electric field, coord determines the coordinate 0,1,2 for x,y,z) of the detector array in the file fn
void savePhase (const char *fn, int coord)
 stores the content (phase of one component of the electric field, coord determines the coordinate 0,1,2 for x,y,z) of the detector array in the file fn
void savereal (const char *fn, int coord)
 stores the content (real part of one component of the the electric field, coord determines the coordinate 0,1,2 for x,y,z) of the detector array in the file fn
void setD (double d1, double d2)
void setD1 (double d1)
void setD2 (double d2)
void setN (int n1, int n2)
 set the dimensions of the array
void setN1 (int n1)
 set the dimension of the array in the first direction
void setN2 (int n2)
 set the dimension of the array in the second direction
void setPosition (maths::Vector< double > Pos)
 set the position of the detector
int Type ()
 returns kind of detector
 ~Detector (void)

Additional Inherited Members

Public Attributes inherited from GOAT::raytracing::Detector
std::vector< std::vector< maths::Vector< std::complex< double > > > > D
 Here, the data will be stored.
std::string fname
Protected Member Functions inherited from GOAT::raytracing::Detector
void init (int n1, int n2)
 initialise array (for internal use only)
Protected Attributes inherited from GOAT::raytracing::Detector
double d1 =0
double d2 =0
maths::Vector< double > e1
 unit vector in the first direction
maths::Vector< double > e2
 unit vector in the second direction
maths::Vector< double > n
int n1 =0
int n2 =0
maths::Vector< double > P
 Position of the detector.
int type =-1

Detailed Description

This class provides a plane detector, defined by its center point and its side length. The detector plane is spanned by the vectors e1 and e2. The absolute value of the vectors e1 and e2 are the cell widths in the corresponding direction.

Definition at line 101 of file detector.h.

Constructor & Destructor Documentation

◆ DetectorPlane() [1/3]

GOAT::raytracing::DetectorPlane::DetectorPlane ( void )

◆ DetectorPlane() [2/3]

GOAT::raytracing::DetectorPlane::DetectorPlane ( maths::Vector< double > P,
maths::Vector< double > n,
double d,
int N )

Constructor which defines a square detector defined by the center Position P, the surface normal n, the width d and the number of cells in one direction N (so the array is N x N).

◆ DetectorPlane() [3/3]

GOAT::raytracing::DetectorPlane::DetectorPlane ( maths::Vector< double > P,
maths::Vector< double > e1,
maths::Vector< double > e2,
int n1,
int n2 )

Constructor which defines a more general detector.

Parameters
PPosition vector
e1first direction vector
e2second direction vector
n1number of cells in e1 direction
n2number of cells in e2 direction

Member Function Documentation

◆ cross()

bool GOAT::raytracing::DetectorPlane::cross ( maths::Vector< double > P,
maths::Vector< double > k,
int & i1,
int & i2,
double & l )
virtual

implementation of the intersection checking function for the plane detector

Implements GOAT::raytracing::Detector.

◆ setNorm()

void GOAT::raytracing::DetectorPlane::setNorm ( maths::Vector< double > n)

set the normal on the detector


The documentation for this class was generated from the following file: