11 #include <svd/modules/svdSimulation/SVDZeroSuppressionEmulatorModule.h>
27 setDescription(
"Filters out SVDShaperDigit with less than 1 (default) sample is below a certain threshold, by default set at SN = 3.");
28 setPropertyFlags(c_ParallelProcessingCertified);
30 addParam(
"FADCmode", m_FADCmode,
31 "FADC mode: if true the approximation to integer is done",
bool(
true));
32 addParam(
"ShaperDigits", m_storeShaperDigitsName,
33 "ShaperDigits collection name",
string(
""));
34 addParam(
"ShaperDigitsIN", m_SVDShaperDigitsIN,
35 "Kept ShaperDigits collection name",
string(
""));
36 addParam(
"ShaperDigitsOUT", m_SVDShaperDigitsOUT,
37 "ShaperDigits collection name",
string(
""));
38 addParam(
"SNthreshold", m_cutSN,
39 "minimum SN to be kept",
float(3));
40 addParam(
"numberOfSamples", m_nSample,
41 "number of samples above threshold to be kept ",
int(1));
42 addParam(
"createOUTStripsList", m_createOutside,
43 "create the StoreArray of outside strips",
bool(
false));
49 SVDZeroSuppressionEmulatorModule::~SVDZeroSuppressionEmulatorModule()
56 m_storeShaper.isRequired(m_storeShaperDigitsName);
58 m_selectorIN.registerSubset(m_storeShaper, m_SVDShaperDigitsIN);
61 if (m_createOutside) {
62 m_selectorOUT.registerSubset(m_storeShaper, m_SVDShaperDigitsOUT);
73 if (!m_storeShaper || !m_storeShaper.getEntries())
return;
75 m_selectorIN.select([&](
const SVDShaperDigit * shaper) {
return this->passesZS(shaper) ;});
78 m_selectorOUT.select([&](
const SVDShaperDigit * shaper) {
return ! this->passesZS(shaper) ;});
80 B2DEBUG(10,
" shaper digits = " << m_storeShaper.getEntries() <<
84 B2DEBUG(10,
" shaper digits = " << m_storeShaper.getEntries() <<
98 float noise = m_NoiseCal.getNoise(thisSensorID, thisSide, thisCellID);
99 float cutMinSignal = m_cutSN * noise;
103 cutMinSignal = cutMinSignal + 0.5;
104 cutMinSignal = (int)cutMinSignal;
107 if (shaper->
passesZS(m_nSample, cutMinSignal))