30 JLimit_t& numberOfEvents = inputFile.getLimit();
35 JParser<> zap(
"Program to test iteration from a ROOT TTree.");
38 zap[
'n'] =
make_field(numberOfEvents) = JLimit::max();
43 catch(
const exception& error) {
44 FATAL(error.what() << endl);
53 DEBUG(
"Number of entries " << in.getEntries() << endl);
54 DEBUG(
"Distance " <<
distance(in. begin(), in. end()) << endl);
55 DEBUG(
"Distance " <<
distance(in.rbegin(), in.rend()) << endl);
56 DEBUG(
"Limit " << inputFile.getLimit() << endl);
58 DEBUG(
"hasNext iteration:");
59 while (in.hasNext()) {
67 DEBUG(
"indexed iteration:");
68 for (
counter_type i = inputFile.getLowerLimit(); i != inputFile.getUpperLimit(); ++i) {
69 DEBUG(
' ' << setw(2) << in.getEntry(i)->getFrameIndex());
73 DEBUG(
"forward iteration:");
74 for (JTreeScanner_t::iterator i = in.begin(); i != in.end(); ++i) {
75 DEBUG(
' ' << setw(2) << i->getFrameIndex());
79 DEBUG(
"reverse iteration:");
80 for (JTreeScanner_t::reverse_iterator i = in.rbegin(); i != in.rend(); ++i) {
81 DEBUG(
' ' << setw(2) << i->getFrameIndex());
87 ASSERT(in.getEntries() > 1,
"check number of entries");
88 ASSERT(inputFile.getUpperLimit() < in.getEntries() && inputFile.getLength() > 1,
"check limit");
90 ASSERT(
distance(in. begin(), in. end()), inputFile.getLimit().getLength());
91 ASSERT(
distance(in.rbegin(), in.rend()), inputFile.getLimit().getLength());
93 for (JTreeScanner_t::iterator
j = in.begin(), i =
j++;
j != in.end(); ++i, ++
j) {
94 ASSERT(i->getFrameIndex() <
j->getFrameIndex());
97 for (JTreeScanner_t::reverse_iterator
j = in.rbegin(), i =
j++;
j != in.rend(); ++i, ++
j) {
98 ASSERT(i->getFrameIndex() >
j->getFrameIndex());
#define DEBUG(A)
Message macros.
#define ASSERT(A,...)
Assert macro.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
std::vector< T >::difference_type distance(typename std::vector< T >::const_iterator first, typename PhysicsEvent::const_iterator< T > second)
Specialisation of STL distance.
Utility class to parse command line options.
Base class for JTreeScanner.
Template definition for direct access of elements in ROOT TChain.
int getFrameIndex() const
Get frame index.
JTriggerCounter_t next()
Increment trigger counter.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
Long64_t counter_type
Type definition for counter.
KM3NeT DAQ data structures and auxiliaries.
Auxiliary class for defining the range of iterations of objects.