Belle II Software development
InverseRaytracer::Solution Struct Reference

Solution of inverse ray-tracing. More...

#include <InverseRaytracer.h>

Public Member Functions

 Solution (double cfi, double sfi)
 constructor
 
void setDirection (const CerenkovAngle &cer, const TOPTrack::TrackAngles &trk)
 Sets photon direction.
 
void setTotalReflStatus (double A, double B, double cosTotal)
 Sets total reflection status for direct photon.
 
void setTotalReflStatus (double A, double B, double cosTotal, double Kx, double Ky)
 Sets total reflection status for reflected photon.
 
bool getStatus () const
 Returns status.
 
double getFic () const
 Returns Cerenkov azimuthal angle.
 

Public Attributes

double cosFic = 0
 cosine of azimuthal Cerenkov angle
 
double sinFic = 0
 sine of azimuthal Cerenkov angle
 
double kx = 0
 photon direction in x at emission
 
double ky = 0
 photon direction in y at emission
 
double kz = 0
 photon direction in z at emission
 
double len = 0
 propagation length to detector plane
 
double xD = 0
 unfolded coordinate x of photon at Detector plane
 
double zD = 0
 coordinate z of Detector plane
 
double yD = 0
 unfolded coordinate y of photon at Detector plane
 
double yB = 0
 unfolded coordinate y of photon at Bar exit plane
 
int Nxm = 0
 number of reflections in x before mirror
 
int Nym = 0
 number of reflections in y before mirror
 
double step = 0
 step for numerical derivative calculation
 
bool totRefl = true
 total reflection status
 

Detailed Description

Solution of inverse ray-tracing.

Definition at line 66 of file InverseRaytracer.h.

Constructor & Destructor Documentation

◆ Solution()

Solution ( double  cfi,
double  sfi 
)

constructor

Parameters
cficosine of azimuthal Cerenkov angle
sfisine of azimuthal Cerenkov angle

Definition at line 28 of file InverseRaytracer.cc.

28 :
29 cosFic(cfi), sinFic(sfi)
30 {}
double cosFic
cosine of azimuthal Cerenkov angle
double sinFic
sine of azimuthal Cerenkov angle

Member Function Documentation

◆ getFic()

double getFic ( ) const
inline

Returns Cerenkov azimuthal angle.

Returns
Cerenkov azimuthal angle

Definition at line 124 of file InverseRaytracer.h.

124{return atan2(sinFic, cosFic);}

◆ getStatus()

bool getStatus ( ) const

Returns status.

Returns
true if propagation length within the limits and total reflection

Definition at line 54 of file InverseRaytracer.cc.

55 {
56 return (len > 0 and len < s_maxLen and totRefl);
57 }
static double s_maxLen
maximal allowed propagation length
bool totRefl
total reflection status
double len
propagation length to detector plane

◆ setDirection()

void setDirection ( const CerenkovAngle cer,
const TOPTrack::TrackAngles trk 
)

Sets photon direction.

Parameters
cersine and cosine of Cerenkov angle
trksine and cosine of track polar and azimuthal angles at photon emission

Definition at line 33 of file InverseRaytracer.cc.

34 {
35 double a = trk.cosTh * cer.sinThc * cosFic + trk.sinTh * cer.cosThc;
36 double b = cer.sinThc * sinFic;
37 kx = a * trk.cosFi - b * trk.sinFi;
38 ky = a * trk.sinFi + b * trk.cosFi;
39 kz = trk.cosTh * cer.cosThc - trk.sinTh * cer.sinThc * cosFic;
40 }
double ky
photon direction in y at emission
double kz
photon direction in z at emission
double kx
photon direction in x at emission

◆ setTotalReflStatus() [1/2]

void setTotalReflStatus ( double  A,
double  B,
double  cosTotal 
)

Sets total reflection status for direct photon.

Parameters
Abar width (size in x)
Bbar thickness (size in y)
cosTotalcosine of total reflection angle

Definition at line 42 of file InverseRaytracer.cc.

43 {
44 totRefl = (std::abs(kx) < cosTotal or std::abs(xD) < A / 2) and (std::abs(ky) < cosTotal or std::abs(yB) < B / 2);
45 }
double yB
unfolded coordinate y of photon at Bar exit plane
double xD
unfolded coordinate x of photon at Detector plane

◆ setTotalReflStatus() [2/2]

void setTotalReflStatus ( double  A,
double  B,
double  cosTotal,
double  Kx,
double  Ky 
)

Sets total reflection status for reflected photon.

Parameters
Abar width (size in x)
Bbar thickness (size in y)
cosTotalcosine of total reflection angle
Kxphoton direction in x after mirror reflection
Kyphoton direction in y after mirror reflection

Definition at line 47 of file InverseRaytracer.cc.

48 {
49 bool beforeMirror = (std::abs(kx) < cosTotal or Nxm == 0) and (std::abs(ky) < cosTotal or Nym == 0);
50 bool afterMirror = (std::abs(Kx) < cosTotal or std::abs(xD) < A / 2) and (std::abs(Ky) < cosTotal or std::abs(yB) < B / 2);
51 totRefl = beforeMirror and afterMirror;
52 }
int Nxm
number of reflections in x before mirror
int Nym
number of reflections in y before mirror

Member Data Documentation

◆ cosFic

double cosFic = 0

cosine of azimuthal Cerenkov angle

Definition at line 67 of file InverseRaytracer.h.

◆ kx

double kx = 0

photon direction in x at emission

Definition at line 69 of file InverseRaytracer.h.

◆ ky

double ky = 0

photon direction in y at emission

Definition at line 70 of file InverseRaytracer.h.

◆ kz

double kz = 0

photon direction in z at emission

Definition at line 71 of file InverseRaytracer.h.

◆ len

double len = 0

propagation length to detector plane

Definition at line 72 of file InverseRaytracer.h.

◆ Nxm

int Nxm = 0

number of reflections in x before mirror

Definition at line 77 of file InverseRaytracer.h.

◆ Nym

int Nym = 0

number of reflections in y before mirror

Definition at line 78 of file InverseRaytracer.h.

◆ sinFic

double sinFic = 0

sine of azimuthal Cerenkov angle

Definition at line 68 of file InverseRaytracer.h.

◆ step

double step = 0

step for numerical derivative calculation

Definition at line 79 of file InverseRaytracer.h.

◆ totRefl

bool totRefl = true

total reflection status

Definition at line 80 of file InverseRaytracer.h.

◆ xD

double xD = 0

unfolded coordinate x of photon at Detector plane

Definition at line 73 of file InverseRaytracer.h.

◆ yB

double yB = 0

unfolded coordinate y of photon at Bar exit plane

Definition at line 76 of file InverseRaytracer.h.

◆ yD

double yD = 0

unfolded coordinate y of photon at Detector plane

Definition at line 75 of file InverseRaytracer.h.

◆ zD

double zD = 0

coordinate z of Detector plane

Definition at line 74 of file InverseRaytracer.h.


The documentation for this struct was generated from the following files: