Belle II Software development
|
State of the Cerenkov photon in the quartz optics. More...
#include <PhotonState.h>
Public Types | |
enum | EType { c_Undefined = 0 , c_BarSegment = 1 , c_MirrorSegment = 2 , c_Prism = 3 } |
enumerator for the type of quartz segments More... | |
Public Member Functions | |
PhotonState () | |
Default constructor. | |
PhotonState (const ROOT::Math::XYZPoint &position, const ROOT::Math::XYZVector &direction) | |
Constructor with position and direction vectors. | |
PhotonState (const ROOT::Math::XYZPoint &position, double kx, double ky, double kz) | |
Constructor with position vector and direction components. | |
PhotonState (const ROOT::Math::XYZPoint &position, const ROOT::Math::XYZVector &trackDir, double thc, double fic) | |
Constructor with position, track direction and cerenkov angles. | |
PhotonState & | flipKy () |
Changes sign of direction y component. | |
ROOT::Math::XYZPoint | getPosition () const |
Returns position as 3D vector. | |
double | getX () const |
Returns position in x. | |
double | getY () const |
Returns position in y. | |
double | getZ () const |
Returns position in z. | |
double | getUnfoldedX (double x) const |
Unfolds the position in x. | |
double | getUnfoldedY (double y) const |
Unfolds the position in y. | |
double | getXD () const |
Returns detection position x in unfolded prism. | |
double | getYD () const |
Returns detection position y in unfolded prism. | |
double | getZD () const |
Returns detection position z in unfolded prism. | |
ROOT::Math::XYZVector | getDirection () const |
Returns direction as 3D unit vector. | |
double | getKx () const |
Returns direction in x. | |
double | getKy () const |
Returns direction in y. | |
double | getKz () const |
Returns direction in z. | |
double | getPropagationLen () const |
Returns total propagation length since initial position. | |
int | getNx () const |
Returns number of reflections in x at last propagation step. | |
int | getNy () const |
Returns number of reflections in y at last propagation step. | |
double | getA () const |
Returns width (dimension in x) of the quartz segment at last propagation step. | |
double | getB () const |
Returns thickness (dimension in y) of the quartz segment at last propagation step. | |
EType | getSegmentType () const |
Returns the type of the quartz segment at last propagation. | |
bool | getPropagationStatus () const |
Returns propagation status. | |
bool | getTotalReflStatus (double cosTotal) const |
Returns total internal reflection status. | |
bool | isInside (const RaytracerBase::BarSegment &bar) const |
Checks if photon is inside the bar segment (including surface). | |
bool | isInside (const RaytracerBase::BarSegment &bar, const RaytracerBase::Mirror &mirror) const |
Checks if photon is inside the mirror segment (including surface). | |
bool | isInside (const RaytracerBase::Prism &prism) const |
Checks if photon is inside the prism (including surface). | |
void | propagate (const RaytracerBase::BarSegment &bar) |
Propagate photon to the exit of bar segment. | |
void | propagateSemiLinear (const RaytracerBase::BarSegment &bar, const RaytracerBase::Mirror &mirror) |
Propagate photon to the mirror and reflect it using semi-linear mirror optics. | |
void | propagateExact (const RaytracerBase::BarSegment &bar, const RaytracerBase::Mirror &mirror) |
Propagate photon to the mirror and reflect it using exact mirror optics. | |
void | propagate (const RaytracerBase::Prism &prism) |
Propagate photon in the prism to the detector plane. | |
Static Public Member Functions | |
static void | setMaxPropagationLen (double maxLen) |
Sets maximal allowed propagation length. | |
Private Attributes | |
double | m_x = 0 |
position in x | |
double | m_y = 0 |
position in y | |
double | m_z = 0 |
position in z | |
double | m_kx = 0 |
direction in x | |
double | m_ky = 0 |
direction in y | |
double | m_kz = 0 |
direction in z | |
double | m_propLen = 0 |
propagation length since initial position | |
int | m_nx = 0 |
signed number of reflections in x at last propagation step | |
int | m_ny = 0 |
signed number of reflections in y at last propagation step | |
double | m_cosx = 0 |
maximal cosine of impact angle to surface in x | |
double | m_cosy = 0 |
maximal cosine of impact angle to surface in y | |
double | m_A = 0 |
width of the quartz segment (dimension in x) for unfolding | |
double | m_B = 0 |
thickness of the quartz segment (dimension in y) for unfolding | |
double | m_y0 = 0 |
origin in y for unfolding | |
double | m_yD = 0 |
unfolded prism detection position in y | |
double | m_zD = 0 |
unfolded prism detection position in z | |
EType | m_type = c_Undefined |
quartz segment type at last propagation step | |
bool | m_status = false |
propagation status | |
Static Private Attributes | |
static double | s_maxLen = 10000 |
maximal allowed propagation length | |
State of the Cerenkov photon in the quartz optics.
Definition at line 27 of file PhotonState.h.
enum EType |
enumerator for the type of quartz segments
Enumerator | |
---|---|
c_Undefined | undefined |
c_BarSegment | bar segment |
c_MirrorSegment | mirror segment |
c_Prism | prism |
Definition at line 34 of file PhotonState.h.
|
inline |
PhotonState | ( | const ROOT::Math::XYZPoint & | position, |
const ROOT::Math::XYZVector & | direction | ||
) |
Constructor with position and direction vectors.
position | initial photon position (must be inside quartz) |
direction | initial direction vector (must be unit vector) |
Definition at line 26 of file PhotonState.cc.
PhotonState | ( | const ROOT::Math::XYZPoint & | position, |
double | kx, | ||
double | ky, | ||
double | kz | ||
) |
Constructor with position vector and direction components.
position | initial photon position (must be inside quartz) |
kx | initial direction x-component (must be unit vector) |
ky | initial direction y-component (must be unit vector) |
kz | initial direction z-component (must be unit vector) |
Definition at line 33 of file PhotonState.cc.
PhotonState | ( | const ROOT::Math::XYZPoint & | position, |
const ROOT::Math::XYZVector & | trackDir, | ||
double | thc, | ||
double | fic | ||
) |
Constructor with position, track direction and cerenkov angles.
position | initial photon position (must be inside quartz) |
trackDir | track direction vector (must be unit vector) |
thc | Cerenkov (polar) angle |
fic | Cerenkov azimuthal angle |
Definition at line 39 of file PhotonState.cc.
|
inline |
Changes sign of direction y component.
Definition at line 75 of file PhotonState.h.
|
inline |
Returns width (dimension in x) of the quartz segment at last propagation step.
Definition at line 185 of file PhotonState.h.
|
inline |
Returns thickness (dimension in y) of the quartz segment at last propagation step.
For prism it is the size of exit window.
Definition at line 192 of file PhotonState.h.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Returns number of reflections in x at last propagation step.
Definition at line 173 of file PhotonState.h.
|
inline |
Returns number of reflections in y at last propagation step.
Definition at line 179 of file PhotonState.h.
|
inline |
|
inline |
Returns total propagation length since initial position.
Definition at line 167 of file PhotonState.h.
|
inline |
|
inline |
Returns the type of the quartz segment at last propagation.
Definition at line 198 of file PhotonState.h.
|
inline |
Returns total internal reflection status.
cosTotal | cosine of total reflection angle |
Definition at line 211 of file PhotonState.h.
|
inline |
Unfolds the position in x.
x | position to unfold |
Definition at line 112 of file PhotonState.h.
|
inline |
Unfolds the position in y.
y | position to unfold |
Definition at line 119 of file PhotonState.h.
|
inline |
|
inline |
Returns detection position x in unfolded prism.
Definition at line 125 of file PhotonState.h.
|
inline |
|
inline |
Returns detection position y in unfolded prism.
Definition at line 131 of file PhotonState.h.
|
inline |
|
inline |
Returns detection position z in unfolded prism.
Definition at line 137 of file PhotonState.h.
bool isInside | ( | const RaytracerBase::BarSegment & | bar | ) | const |
Checks if photon is inside the bar segment (including surface).
bar | bar segment data |
Definition at line 51 of file PhotonState.cc.
bool isInside | ( | const RaytracerBase::BarSegment & | bar, |
const RaytracerBase::Mirror & | mirror | ||
) | const |
Checks if photon is inside the mirror segment (including surface).
bar | bar segment data |
mirror | spherical mirror data |
Definition at line 60 of file PhotonState.cc.
bool isInside | ( | const RaytracerBase::Prism & | prism | ) | const |
Checks if photon is inside the prism (including surface).
prism | prism data |
Definition at line 71 of file PhotonState.cc.
void propagate | ( | const RaytracerBase::BarSegment & | bar | ) |
Propagate photon to the exit of bar segment.
bar | bar segment data |
Definition at line 82 of file PhotonState.cc.
void propagate | ( | const RaytracerBase::Prism & | prism | ) |
Propagate photon in the prism to the detector plane.
prism | prism data |
Definition at line 247 of file PhotonState.cc.
void propagateExact | ( | const RaytracerBase::BarSegment & | bar, |
const RaytracerBase::Mirror & | mirror | ||
) |
Propagate photon to the mirror and reflect it using exact mirror optics.
bar | mirror segment data |
mirror | spherical mirror data |
Definition at line 176 of file PhotonState.cc.
void propagateSemiLinear | ( | const RaytracerBase::BarSegment & | bar, |
const RaytracerBase::Mirror & | mirror | ||
) |
Propagate photon to the mirror and reflect it using semi-linear mirror optics.
Semi-linear: mirror surface approximated with a cylinder along y-axis and using linear optics approximation in y for the photon reflection. Useful to get rid of some of the discontinuities in the TOP image at given wavelength, which are anyway smeared-out by the dispersion and other processes.
bar | mirror segment data |
mirror | spherical mirror data |
Definition at line 110 of file PhotonState.cc.
|
inlinestatic |
Sets maximal allowed propagation length.
maxLen | maximal allowed propagation length |
Definition at line 81 of file PhotonState.h.
|
private |
width of the quartz segment (dimension in x) for unfolding
Definition at line 281 of file PhotonState.h.
|
private |
thickness of the quartz segment (dimension in y) for unfolding
Definition at line 282 of file PhotonState.h.
|
private |
maximal cosine of impact angle to surface in x
Definition at line 279 of file PhotonState.h.
|
private |
maximal cosine of impact angle to surface in y
Definition at line 280 of file PhotonState.h.
|
private |
direction in x
Definition at line 273 of file PhotonState.h.
|
private |
direction in y
Definition at line 274 of file PhotonState.h.
|
private |
direction in z
Definition at line 275 of file PhotonState.h.
|
private |
signed number of reflections in x at last propagation step
Definition at line 277 of file PhotonState.h.
|
private |
signed number of reflections in y at last propagation step
Definition at line 278 of file PhotonState.h.
|
private |
propagation length since initial position
Definition at line 276 of file PhotonState.h.
|
private |
propagation status
Definition at line 287 of file PhotonState.h.
|
private |
quartz segment type at last propagation step
Definition at line 286 of file PhotonState.h.
|
private |
position in x
Definition at line 270 of file PhotonState.h.
|
private |
position in y
Definition at line 271 of file PhotonState.h.
|
private |
origin in y for unfolding
Definition at line 283 of file PhotonState.h.
|
private |
unfolded prism detection position in y
Definition at line 284 of file PhotonState.h.
|
private |
position in z
Definition at line 272 of file PhotonState.h.
|
private |
unfolded prism detection position in z
Definition at line 285 of file PhotonState.h.
|
staticprivate |
maximal allowed propagation length
Definition at line 289 of file PhotonState.h.