32{
35
37 JLimit_t& numberOfEvents = inputFile.getLimit();
40
41 try {
42
43 JParser<> zap(
"Example program to compare acoustic fit results.");
44
45 zap[
'f'] =
make_field(inputFile,
"input file (output of JKatoomba[.sh])");
49
50 zap(argc, argv);
51 }
52 catch(const exception &error) {
53 FATAL(error.what() << endl);
54 }
55
56
57 if (inputFile.size() != 2u) {
58 FATAL(
"Invalid number of input files; need 2 files for comparison." << endl);
59 }
60
62
65
66 while (inA.hasNext() && inB.hasNext()) {
67
68 STATUS(
"event: " << setw(10) << inA.getCounter() <<
'\r');
DEBUG(endl);
69
70 JEvt* pA = inA.next();
71 JEvt* pB = inB.next();
72
73
74
77
80
81 for (JEvt::const_iterator iA = pA->begin(); iA != pA->end(); ++iA) {
82 for (JEvt::const_iterator iB = pB->begin(); iB != pB->end(); ++iB) {
83
84 if (iA->id == iB->id) {
85
86 const double tx = (iA->tx - iB->tx) * 1.0e3;
87 const double ty = (iA->ty - iB->ty) * 1.0e3;
88
89 H2 ->Fill(tx, ty);
90 H2[iA->id]->Fill(tx, ty);
91
92 break;
93 }
94 }
95 }
96 }
97 }
98
99
101
102 out << H2 << *H2;
103
104 out.Write();
105 out.Close();
106}
#define DEBUG(A)
Message macros.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Utility class to parse command line options.
Auxiliary class to manage set of compatible ROOT objects (e.g. histograms) using unique keys.
General purpose class for object reading from a list of file names.
Template definition for direct access of elements in ROOT TChain.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
double UNIXTimeStop
stop time
double UNIXTimeStart
start time
Auxiliary class for defining the range of iterations of objects.
static counter_type max()
Get maximum counter value.