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);
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.
JDAQUTCExtended getTimesliceStart() const
Get start of timeslice.
esac print_variable DETECTOR INPUT_FILE OUTPUT_FILE CDF for TYPE in
then for HISTOGRAM in h0 h1
Long64_t counter_type
Type definition for counter.
double getTime(const Hit &hit)
Get true time of hit.
Data structure for UTC time.
Template definition for direct access of elements in ROOT TChain.
int getFrameIndex() const
Get frame index.
Auxiliary class for defining the range of iterations of objects.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
const JLimit & getLimit() const
Get limit.
then usage $script[input file[working directory[option]]] nWhere option can be N
#define DEBUG(A)
Message macros.