Jpp  17.2.0
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
JPrintTreeScanner.cc
Go to the documentation of this file.
1 
2 #include <string>
3 #include <iostream>
4 #include <iomanip>
5 #include <limits>
6 
8 #include "JDAQ/JDAQEvaluator.hh"
9 
11 #include "JSupport/JTreeScanner.hh"
12 #include "JSupport/JSupport.hh"
14 
15 #include "Jeep/JTimer.hh"
16 #include "Jeep/JParser.hh"
17 #include "Jeep/JMessage.hh"
18 
19 
20 /**
21  * \file
22  *
23  * Program to test ordered reading using JSUPPORT::JTreeScanner.
24  * \author mdejong
25  */
26 int main(int argc, char **argv)
27 {
28  using namespace std;
29  using namespace JPP;
30  using namespace KM3NETDAQ;
31 
32  JMultipleFileScanner<> inputFile;
33  JROOTClassSelector selector;
34  JLimit numberOfEvents;
35  int debug;
36 
37  try {
38 
39  JParser<> zap("Program to test ordered reading from a ROOT TTree.");
40 
41  zap['f'] = make_field(inputFile);
42  zap['C'] = make_field(selector) = getROOTClassSelection<JDAQTimesliceTypes_t>();
43  zap['n'] = make_field(numberOfEvents) = JLimit();
44  zap['d'] = make_field(debug) = 2;
45 
46  zap(argc, argv);
47  }
48  catch(const exception& error) {
49  FATAL(error.what() << endl);
50  }
51 
52 
54 
56 
57  JTreeScannerInterface<JDAQTimeslice>* ps = zmap[selector];
58 
59  JTimer timer;
60 
61  timer.start();
62 
63  ps->configure(inputFile, numberOfEvents);
64 
65  timer.stop();
66 
67  timer.print(cout, milli_t);
68 
69  while (ps->hasNext()) {
70 
71  JDAQTimeslice* p = ps->next();
72 
73  cout << *p << endl;
74  }
75 }
Utility class to parse command line options.
Definition: JParser.hh:1517
int main(int argc, char *argv[])
Definition: Main.cc:15
ROOT TTree parameter settings of various packages.
Auxiliary class to select ROOT class based on class name.
Auxiliary class for a type holder.
Definition: JType.hh:19
Template definition for direct access of elements in ROOT TChain.
Auxiliary interface for direct access of elements in ROOT TChain.
Auxiliary class for defining the range of iterations of objects.
Definition: JLimit.hh:41
milli
Definition: JScale.hh:30
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Definition: JParser.hh:1993
Auxiliary class for CPU timing and usage.
Definition: JTimer.hh:32
Data time slice.
General purpose messaging.
Auxiliary class to select JTreeScanner based on ROOT class name.
#define FATAL(A)
Definition: JMessage.hh:67
Utility class to parse command line options.
int debug
debug level
void start()
Start timer.
Definition: JTimer.hh:89