Skip to content

Commit 6c7c7a1

Browse files
committed
Add in even and 0xBAD fractions
1 parent ddae3be commit 6c7c7a1

2 files changed

Lines changed: 21 additions & 1 deletion

File tree

sbndcode/Decoders/TPC/SBNDTPCDecoder.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,9 @@ class daq::SBNDTPCDecoder : public art::EDProducer {
9494
Config _config;
9595

9696
void getMedianSigma(const std::vector<int16_t> &v_adc, float &median, float &sigma);
97+
float getEvenFraction(const std::vector<int16_t> &v_adc) const;
98+
float getxBADFraction(const std::vector<int16_t> &v_adc) const;
99+
97100

98101
};
99102

sbndcode/Decoders/TPC/SBNDTPCDecoder_module.cc

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ void daq::SBNDTPCDecoder::produce(art::Event & event)
129129
}
130130

131131
for (const raw::RawDigit &r: *rawdigit_collection) {
132-
anab::TPCChannelInfo i {r.Channel(), r.GetPedestal(), r.GetSigma()};
132+
anab::TPCChannelInfo i {r.Channel(), r.GetPedestal(), r.GetSigma(), getEvenFraction(r.ADCs()), getxBADFraction(r.ADCs())};
133133
channeldata_collection->push_back(i);
134134
}
135135

@@ -228,6 +228,23 @@ uint32_t daq::SBNDTPCDecoder::compute_checksum(sbndaq::NevisTPCFragment &fragmen
228228

229229
}
230230

231+
float daq::SBNDTPCDecoder::getxBADFraction(const std::vector<int16_t> &v_adc) const {
232+
int n_bad = 0;
233+
for (int16_t s: v_adc) {
234+
if (s == 0xBAD) n_bad += 1;
235+
}
236+
return ((float)n_bad) / v_adc.size();
237+
238+
}
239+
240+
float daq::SBNDTPCDecoder::getEvenFraction(const std::vector<int16_t> &v_adc) const {
241+
int n_even = 0;
242+
for (int16_t s: v_adc) {
243+
if (s % 2 == 0) n_even += 1;
244+
}
245+
return ((float)n_even) / v_adc.size();
246+
247+
}
231248

232249

233250
void daq::SBNDTPCDecoder::getMedianSigma(const std::vector<int16_t> &v_adc, float &median,

0 commit comments

Comments
 (0)