66 JMultipleFileScanner<JDAQTimesliceTypes_t> inputFile;
74 JParser<> zap(
"Example program to remove PMT(s) from data (and set corresponding rate to 0).");
78 zap[
'n'] =
make_field(numberOfEvents) = JLimit::max();
84 catch(
const exception& error) {
85 FATAL(error.what() << endl);
94 JObjectMultiplexer<JDAQTimesliceTypes_t, JDAQTimeslice> in(inputFile);
100 JObjectDemultiplexer<JDAQTimeslice, daq_timeslicetypes_t> out(
outputFile);
102 for (
counter_type counter = 0; in.hasNext() && counter != inputFile.getLimit(); ++counter) {
104 STATUS(
"event: " << setw(10) << counter <<
'\r');
DEBUG(endl);
108 for (JDAQTimeslice::iterator frame = timeslice->begin(); frame != timeslice->end(); ++frame) {
114 if (
PMT.find(JDAQPMTIdentifier(frame->getModuleID(), pmt)) !=
PMT.end() ||
115 PMT.find(JDAQPMTIdentifier(-1, pmt)) !=
PMT.end()) {
125 buffer[hit->getPMT()].push_back(*hit);
132 if (
PMT.find(JDAQPMTIdentifier(frame->getModuleID(), pmt)) ==
PMT.end() &&
133 PMT.find(JDAQPMTIdentifier(-1, pmt)) ==
PMT.end()) {
134 copy(buffer[pmt].begin(), buffer[pmt].end(), back_inserter(data));
138 sort(data.begin(), data.end());
141 frame->add(data.size(), data.data());
150 JMultipleFileScanner<JDAQEvent> in(inputFile);
152 while (in.hasNext()) {
154 STATUS(
"event: " << setw(10) << in.getCounter() <<
'\r');
DEBUG(endl);
166 JMultipleFileScanner<JDAQSummaryslice> in(inputFile);
168 while (in.hasNext()) {
170 STATUS(
"event: " << setw(10) << in.getCounter() <<
'\r');
DEBUG(endl);
174 for (JDAQSummaryslice::iterator frame = summaryslice->begin(); frame != summaryslice->end(); ++frame) {
178 if (
PMT.find(JDAQPMTIdentifier(frame->getModuleID(), pmt)) !=
PMT.end() ||
179 PMT.find(JDAQPMTIdentifier(-1, pmt)) !=
PMT.end()) {
180 (*frame)[pmt].setValue(0.0);
190 JMultipleFileScanner<JTriggerParameters> io(inputFile);