42 JParser<> zap(
"Example program to histogram time over threshold distributions.");
54 catch(
const exception &error) {
55 FATAL(error.what() << endl);
71 const double dx = 1.0;
72 const double xmin = 0.0 - 0.5 * dx;
74 const int nx = (int) ((
xmax -
xmin) / dx);
79 TH1D h3(
"h3", NULL, 500, 0.0, 100.0);
84 DEBUG(
" ToT Probability " << endl);
86 for (
int i = 1; i <= h0.GetNbinsX(); ++i) {
88 const double x = h0.GetBinCenter(i);
89 const double y = cpu.getTimeOverThresholdProbability(
x,NPE);
93 <<
FIXED(7,5) <<
y << endl);
95 h0.SetBinContent(i,
y);
99 if (numberOfHits > 0) {
101 int number_of_hits = 0;
103 for (
int i = 0; i != numberOfHits; ++i) {
105 const double npe = cpu.getRandomCharge(NPE);
110 tot_ns = cpu.getTimeOverThreshold(npe);
124 h1.Scale(1.0 / (
double) number_of_hits / dx);
128 if (numberOfHits > 0) {
130 int number_of_hits = 0;
132 const double t_ns = 25.0;
134 for (
int i = 0; i != numberOfHits; ++i) {
141 simulator.processHits(pmt,
calibration, status, input, output);
147 h2.Fill(hit->tot_ns);
152 h2.Scale(1.0 / (
double) number_of_hits / dx);
160 for (
int i = 1; i <= h0.GetNbinsX(); ++i) {
162 const Double_t
x = h0.GetBinCenter (i);
163 const Double_t y0 = h0.GetBinContent(i);
164 const Double_t y1 = h1.GetBinContent(i);
165 const Double_t y2 = h2.GetBinContent(i);
167 DEBUG(
"[" << setw(3) << i <<
"]" <<
' '
169 <<
FIXED(6,4) << y0 <<
' '
170 <<
FIXED(6,4) << y1 <<
' '
171 <<
FIXED(6,4) << y2 << endl);
173 ASSERT(fabs(y0 - y1) < precision);
174 ASSERT(fabs(y0 - y2) < precision);
#define DEBUG(A)
Message macros.
#define ASSERT(A,...)
Assert macro.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Data structure for time calibration.
Template data structure for PMT I/O.
std::vector< JElement_t >::const_iterator const_iterator
Auxiliary class for map of PMT parameters.
const JPMTParameters & getPMTParameters(const JPMTIdentifier &id) const
Get PMT parameters.
Data structure for PMT parameters.
double saturation
saturation [ns]
Exception for accessing a value in a collection that is outside of its range.
Utility class to parse command line options.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
Auxiliary data structure for floating point format specification.
PMT analogue signal processor.
Data structure for PMT analogue signal.
Auxiliary class for handling status.
Empty structure for specification of parser element that is initialised (i.e. does not require input)...