A mask for energy masking. More...
#include <EnergyMask.h>
Public Member Functions | |
EnergyMask (double dyde, double dydL, double dydx, double dy, double dL, double dx, double dE) | |
Constructor. | |
double | getStep () const |
Returns energy step size of the discrete mask. | |
double | getFullWidth () const |
Returns mask full width. | |
const std::vector< double > & | getMask () const |
Returns discrete mask (note: only half of the mask is stored) | |
double | getMask (double E) const |
Returns mask value at given energy difference by calling direct calculation of the convolution. | |
double | getMask (int i) const |
Returns mask value at given index from stored discrete mask. | |
double | getMask (int i, double fract) const |
Returns mask value with linear interpolation between stored discrete mask elements. | |
double | getEnergyDifference (int i) |
Returns energy difference w.r.t center of mask. | |
Static Public Member Functions | |
static void | setNMin (unsigned Nmin) |
Sets minimal size of discrete mask. | |
static void | setNMax (unsigned Nmax) |
Sets maximal size of discrete mask. | |
Private Member Functions | |
double | twoSquareConvolution (double E) const |
Returns a value of convolution of two square distributions at given photon energy using the largest two of full widths (m_A, m_B). | |
double | threeSquareConvolution (double E) const |
Returns a value of convolution of three square distributions at given photon energy. | |
double | mask (int i) const |
Returns mask value at given index from stored discrete mask. | |
Private Attributes | |
double | m_dE = 0 |
energy step | |
double | m_Wy = 0 |
enegy full width of dy | |
double | m_A = 0 |
the largest energy full width | |
double | m_B = 0 |
the middle energy full width | |
double | m_C = 0 |
the smallset energy full width | |
std::vector< double > | m_mask |
discrete mask (half of) | |
Static Private Attributes | |
static unsigned | s_Nmin = 4 |
minimal mask size | |
static unsigned | s_Nmax = 256 |
maximal mask size | |
A mask for energy masking.
Definition at line 24 of file EnergyMask.h.
EnergyMask | ( | double | dyde, |
double | dydL, | ||
double | dydx, | ||
double | dy, | ||
double | dL, | ||
double | dx, | ||
double | dE ) |
Constructor.
dyde | derivative dy/de [cm/eV] |
dydL | derivative dy/dL |
dydx | derivative dy/dx |
dy | effective PMT pad size in y [cm] |
dL | length of particle trajectory within the quartz [cm] |
dx | PMT pad size in x [cm] |
dE | energy step [eV] |
Definition at line 25 of file EnergyMask.cc.
|
inline |
Returns energy difference w.r.t center of mask.
i | index (all values are valid) |
Definition at line 99 of file EnergyMask.h.
|
inline |
Returns mask full width.
Definition at line 62 of file EnergyMask.h.
|
inline |
Returns discrete mask (note: only half of the mask is stored)
Definition at line 68 of file EnergyMask.h.
double getMask | ( | double | E | ) | const |
Returns mask value at given energy difference by calling direct calculation of the convolution.
E | photon energy difference w.r.t center of mask [eV] |
Definition at line 62 of file EnergyMask.cc.
double getMask | ( | int | i | ) | const |
Returns mask value at given index from stored discrete mask.
If discrete mask is empty it calls direct calculation of convolution.
i | index (all values are valid) |
Definition at line 72 of file EnergyMask.cc.
double getMask | ( | int | i, |
double | fract ) const |
Returns mask value with linear interpolation between stored discrete mask elements.
If discrete mask is empty it calls direct calculation of convolution.
i | index (all values are valid) |
fract | fractional part for linear interpolation (values btw. -0.5 and 0.5) |
Definition at line 79 of file EnergyMask.cc.
|
inline |
Returns energy step size of the discrete mask.
Definition at line 56 of file EnergyMask.h.
|
inlineprivate |
Returns mask value at given index from stored discrete mask.
i | index (all values are valid) |
Definition at line 138 of file EnergyMask.h.
|
inlinestatic |
Sets maximal size of discrete mask.
Nmax | maximal size |
Definition at line 50 of file EnergyMask.h.
|
inlinestatic |
Sets minimal size of discrete mask.
Nmin | minimal size |
Definition at line 44 of file EnergyMask.h.
|
private |
Returns a value of convolution of three square distributions at given photon energy.
E | photon energy difference w.r.t center of mask [eV] |
Definition at line 107 of file EnergyMask.cc.
|
private |
Returns a value of convolution of two square distributions at given photon energy using the largest two of full widths (m_A, m_B).
E | photon energy difference w.r.t center of mask [eV] |
Definition at line 91 of file EnergyMask.cc.
|
private |
the largest energy full width
Definition at line 127 of file EnergyMask.h.
|
private |
the middle energy full width
Definition at line 128 of file EnergyMask.h.
|
private |
the smallset energy full width
Definition at line 129 of file EnergyMask.h.
|
private |
energy step
Definition at line 125 of file EnergyMask.h.
|
private |
discrete mask (half of)
Definition at line 130 of file EnergyMask.h.
|
private |
enegy full width of dy
Definition at line 126 of file EnergyMask.h.
|
staticprivate |
maximal mask size
Definition at line 133 of file EnergyMask.h.
|
staticprivate |
minimal mask size
Definition at line 132 of file EnergyMask.h.