39 int main(
int argc, 
char **argv)
 
   58     JParser<> zap(
"Program to plot PDF of Cherenkov light from EM-shower using interpolation tables.");
 
   63     zap[
'D'] = 
make_field(dir,       
"(theta, phi) of PMT [rad]");
 
   66     zap[
'E'] = 
make_field(E,         
"Energy [GeV]")               = 1.0;
 
   72   catch(
const exception &error) {
 
   73     FATAL(error.what() << endl);
 
   77   const double theta = dir.first;
 
   78   const double phi   = dir.second;
 
   98     NOTICE(
"loading input from file " << pdfFile << 
"... " << flush);
 
  100     pdf.load(pdfFile.c_str());
 
  102     pdf.setExceptionHandler(
new JFunction1D_t::JDefaultResult(
JMATH::zero));
 
  108     NOTICE(
"loading input from file " << cdfFile << 
"... " << flush);
 
  110     cdf.load(cdfFile.c_str());
 
  115     FATAL(error.what() << endl);
 
  121   TH2D h0(
"pdf", NULL, 
x.getNumberOfBins(), 
x.getLowerLimit(), 
x.getUpperLimit(), 
y.getNumberOfBins(), 
y.getLowerLimit(), 
y.getUpperLimit());
 
  122   TH2D h1(
"npe", NULL, 
x.getNumberOfBins(), 
x.getLowerLimit(), 
x.getUpperLimit(), 
y.getNumberOfBins(), 
y.getLowerLimit(), 
y.getUpperLimit());
 
  123   TH2D h2(
"cdf", NULL, 
x.getNumberOfBins(), 
x.getLowerLimit(), 
x.getUpperLimit(), 
y.getNumberOfBins(), 
y.getLowerLimit(), 
y.getUpperLimit());
 
  125   for (
int i = 1; i <= h0.GetNbinsX(); ++i) {
 
  126     for (
int j = 1; 
j <= h0.GetNbinsY(); ++
j) {
 
  128       const double D  = h0.GetXaxis()->GetBinCenter(i);
 
  129       const double cd = h0.GetYaxis()->GetBinCenter(
j);
 
  133         const double y0 = 
get_integral(pdf(D, cd, theta, phi, 1.0e3));
 
  134         const double y1 = npe             (D, cd, theta, phi);
 
  135         const double y2 = cdf.getNPE      (D, cd, theta, phi);
 
  138               << 
FIXED(5,1)       << D  << 
' '  
  139               << 
FIXED(5,1)       << cd << 
' ' 
  144         h0.SetBinContent(i, 
j, E * y0);
 
  145         h1.SetBinContent(i, 
j, E * y1);
 
  146         h2.SetBinContent(i, 
j, E * y2);
 
  148       catch(
const exception& error) {
 
  158     out << h0 << h1 << h2;
 
Various implementations of functional maps.
 
General purpose messaging.
 
#define DEBUG(A)
Message macros.
 
Numbering scheme for PDF types.
 
Utility class to parse command line options.
 
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
 
std::pair< double, double > orientation
 
int main(int argc, char **argv)
 
std::istream & operator>>(std::istream &in, orientation &x)
 
std::ostream & operator<<(std::ostream &out, const orientation &x)
 
I/O formatting auxiliaries.
 
Utility class to parse command line options.
 
Multi-dimensional CDF table for arrival time of Cherenkov light.
 
Custom class for integrated values of the PDF of the arrival time of Cherenkov light.
 
Multi-dimensional PDF table for arrival time of Cherenkov light.
 
JAbstractHistogram< double > JHistogram_t
Type definition for scan along axis.
 
static const JZero zero
Function object to assign zero value.
 
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
 
Auxiliary data structure for floating point format specification.
 
Auxiliary data structure for floating point format specification.