Go to the documentation of this file.
2 #ifndef __JDETECTOR__JPMTSIGNALPROCESSORINTERFACE__
3 #define __JDETECTOR__JPMTSIGNALPROCESSORINTERFACE__
101 for (
int i = 0; i != hit->npe; ++i) {
254 return std::numeric_limits<double>::max();
293 double t2 = i->t_ns + i->tot_ns;
295 while (++i != data.end() && i->t_ns < t2 +
getTmin()) {
296 t2 = max(t2, i->t_ns + i->tot_ns);
300 out->tot_ns = t2 - t1;
305 data.resize(
distance(data.begin(), out));
316 inline double getNPE(
const double tot_ns,
317 const double eps = 1.0e-3)
const
319 static const int N = 100;
326 for (
int i = 0; i != N; ++i) {
328 const double x = 0.5 * (xmin + xmax);
331 if (fabs(y - tot_ns) < eps) {
341 return 0.5 * (xmin + xmax);
348 for (
int i = 0; i != N; ++i) {
350 const double x = 0.5 * (xmin + xmax);
359 return 0.5 * (xmin + xmax);
static double getQmin()
Get minimal width of charge distribution.
virtual double getRiseTime(const double npe) const
Get time to pass threshold.
virtual double getProbability(const double npe, const int NPE) const
Get probability for given charge.
static JPhotoElectron getEndMarker()
Get end marker.
virtual double getDerivative(const double npe) const
Get derivative of number of photo-electrons to time over threshold.
Data structure for PMT calibration.
double putTime(const T &t1, const JCalibration &cal)
Get de-calibrated time.
virtual bool applyThreshold(const double npe) const
Apply threshold.
static double getTmin()
Get two photo-electron resolution for time-over-threshold.
std::vector< T >::difference_type distance(typename std::vector< T >::const_iterator first, typename PhysicsEvent::const_iterator< T > second)
Specialisation of STL distance.
virtual void merge(JPMTData< JPMTPulse > &data) const
Merging of PMT hits.
virtual bool compare(const JPhotoElectron &first, const JPhotoElectron &second) const
Compare arrival times of photo-electrons.
Data structure for single photo-electron.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
std::vector< JElement_t >::iterator iterator
std::vector< JElement_t >::const_iterator const_iterator
virtual double getSurvivalProbability(const int NPE) const
Probability that a hit survives the simulation of the PMT.
virtual double getRandomAmplitude(const int NPE) const
Get randomised amplitude according gain and gain spread.
Data structure for PMT digital pulse.
virtual ~JPMTSignalProcessorInterface()
Virtual destructor.
JPMTSignalProcessorInterface()
Default constructor.
Exception for accessing a value in a collection that is outside of its range.
JPMTData< JPhotoElectron > buffer
PMT signal processor interface.
virtual bool applyQE() const
Apply relative QE.
double getNPE(const double tot_ns, const double eps=1.0e-3) const
Get number of photo-electrons.
Template data structure for PMT I/O.
void operator()(const JCalibration &calibration, const JPMTData< JPMTSignal > &input, JPMTData< JPMTPulse > &output) const
Process hits.
virtual double getRandomTime(const double t_ns) const
Get randomised time according transition time distribution.
Auxiliary classes and methods for detector calibration.
virtual double getTimeOverThreshold(const double npe) const
Get time over threshold (ToT).