26{
   29 
   31 
   32  
   33  string                  inputFile;
   35 
   36  string                  abscissaType;
   37  JGrid_t                 abscissaGrid;
   38 
   39  string                  ordinateType;
   40  JGrid_t                 ordinateGrid;
   41 
   44  
   46 
   47  try {
   48    
   50 
   51    zap[
'f'] = 
make_field(inputFile,    
"oscillation probability table file");
 
   53    zap[
'X'] = 
make_field(abscissaType, 
"abscissa type") =
 
   54      JOscVars::energy(),
   55      JOscVars::log10E(),
   56      JOscVars::LoE();
   57    zap[
'x'] = 
make_field(abscissaGrid, 
"abscissa binning");
 
   58    zap[
'Y'] = 
make_field(ordinateType, 
"ordinate type") =
 
   59      JOscVars::costh(),
   60      JOscVars::sinth(),
   61      JOscVars::L();
   62    zap[
'y'] = 
make_field(ordinateGrid, 
"ordinate binning"); 
 
   63    zap[
'@'] = 
make_field(parameters,   
"oscillation parameters")
 
   65    zap[
'#'] = 
make_field(channel,      
"oscillation channel")
 
   66      = 
JOscChannel(JFlavour_t::MUON, JFlavour_t::MUON, JChargeParity_t::PARTICLE);
 
   68      = 2;
   69 
   70    zap(argc, argv);
   71  }
   72  catch (const exception& error) {
   73    FATAL(error.what() << endl);
 
   74  }
   75 
   76 
   78 
   79  TH2D h0("h0", NULL,
   80          abscissaGrid.getSize(), abscissaGrid.getXmin(), abscissaGrid.getXmax(),
   81          ordinateGrid.getSize(), ordinateGrid.getXmin(), ordinateGrid.getXmax());
   82  
   83  const JOscillogram oscillogram(abscissaType, abscissaGrid,
 
   84                                 ordinateType, ordinateGrid,
   85                                 channel,      interpolator);
   86 
   88  
   89  for (int ix = 0; ix < abscissaGrid.getSize(); ++ix) {
   90    for (int iy = 0; iy < ordinateGrid.getSize(); ++iy) {
   91 
   92      const double x = abscissaGrid.getX(ix);
 
   93      const double y = ordinateGrid.getX(iy);
 
   94      
   95      const double P = oscillogram.getP(ix, iy);
   96 
   98 
   99      h0.SetBinContent(ix+1, iy+1, P);
  100    }
  101  }
  102 
  104 
  105  h0.Write();
  106 
  107  out.Write();
  108  out.Close();
  109}
#define DEBUG(A)
Message macros.
 
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
 
Data structure for single set of oscillation parameters.
 
Template definition of a multi-dimensional oscillation probability interpolation table.
 
Utility class to parse command line options.
 
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
 
Auxiliary data structure for floating point format specification.
 
Neutrino oscillation channel.
 
Auxiliary class for creating oscillograms.
 
Auxiliary data structure for alignment of data.