Jpp
|
PMT analogue signal processor. More...
#include <JPMTAnalogueSignalProcessor.hh>
Public Member Functions | |
JPMTAnalogueSignalProcessor (const JPMTParameters ¶meters=JPMTParameters()) | |
Constructor. More... | |
void | configure () |
Configure internal parameters. More... | |
double | getDecayTime () const |
Get decay time. More... | |
double | getT1 () const |
Get time at transition point from Gaussian to exponential. More... | |
double | getY1 () const |
Get amplitude at transition point from Gaussian to exponential. More... | |
double | getStartOfLinearisation () const |
Get transition point from a model dependent to linear relation between time-over-threshold and number of photo-electrons. More... | |
double | getAmplitude (const double t1_ns) const |
Get amplitude at given time for a one photo-electron pulse. More... | |
double | getRiseTime (const double npe, const double th) const |
Get time to pass from threshold to top of analogue pulse. More... | |
double | getDecayTime (const double npe, const double th) const |
Get time to pass from top of analogue pulse to threshold. More... | |
double | getSaturation (const double y) const |
Get function value with saturation. More... | |
double | getDerivativeOfSaturation (const double y) const |
Get derivative of function value with saturation. More... | |
double | getGainSpread (int NPE) const |
Get gain spread for given number of photo-electrons. More... | |
double | getIntegralOfProbability (const double xmin, const double xmax, const int NPE) const |
Get integral of probability. More... | |
void | setPMTParameters (const JPMTParameters ¶meters) |
Set PMT parameters. More... | |
virtual bool | applyQE () const |
Apply relative QE. More... | |
virtual double | getRandomTime (const double t_ns) const |
Get randomised time according transition time distribution. More... | |
virtual bool | compare (const JPhotoElectron &first, const JPhotoElectron &second) const |
Compare (arrival times of) photo-electrons. More... | |
virtual double | getRandomAmplitude (const int NPE) const |
Get randomised amplitude according gain and gain spread. More... | |
virtual double | getProbability (const double npe, const int NPE) const |
Get probability for given charge. More... | |
virtual bool | applyThreshold (const double npe) const |
Apply threshold. More... | |
virtual double | getRiseTime (const double npe) const |
Get time to reach threshold. More... | |
virtual double | getTimeOverThreshold (const double npe) const |
Get time-over-threshold (ToT). More... | |
virtual double | getDerivative (const double npe) const |
Get derivative of number of photo-electrons to time-over-threshold. More... | |
virtual double | getSurvivalProbability (const int NPE) const |
Probability that a hit survives the simulation of the PMT. More... | |
void | operator() (const JCalibration &calibration, const JPMTData< JPMTSignal > &input, JPMTData< JPMTPulse > &output) const |
Process hits. More... | |
virtual void | merge (JPMTData< JPMTPulse > &data) const |
Merging of PMT hits. More... | |
double | getNPE (const double tot_ns, const double eps=1.0e-3) const |
Get number of photo-electrons. More... | |
const JPMTParameters & | getPMTParameters () const |
Get PMT parameters. More... | |
bool | is_valid () const |
Check validity of PMT parameters. More... | |
JProperties | getProperties (const JEquationParameters &equation=JPMTParameters::getEquationParameters()) |
Get properties of this class. More... | |
JProperties | getProperties (const JEquationParameters &equation=JPMTParameters::getEquationParameters()) const |
Get properties of this class. More... | |
Static Public Member Functions | |
static double | getMaximalRiseTime (const double th) |
Get maximal rise time for given threshold. More... | |
static double | getTH0 () |
Get lower threshold for rise time evaluation. More... | |
static double | getTH1 () |
Get upper threshold for rise time evaluation. More... | |
static double | getTmin () |
Get two photo-electron resolution for time-over-threshold. More... | |
static double | getQmin () |
Get minimal width of charge distribution. More... | |
static JEquationParameters & | getEquationParameters () |
Get equation parameters. More... | |
static void | setEquationParameters (const JEquationParameters &equation) |
Set equation parameters. More... | |
Public Attributes | |
double | QE |
relative quantum efficiency More... | |
double | gain |
gain [unit] More... | |
double | gainSpread |
gain spread [unit] More... | |
double | riseTime_ns |
rise time of analogue pulse [ns] More... | |
double | TTS_ns |
transition time spread [ns] More... | |
double | threshold |
threshold [npe] More... | |
double | slope |
slope [ns/npe] More... | |
double | saturation |
saturation [ns] More... | |
bool | slewing |
time slewing of analogue signal More... | |
Protected Attributes | |
double | decayTime_ns |
decay time [ns] More... | |
double | t1 |
time at match point [ns] More... | |
double | y1 |
amplitude at match point [npe] More... | |
double | x1 |
Transition point from a logarithmic to a linear relation between time-over-threshold and number of photo-electrons. More... | |
Friends | |
std::istream & | operator>> (std::istream &in, JPMTAnalogueSignalProcessor &object) |
Read PMT signal from input. More... | |
PMT analogue signal processor.
This class provides for an implementation of the JDETECTOR::JPMTSignalProcessorInterface using a specific model for the analogue pulse of the PMT.
In this, the leading edge of the analogue pulse from the PMT is assumed to be a Gaussian and the tail an exponential.
The width of the Gaussian is referred to as the rise time and the inverse slope of the exponential to the decay time.
The two functions are matched at a point where the values and first derivatives are identical.
Note that the decay time is related to the rise time via the specification JDETECTOR::TIME_OVER_THRESHOLD_NS.
The charge distribution is assumed to be a Gaussian which is centered at the specified gain and truncated by the specified threshold.
The transition times are generated according the specified spread as follows.
Definition at line 51 of file JPMTAnalogueSignalProcessor.hh.
|
inline |
Constructor.
parameters | PMT parameters |
Definition at line 60 of file JPMTAnalogueSignalProcessor.hh.
|
inline |
Configure internal parameters.
This method provides the implementations for
Note that this method will throw an error if the value of the rise time (i.e. width of the Gaussian) is too large with respect to the specification JDETECTOR::TIME_OVER_THRESHOLD_NS.
Definition at line 83 of file JPMTAnalogueSignalProcessor.hh.
|
inline |
Get decay time.
Definition at line 149 of file JPMTAnalogueSignalProcessor.hh.
|
inline |
Get time at transition point from Gaussian to exponential.
Definition at line 160 of file JPMTAnalogueSignalProcessor.hh.
|
inline |
Get amplitude at transition point from Gaussian to exponential.
Definition at line 171 of file JPMTAnalogueSignalProcessor.hh.
|
inline |
Get transition point from a model dependent to linear relation between time-over-threshold and number of photo-electrons.
Definition at line 182 of file JPMTAnalogueSignalProcessor.hh.
|
inline |
Get amplitude at given time for a one photo-electron pulse.
t1_ns | time [ns] |
Definition at line 194 of file JPMTAnalogueSignalProcessor.hh.
|
inline |
Get time to pass from threshold to top of analogue pulse.
In this, the leading edge of the analogue pulse is assumed to be Gaussian.
npe | number of photo-electrons |
th | threshold [npe] |
Definition at line 219 of file JPMTAnalogueSignalProcessor.hh.
|
inline |
Get time to pass from top of analogue pulse to threshold.
In this, the trailing edge of the analogue pulse is assumed to be exponential.
npe | number of photo-electrons |
th | threshold [npe] |
Definition at line 233 of file JPMTAnalogueSignalProcessor.hh.
|
inlinestatic |
Get maximal rise time for given threshold.
Note that the rise time is entirely constraint by the specification JDETECTOR::TIME_OVER_THRESHOLD_NS.
th | threshold [npe] |
Definition at line 250 of file JPMTAnalogueSignalProcessor.hh.
|
inline |
Get function value with saturation.
y | value |
Definition at line 265 of file JPMTAnalogueSignalProcessor.hh.
|
inline |
Get derivative of function value with saturation.
y | value |
Definition at line 277 of file JPMTAnalogueSignalProcessor.hh.
|
inline |
Get gain spread for given number of photo-electrons.
NPE | number of photo-electrons |
Definition at line 289 of file JPMTAnalogueSignalProcessor.hh.
|
inline |
Get integral of probability.
xmin | minimum number of photo-electrons |
xmax | maximum number of photo-electrons |
NPE | true number of photo-electrons |
Definition at line 303 of file JPMTAnalogueSignalProcessor.hh.
|
inline |
Set PMT parameters.
parameters | PMT parameters |
Definition at line 324 of file JPMTAnalogueSignalProcessor.hh.
|
inlinevirtual |
Apply relative QE.
Reimplemented from JDETECTOR::JPMTSignalProcessorInterface.
Definition at line 354 of file JPMTAnalogueSignalProcessor.hh.
|
inlinevirtual |
Get randomised time according transition time distribution.
t_ns | time [ns] |
Reimplemented from JDETECTOR::JPMTSignalProcessorInterface.
Definition at line 371 of file JPMTAnalogueSignalProcessor.hh.
|
inlinevirtual |
Compare (arrival times of) photo-electrons.
first | first photo-electron |
second | second photo-electron |
Reimplemented from JDETECTOR::JPMTSignalProcessorInterface.
Definition at line 387 of file JPMTAnalogueSignalProcessor.hh.
|
inlinevirtual |
Get randomised amplitude according gain and gain spread.
NPE | number of photo-electrons |
Reimplemented from JDETECTOR::JPMTSignalProcessorInterface.
Definition at line 399 of file JPMTAnalogueSignalProcessor.hh.
|
inlinevirtual |
Get probability for given charge.
npe | observed number of photo-electrons |
NPE | true number of photo-electrons |
Reimplemented from JDETECTOR::JPMTSignalProcessorInterface.
Definition at line 418 of file JPMTAnalogueSignalProcessor.hh.
|
inlinevirtual |
Apply threshold.
npe | number of photo-electrons |
Reimplemented from JDETECTOR::JPMTSignalProcessorInterface.
Definition at line 439 of file JPMTAnalogueSignalProcessor.hh.
|
inlinevirtual |
Get time to reach threshold.
Note that the rise time is defined to be zero for a one photo-electron signal.
npe | number of photo-electrons |
Reimplemented from JDETECTOR::JPMTSignalProcessorInterface.
Definition at line 453 of file JPMTAnalogueSignalProcessor.hh.
|
inlinevirtual |
Get time-over-threshold (ToT).
npe | number of photo-electrons |
Reimplemented from JDETECTOR::JPMTSignalProcessorInterface.
Definition at line 469 of file JPMTAnalogueSignalProcessor.hh.
|
inlinevirtual |
Get derivative of number of photo-electrons to time-over-threshold.
npe | number of photo-electrons |
Reimplemented from JDETECTOR::JPMTSignalProcessorInterface.
Definition at line 511 of file JPMTAnalogueSignalProcessor.hh.
|
inlinevirtual |
Probability that a hit survives the simulation of the PMT.
NPE | number of photo-electrons |
Reimplemented from JDETECTOR::JPMTSignalProcessorInterface.
Definition at line 546 of file JPMTAnalogueSignalProcessor.hh.
|
inlinestatic |
Get lower threshold for rise time evaluation.
Definition at line 581 of file JPMTAnalogueSignalProcessor.hh.
|
inlinestatic |
Get upper threshold for rise time evaluation.
Definition at line 592 of file JPMTAnalogueSignalProcessor.hh.
|
inlineinherited |
Process hits.
calibration | PMT calibration |
input | PMT signals |
output | PMT hits |
Definition at line 92 of file JPMTSignalProcessorInterface.hh.
|
inlinevirtualinherited |
Merging of PMT hits.
Hits with overlapping time-over-threshold signals should -de facto- be combined. In this, the leading edge is maintained and the time-over-threshold is set to the difference between the overall trailing and leading edges. As a result, the number of PMT hits may be reduced.
data | PMT hits |
Definition at line 284 of file JPMTSignalProcessorInterface.hh.
|
inlineinherited |
Get number of photo-electrons.
tot_ns | time over threshold [ns] |
eps | precision |
Definition at line 316 of file JPMTSignalProcessorInterface.hh.
|
inlinestaticinherited |
Get two photo-electron resolution for time-over-threshold.
Definition at line 369 of file JPMTSignalProcessorInterface.hh.
|
inlinestaticinherited |
Get minimal width of charge distribution.
Definition at line 380 of file JPMTSignalProcessorInterface.hh.
|
inlineinherited |
|
inlineinherited |
Check validity of PMT parameters.
Definition at line 117 of file JPMTParameters.hh.
|
inlinestaticinherited |
Get equation parameters.
Definition at line 175 of file JPMTParameters.hh.
|
inlinestaticinherited |
Set equation parameters.
equation | equation parameters |
Definition at line 188 of file JPMTParameters.hh.
|
inlineinherited |
Get properties of this class.
equation | equation parameters |
Definition at line 199 of file JPMTParameters.hh.
|
inlineinherited |
Get properties of this class.
equation | equation parameters |
Definition at line 210 of file JPMTParameters.hh.
|
friend |
Read PMT signal from input.
in | input stream |
object | PMT signal |
Definition at line 339 of file JPMTAnalogueSignalProcessor.hh.
|
protected |
decay time [ns]
Definition at line 598 of file JPMTAnalogueSignalProcessor.hh.
|
protected |
time at match point [ns]
Definition at line 599 of file JPMTAnalogueSignalProcessor.hh.
|
protected |
amplitude at match point [npe]
Definition at line 600 of file JPMTAnalogueSignalProcessor.hh.
|
protected |
Transition point from a logarithmic to a linear relation between time-over-threshold and number of photo-electrons.
Measurements by B. Schermer and R. Bruijn at Nikhef.
Definition at line 606 of file JPMTAnalogueSignalProcessor.hh.
|
inherited |
relative quantum efficiency
Definition at line 216 of file JPMTParameters.hh.
|
inherited |
gain [unit]
Definition at line 217 of file JPMTParameters.hh.
|
inherited |
gain spread [unit]
Definition at line 218 of file JPMTParameters.hh.
|
inherited |
rise time of analogue pulse [ns]
Definition at line 219 of file JPMTParameters.hh.
|
inherited |
transition time spread [ns]
Definition at line 220 of file JPMTParameters.hh.
|
inherited |
threshold [npe]
Definition at line 221 of file JPMTParameters.hh.
|
inherited |
slope [ns/npe]
Definition at line 222 of file JPMTParameters.hh.
|
inherited |
saturation [ns]
Definition at line 223 of file JPMTParameters.hh.
|
inherited |
time slewing of analogue signal
Definition at line 224 of file JPMTParameters.hh.