Belle II Software  release-06-01-15
PhotonState Class Reference

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 TVector3 &position, const TVector3 &direction)
 Constructor with position and direction vectors. More...
 
 PhotonState (const TVector3 &position, double kx, double ky, double kz)
 Constructor with position vector and direction components. More...
 
 PhotonState (const TVector3 &position, const TVector3 &trackDir, double thc, double fic)
 Constructor with position, track direction and cerenkov angles. More...
 
PhotonStateflipKy ()
 Changes sign of direction y component.
 
TVector3 getPosition () const
 Returns position as 3D vector. More...
 
double getX () const
 Returns position in x. More...
 
double getY () const
 Returns position in y. More...
 
double getZ () const
 Returns position in z. More...
 
double getUnfoldedX (double x) const
 Unfolds the position in x. More...
 
double getUnfoldedY (double y) const
 Unfolds the position in y. More...
 
double getXD () const
 Returns detection position x in unfolded prism. More...
 
double getYD () const
 Returns detection position y in unfolded prism. More...
 
double getZD () const
 Returns detection position z in unfolded prism. More...
 
TVector3 getDirection () const
 Returns direction as 3D unit vector. More...
 
double getKx () const
 Returns direction in x. More...
 
double getKy () const
 Returns direction in y. More...
 
double getKz () const
 Returns direction in z. More...
 
double getPropagationLen () const
 Returns total propagation length since initial position. More...
 
int getNx () const
 Returns number of reflections in x at last propagation step. More...
 
int getNy () const
 Returns number of reflections in y at last propagation step. More...
 
double getA () const
 Returns width (dimension in x) of the quartz segment at last propagation step. More...
 
double getB () const
 Returns thickness (dimension in y) of the quartz segment at last propagation step. More...
 
EType getSegmentType () const
 Returns the type of the quartz segment at last propagation. More...
 
bool getPropagationStatus () const
 Returns propagation status. More...
 
bool getTotalReflStatus (double cosTotal) const
 Returns total internal reflection status. More...
 
bool isInside (const RaytracerBase::BarSegment &bar) const
 Checks if photon is inside the bar segment (including surface). More...
 
bool isInside (const RaytracerBase::BarSegment &bar, const RaytracerBase::Mirror &mirror) const
 Checks if photon is inside the mirror segment (including surface). More...
 
bool isInside (const RaytracerBase::Prism &prism) const
 Checks if photon is inside the prism (including surface). More...
 
void propagate (const RaytracerBase::BarSegment &bar)
 Propagate photon to the exit of bar segment. More...
 
void propagateSemiLinear (const RaytracerBase::BarSegment &bar, const RaytracerBase::Mirror &mirror)
 Propagate photon to the mirror and reflect it using semi-linear mirror optics. More...
 
void propagateExact (const RaytracerBase::BarSegment &bar, const RaytracerBase::Mirror &mirror)
 Propagate photon to the mirror and reflect it using exact mirror optics. More...
 
void propagate (const RaytracerBase::Prism &prism)
 Propagate photon in the prism to the detector plane. More...
 

Static Public Member Functions

static void setMaxPropagationLen (double maxLen)
 Sets maximal allowed propagation length. More...
 

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
 

Detailed Description

State of the Cerenkov photon in the quartz optics.

Definition at line 25 of file PhotonState.h.

Member Enumeration Documentation

◆ EType

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 32 of file PhotonState.h.

32  {
33  c_Undefined = 0,
34  c_BarSegment = 1,
35  c_MirrorSegment = 2,
36  c_Prism = 3
37  };
@ c_BarSegment
bar segment
Definition: PhotonState.h:34
@ c_MirrorSegment
mirror segment
Definition: PhotonState.h:35

Constructor & Destructor Documentation

◆ PhotonState() [1/3]

PhotonState ( const TVector3 &  position,
const TVector3 &  direction 
)

Constructor with position and direction vectors.

Parameters
positioninitial photon position (must be inside quartz)
directioninitial direction vector (must be unit vector)

Definition at line 26 of file PhotonState.cc.

26  :
27  m_x(position.X()), m_y(position.Y()), m_z(position.Z()),
28  m_kx(direction.X()), m_ky(direction.Y()), m_kz(direction.Z()),
29  m_status(true)
30  {}
double m_x
position in x
Definition: PhotonState.h:272
double m_ky
direction in y
Definition: PhotonState.h:276
double m_kx
direction in x
Definition: PhotonState.h:275
bool m_status
propagation status
Definition: PhotonState.h:289
double m_z
position in z
Definition: PhotonState.h:274
double m_y
position in y
Definition: PhotonState.h:273
double m_kz
direction in z
Definition: PhotonState.h:277

◆ PhotonState() [2/3]

PhotonState ( const TVector3 &  position,
double  kx,
double  ky,
double  kz 
)

Constructor with position vector and direction components.

Parameters
positioninitial photon position (must be inside quartz)
kxinitial direction x-component (must be unit vector)
kyinitial direction y-component (must be unit vector)
kzinitial direction z-component (must be unit vector)

Definition at line 33 of file PhotonState.cc.

◆ PhotonState() [3/3]

PhotonState ( const TVector3 &  position,
const TVector3 &  trackDir,
double  thc,
double  fic 
)

Constructor with position, track direction and cerenkov angles.

Parameters
positioninitial photon position (must be inside quartz)
trackDirtrack direction vector (must be unit vector)
thcCerenkov (polar) angle
ficCerenkov azimuthal angle

Definition at line 39 of file PhotonState.cc.

Member Function Documentation

◆ getA()

double getA ( ) const
inline

Returns width (dimension in x) of the quartz segment at last propagation step.

Returns
width

Definition at line 183 of file PhotonState.h.

◆ getB()

double getB ( ) const
inline

Returns thickness (dimension in y) of the quartz segment at last propagation step.

For prism it is the size of exit window.

Returns
thickness

Definition at line 190 of file PhotonState.h.

◆ getDirection()

TVector3 getDirection ( ) const
inline

Returns direction as 3D unit vector.

Returns
direction

Definition at line 141 of file PhotonState.h.

◆ getKx()

double getKx ( ) const
inline

Returns direction in x.

Returns
direction in x

Definition at line 147 of file PhotonState.h.

◆ getKy()

double getKy ( ) const
inline

Returns direction in y.

Returns
direction in y

Definition at line 153 of file PhotonState.h.

◆ getKz()

double getKz ( ) const
inline

Returns direction in z.

Returns
direction in z

Definition at line 159 of file PhotonState.h.

◆ getNx()

int getNx ( ) const
inline

Returns number of reflections in x at last propagation step.

Returns
signed number of reflections

Definition at line 171 of file PhotonState.h.

◆ getNy()

int getNy ( ) const
inline

Returns number of reflections in y at last propagation step.

Returns
signed number of reflections

Definition at line 177 of file PhotonState.h.

◆ getPosition()

TVector3 getPosition ( ) const
inline

Returns position as 3D vector.

Returns
position

Definition at line 85 of file PhotonState.h.

◆ getPropagationLen()

double getPropagationLen ( ) const
inline

Returns total propagation length since initial position.

Returns
propagation length

Definition at line 165 of file PhotonState.h.

◆ getPropagationStatus()

bool getPropagationStatus ( ) const
inline

Returns propagation status.

Returns
true on success

Definition at line 202 of file PhotonState.h.

◆ getSegmentType()

EType getSegmentType ( ) const
inline

Returns the type of the quartz segment at last propagation.

Returns
type quartz segment type

Definition at line 196 of file PhotonState.h.

◆ getTotalReflStatus()

bool getTotalReflStatus ( double  cosTotal) const
inline

Returns total internal reflection status.

Parameters
cosTotalcosine of total reflection angle
Returns
true if totally reflected

Definition at line 209 of file PhotonState.h.

◆ getUnfoldedX()

double getUnfoldedX ( double  x) const
inline

Unfolds the position in x.

Parameters
xposition to unfold
Returns
unfolded position

Definition at line 110 of file PhotonState.h.

◆ getUnfoldedY()

double getUnfoldedY ( double  y) const
inline

Unfolds the position in y.

Parameters
yposition to unfold
Returns
unfolded position

Definition at line 117 of file PhotonState.h.

◆ getX()

double getX ( ) const
inline

Returns position in x.

Returns
position in x

Definition at line 91 of file PhotonState.h.

◆ getXD()

double getXD ( ) const
inline

Returns detection position x in unfolded prism.

Returns
detection position x in unfolded prism

Definition at line 123 of file PhotonState.h.

◆ getY()

double getY ( ) const
inline

Returns position in y.

Returns
position in y

Definition at line 97 of file PhotonState.h.

◆ getYD()

double getYD ( ) const
inline

Returns detection position y in unfolded prism.

Returns
detection position y in unfolded prism

Definition at line 129 of file PhotonState.h.

◆ getZ()

double getZ ( ) const
inline

Returns position in z.

Returns
position in z

Definition at line 103 of file PhotonState.h.

◆ getZD()

double getZD ( ) const
inline

Returns detection position z in unfolded prism.

Returns
detection position z in unfolded prism

Definition at line 135 of file PhotonState.h.

◆ isInside() [1/3]

bool isInside ( const RaytracerBase::BarSegment bar) const

Checks if photon is inside the bar segment (including surface).

Parameters
barbar segment data
Returns
true if inside

Definition at line 50 of file PhotonState.cc.

◆ isInside() [2/3]

bool isInside ( const RaytracerBase::BarSegment bar,
const RaytracerBase::Mirror mirror 
) const

Checks if photon is inside the mirror segment (including surface).

Parameters
barbar segment data
mirrorspherical mirror data
Returns
true if inside

Definition at line 59 of file PhotonState.cc.

◆ isInside() [3/3]

bool isInside ( const RaytracerBase::Prism prism) const

Checks if photon is inside the prism (including surface).

Parameters
prismprism data
Returns
true if inside

Definition at line 70 of file PhotonState.cc.

◆ propagate() [1/2]

void propagate ( const RaytracerBase::BarSegment bar)

Propagate photon to the exit of bar segment.

Parameters
barbar segment data
Returns
true on success

Definition at line 81 of file PhotonState.cc.

◆ propagate() [2/2]

void propagate ( const RaytracerBase::Prism prism)

Propagate photon in the prism to the detector plane.

Parameters
prismprism data
Returns
true on success

Definition at line 246 of file PhotonState.cc.

◆ propagateExact()

void propagateExact ( const RaytracerBase::BarSegment bar,
const RaytracerBase::Mirror mirror 
)

Propagate photon to the mirror and reflect it using exact mirror optics.

Parameters
barmirror segment data
mirrorspherical mirror data
Returns
true on success

Definition at line 175 of file PhotonState.cc.

◆ propagateSemiLinear()

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.

Parameters
barmirror segment data
mirrorspherical mirror data
Returns
true on success

Definition at line 109 of file PhotonState.cc.

◆ setMaxPropagationLen()

static void setMaxPropagationLen ( double  maxLen)
inlinestatic

Sets maximal allowed propagation length.

Parameters
maxLenmaximal allowed propagation length

Definition at line 79 of file PhotonState.h.


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