24 int main(
int argc,
char **argv)
29 typedef JAbstractHistogram<double> JHistogram_t;
42 JParser<> zap(
"Program to plot PDF of Cherenkov light from EM-shower using interpolation tables.");
46 zap[
'D'] =
make_field(dir,
"(theta, phi) of PMT [rad]");
47 zap[
'x'] =
make_field(x,
"histogram x-binning") = JHistogram_t();
48 zap[
'y'] =
make_field(y,
"histogram y-binning") = JHistogram_t();
55 catch(
const exception &error) {
56 FATAL(error.what() << endl);
65 if (!x.is_valid()) { x = JHistogram_t(150, 0.0, 150.0); }
66 if (!y.is_valid()) { y = JHistogram_t(200, -1.0, +1.0); }
68 TH2D h0(
"h0",
"PDF Projection; D [m]; cos #theta_{0}",
69 x.getNumberOfBins(), x.getLowerLimit(), x.getUpperLimit(),
70 y.getNumberOfBins(), y.getLowerLimit(), y.getUpperLimit());
72 for (
int ix = 1; ix <= h0.GetNbinsX(); ++ix) {
73 for (
int iy = 1; iy <= h0.GetNbinsY(); ++iy) {
75 const double cd = h0.GetYaxis()->GetBinCenter(iy);
76 const double D = h0.GetXaxis()->GetBinCenter(ix);
78 const double Y = npe.
calculate(
E, D, cd, dir.getTheta(), dir.getPhi());
80 h0.SetBinContent(ix, iy, Y/
E);
Utility class to parse command line options.
do echo Generating $dir eval D
Auxiliary data structure for shower PDF.
I/O formatting auxiliaries.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
General purpose messaging.
Utility class to parse command line options.
double calculate(const double E, const double D, const double cd, const double theta, const double phi) const
Get PDF.
then usage $script[input file[working directory[option]]] nWhere option can be E
int main(int argc, char *argv[])