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

Example program to histogram charge probability distributions. More...

#include <string>
#include <iostream>
#include <iomanip>
#include "TROOT.h"
#include "TFile.h"
#include "TH1D.h"
#include "JDetector/JPMTParameters.hh"
#include "JDetector/JPMTAnalogueSignalProcessor.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

Example program to histogram charge probability distributions.

Author
mdejong

Definition in file JChargeProbability.cc.

Function Documentation

◆ main()

int main ( int argc,
char ** argv )

Definition at line 24 of file JChargeProbability.cc.

25{
26 using namespace std;
27 using namespace JPP;
28
29 string outputFile;
30 JPMTParameters parameters;
31 double NPE;
32 int debug;
33
34 try {
35
36 JProperties properties = parameters.getProperties();
37
38 JParser<> zap("Example program to histogram charge probability distributions.");
39
40 zap['o'] = make_field(outputFile) = "charge.root";
41 zap['P'] = make_field(properties) = JPARSER::initialised();
42 zap['N'] = make_field(NPE);
43 zap['d'] = make_field(debug) = 0;
44
45 zap(argc, argv);
46
47 }
48 catch(const exception &error) {
49 FATAL(error.what() << endl);
50 }
51
52 const JPMTAnalogueSignalProcessor cpu(parameters);
53
54 TFile out(outputFile.c_str(), "recreate");
55
56
57 const double xmin = max(0.0, NPE - 5.0 * sqrt(NPE));
58 const double xmax = NPE + 5.0 * sqrt(NPE) + 2.5;
59 const int nx = (int) ((xmax - xmin) / 0.05);
60
61 TH1D h0("h0", NULL, nx, xmin, xmax);
62
63 for (int i = 1; i <= h0.GetNbinsX(); ++i) {
64
65 const double x = h0.GetBinCenter(i);
66 const double y = getChargeProbability(cpu, x, NPE);
67
68 h0.SetBinContent(i, y);
69 }
70
71 out.Write();
72 out.Close();
73}
string outputFile
#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
Data structure for PMT parameters.
JProperties getProperties(const JEquationParameters &equation=JPMTParameters::getEquationParameters())
Get properties of this class.
Utility class to parse parameter values.
Utility class to parse command line options.
Definition JParser.hh:1698
const double xmax
const double xmin
double getChargeProbability(const JPMTSignalProcessorInterface &pmt, const double npe, const double NPE, const double precision=1.0e-4)
Get charge probability.
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