Jpp  15.0.0
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:1500
JComparator< JResult_t T::*, JComparison::lt > make_comparator(JResult_t T::*member)
Helper method to create comparator between values of data member.
Definition: JComparator.hh:185
static const std::string Tests_t
std::vector< JPMTThresholdCalibration_t > JPMTThresholdCalibration
PMT threshold calibration.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Definition: JParser.hh:1961
void close(std::istream *pf)
Close file.
Definition: JeepToolkit.hh:346
int debug
debug level
Definition: JSirene.cc:63
#define FATAL(A)
Definition: JMessage.hh:67
nlohmann::json json
JUPIHelper getUPI
Function object for mapping PBS and serial number to UPI.
Definition: JDBToolkit.cc:7
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 source JAcoustics sh $DETECTOR_ID CHECK_EXIT_CODE typeset A TRIPODS get_tripods $WORKDIR tripod txt TRIPODS for EMITTER in
Definition: JCanberra.sh:41