23 int main(
int argc,
char **argv)
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());
General purpose messaging.
#define DEBUG(A)
Message macros.
#define ASSERT(A,...)
Assert macro.
Scanning of objects from multiple files according a format that follows from the extension of each fi...
Utility class to parse command line options.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
ROOT TTree parameter settings of various packages.
int main(int argc, char **argv)
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.
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.