36 inline void print(std::ostream& out,
const char*
const title, T __begin, T __end)
42 for (T i = __begin; i != __end; ++i) {
43 out <<
' ' << setw(4) << (int) i->getT();
56 int main(
int argc,
char **argv)
69 JParser<> zap(
"Example program to test hit pre-processing with user data."\
70 "\nformat: -u \"(<PMT> <time> <time-over-threshold>)+\"");
74 zap[
'O'] =
make_field(option) = JPreprocessor::getOptions();
79 catch(
const exception &error) {
80 FATAL(error.what() << endl);
95 detector.push_back(module);
97 const JModuleRouter router(detector);
99 JHit::setSlewing(
false);
105 frame.
add(data.size(), data.data());
107 timeslice.push_back(frame);
112 typedef JSuperFrame2D<JHit> JSuperFrame2D_t;
114 JSuperFrame2D_t& buffer = JSuperFrame2D_t::demultiplex(timeslice[0], module);
116 buffer.preprocess(option, JMatchL0<JHit>(Tmax_ns));
118 JBuildL0<JHitR0> buildL0;
121 buildL0(buffer, back_inserter(output));
123 print(cout,
"L0:", output.begin(), output.end());
127 JBuildL0<JHitL0> buildL0;
130 buildL0.setPreprocessor(option, JMatchL0<JHit>(Tmax_ns));
132 buildL0(timeslice, router, back_inserter(output));
134 print(cout,
"L0:", output.begin(), output.end());
137 JBuildL1<JHitR1> buildL1(JBuildL1Parameters(Tmax_ns,
true));
140 buildL1.setPreprocessor(option, JMatchL0<JHit>(Tmax_ns));
142 buildL1(timeslice, router, back_inserter(output));
144 print(cout,
"L1:", output.begin(), output.end());
147 JBuildL2<JHitR2> buildL2(JL2Parameters(2, Tmax_ns, -1.0));
150 buildL2.setPreprocessor(option, JMatchL0<JHit>(Tmax_ns));
152 buildL2(timeslice, router, back_inserter(output));
154 print(cout,
"L2:", output.begin(), output.end());