Belle II Software development
|
Fast photon propagation in quartz optics. More...
#include <FastRaytracer.h>
Public Types | |
enum | EGeometry { c_Unified = 0 , c_Segmented = 1 } |
Treatement of quartz geometry. More... | |
enum | EOptics { c_SemiLinear = 0 , c_Exact = 1 } |
Treatement of spherical mirror optics. More... | |
Public Member Functions | |
FastRaytracer (int moduleID, EGeometry geometry=c_Unified, EOptics optics=c_SemiLinear) | |
Constructor. | |
void | clear () const |
Clear mutable variables. | |
void | propagate (const PhotonState &photon, bool averaging=false) const |
Propagate photon to photo-detector plane. | |
const std::vector< PhotonState > & | getPhotonStates () const |
Returns photon states (results of propagation). | |
const std::vector< PhotonState > & | getExtraStates () const |
Returns extra states. | |
bool | getPropagationStatus () const |
Returns propagation status. | |
bool | getTotalReflStatus (double cosTotal) const |
Returns total internal reflection status. | |
double | getPropagationLen () const |
Returns total propagation length since initial position. | |
double | getPropagationLenDelta () const |
Returns total propagation length difference between true and flipped prism. | |
double | getXD () const |
Returns unfolded position in x at virtual Detector plane. | |
double | getYD () const |
Returns unfolded position in y at virtual Detector plane. | |
double | getInPlaneYD () const |
Returns unfolded position in y such that the prism unfolded windows are turned over into the real Detector plane. | |
double | getZD () const |
Returns unfolded position in z of virtual Detector plane. | |
double | getYB () const |
Returns unfolded position in y at Bar-prism-connection plane. | |
int | getNx () const |
Returns signed number of reflections in x. | |
int | getNxm () const |
Returns signed number of reflections in x before mirror. | |
int | getNxb () const |
Returns signed number of reflections in x after mirror and before prism. | |
int | getNxe () const |
Returns signed number of reflections in x inside prism. | |
int | getNy () const |
Returns signed number of reflections in y. | |
int | getNym () const |
Returns signed number of reflections in y before mirror. | |
int | getNyb () const |
Returns signed number of reflections in y after mirror and before prism. | |
int | getNye () const |
Returns signed number of reflections in y inside prism. | |
int | getNys () const |
Returns number of reflections on slanted prism surface. | |
int | getModuleID () const |
Returns slot ID. | |
EGeometry | getGeometry () const |
Returns quartz geometry treatement. | |
EOptics | getOptics () const |
Returns treatement of spherical mirror optics. | |
const std::vector< BarSegment > & | getBars () const |
Returns geometry data of bar segments. | |
const Mirror & | getMirror () const |
Returns geometry data of spherical mirror. | |
const Prism & | getPrism () const |
Returns geometry data of prism. | |
void | setMirrorCenter (double xc, double yc) |
Sets the mirror center-of-curvature. | |
Protected Attributes | |
int | m_moduleID = 0 |
slot ID | |
EGeometry | m_geometry = c_Unified |
quartz geometry | |
EOptics | m_optics = c_SemiLinear |
spherical mirror optics | |
std::vector< BarSegment > | m_bars |
geometry data of bar segments | |
Mirror | m_mirror |
spherical mirror geometry data | |
Prism | m_prism |
prism geometry data | |
Private Attributes | |
std::vector< PhotonState > | m_photonStates |
photon states at propagation steps | |
std::vector< PhotonState > | m_extraStates |
extra storage | |
bool | m_status = false |
propagation status | |
int | m_Nxm = 0 |
number of reflections in x before mirror | |
int | m_Nxb = 0 |
number of reflections in x after mirror and before prism | |
int | m_Nxe = 0 |
number of reflections in x inside prism | |
int | m_Nym = 0 |
number of reflections in y before mirror | |
int | m_Nyb = 0 |
number of reflections in y after mirror and before prism | |
int | m_Nye = 0 |
number of reflections in y inside prism | |
Fast photon propagation in quartz optics.
Definition at line 26 of file FastRaytracer.h.
|
inherited |
Treatement of quartz geometry.
Enumerator | |
---|---|
c_Unified | single bar with average width and thickness |
c_Segmented | segmented bars |
Definition at line 33 of file RaytracerBase.h.
|
inherited |
Treatement of spherical mirror optics.
Enumerator | |
---|---|
c_SemiLinear | semi-linear approximation |
c_Exact | exact optics |
Definition at line 41 of file RaytracerBase.h.
|
inlineexplicit |
Constructor.
moduleID | slot ID |
geometry | treatement of quartz geometry |
optics | treatement of spherical mirror optics |
Definition at line 36 of file FastRaytracer.h.
void clear | ( | ) | const |
Clear mutable variables.
Definition at line 20 of file FastRaytracer.cc.
|
inlineinherited |
Returns geometry data of bar segments.
Definition at line 161 of file RaytracerBase.h.
|
inline |
|
inlineinherited |
Returns quartz geometry treatement.
Definition at line 149 of file RaytracerBase.h.
double getInPlaneYD | ( | ) | const |
Returns unfolded position in y such that the prism unfolded windows are turned over into the real Detector plane.
Reliable only if propagation status is true. For reflected photons unfolding is done up to spherical mirror.
Definition at line 143 of file FastRaytracer.cc.
|
inlineinherited |
Returns geometry data of spherical mirror.
Definition at line 167 of file RaytracerBase.h.
|
inlineinherited |
int getNx | ( | ) | const |
Returns signed number of reflections in x.
Reliable only if propagation status is true.
Definition at line 180 of file FastRaytracer.cc.
|
inline |
Returns signed number of reflections in x after mirror and before prism.
Reliable only if propagation status is true.
Definition at line 152 of file FastRaytracer.h.
|
inline |
Returns signed number of reflections in x inside prism.
Reliable only if propagation status is true.
Definition at line 159 of file FastRaytracer.h.
|
inline |
Returns signed number of reflections in x before mirror.
Reliable only if propagation status is true.
Definition at line 145 of file FastRaytracer.h.
int getNy | ( | ) | const |
Returns signed number of reflections in y.
Reliable only if propagation status is true.
Definition at line 189 of file FastRaytracer.cc.
|
inline |
Returns signed number of reflections in y after mirror and before prism.
Reliable only if propagation status is true.
Definition at line 180 of file FastRaytracer.h.
|
inline |
Returns signed number of reflections in y inside prism.
Reliable only if propagation status is true.
Definition at line 187 of file FastRaytracer.h.
|
inline |
Returns signed number of reflections in y before mirror.
Reliable only if propagation status is true.
Definition at line 173 of file FastRaytracer.h.
int getNys | ( | ) | const |
Returns number of reflections on slanted prism surface.
Reliable only if propagation status is true.
Definition at line 197 of file FastRaytracer.cc.
|
inlineinherited |
Returns treatement of spherical mirror optics.
Definition at line 155 of file RaytracerBase.h.
|
inline |
Returns photon states (results of propagation).
Definition at line 56 of file FastRaytracer.h.
|
inlineinherited |
Returns geometry data of prism.
Definition at line 173 of file RaytracerBase.h.
double getPropagationLen | ( | ) | const |
Returns total propagation length since initial position.
If averaging is ON the return value equals to arithmetic average of true and flipped prism.
Definition at line 100 of file FastRaytracer.cc.
double getPropagationLenDelta | ( | ) | const |
Returns total propagation length difference between true and flipped prism.
Definition at line 107 of file FastRaytracer.cc.
|
inline |
bool getTotalReflStatus | ( | double | cosTotal | ) | const |
Returns total internal reflection status.
Reliable only if propagation status is true.
cosTotal | cosine of total reflection angle |
Definition at line 92 of file FastRaytracer.cc.
double getXD | ( | ) | const |
Returns unfolded position in x at virtual Detector plane.
If averaging is ON the return value equals to arithmetic average of true and flipped prism. Reliable only if propagation status is true. For reflected photons unfolding is done up to spherical mirror.
Definition at line 113 of file FastRaytracer.cc.
double getYB | ( | ) | const |
Returns unfolded position in y at Bar-prism-connection plane.
Reliable only if propagation status is true. For reflected photons unfolding is done up to spherical mirror.
Definition at line 165 of file FastRaytracer.cc.
double getYD | ( | ) | const |
Returns unfolded position in y at virtual Detector plane.
Reliable only if propagation status is true. For reflected photons unfolding is done up to spherical mirror.
Definition at line 129 of file FastRaytracer.cc.
double getZD | ( | ) | const |
Returns unfolded position in z of virtual Detector plane.
If averaging is ON the return value equals to arithmetic average of true and flipped prism. Reliable only if propagation status is true.
Definition at line 157 of file FastRaytracer.cc.
void propagate | ( | const PhotonState & | photon, |
bool | averaging = false |
||
) | const |
Propagate photon to photo-detector plane.
photon | initial photon state |
averaging | if true, propagate photon also in upside-down flipped prism |
Definition at line 33 of file FastRaytracer.cc.
|
inherited |
Sets the mirror center-of-curvature.
xc | center of curvature in x |
yc | center of curvature in y |
Definition at line 100 of file RaytracerBase.cc.
|
protectedinherited |
geometry data of bar segments
Definition at line 188 of file RaytracerBase.h.
|
mutableprivate |
extra storage
Definition at line 200 of file FastRaytracer.h.
quartz geometry
Definition at line 185 of file RaytracerBase.h.
|
protectedinherited |
spherical mirror geometry data
Definition at line 189 of file RaytracerBase.h.
|
protectedinherited |
slot ID
Definition at line 184 of file RaytracerBase.h.
|
mutableprivate |
number of reflections in x after mirror and before prism
Definition at line 203 of file FastRaytracer.h.
|
mutableprivate |
number of reflections in x inside prism
Definition at line 204 of file FastRaytracer.h.
|
mutableprivate |
number of reflections in x before mirror
Definition at line 202 of file FastRaytracer.h.
|
mutableprivate |
number of reflections in y after mirror and before prism
Definition at line 206 of file FastRaytracer.h.
|
mutableprivate |
number of reflections in y inside prism
Definition at line 207 of file FastRaytracer.h.
|
mutableprivate |
number of reflections in y before mirror
Definition at line 205 of file FastRaytracer.h.
|
protectedinherited |
spherical mirror optics
Definition at line 186 of file RaytracerBase.h.
|
mutableprivate |
photon states at propagation steps
Definition at line 199 of file FastRaytracer.h.
|
protectedinherited |
prism geometry data
Definition at line 190 of file RaytracerBase.h.
|
mutableprivate |
propagation status
Definition at line 201 of file FastRaytracer.h.