5#ifndef MM_DIGITIZATION_VMM_SHAPER_H
6#define MM_DIGITIZATION_VMM_SHAPER_H
12 VMM_Shaper(
const float peakTime,
const float lowerTimeWindow,
const float upperTimeWindow);
17 bool vmmPeakResponse(
const std::vector<float> &effectiveCharge,
const std::vector<float> &electronsTime,
18 const double electronicsThreshold,
double &litudeFirstPeak,
double &timeFirstPeak)
const;
19 bool vmmThresholdResponse(
const std::vector<float> &effectiveCharge,
const std::vector<float> &electronsTime,
20 const double electronicsThreshold,
double &litudeAtFirstPeak,
double &timeAtThreshold)
const;
22 bool hasChargeAboveThreshold(
const std::vector<float> &effectiveCharge,
const std::vector<float> &electronsTime,
23 const double electronicsThreshold)
const;
44 double vmmResponse(
const std::vector<float> &effectiveCharge,
const std::vector<float> &electronsTime,
double time)
const;
45 double findPeak(
const std::vector<float> &effectiveCharge,
const std::vector<float> &electronsTime,
46 const double electronicsThreshold)
const;
47 bool aboveThresholdSimple(
const std::vector<float> &effectiveCharge,
const std::vector<float> &electronsTime,
48 const double electronicsThreshold)
const;
bool vmmPeakResponse(const std::vector< float > &effectiveCharge, const std::vector< float > &electronsTime, const double electronicsThreshold, double &litudeFirstPeak, double &timeFirstPeak) const
virtual ~VMM_Shaper()=default
bool aboveThresholdSimple(const std::vector< float > &effectiveCharge, const std::vector< float > &electronsTime, const double electronicsThreshold) const
VMM_Shaper(const float peakTime, const float lowerTimeWindow, const float upperTimeWindow)
double findPeak(const std::vector< float > &effectiveCharge, const std::vector< float > &electronsTime, const double electronicsThreshold) const
double m_preCalculationVMMShaper
double m_peakTimeChargeScaling
bool hasChargeAboveThreshold(const std::vector< float > &effectiveCharge, const std::vector< float > &electronsTime, const double electronicsThreshold) const
bool vmmThresholdResponse(const std::vector< float > &effectiveCharge, const std::vector< float > &electronsTime, const double electronicsThreshold, double &litudeAtFirstPeak, double &timeAtThreshold) const
double vmmResponse(const std::vector< float > &effectiveCharge, const std::vector< float > &electronsTime, double time) const