GOAT (Geometrical optics application tool) 0.1
Loading...
Searching...
No Matches
raytrace_inel.h
Go to the documentation of this file.
1
6#pragma once
7#include "raytrace.h"
8#include "superarray.h"
9
10namespace GOAT
11{
12 namespace raytracing
13 {
15 constexpr int INEL_CALCPHASE_RRT=2;
17
18 constexpr int INEL_MAX_NREFLEX=1;
19 constexpr int INEL_SAVE_ABSE=1;
20
23
24 constexpr int INEL_RADIATION_COHERENT=1;
26
29
30
35
45
46
52 RRTParms calcDetDirParms (double theta, double phi, double wvlinel);
53
Template class for threedimensional vectors.
Definition vector.h:57
This abstract class is the basic class for all light sources used in this raytracing library....
Definition lightsrc.h:68
SuperArray< GOAT::maths::Vector< std::complex< double > > > * GetFieldArray()
SuperArray< maths::Vector< std::complex< double > > > * SGE
Here, the exciting field is stored.
Raytrace_Inel(const Scene &S)
Constructor for the inelastic scattering raytracer.
SuperArray< maths::Vector< std::complex< double > > > * SGRRT1
void resetCalculation()
forces the calculation of the excited field when calling trace(RRTParms D)
void traceEnterObject()
Function internally called when ray enters an object.
void exportExcitation(std::string fname, int savetype=INEL_EXPORT_EXCITATION_FIELD_ABS)
Export excitation field to (ASCII-) file This function exports excitation field inside the objects....
double inel2
result of the inelastic scattering for the two given polarisations
void unsetExcitationFieldOnly()
sets calculation phase in the way, that also the inelastic calculation will be done
std::complex< double > gewichte(maths::Vector< std::complex< double > > E, maths::Vector< std::complex< double > > p)
void traceLeaveObject()
Function internally called when ray leaves an object.
void setExcitationFieldOnly()
Sets calculation phase so, that for the next call of trace(RRTParms D), only the excitation field is ...
void trace(RRTParms D)
Calculates inelastic scattering.
void sceneChanged(const Scene &S)
Change Scene to S Changes the Scene to S and changes the calculation phase so that the calculation st...
void setScene(const Scene &S)
SuperArray< maths::Vector< std::complex< double > > > * SGRRT2
Scene S
Description of the scene.
Definition raytrace.h:116
Class defining a scene with lightsources and objects. This is a container used to inform the Raytrace...
Definition raytrace.h:28
Template class to store arbitrary information in a 3D-grid This template class provides a virtual 3D-...
Definition superarray.h:26
Raytracer used for ultrashort pulse calculation with raytracing only.
Definition asphericLens.h:6
RRTParms calcDetDirParms(double theta, double phi, double wvlinel)
Calculates the parameters for the detector with help of the spherical coordinates theta and phi This ...
constexpr int INEL_SAVE_ABSE
constexpr int INEL_RADIATION_TYPE_RAMAN
constexpr int INEL_MAX_NREFLEX
constexpr int INEL_CALCPHASE_EXCITATION_ONLY
constexpr int INEL_RADIATION_INCOHERENT
constexpr int INEL_CALCPHASE_EXCITATION
constexpr int INEL_EXPORT_EXCITATION_FIELD_VECTOR
constexpr int INEL_RADIATION_COHERENT
constexpr int INEL_EXPORT_EXCITATION_FIELD_ABS
constexpr int INEL_RADIATION_TYPE_FLOURESCENCE
constexpr int INEL_CALCPHASE_RRT
This class is used for the iray class. This class is intended for internal use only....
Definition fresnel.h:7
int radiationType
Type of inelastic scattering: INEL_RADIATION_TYPE_FLOURESCENCE for flourescence, i....
maths::Vector< double > P
reference point of the detector
int coherency
Scattering is coherent INEL_RADIATION_COHERENT or incoherent INEL_RADIATION_INCOHERENT.
maths::Vector< double > e1
maths::Vector< double > n
direction of detection (backwards), by default set to n=P/|P|, but can be changed
maths::Vector< double > e2
considered direction of polarisation, e1 is by default the projection of the z-axis onto a plane perp...
double wvlinel
Wavelength of the inelastic scattering.