Jpp  19.1.0-rc.1
the software that should make you happy
Functions
JModuleAddressMap.cc File Reference

Example program to print PMT logical addressing. More...

#include <string>
#include <iostream>
#include <iomanip>
#include <algorithm>
#include "km3net-dataformat/online/JDAQ.hh"
#include "JDetector/JDetectorAddressMap.hh"
#include "JDetector/JDetectorSupportkit.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 print PMT logical addressing.

Author
mdejong

Definition in file JModuleAddressMap.cc.

Function Documentation

◆ main()

int main ( int  argc,
char **  argv 
)

Definition at line 26 of file JModuleAddressMap.cc.

27 {
28  using namespace std;
29  using namespace JPP;
30 
31  int detectorID;
32  int moduleID;
33  string option;
34  int debug;
35 
36  try {
37 
38  JParser<> zap("Example program to print PMT logical addressing.");
39 
40  zap['D'] = make_field(detectorID);
41  zap['M'] = make_field(moduleID) = -1;
42  zap['M'] = make_field(moduleID) = -1;
43  zap['O'] = make_field(option, "sort") = readout_t, physical_t;
44  zap['d'] = make_field(debug) = 0;
45 
46  zap(argc, argv);
47  }
48  catch(const exception &error) {
49  FATAL(error.what() << endl);
50  }
51 
52 
53 
54  if (!hasDetectorAddressMap(detectorID)) {
55  FATAL("No detector address map for detector identifier " << detectorID << endl);
56  }
57 
58  const JDetectorAddressMap& demo = getDetectorAddressMap(detectorID);
59 
60  JModuleAddressMap memo = demo.get(moduleID);
61 
62  if (option == readout_t)
63  sort(memo.begin(), memo.end(), less<JPMTReadoutAddress>());
64  else if (option == physical_t)
65  sort(memo.begin(), memo.end(), less<JPMTPhysicalAddress>());
66  else
67  ;
68 
69  for (JModuleAddressMap::const_iterator i = memo.begin(); i != memo.end(); ++i) {
70  cout << setw(2) << i->tdc << ' ' << i->ring << i->position << endl;
71  }
72 }
#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:2158
Lookup table for PMT addresses in detector.
const JModuleAddressMap & get(const int id) const
Get module address map.
Lookup table for PMT addresses in optical module.
Utility class to parse command line options.
Definition: JParser.hh:1714
bool hasDetectorAddressMap(const int id)
Check if detector address map is available.
JDetectorAddressMap & getDetectorAddressMap()
Get detector address map.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
Definition: JSTDTypes.hh:14