#include #include #include #include #include "Jeep/JPrint.hh" #include "Jeep/JParser.hh" #include "Jeep/JMessage.hh" #include "JOscProb/JOscChannel.hh" #include "JOscProb/JOscParameters.hh" #include "JOscProb/JOscProbInterpolator.hh" /** * \file * Example program to print oscillation probabilities interpolated in energy and zenith-angle. * * \author bjung */ int main(int argc, char **argv) { using namespace std; using namespace JPP; string inputFile; JOscParameters parameters; map interpolationValues; JOscChannel channel; int debug; try { JParser<> zap; zap['f'] = make_field(inputFile, "8D oscillation probability table file"); zap['x'] = make_field(interpolationValues, "Map of interpolation values in (energy [GeV], cos(theta))") = JPARSER::initialised(); zap['@'] = make_field(parameters, "Oscillation parameters") = JPARSER::initialised(); zap['#'] = make_field(channel, "Oscillation channel") = JOscChannel(JFlavour_t::MUON, JFlavour_t::MUON, JChargeParity_t::PARTICLE); zap['d'] = make_field(debug) = 3; zap(argc, argv); } catch (const exception& error) { FATAL(error.what() << endl); } JOscProbInterpolator<> interpolator(inputFile.c_str(), parameters); NOTICE(RIGHT(15) << "Energy [GeV]" << RIGHT(15) << "cos(theta)" << RIGHT(15) << "P" << endl); for (map::const_iterator i = interpolationValues.cbegin(); i != interpolationValues.cend(); ++i) { const double energy = i->first; const double costh = i->second; const double oscProb = interpolator(channel, energy, costh); NOTICE(FIXED(15,3) << energy << FIXED(15,3) << costh << FIXED(15,3) << oscProb << '\r'); DEBUG(endl); } }