#include #include #include #include "TROOT.h" #include "TFile.h" #include "JSupport/JMultipleFileScanner.hh" #include "JAcoustics/JEvt.hh" #include "JAcoustics/JSuperEvt.hh" #include "JAcoustics/JSupport.hh" #include "JLang/JObjectMultiplexer.hh" #include "JLang/JManip.hh" #include "JTools/JQuantile.hh" #include "Jeep/JPrint.hh" #include "Jeep/JParser.hh" #include "Jeep/JMessage.hh" /** * \file * * Auxiliary program to print chi2/NDF of acoustic events. * \author mdejong */ int main(int argc, char **argv) { using namespace std; using namespace JPP; typedef JTYPELIST::typelist typelist; JMultipleFileScanner inputFile; JLimit_t& numberOfEvents = inputFile.getLimit(); int width; int precision; int debug; try { JParser<> zap("Auxiliary program to print chi2/NDF of acoustic events."); zap['f'] = make_field(inputFile); zap['n'] = make_field(numberOfEvents) = JLimit_t::max(); zap['w'] = make_field(width) = 1; zap['p'] = make_field(precision) = 15; zap['d'] = make_field(debug) = 1; zap(argc, argv); } catch(const exception &error) { FATAL(error.what() << endl); } JQuantile Q; for (JObjectMultiplexer in(inputFile); in.hasNext(); ) { const JEvt* evt = in.next(); Q.put(evt->chi2 / evt->ndf); } cout << SCIENTIFIC(width,precision) << Q.getMean(numeric_limits::max()) << endl; }