31 int main(
int argc,
char **argv)
43 JParser<> zap(
"Example program to compare acoustic fit results.");
45 zap[
'f'] =
make_field(inputFile,
"input file (output of JKatoomba[.sh])");
46 zap[
'n'] =
make_field(numberOfEvents) = JLimit::max();
52 catch(
const exception &error) {
53 FATAL(error.what() << endl);
57 if (inputFile.size() != 2
u) {
58 FATAL(
"Invalid number of input files; need 2 files for comparison." << endl);
66 while (inA.hasNext() && inB.hasNext()) {
68 STATUS(
"event: " << setw(10) << inA.getCounter() <<
'\r');
DEBUG(endl);
70 JEvt* pA = inA.next();
71 JEvt* pB = inB.next();
81 for (JEvt::const_iterator iA = pA->begin(); iA != pA->end(); ++iA) {
82 for (JEvt::const_iterator iB = pB->begin(); iB != pB->end(); ++iB) {
84 if (iA->id == iB->id) {
86 const double tx = (iA->tx - iB->tx) * 1.0e3;
87 const double ty = (iA->ty - iB->ty) * 1.0e3;
90 H2[iA->id]->Fill(tx, ty);
Utility class to parse command line options.
int main(int argc, char *argv[])
ROOT TTree parameter settings.
Dynamic ROOT object management.
Template definition for direct access of elements in ROOT TChain.
double UNIXTimeStop
stop time
Auxiliary class for defining the range of iterations of objects.
Auxiliary class to manage set of compatible ROOT objects (e.g. histograms) using unique keys...
I/O formatting auxiliaries.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
void Write(TDirectory &out, const bool wm=false)
Write objects to file.
General purpose messaging.
Scanning of objects from multiple files according a format that follows from the extension of each fi...
double UNIXTimeStart
start time
General purpose class for object reading from a list of file names.
Utility class to parse command line options.
const JLimit & getLimit() const
Get limit.
#define DEBUG(A)
Message macros.