Jpp 19.3.0-rc.1
the software that should make you happy
Loading...
Searching...
No Matches
JCDFTable2D.cc File Reference

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

#include <string>
#include <iostream>
#include <fstream>
#include <iomanip>
#include <vector>
#include "TROOT.h"
#include "TFile.h"
#include "TH2D.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/JCDFTable2D.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 shower using interpolation tables.

Author
mdejong

Definition in file JCDFTable2D.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 JCDFTable2D.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 shower 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;
66 JPolint1FunctionalGridMap>::maplist JMapList_t;
68
70
71 JCDF_t function;
72
73 try {
74
75 NOTICE("loading input from file " << inputFile << "... " << flush);
76
77 function.load(inputFile.c_str());
78
79 NOTICE("OK" << endl);
80 }
81 catch(const JException& error) {
82 FATAL(error.what() << endl);
83 }
84
85 JCDF2D_t integral(function, numberOfBins, safetyFactor);
86
87
88 TFile out(outputFile.c_str(), "recreate");
89
90 TH2D h0("h0", NULL,
91 200, function.intensity.getXmin(), function.intensity.getXmax(),
92 200, -1.0, +1.0);
93
94 for (int ix = 1; ix <= h0.GetXaxis()->GetNbins(); ++ix) {
95 for (int iy = 1; iy <= h0.GetYaxis()->GetNbins(); ++iy) {
96
97 const double R = h0.GetXaxis()->GetBinCenter(ix);
98 const double cd = h0.GetYaxis()->GetBinCenter(iy);
99 const double y = integral.getNPE(R, cd);
100
101 h0.SetBinContent(ix, iy, y);
102 }
103 }
104
105 out.Write();
106 out.Close();
107}
string outputFile
#define NOTICE(A)
Definition JMessage.hh:64
#define FATAL(A)
Definition JMessage.hh:67
int debug
debug level
Definition JSirene.cc:72
#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:73
double safetyFactor
safety factor for average CDF integral of optical module
Definition JSirene.cc:74
Utility class to parse parameter values.
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 2 dimensions.
Multi-dimensional CDF table for arrival time of Cherenkov light.
Definition JCDFTable.hh:58
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
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.