Jpp  master_rocky-37-gf0c5bc59d
the software that should make you happy
Functions
JToTProbability.cc File Reference

Example program to histogram time-over-threshold 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 time-over-threshold probability distributions.

Author
mdejong

Definition in file JToTProbability.cc.

Function Documentation

◆ main()

int main ( int  argc,
char **  argv 
)

Definition at line 24 of file JToTProbability.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 time-over-threshold probability distributions.");
39 
40  zap['o'] = make_field(outputFile) = "time-over-threshold.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 = 0.5;
58  const double xmax = 255.5;
59  const int nx = (int) ((xmax - xmin) / 1.0);
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 = getTimeOverThresholdProbability(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:69
#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.
Definition: JProperties.hh:501
Utility class to parse command line options.
Definition: JParser.hh:1698
const double xmax
Definition: JQuadrature.cc:24
const double xmin
Definition: JQuadrature.cc:23
double getTimeOverThresholdProbability(const JPMTAnalogueSignalProcessor &pmt, const double tot_ns, const double NPE, const double precision=1.0e-4)
Get time-over-threshold probability.
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