Belle II Software  release-08-01-10
DeltaRayPDF Class Reference

Parametrization of delta-ray PDF in pixels of single module. More...

#include <DeltaRayPDF.h>

Collaboration diagram for DeltaRayPDF:

Classes

struct  GausXY
 Normal (Gaussian) distribution: an entry for the table. More...
 

Public Member Functions

 DeltaRayPDF (int moduleID)
 Class constructor. More...
 
void prepare (const TOPTrack &track, const Const::ChargedStable &hypothesis)
 Prepare the object. More...
 
int getModuleID () const
 Returns slot ID. More...
 
double getNumPhotons () const
 Returns number of photons. More...
 
double getFraction () const
 Returns fraction of delta-ray photons in the time window. More...
 
double getPDFValue (int pixelID, double time) const
 Returns PDF value at given time and pixel. More...
 
double getPDFValue (double time, double dt0=0, double acc=1) const
 Returns PDF value at given time and integrated over all pixels. More...
 
double getIntegral (double minTime, double maxTime) const
 Returns integral of PDF from minTime to maxTime. More...
 

Private Member Functions

double angularDistr (double kz) const
 Angular distribution of photons from delta rays w/ total reflection requirement. More...
 
double timeDistr (double t, double t0) const
 Time distribution of photons from delta rays (normalized). More...
 
double smearedTimeDistr (double t, double t0) const
 Smeared time distribution of photons from delta rays (normalized). More...
 
double peakFraction (double tmin, double tmax, double t0) const
 Fraction of delta-ray photons within given propagation time interval for single peak at t0. More...
 
double totalFraction (double tmin, double tmax) const
 Total fraction of delta-ray photons within given propagation time interval. More...
 
double directFraction (double z) const
 Fraction of direct photons from delta-rays, e.g direct/(direct+reflected) More...
 
double photonYield (double beta, int PDGCode) const
 Photon yield from delta-rays per track length in quartz for nominal photon detection efficiency. More...
 

Private Attributes

int m_moduleID
 slot ID
 
const BackgroundPDFm_background = 0
 background PDF
 
const PixelPositionsm_pixelPositions = 0
 pixel positions
 
double m_zD = 0
 detector (photo-cathode) position in z
 
double m_zM = 0
 spherical mirror position in z
 
double m_phaseIndex = 0
 phase refractive index
 
double m_groupIndex = 0
 group refractive index
 
double m_dispersion = 0
 dispersion coefficient
 
double m_angularNorm = 0
 angular distribution normalization constant
 
std::vector< double > m_norms
 relative angular distribution normalization constants (cumulative)
 
std::vector< GausXYm_tableGaus
 table of normal (Gaussian) distribution
 
double m_xE = 0
 average photon emission position in x
 
double m_yE = 0
 average photon emission position in y
 
double m_zE = 0
 average photon emission position in z
 
double m_dirFrac = 0
 fraction of direct photons
 
double m_dirT0 = 0
 minimal propagation time of direct photons
 
double m_reflT0 = 0
 minimal propagation time of reflected photons
 
double m_TOF = 0
 time-of-flight of particle
 
double m_fraction = 0
 fraction of delta-ray photons within time window
 
double m_numPhotons = 0
 number of photons
 
std::vector< double > m_pixelAcceptances
 pixel angular acceptances for direct peak (index = pixelID - 1)
 

Detailed Description

Parametrization of delta-ray PDF in pixels of single module.

Definition at line 27 of file DeltaRayPDF.h.

Constructor & Destructor Documentation

◆ DeltaRayPDF()

DeltaRayPDF ( int  moduleID)
explicit

Class constructor.

Parameters
moduleIDslot ID

Definition at line 24 of file DeltaRayPDF.cc.

24  :
26  {
27  if (not m_background) {
28  B2ERROR("TOP::DeltaRayPDF: background PDF not found");
29  return;
30  }
31 
32  const auto* yScanner = TOPRecoManager::getYScanner(moduleID);
33  if (not yScanner) {
34  B2ERROR("TOP::DeltaRayPDF: YScanner not found");
35  return;
36  }
37 
38  m_pixelPositions = &(yScanner->getPixelPositions());
39 
40  m_zD = yScanner->getPrism().zD;
41  m_zM = yScanner->getBars().back().zR;
42  double meanE = yScanner->getMeanEnergyBeta1();
43  double sigE = yScanner->getRMSEnergyBeta1();
46  double dng_de = TOPGeometryPar::Instance()->getGroupIndexDerivative(meanE);
47  m_dispersion = dng_de / m_groupIndex * sigE;
48 
49  const int N = 1000;
50  double dkz = 1.0 / N;
51  m_norms.push_back(0);
52  for (int i = 0; i < N; i++) {
53  double kz = (i + 0.5) * dkz;
54  m_angularNorm += angularDistr(kz) * dkz;
55  m_norms.push_back(m_angularNorm);
56  }
57  for (auto& norm : m_norms) norm /= m_angularNorm;
58 
59  const int Np = 101;
60  double dx = 6.0 / (Np - 1);
61  for (int i = 0; i < Np; i++) {
62  double x = i * dx - 3.0;
63  m_tableGaus.push_back(GausXY(x));
64  }
65  double sum = 0;
66  for (const auto& gaus : m_tableGaus) sum += gaus.y;
67  for (auto& gaus : m_tableGaus) gaus.y /= sum;
68  }
double m_dispersion
dispersion coefficient
Definition: DeltaRayPDF.h:168
double m_zD
detector (photo-cathode) position in z
Definition: DeltaRayPDF.h:164
double m_groupIndex
group refractive index
Definition: DeltaRayPDF.h:167
const BackgroundPDF * m_background
background PDF
Definition: DeltaRayPDF.h:162
std::vector< double > m_norms
relative angular distribution normalization constants (cumulative)
Definition: DeltaRayPDF.h:170
std::vector< GausXY > m_tableGaus
table of normal (Gaussian) distribution
Definition: DeltaRayPDF.h:171
double m_zM
spherical mirror position in z
Definition: DeltaRayPDF.h:165
double m_angularNorm
angular distribution normalization constant
Definition: DeltaRayPDF.h:169
double m_phaseIndex
phase refractive index
Definition: DeltaRayPDF.h:166
const PixelPositions * m_pixelPositions
pixel positions
Definition: DeltaRayPDF.h:163
double angularDistr(double kz) const
Angular distribution of photons from delta rays w/ total reflection requirement.
Definition: DeltaRayPDF.h:190
double getGroupIndexDerivative(double energy) const
Returns the derivative (dn_g/dE) of group refractive index of quartz at given photon energy.
static TOPGeometryPar * Instance()
Static method to obtain the pointer to its instance.
double getPhaseIndex(double energy) const
Returns phase refractive index of quartz at given photon energy.
double getGroupIndex(double energy) const
Returns group refractive index of quartz at given photon energy.
static const YScanner * getYScanner(int moduleID)
Returns y-scanner of a given module.
static const BackgroundPDF * getBackgroundPDF(int moduleID)
Returns background PDF of a given module.

Member Function Documentation

◆ angularDistr()

double angularDistr ( double  kz) const
inlineprivate

Angular distribution of photons from delta rays w/ total reflection requirement.

Distribution is not normalized.

Parameters
kzz-component of photon direction
Returns
distribution value

Definition at line 190 of file DeltaRayPDF.h.

191  {
192  if (std::abs(kz) < 1 / m_phaseIndex) {
193  double x = sqrt((1 - 1 / pow(m_phaseIndex, 2)) / (1 - pow(kz, 2)));
194  return 1 - acos(x) * 4 / M_PI;
195  }
196  return 1;
197  }
double sqrt(double a)
sqrt for double
Definition: beamHelpers.h:28

◆ directFraction()

double directFraction ( double  z) const
private

Fraction of direct photons from delta-rays, e.g direct/(direct+reflected)

Parameters
zlocal z position of track at TOP
Returns
fraction of direct photons

Definition at line 155 of file DeltaRayPDF.cc.

◆ getFraction()

double getFraction ( ) const
inline

Returns fraction of delta-ray photons in the time window.

Returns
fraction of delta-ray photons in the time window

Definition at line 60 of file DeltaRayPDF.h.

◆ getIntegral()

double getIntegral ( double  minTime,
double  maxTime 
) const
inline

Returns integral of PDF from minTime to maxTime.

Parameters
minTimeintegral lower limit
maxTimeintegral upper limit
Returns
integral of PDF

Definition at line 213 of file DeltaRayPDF.h.

◆ getModuleID()

int getModuleID ( ) const
inline

Returns slot ID.

Returns
slot ID

Definition at line 48 of file DeltaRayPDF.h.

◆ getNumPhotons()

double getNumPhotons ( ) const
inline

Returns number of photons.

Returns
number of photons

Definition at line 54 of file DeltaRayPDF.h.

◆ getPDFValue() [1/2]

double getPDFValue ( double  time,
double  dt0 = 0,
double  acc = 1 
) const
inline

Returns PDF value at given time and integrated over all pixels.

Parameters
timephoton hit time
dt0direct peak position correction
accacceptance correction factor for direct peak
Returns
PDF value (projection to time axis)

Definition at line 205 of file DeltaRayPDF.h.

◆ getPDFValue() [2/2]

double getPDFValue ( int  pixelID,
double  time 
) const

Returns PDF value at given time and pixel.

Parameters
pixelIDpixel ID
timephoton hit time
Returns
PDF value

Definition at line 113 of file DeltaRayPDF.cc.

◆ peakFraction()

double peakFraction ( double  tmin,
double  tmax,
double  t0 
) const
private

Fraction of delta-ray photons within given propagation time interval for single peak at t0.

Parameters
tmintime interval lower edge
tmaxtime interval upper edge
t0minimal possible propagation time
Returns
fraction of photons within time interval for single peak

Definition at line 138 of file DeltaRayPDF.cc.

◆ photonYield()

double photonYield ( double  beta,
int  PDGCode 
) const
private

Photon yield from delta-rays per track length in quartz for nominal photon detection efficiency.

Parameters
betaparticle velocity
PDGCodePDG code
Returns
photon yield per cm

Definition at line 169 of file DeltaRayPDF.cc.

◆ prepare()

void prepare ( const TOPTrack track,
const Const::ChargedStable hypothesis 
)

Prepare the object.

Parameters
tracktrack at TOP
hypothesisparticle hypothesis

Definition at line 70 of file DeltaRayPDF.cc.

◆ smearedTimeDistr()

double smearedTimeDistr ( double  t,
double  t0 
) const
private

Smeared time distribution of photons from delta rays (normalized).

Parameters
tphoton propagation time
t0minimal possible propagation time
Returns
normalized time distribution value at given propagaton time

Definition at line 126 of file DeltaRayPDF.cc.

◆ timeDistr()

double timeDistr ( double  t,
double  t0 
) const
inlineprivate

Time distribution of photons from delta rays (normalized).

Parameters
tphoton propagation time
t0minimal possible propagation time
Returns
normalized time distribution value at given propagaton time

Definition at line 199 of file DeltaRayPDF.h.

◆ totalFraction()

double totalFraction ( double  tmin,
double  tmax 
) const
private

Total fraction of delta-ray photons within given propagation time interval.

Parameters
tmintime interval lower edge
tmaxtime interval upper edge
Returns
fraction of photons within time interval including direct and reflected peaks

Definition at line 148 of file DeltaRayPDF.cc.


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