![]() |
Belle II Software development
|
Utility for expanding the PDF in y direction. More...
#include <YScanner.h>
Classes | |
| struct | Derivatives |
| Derivatives. More... | |
| struct | PixelProjection |
| Down-stream projection of a pixel to prism entrance window w/ a clip on bar exit thickness. More... | |
| struct | Result |
| Single PDF peak data. More... | |
| struct | Table |
| A table of equidistant entries. More... | |
| struct | TableEntry |
| Table entry. More... | |
| struct | WindowProjection |
| Geometry-only quantities needed to project a pixel to a given unfolded prism exit window. More... | |
Public Types | |
| enum | EGeometry { c_Unified = 0 , c_Segmented = 1 } |
| Treatment of quartz geometry. More... | |
| enum | EOptics { c_SemiLinear = 0 , c_Exact = 1 } |
| Treatment of spherical mirror optics. More... | |
Public Member Functions | |
| YScanner (int moduleID, unsigned N=64) | |
| Class constructor. | |
| void | clear () const |
| Clear mutable variables. | |
| void | prepare (double momentum, double beta, double length) const |
| Prepare for the PDF expansion in y for a given track mass hypothesis. | |
| bool | isAboveThreshold () const |
| Returns above Cerenkov threshold flag which is set in the prepare method. | |
| void | expand (unsigned col, double yB, double dydz, const Derivatives &D, int Ny, bool doScan) const |
| Performs the PDF expansion in y for a given pixel column using scan or merge methods. | |
| const PixelPositions & | getPixelPositions () const |
| Returns pixel positions and their sizes. | |
| const PixelMasks & | getPixelMasks () const |
| Returns pixel masks. | |
| const PixelEfficiencies & | getPixelEfficiencies () const |
| Returns pixel relative efficiencies. | |
| const Table & | getEfficiencies () const |
| Returns nominal photon detection efficiencies (PDE) | |
| double | getCosTotal () const |
| Returns cosine of total reflection angle. | |
| double | getMomentum () const |
| Returns particle momentum. | |
| double | getBeta () const |
| Returns particle beta. | |
| double | getTrackLengthInQuartz () const |
| Returns particle trajectory length inside quartz. | |
| double | getNumPhotonsPerLen () const |
| Returns number of photons per Cerenkov azimuthal angle per track length. | |
| double | getNumPhotons () const |
| Returns number of photons per Cerenkov azimuthal angle. | |
| double | getMeanEnergy () const |
| Returns mean photon energy. | |
| double | getRMSEnergy () const |
| Returns r.m.s of photon energy. | |
| double | getMeanEnergyBeta1 () const |
| Returns mean photon energy for beta = 1. | |
| double | getRMSEnergyBeta1 () const |
| Returns r.m.s of photon energy for beta = 1. | |
| double | getSigmaScattering () const |
| Returns r.m.s of multiple scattering angle in quartz converted to photon energy. | |
| double | getSigmaAlpha () const |
| Returns surface roughness parameter in units of photon energy. | |
| double | getSurfaceReflectivity (unsigned n) const |
| Returns the reflectivity of the bar surface raised to the given power. | |
| const Table & | getEnergyDistribution () const |
| Returns photon energy distribution. | |
| const std::map< int, Table > & | getQuasyEnergyDistributions () const |
| Returns photon energy distributions convoluted with multiple scattering and surface roughness. | |
| const std::vector< Result > & | getResults () const |
| Returns the results of PDF expansion in y. | |
| bool | isScanDone () const |
| Checks which expansion method was used. | |
| int | getModuleID () const |
| Returns slot ID. | |
| EGeometry | getGeometry () const |
| Returns quartz geometry treatment. | |
| EOptics | getOptics () const |
| Returns treatment 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. | |
Static Public Member Functions | |
| static void | setScanLimits (int maxReflections) |
| Sets parameters for selection between expand methods. | |
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 Member Functions | |
| double | setEnergyDistribution (double beta) const |
| Sets photon energy distribution and mean photon energy according to nominal PDE and particle beta. | |
| void | setQuasyEnergyDistribution (double sigma) const |
| Sets photon energy distribution convoluted with a normalized Gaussian. | |
| void | integrate (const EnergyMask *energyMask, double Ecp, Result &result) const |
| Integrates quasy energy distribution multiplied with energy mask. | |
| void | projectPixel (double yc, double size, int k, double dydz, PixelProjection proj[2]) const |
| Calculates projections of a pixel to prism entrance window (going down-stream the photon). | |
| double | tabulateSurfaceReflectivity (unsigned n) const |
| Extends the table of surface reflectivity powers up to n and returns the value. | |
| void | scan (unsigned col, double yB, double dydz, const Derivatives &D, int j1, int j2) const |
| Performs expansion w/ the scan over reflections. | |
| void | merge (unsigned col, double dydz, int j1, int j2) const |
| Performs expansion by merging all reflections. | |
| PixelMasks & | pixelMasks () |
| Returns non-const pixel masks. | |
| PixelEfficiencies & | pixelEfficiencies () |
| Returns non-const pixel relative efficiencies. | |
Private Attributes | |
| PixelPositions | m_pixelPositions |
| positions and sizes of pixels | |
| PixelMasks | m_pixelMasks |
| pixel masks | |
| PixelEfficiencies | m_pixelEfficiencies |
| pixel relative efficiencies | |
| Table | m_efficiency |
| nominal photon detection efficiencies (PDE) | |
| std::vector< WindowProjection > | m_windowProjections |
| pixel projection constants of unfolded prism exit windows | |
| std::vector< double > | m_surfaceReflectivities |
| bar surface reflectivity to the power of the index; filled on demand, never cleared | |
| double | m_prismZR = 0 |
| z of the prism-bar joint (copy of m_prism.zR) | |
| double | m_halfBarThickness = 0 |
| half thickness of the bar at prism entrance | |
| double | m_meanE0 = 0 |
| mean photon energy for beta = 1 | |
| double | m_rmsE0 = 0 |
| r.m.s of photon energy for beta = 1 | |
| double | m_cosTotal = 0 |
| cosine of total reflection angle | |
| double | m_momentum = 0 |
| particle momentum magnitude | |
| double | m_beta = 0 |
| particle beta | |
| double | m_length = 0 |
| length of particle trajectory inside quartz | |
| double | m_numPhotons = 0 |
| number of photons per Cerenkov azimuthal angle per track length | |
| double | m_meanE = 0 |
| mean photon energy | |
| double | m_rmsE = 0 |
| r.m.s of photon energy | |
| double | m_sigmaScat = 0 |
| r.m.s. | |
| double | m_sigmaAlpha = 0 |
| surface roughness parameter in photon energy units | |
| Table | m_energyDistribution |
| photon energy distribution | |
| std::map< int, Table > | m_quasyEnergyDistributions |
| photon energy distributions convoluted with Gaussian of different widths | |
| Table * | m_quasyEnergyDistribution = nullptr |
| a pointer to the element in m_quasyEnergyDistributions | |
| bool | m_aboveThreshold = false |
| true if beta is above the Cerenkov threshold | |
| std::vector< Result > | m_results |
| results of PDF expansion in y | |
| bool | m_scanDone = false |
| true if scan performed, false if reflections just merged | |
Static Private Attributes | |
| static int | s_maxReflections = 16 |
| maximal number of reflections to perform scan | |
| static unsigned | s_maxTabulatedPower = 1024 |
| maximal power of the surface reflectivity that is tabulated | |
Friends | |
| class | TOPRecoManager |
Utility for expanding the PDF in y direction.
Definition at line 33 of file YScanner.h.
|
inherited |
Treatment 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 |
Treatment of spherical mirror optics.
| Enumerator | |
|---|---|
| c_SemiLinear | semi-linear approximation |
| c_Exact | exact optics |
Definition at line 41 of file RaytracerBase.h.
|
explicit |
Class constructor.
Sets pixel positions of a given module and nominal photon detection efficiency.
| moduleID | slot ID |
| N | size of nominal photon detection efficiency table |
Definition at line 48 of file YScanner.cc.
| void clear | ( | ) | const |
Clear mutable variables.
Definition at line 130 of file YScanner.cc.
| void expand | ( | unsigned | col, |
| double | yB, | ||
| double | dydz, | ||
| const Derivatives & | D, | ||
| int | Ny, | ||
| bool | doScan ) const |
Performs the PDF expansion in y for a given pixel column using scan or merge methods.
Results accessible with getResults() method.
| col | pixel column number (0-based) |
| yB | unfolded coordinate y of photon at prism entrance (= Bar exit) plane |
| dydz | photon slope in y-z projection at prism entrance (dy/dz) |
| D | the derivatives |
| Ny | effective number of reflections |
| doScan | if true decide between scan and merge methods, if false always use merge method |
Definition at line 274 of file YScanner.cc.
|
inlineinherited |
Returns geometry data of bar segments.
Definition at line 161 of file RaytracerBase.h.
|
inline |
Returns particle beta.
Definition at line 318 of file YScanner.h.
|
inline |
Returns cosine of total reflection angle.
Definition at line 306 of file YScanner.h.
|
inline |
Returns nominal photon detection efficiencies (PDE)
Definition at line 300 of file YScanner.h.
|
inline |
Returns photon energy distribution.
Definition at line 391 of file YScanner.h.
|
inlineinherited |
Returns quartz geometry treatment.
Definition at line 149 of file RaytracerBase.h.
|
inline |
Returns mean photon energy.
Definition at line 342 of file YScanner.h.
|
inline |
Returns mean photon energy for beta = 1.
Definition at line 354 of file YScanner.h.
|
inlineinherited |
Returns geometry data of spherical mirror.
Definition at line 167 of file RaytracerBase.h.
|
inlineinherited |
Returns slot ID.
Definition at line 143 of file RaytracerBase.h.
|
inline |
Returns particle momentum.
Definition at line 312 of file YScanner.h.
|
inline |
Returns number of photons per Cerenkov azimuthal angle.
Definition at line 336 of file YScanner.h.
|
inline |
Returns number of photons per Cerenkov azimuthal angle per track length.
Definition at line 330 of file YScanner.h.
|
inlineinherited |
Returns treatment of spherical mirror optics.
Definition at line 155 of file RaytracerBase.h.
|
inline |
Returns pixel relative efficiencies.
Definition at line 294 of file YScanner.h.
|
inline |
Returns pixel masks.
Definition at line 288 of file YScanner.h.
|
inline |
Returns pixel positions and their sizes.
Definition at line 282 of file YScanner.h.
|
inlineinherited |
Returns geometry data of prism.
Definition at line 173 of file RaytracerBase.h.
|
inline |
Returns photon energy distributions convoluted with multiple scattering and surface roughness.
Map entries correspond to different Gaussian widths due to different number of reflections.
Definition at line 398 of file YScanner.h.
|
inline |
Returns the results of PDF expansion in y.
Definition at line 404 of file YScanner.h.
|
inline |
Returns r.m.s of photon energy.
Definition at line 348 of file YScanner.h.
|
inline |
Returns r.m.s of photon energy for beta = 1.
Definition at line 360 of file YScanner.h.
|
inline |
Returns surface roughness parameter in units of photon energy.
Definition at line 372 of file YScanner.h.
|
inline |
Returns r.m.s of multiple scattering angle in quartz converted to photon energy.
Definition at line 366 of file YScanner.h.
|
inline |
Returns the reflectivity of the bar surface raised to the given power.
The reflectivity is a constant of the module, therefore the powers are tabulated on first use and kept for the whole job (they do not depend on the track or the hypothesis).
| n | power, i.e. the number of reflections |
Definition at line 381 of file YScanner.h.
|
inline |
Returns particle trajectory length inside quartz.
Definition at line 324 of file YScanner.h.
|
private |
Integrates quasy energy distribution multiplied with energy mask.
| energyMask | energy mask (pointer must be valid) |
| Ecp | position of the mask |
| result | updated result [in/out] |
Definition at line 412 of file YScanner.cc.
|
inline |
Returns above Cerenkov threshold flag which is set in the prepare method.
Definition at line 264 of file YScanner.h.
|
inline |
Checks which expansion method was used.
Definition at line 410 of file YScanner.h.
|
private |
Performs expansion by merging all reflections.
| col | pixel column number (0-based) |
| dydz | photon slope in y-z projection at prism entrance (dy/dz) |
| j1 | first reflection number in y |
| j2 | last (exclusive) reflection number in y |
Definition at line 377 of file YScanner.cc.
|
inlineprivate |
Returns non-const pixel relative efficiencies.
Definition at line 508 of file YScanner.h.
|
inlineprivate |
Returns non-const pixel masks.
Definition at line 502 of file YScanner.h.
| void prepare | ( | double | momentum, |
| double | beta, | ||
| double | length ) const |
Prepare for the PDF expansion in y for a given track mass hypothesis.
Sets photon energy and quasy-energy distributions, mean and r.m.s of photon energy, number of photons and aboveThreshold flag.
| momentum | particle momentum |
| beta | particle beta |
| length | length of particle trajectory within the quartz |
Definition at line 149 of file YScanner.cc.
|
inlineprivate |
Calculates projections of a pixel to prism entrance window (going down-stream the photon).
| yc | Pixel center in y. |
| size | Pixel size in y. |
| k | Valid index of vector of unfolded prism exit windows. |
| dydz | Photon slope at prism entrance; dydz is used for even projections and -dydz is used for odd projections. |
| proj | Projections of a pixel to prism entrance (results) |
Definition at line 444 of file YScanner.h.
|
private |
Performs expansion w/ the scan over reflections.
| col | pixel column number (0-based) |
| yB | unfolded coordinate y of photon at prism entrance (= Bar exit) plane |
| dydz | photon slope in y-z projection at prism entrance (dy/dz) |
| D | the derivatives |
| j1 | first reflection number in y |
| j2 | last (exclusive) reflection number in y |
Definition at line 310 of file YScanner.cc.
|
private |
Sets photon energy distribution and mean photon energy according to nominal PDE and particle beta.
| beta | particle beta |
Definition at line 194 of file YScanner.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.
|
private |
Sets photon energy distribution convoluted with a normalized Gaussian.
| sigma | width of the Gaussian [eV] |
Definition at line 223 of file YScanner.cc.
|
inlinestatic |
Sets parameters for selection between expand methods.
| maxReflections | maximal number of reflections in y to perform scan |
Definition at line 240 of file YScanner.h.
|
private |
Extends the table of surface reflectivity powers up to n and returns the value.
Called by getSurfaceReflectivity only when the table is not long enough.
| n | power, i.e. the number of reflections |
Definition at line 116 of file YScanner.cc.
|
friend |
Definition at line 547 of file YScanner.h.
|
mutableprivate |
true if beta is above the Cerenkov threshold
Definition at line 538 of file YScanner.h.
|
protectedinherited |
geometry data of bar segments
Definition at line 188 of file RaytracerBase.h.
|
mutableprivate |
particle beta
Definition at line 527 of file YScanner.h.
|
private |
cosine of total reflection angle
Definition at line 523 of file YScanner.h.
|
private |
nominal photon detection efficiencies (PDE)
Definition at line 515 of file YScanner.h.
|
mutableprivate |
photon energy distribution
Definition at line 534 of file YScanner.h.
quartz geometry
Definition at line 185 of file RaytracerBase.h.
|
private |
half thickness of the bar at prism entrance
Definition at line 520 of file YScanner.h.
|
mutableprivate |
length of particle trajectory inside quartz
Definition at line 528 of file YScanner.h.
|
mutableprivate |
mean photon energy
Definition at line 530 of file YScanner.h.
|
private |
mean photon energy for beta = 1
Definition at line 521 of file YScanner.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 |
particle momentum magnitude
Definition at line 526 of file YScanner.h.
|
mutableprivate |
number of photons per Cerenkov azimuthal angle per track length
Definition at line 529 of file YScanner.h.
|
protectedinherited |
spherical mirror optics
Definition at line 186 of file RaytracerBase.h.
|
private |
pixel relative efficiencies
Definition at line 514 of file YScanner.h.
|
private |
pixel masks
Definition at line 513 of file YScanner.h.
|
private |
positions and sizes of pixels
Definition at line 512 of file YScanner.h.
|
protectedinherited |
prism geometry data
Definition at line 190 of file RaytracerBase.h.
|
private |
z of the prism-bar joint (copy of m_prism.zR)
Definition at line 519 of file YScanner.h.
|
mutableprivate |
a pointer to the element in m_quasyEnergyDistributions
Definition at line 537 of file YScanner.h.
|
mutableprivate |
photon energy distributions convoluted with Gaussian of different widths
Definition at line 536 of file YScanner.h.
|
mutableprivate |
results of PDF expansion in y
Definition at line 541 of file YScanner.h.
|
mutableprivate |
r.m.s of photon energy
Definition at line 531 of file YScanner.h.
|
private |
r.m.s of photon energy for beta = 1
Definition at line 522 of file YScanner.h.
|
mutableprivate |
true if scan performed, false if reflections just merged
Definition at line 542 of file YScanner.h.
|
mutableprivate |
surface roughness parameter in photon energy units
Definition at line 533 of file YScanner.h.
|
mutableprivate |
r.m.s.
of multiple scattering angle in photon energy units
Definition at line 532 of file YScanner.h.
|
mutableprivate |
bar surface reflectivity to the power of the index; filled on demand, never cleared
Definition at line 518 of file YScanner.h.
|
private |
pixel projection constants of unfolded prism exit windows
Definition at line 516 of file YScanner.h.
|
staticprivate |
maximal number of reflections to perform scan
Definition at line 544 of file YScanner.h.
|
staticprivate |
maximal power of the surface reflectivity that is tabulated
Definition at line 545 of file YScanner.h.