57 const std::vector<std::vector<float>>& qStrip = digiInput.
chipCharge();
58 const std::vector<std::vector<float>>& tStrip = digiInput.
chipTime();
59 const std::vector<float>& stripsElectronicsThreshold = digiInput.
stripThreshold();
61 for (
unsigned int ii = 0; ii < numberofStrip.size(); ii++) {
63 bool thisStripFired{
false};
64 double leftStripFired =
false;
65 double rightStripFired =
false;
68 if (
m_cfg.useNeighborLogic) {
71 m_vmmShaper->hasChargeAboveThreshold(qStrip.at(ii - 1), tStrip.at(ii - 1), stripsElectronicsThreshold.at(ii - 1));
74 if (ii + 1 < numberofStrip.size()) {
76 m_vmmShaper->hasChargeAboveThreshold(qStrip.at(ii + 1), tStrip.at(ii + 1), stripsElectronicsThreshold.at(ii + 1));
80 thisStripFired =
m_vmmShaper->hasChargeAboveThreshold(qStrip.at(ii), tStrip.at(ii), stripsElectronicsThreshold.at(ii));
83 bool neighborFired = leftStripFired || rightStripFired;
86 if (thisStripFired || (
m_cfg.useNeighborLogic && neighborFired)) {
87 double charge{FLT_MAX}, time{FLT_MAX};
90 float tmpScaledThreshold = (thisStripFired ? stripsElectronicsThreshold.at(ii) : 1);
92 bool foundPeak =
m_vmmShaper->vmmPeakResponse(qStrip.at(ii), tStrip.at(ii), tmpScaledThreshold,
charge, time);
93 if (!foundPeak)
continue;
94 if (time < m_cfg.timeWindowLowerOffset || time >
m_cfg.timeWindowUpperOffset)
107 const std::vector<std::vector<float>>& qStrip = digiInput.
chipCharge();
108 const std::vector<std::vector<float>>& tStrip = digiInput.
chipTime();
109 const std::vector<float>& electronicsThreshold = digiInput.
stripThreshold();
111 for (
unsigned int ii = 0; ii < numberofStrip.size(); ii++) {
112 double localThresholdt{FLT_MAX}, localThresholdq{FLT_MAX};
114 bool crossedThreshold =
115 m_vmmShaper->vmmThresholdResponse(qStrip.at(ii), tStrip.at(ii), electronicsThreshold.at(ii), localThresholdq, localThresholdt);
116 if (!crossedThreshold)
118 if (localThresholdt < m_cfg.timeWindowLowerOffset || localThresholdt >
m_cfg.timeWindowUpperOffset)