27 int main(
int argc, 
char **argv)
 
   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);
 
   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) {
 
  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) {
 
  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);
 
General purpose messaging.
 
#define DEBUG(A)
Message macros.
 
#define ASSERT(A,...)
Assert macro.
 
PMT analogue signal processor.
 
Utility class to parse command line options.
 
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
 
I/O formatting auxiliaries.
 
int main(int argc, char **argv)
 
Data structure for time calibration.
 
Template data structure for PMT I/O.
 
std::vector< JElement_t >::const_iterator const_iterator
 
virtual void processHits(const JPMTIdentifier &id, const JCalibration &calibration, const JStatus &status, const JPMTData< JPMTSignal > &input, JPMTData< JPMTPulse > &output) const override
Process hits.
 
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.
 
double getTimeOverThresholdProbability(const double tot_ns, const int NPE) const
Get probability of having a pulse with specific time-over-threshold.
 
virtual double getRandomCharge(const int NPE) const override
Get randomised charge according to gain and gain spread.
 
virtual double getTimeOverThreshold(const double npe) const override
Get time-over-threshold (ToT).
 
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)...