71 using namespace KM3NETDAQ;
80 JParser<> zap(
"Example program to histogram UTC profiles.");
84 zap[
'n'] =
make_field(numberOfEvents) = JLimit::max();
89 catch(
const exception& error) {
90 FATAL(error.what() << endl);
96 JTreeScanner<JDAQTimeslice, JDAQEvaluator> in(inputFile);
100 if (N > numberOfEvents.getUpperLimit()) {
101 N = numberOfEvents.getUpperLimit();
105 FATAL(
"Number of time slices in file(s) " << N << endl);
108 const Long64_t NX = in.getEntry(N-1)->getFrameIndex() - in.getEntry(0)->getFrameIndex() + 1;
109 const Double_t xmin = (Double_t) in.getEntry( 0 )->getFrameIndex() - 0.5;
110 const Double_t xmax = (Double_t) in.getEntry(N-1)->getFrameIndex() + 0.5;
115 TH1D h0(
"UTC", NULL, NX, xmin, xmax);
116 TH1D h1(
"!utc", NULL, NX, xmin, xmax);
117 TH1D h2(
"dt", NULL, 1001, -500.5, +500.5);
120 const int frame_index = in.getEntry(0)->getFrameIndex();
121 const JUTCTime_t t0 =
getTime(in.getEntry(0)->getTimesliceStart());
123 for (in.rewind(); in.hasNext() && in.getCounter() != numberOfEvents.getUpperLimit(); ) {
125 STATUS(
"event: " << setw(10) << in.getCounter() <<
'\r');
DEBUG(endl);
136 for (JDAQTimeslice::const_iterator frame = timeslice->begin(); frame != timeslice->end(); ++frame) {
138 if (utc != frame->getTimesliceStart()) {
142 h2.Fill(
getTime(frame->getTimesliceStart()) - t1);
Utility class to parse command line options.
const JDAQUTCExtended & getTimesliceStart() const
Get start of timeslice.
Long64_t counter_type
Type definition for counter.
double getTime(const Hit &hit)
Get true time of hit.
int getFrameIndex() const
Get frame index.
JLimit JLimit_t
Type definition of limit.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
const JLimit & getLimit() const
Get limit.
#define DEBUG(A)
Message macros.