11 #include <pxd/modules/pxdHelper/PXDBadSensorTagModule.h>
12 #include <framework/core/ModuleParam.templateDetails.h>
18 using namespace Belle2::PXD::PXDError;
28 setDescription(
"Mark bad-data PXD modules");
29 setPropertyFlags(c_ParallelProcessingCertified);
30 addParam(
"zeroSuppressionCut", m_0cut,
"Minimum charge for a raw hit to carry", 0);
31 addParam(
"nrHitsCut", m_nrHitsCut,
"Cut on nr hits per module [[id1,cut1],[id1,cut2],...]");
34 void PXDBadSensorTagModule::initialize()
37 m_storeRawHits.isRequired(m_PXDRawHitsName);
38 m_storeDAQEvtStats.isRequired(m_PXDDAQEvtStatsName);
40 for (
auto& m : m_nrHitsCut) {
41 if (m.size() != 2) { B2ERROR(
"Wrong nr of Parameter " << m.size());
continue;}
42 m_cut[
VxdID(m[0])] = m[1];
46 void PXDBadSensorTagModule::event()
48 std::map <VxdID, int> freq;
49 for (
auto& p : m_storeRawHits) {
50 if (p.getCharge() < m_0cut)
continue;
51 freq[p.getSensorID()]++;
54 for (
auto& p : *m_storeDAQEvtStats) {
57 if (freq[
e.getSensorID()] > m_cut[
e.getSensorID()]) {