Jpp  17.3.1
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Functions
examples/JCalibrate/JPrintPMTThreshold.cc File Reference

Auxiliary program to print PMT thresholds. More...

#include <string>
#include <iostream>
#include <iomanip>
#include <fstream>
#include <algorithm>
#include "JLang/JComparator.hh"
#include "JDetector/JDetectorCalibration.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

Auxiliary program to print PMT thresholds.

Author
mdejong

Definition in file examples/JCalibrate/JPrintPMTThreshold.cc.

Function Documentation

int main ( int  argc,
char **  argv 
)

Definition at line 20 of file examples/JCalibrate/JPrintPMTThreshold.cc.

21 {
22  using namespace std;
23  using namespace JPP;
24 
25  string inputFile;
26  int threshold;
27  int debug;
28 
29  try {
30 
31  JParser<> zap("Auxiliary program to print PMT thresholds.");
32 
33  zap['f'] = make_field(inputFile, "PMT threshold file (json format)");
34  zap['T'] = make_field(threshold) = 0;
35  zap['d'] = make_field(debug) = 1;
36 
37  zap(argc, argv);
38  }
39  catch(const exception &error) {
40  FATAL(error.what() << endl);
41  }
42 
43 
44  json js;
45 
46  istream* in = open<istream>(inputFile.c_str());
47 
48  *in >> js;
49 
50  close(in);
51 
52  try {
53 
54  JPMTThresholdCalibration calibration = js.at(Tests_t).get<JPMTThresholdCalibration>();
55 
56  sort(calibration.begin(), calibration.end(), make_comparator(&JPMTThresholdCalibration_t::getUPI));
57 
58  for (JPMTThresholdCalibration::const_iterator i = calibration.begin(); i != calibration.end(); ++i) {
59  if (i->threshold >= threshold) {
60  cout << "PMT " << left << setw(32) << static_cast<const JUPI_t&>(*i) << " -> " << right << setw(3) << i->threshold << endl;
61  }
62  }
63  }
64  catch(const exception& error) {
65  FATAL(error.what() << endl);
66  }
67 }
Utility class to parse command line options.
Definition: JParser.hh:1517
JComparator< JResult_t T::*, JComparison::lt > make_comparator(JResult_t T::*member)
Helper method to create comparator between values of data member.
std::vector< JPMTThresholdCalibration_t > JPMTThresholdCalibration
PMT threshold calibration.
JUPIHelper & getUPI()
Auxiliary function for helper object initialisation.
Definition: JDBToolkit.hh:472
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Definition: JParser.hh:1993
void close(std::istream *pf)
Close file.
Definition: JeepToolkit.hh:386
#define FATAL(A)
Definition: JMessage.hh:67
nlohmann::json json
then fatal Wrong number of arguments fi set_variable DETECTOR $argv[1] set_variable INPUT_FILE $argv[2] eval JPrintDetector a $DETECTOR O IDENTIFIER eval JPrintDetector a $DETECTOR O SUMMARY JAcoustics sh $DETECTOR_ID source JAcousticsToolkit sh CHECK_EXIT_CODE typeset A EMITTERS get_tripods $WORKDIR tripod txt EMITTERS get_transmitters $WORKDIR transmitter txt EMITTERS for EMITTER in
Definition: JCanberra.sh:46
static const std::string Tests_t
int debug
debug level