|
GOAT (Geometrical optics application tool) 0.1
|
The abstract Detector class provides an interface to a detector to store the information about the electric field into any kind of an array. More...
#include <detector.h>
Public Member Functions | |
| void | clean () |
| Clean all data, i.e. all data is set to zero (Data array is not removed) | |
| void | clear () |
| clear | |
| virtual bool | cross (maths::Vector< double > P, maths::Vector< double > k, int &i1, int &i2, double &l)=0 |
| 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 | |
| Detector & | operator= (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) | |
Public Attributes | |
| std::vector< std::vector< maths::Vector< std::complex< double > > > > | D |
| Here, the data will be stored. | |
| std::string | fname |
Protected Member Functions | |
| void | init (int n1, int n2) |
| initialise array (for internal use only) | |
Protected Attributes | |
| 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 |
Friends | |
| class | DetectorPlane |
| std::ostream & | operator<< (std::ostream &os, Detector &D) |
The abstract Detector class provides an interface to a detector to store the information about the electric field into any kind of an array.
Definition at line 21 of file detector.h.
| GOAT::raytracing::Detector::Detector | ( | void | ) |
| GOAT::raytracing::Detector::Detector | ( | int | n1, |
| int | n2 ) |
Constructor which is called by the size of the array (n1 x n2)
| GOAT::raytracing::Detector::Detector | ( | const Detector & | Det | ) |
copy constructor
| GOAT::raytracing::Detector::~Detector | ( | void | ) |
| void GOAT::raytracing::Detector::clean | ( | ) |
Clean all data, i.e. all data is set to zero (Data array is not removed)
| void GOAT::raytracing::Detector::clear | ( | ) |
clear
|
pure virtual |
The virtual function checks if the ray hits the detector.
| [in] | P | current position of the ray |
| [in] | k | direction of the ray |
| [out] | i1 | first index of the hit point within the detector array |
| [out] | i2 | second index of the hit point within the detector array |
| [out] | d | distance between ray and detector (along the ray) |
Implemented in GOAT::raytracing::DetectorPlane.
| double GOAT::raytracing::Detector::D1 | ( | ) |
return the length in the first direction
| double GOAT::raytracing::Detector::D2 | ( | ) |
return the length in the second direction
|
inline |
returns the direction of the first axis of the detector
Definition at line 81 of file detector.h.
|
inline |
returns the direction of the second axis of the detector
Definition at line 82 of file detector.h.
|
protected |
initialise array (for internal use only)
| bool GOAT::raytracing::Detector::load | ( | const char * | fn | ) |
@load detector data from filexmlReader::readDetectors() This function loads detector data from file. It expects a complex vector format. The first line has to start with "%n1 " followed by the number of items in e1-direction. The second row must start with "%n2" followed by the number of items in e2-direction.
| void GOAT::raytracing::Detector::mult | ( | double | fac | ) |
Multiply with factor. This functions multiplies all elements of the detector with the factor fac.
| int GOAT::raytracing::Detector::N1 | ( | ) |
returns the dimension of the array in the first direction
| int GOAT::raytracing::Detector::N2 | ( | ) |
returns the dimension of the array in the second direction
|
inline |
returns the normal vector of the detectors surface
Definition at line 73 of file detector.h.
|
inline |
bracket operator which gives the content inside the array determined by the indices i1 and i2
Definition at line 28 of file detector.h.
|
inline |
returns the position of the detector
Definition at line 72 of file detector.h.
| void GOAT::raytracing::Detector::save | ( | const char * | fn | ) |
stores the content (the whole vector)
| void GOAT::raytracing::Detector::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 GOAT::raytracing::Detector::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 GOAT::raytracing::Detector::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 GOAT::raytracing::Detector::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 GOAT::raytracing::Detector::setD | ( | double | d1, |
| double | d2 ) |
| void GOAT::raytracing::Detector::setD1 | ( | double | d1 | ) |
| void GOAT::raytracing::Detector::setD2 | ( | double | d2 | ) |
| void GOAT::raytracing::Detector::setN | ( | int | n1, |
| int | n2 ) |
set the dimensions of the array
| void GOAT::raytracing::Detector::setN1 | ( | int | n1 | ) |
set the dimension of the array in the first direction
| void GOAT::raytracing::Detector::setN2 | ( | int | n2 | ) |
set the dimension of the array in the second direction
|
inline |
set the position of the detector
Definition at line 48 of file detector.h.
|
inline |
returns kind of detector
Definition at line 58 of file detector.h.
|
friend |
Definition at line 92 of file detector.h.
|
friend |
| std::vector<std::vector<maths::Vector<std::complex<double> > > > GOAT::raytracing::Detector::D |
Here, the data will be stored.
Definition at line 70 of file detector.h.
|
protected |
Definition at line 89 of file detector.h.
|
protected |
Definition at line 89 of file detector.h.
|
protected |
unit vector in the first direction
Definition at line 84 of file detector.h.
|
protected |
unit vector in the second direction
Definition at line 85 of file detector.h.
| std::string GOAT::raytracing::Detector::fname |
Definition at line 75 of file detector.h.
|
protected |
Definition at line 87 of file detector.h.
|
protected |
Definition at line 90 of file detector.h.
|
protected |
Definition at line 90 of file detector.h.
|
protected |
Position of the detector.
Definition at line 86 of file detector.h.
|
protected |
Definition at line 91 of file detector.h.