Jpp  17.0.0
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Functions
JPlotOscProbInterpolation6D.cc File Reference

Example program to plot oscillogram from 8D oscillations probability table
after 6D interpolation in oscillation parameters. More...

#include <iostream>
#include <iomanip>
#include <string>
#include "JLang/JVectorize.hh"
#include "Jeep/JPrint.hh"
#include "Jeep/JParser.hh"
#include "Jeep/JMessage.hh"
#include "JOscProb/JOscChannel.hh"
#include "JOscProb/JOscParameters.hh"
#include "JOscProb/JOscProbToolkit.hh"
#include "JOscProb/JOscProbInterpolator2D.hh"
#include "TFile.h"
#include "TH2D.h"

Go to the source code of this file.

Functions

int main (int argc, char **argv)
 

Detailed Description

Example program to plot oscillogram from 8D oscillations probability table
after 6D interpolation in oscillation parameters.

Author
bjung

Definition in file JPlotOscProbInterpolation6D.cc.

Function Documentation

int main ( int  argc,
char **  argv 
)

Definition at line 27 of file JPlotOscProbInterpolation6D.cc.

28 {
29  using namespace std;
30  using namespace JPP;
31 
32  string inputFile;
33  string outputFile;
34  JOscParameters parameters;
37  JOscChannel channel;
38  int debug;
39 
40  try {
41 
42  JParser<> zap;
43 
44  zap['f'] = make_field(inputFile, "8D oscillation probability table file");
45  zap['o'] = make_field(outputFile, "output file");
46  zap['x'] = make_field(X, "histogram binning in energy [GeV]");
47  zap['y'] = make_field(Y, "histogram binning in cos(theta)");
48  zap['@'] = make_field(parameters, "oscillation parameters") = JPARSER::initialised();
49  zap['#'] = make_field(channel, "Oscillation channel") = JOscChannel(JOscChannel::MUON, JOscChannel::MUON, JOscChannel::ANTIPARTICLE);
50  zap['d'] = make_field(debug) = 2;
51 
52  zap(argc, argv);
53  }
54  catch (const exception& error) {
55  FATAL(error.what() << endl);
56  }
57 
58 
59  TH2D h0("h0", "; energy [GeV]; cos(#theta)", X.size()-1, &X[0], Y.size()-1, &Y[0]);
60 
61  const JOscProbTable6D<> g6(inputFile.c_str());
62  const JOscProbTable2D<> g2(g6, parameters);
63 
64  const JOscProbInterpolator2D<> interpolator(&g2);
65 
66  NOTICE(RIGHT(15) << "energy [GeV]" <<
67  RIGHT(15) << "cos(theta)" <<
68  RIGHT(15) << "P" << endl);
69 
70  for (Int_t ix = 1; ix <= h0.GetNbinsX(); ++ix) {
71  for (Int_t iy = 1; iy <= h0.GetNbinsY(); ++iy) {
72 
73  const Double_t energy = h0.GetXaxis()->GetBinCenter(ix);
74  const Double_t costh = h0.GetYaxis()->GetBinCenter(iy);
75 
76  const Double_t prob = interpolator(channel, energy, costh);
77 
78  NOTICE(FIXED(15,3) << energy <<
79  FIXED(15,3) << costh <<
80  FIXED(15,3) << prob << '\r'); DEBUG(endl);
81 
82  h0.SetBinContent(ix, iy, prob);
83  }
84  }
85 
86  TFile out(outputFile.c_str(), "recreate");
87 
88  h0.Write();
89 
90  out.Write();
91  out.Close();
92 }
Utility class to parse command line options.
Definition: JParser.hh:1500
*fatal Wrong number of arguments esac JCookie sh typeset Z DETECTOR typeset Z SOURCE_RUN typeset Z TARGET_RUN set_variable PARAMETERS_FILE $WORKDIR parameters
Definition: diff-Tuna.sh:38
Empty structure for specification of parser element that is initialised (i.e. does not require input)...
Definition: JParser.hh:66
then fatal Wrong number of arguments fi set_variable STRING $argv[1] set_variable DETECTORXY_TXT $WORKDIR $DETECTORXY_TXT tail read X Y CHI2 RMS printf optimum n $X $Y $CHI2 $RMS awk v Y
Auxiliary data structure for floating point format specification.
Definition: JManip.hh:446
string outputFile
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Definition: JParser.hh:1961
#define NOTICE(A)
Definition: JMessage.hh:64
int debug
debug level
Definition: JSirene.cc:66
#define FATAL(A)
Definition: JMessage.hh:67
then for APP in event gandalf start energy
Definition: JMuonMCEvt.sh:44
no fit printf nominal n $STRING awk v X
#define DEBUG(A)
Message macros.
Definition: JMessage.hh:62