49int main(
int argc,
char **argv)
59 JLimit_t& numberOfEvents = inputFile.getLimit();
62 bool reuse_parameters;
68 JParser<> zap(
"Auxiliary program to re-process time slice data.");
81 catch(
const exception &error) {
82 FATAL(error.what() << endl);
89 DEBUG(
"Reset time [ms] " <<
getRTS() * 1e-6 << endl);
90 DEBUG(
"Trigger" << endl << parameters << endl);
101 if (reuse_parameters) {
107 NOTICE(
"Set trigger parameters from input." << endl);
110 FATAL(
"No trigger parameters from input." << endl);
115 if (parameters.disableHighRateVeto) {
117 NOTICE(
"Disabling high-rate veto of all PMTs." << endl);
126 if (parameters.writeSummary()) {
WARNING(
"Discard writeSummary option during reprocesing of data." << endl); }
134 typedef JTimeslice <hit_type> JTimeslice_t;
135 typedef JBuildL1 <hit_type> JBuildL1_t;
136 typedef JBuildL2 <hit_type> JBuildL2_t;
138 const JBuildL1_t buildL1(parameters);
139 const JBuildL2_t buildL2(parameters.L2);
140 const JBuildL2_t buildSN(parameters.SN);
155 void add(
const size_t value)
157 this->value += value;
171 for ( ; in.
hasNext() && counter != inputFile.getLimit(); ++counter) {
173 STATUS(
"event: " << setw(10) << counter <<
'\r');
DEBUG(endl);
177 DEBUG(*timeslice << endl);
186 for (JDAQTimeslice::const_iterator super_frame = timeslice->begin(); super_frame != timeslice->end(); ++super_frame) {
188 if (moduleRouter.
hasModule(super_frame->getModuleID())) {
193 JSuperFrame2D_t& buffer = JSuperFrame2D_t::demultiplex(*super_frame, module);
197 buffer.applyHighRateVeto(parameters.highRateVeto_Hz);
201 timesliceL0.push_back(JSuperFrame1D_t(buffer));
205 timesliceL1.push_back(JSuperFrame1D_t(super_frame->getDAQChronometer(),
206 super_frame->getModuleIdentifier(),
209 buildL1(*timesliceL0.rbegin(), back_inserter(*timesliceL1.rbegin()));
213 timesliceL2.push_back(JSuperFrame1D_t(super_frame->getDAQChronometer(),
214 super_frame->getModuleIdentifier(),
217 buildL2(buffer, *timesliceL1.rbegin(), back_inserter(*timesliceL2.rbegin()));
221 timesliceSN.push_back(JSuperFrame1D_t(super_frame->getDAQChronometer(),
222 super_frame->getModuleIdentifier(),
225 buildSN(buffer, *timesliceL1.rbegin(), back_inserter(*timesliceSN.rbegin()));
229 for (
const auto& i : timesliceL1) {
ls[
"L1"].add(i.size()); }
230 for (
const auto& i : timesliceL2) {
ls[
"L2"].add(i.size()); }
231 for (
const auto& i : timesliceSN) {
ls[
"SN"].add(i.size()); }
233 if (parameters.writeL0()) {
237 if (parameters.writeL1()) {
241 if (parameters.writeL2()) {
245 if (parameters.writeSN()) {
251 for (
const auto& i :
ls) {
252 NOTICE(left << setw(4) << i.first << right <<
FIXED(7,2) << (i.second.count != 0 ? (
double) i.second.value / ((
double) i.second.count * 1.0e-9 * getFrameTime()) : 0.0) <<
" Hz" << endl);