Jpp  master_rocky-40-g5f0272dcd
the software that should make you happy
Functions
JCDFTable1D.cc File Reference

Program to plot CDF of Cherenkov light from muon using interpolation tables. More...

#include <string>
#include <iostream>
#include <fstream>
#include <iomanip>
#include <vector>
#include "TROOT.h"
#include "TFile.h"
#include "TH1D.h"
#include "JTools/JFunction1D_t.hh"
#include "JTools/JFunctionalMap_t.hh"
#include "JPhysics/JCDFTable.hh"
#include "JPhysics/JPDFTypes.hh"
#include "JPhysics/JPDFToolkit.hh"
#include "JSirene/JCDFTable1D.hh"
#include "Jeep/JProperties.hh"
#include "Jeep/JPrint.hh"
#include "Jeep/JParser.hh"
#include "Jeep/JMessage.hh"

Go to the source code of this file.

Functions

int main (int argc, char **argv)
 

Detailed Description

Program to plot CDF of Cherenkov light from muon using interpolation tables.

Author
mdejong

Definition in file JCDFTable1D.cc.

Function Documentation

◆ main()

int main ( int  argc,
char **  argv 
)

< number of bins for average CDF integral of optical module

< safety factor for average CDF integral of optical module

Definition at line 30 of file JCDFTable1D.cc.

31 {
32  using namespace std;
33  using namespace JPP;
34 
35  string inputFile;
36  string outputFile;
37  int numberOfBins = 200; //!< number of bins for average CDF integral of optical module
38  double safetyFactor = 1.7; //!< safety factor for average CDF integral of optical module
39  int debug;
40 
41  try {
42 
43  JProperties properties;
44 
45  properties.insert(gmake_property(numberOfBins));
46  properties.insert(gmake_property(safetyFactor));
47 
48  JParser<> zap("Program to plot PDF of Cherenkov light from muon using interpolation tables.");
49 
50  zap['@'] = make_field(properties) = JPARSER::initialised();
51  zap['f'] = make_field(inputFile);
52  zap['o'] = make_field(outputFile) = "cdf.root";
53  zap['d'] = make_field(debug) = 0;
54 
55  zap(argc, argv);
56  }
57  catch(const exception &error) {
58  FATAL(error.what() << endl);
59  }
60 
61 
62  typedef JHermiteSplineFunction1D_t JFunction1D_t;
65  JPolint1FunctionalGridMap>::maplist JMapList_t;
67 
69 
70  JCDF_t function;
71 
72  try {
73 
74  NOTICE("loading input from file " << inputFile << "... " << flush);
75 
76  function.load(inputFile.c_str());
77 
78  NOTICE("OK" << endl);
79  }
80  catch(const JException& error) {
81  FATAL(error.what() << endl);
82  }
83 
84  JCDF1D_t integral(function, numberOfBins, safetyFactor);
85 
86 
87  TFile out(outputFile.c_str(), "recreate");
88 
89  TH1D h0("h0", NULL,
90  1000, function.intensity.getXmin(), function.intensity.getXmax());
91 
92  for (int i = 1; i <= h0.GetNbinsX(); ++i) {
93 
94  const double R = h0.GetBinCenter(i);
95  const double y = integral.getNPE(R);
96 
97  h0.SetBinContent(i, y);
98  }
99 
100  out.Write();
101  out.Close();
102 }
string outputFile
#define NOTICE(A)
Definition: JMessage.hh:64
#define FATAL(A)
Definition: JMessage.hh:67
int debug
debug level
Definition: JSirene.cc:69
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Definition: JParser.hh:2142
#define gmake_property(A)
macros to convert (template) parameter to JPropertiesElement object
int numberOfBins
number of bins for average CDF integral of optical module
Definition: JSirene.cc:70
double safetyFactor
safety factor for average CDF integral of optical module
Definition: JSirene.cc:71
Utility class to parse parameter values.
Definition: JProperties.hh:501
General exception.
Definition: JException.hh:24
virtual const char * what() const override
Get error message.
Definition: JException.hh:64
Utility class to parse command line options.
Definition: JParser.hh:1698
Custom class for CDF table in 1 dimension.
Definition: JCDFTable1D.hh:41
Multi-dimensional CDF table for arrival time of Cherenkov light.
Definition: JCDFTable.hh:57
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
Definition: JSTDTypes.hh:14
Empty structure for specification of parser element that is initialised (i.e. does not require input)...
Definition: JParser.hh:68
Type definition of a spline interpolation method based on a JCollection with double result type.
Auxiliary class for recursive map list generation.
Definition: JMapList.hh:109
Type definition of a 1st degree polynomial interpolation based on a JGridMap implementation.
Type definition of a 1st degree polynomial interpolation based on a JMap implementation.