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... | |
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 | |
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 lenght 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. | |
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 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. | |
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). | |
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) | |
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 | |
Friends | |
class | TOPRecoManager |
Utility for expanding the PDF in y direction.
Definition at line 33 of file YScanner.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.
|
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 47 of file YScanner.cc.
void clear | ( | ) | const |
Clear mutable variables.
Definition at line 99 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 accessable 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 238 of file YScanner.cc.
|
inlineinherited |
Returns geometry data of bar segments.
Definition at line 161 of file RaytracerBase.h.
|
inline |
|
inline |
Returns cosine of total reflection angle.
Definition at line 293 of file YScanner.h.
|
inline |
Returns nominal photon detection efficiencies (PDE)
Definition at line 287 of file YScanner.h.
|
inline |
Returns photon energy distribution.
Definition at line 365 of file YScanner.h.
|
inlineinherited |
Returns quartz geometry treatement.
Definition at line 149 of file RaytracerBase.h.
|
inline |
|
inline |
Returns mean photon energy for beta = 1.
Definition at line 341 of file YScanner.h.
|
inlineinherited |
Returns geometry data of spherical mirror.
Definition at line 167 of file RaytracerBase.h.
|
inlineinherited |
|
inline |
|
inline |
Returns number of photons per Cerenkov azimuthal angle.
Definition at line 323 of file YScanner.h.
|
inline |
Returns number of photons per Cerenkov azimuthal angle per track length.
Definition at line 317 of file YScanner.h.
|
inlineinherited |
Returns treatement of spherical mirror optics.
Definition at line 155 of file RaytracerBase.h.
|
inline |
Returns pixel relative efficiencies.
Definition at line 281 of file YScanner.h.
|
inline |
|
inline |
Returns pixel positions and their sizes.
Definition at line 269 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 372 of file YScanner.h.
|
inline |
Returns the results of PDF expansion in y.
Definition at line 378 of file YScanner.h.
|
inline |
Returns r.m.s of photon energy.
Definition at line 335 of file YScanner.h.
|
inline |
Returns r.m.s of photon energy for beta = 1.
Definition at line 347 of file YScanner.h.
|
inline |
Returns surface roughness parameter in units of photon energy.
Definition at line 359 of file YScanner.h.
|
inline |
Returns r.m.s of multiple scattering angle in quartz converted to photon energy.
Definition at line 353 of file YScanner.h.
|
inline |
Returns particle trajectory lenght inside quartz.
Definition at line 311 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 368 of file YScanner.cc.
|
inline |
Returns above Cerenkov threshold flag which is set in the prepare method.
Definition at line 251 of file YScanner.h.
|
inline |
Checks which expansion method was used.
Definition at line 384 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 337 of file YScanner.cc.
|
inlineprivate |
Returns non-const pixel relative efficiencies.
Definition at line 450 of file YScanner.h.
|
inlineprivate |
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 118 of file YScanner.cc.
|
private |
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 409 of file YScanner.cc.
|
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 274 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 163 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 192 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 227 of file YScanner.h.
|
friend |
Definition at line 482 of file YScanner.h.
|
mutableprivate |
true if beta is above the Cerenkov threshold
Definition at line 474 of file YScanner.h.
|
protectedinherited |
geometry data of bar segments
Definition at line 188 of file RaytracerBase.h.
|
mutableprivate |
particle beta
Definition at line 463 of file YScanner.h.
|
private |
cosine of total reflection angle
Definition at line 459 of file YScanner.h.
|
private |
nominal photon detection efficiencies (PDE)
Definition at line 456 of file YScanner.h.
|
mutableprivate |
photon energy distribution
Definition at line 470 of file YScanner.h.
quartz geometry
Definition at line 185 of file RaytracerBase.h.
|
mutableprivate |
length of particle trajectory inside quartz
Definition at line 464 of file YScanner.h.
|
mutableprivate |
mean photon energy
Definition at line 466 of file YScanner.h.
|
private |
mean photon energy for beta = 1
Definition at line 457 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 462 of file YScanner.h.
|
mutableprivate |
number of photons per Cerenkov azimuthal angle per track length
Definition at line 465 of file YScanner.h.
|
protectedinherited |
spherical mirror optics
Definition at line 186 of file RaytracerBase.h.
|
private |
pixel relative efficiencies
Definition at line 455 of file YScanner.h.
|
private |
pixel masks
Definition at line 454 of file YScanner.h.
|
private |
positions and sizes of pixels
Definition at line 453 of file YScanner.h.
|
protectedinherited |
prism geometry data
Definition at line 190 of file RaytracerBase.h.
|
mutableprivate |
a pointer to the element in m_quasyEnergyDistributions
Definition at line 473 of file YScanner.h.
|
mutableprivate |
photon energy distributions convoluted with Gaussian of different widths
Definition at line 472 of file YScanner.h.
|
mutableprivate |
results of PDF expansion in y
Definition at line 477 of file YScanner.h.
|
mutableprivate |
r.m.s of photon energy
Definition at line 467 of file YScanner.h.
|
private |
r.m.s of photon energy for beta = 1
Definition at line 458 of file YScanner.h.
|
mutableprivate |
true if scan performed, false if reflections just merged
Definition at line 478 of file YScanner.h.
|
mutableprivate |
surface roughness parameter in photon energy units
Definition at line 469 of file YScanner.h.
|
mutableprivate |
r.m.s.
of multiple scattering angle in photon energy units
Definition at line 468 of file YScanner.h.
|
staticprivate |
maximal number of reflections to perform scan
Definition at line 480 of file YScanner.h.