Jpp test-rotations-new
the software that should make you happy
Loading...
Searching...
No Matches
getModuleStatus.cc
Go to the documentation of this file.
1#include <string>
2#include <iostream>
3#include <iomanip>
4
9
10#include "JLang/JVectorize.hh"
11
12#include "Jeep/JParser.hh"
13#include "Jeep/JMessage.hh"
14
15
16/**
17 * \file
18 *
19 * Auxiliary program to print module status for a given module identifier.
20 * \author mdejong
21 */
22int main(int argc, char **argv)
23{
24 using namespace std;
25 using namespace JPP;
26
27 string detectorFile;
29 string key;
30 int debug;
31
32 try {
33
34 JParser<> zap("Auxiliary program to print module status for a given module identifier."
35 "\nInteractive mode in absence of option -M <module identifier>.");
36
37 zap['a'] = make_field(detectorFile, "Detector file");
38 zap['M'] = make_field(id, "module identifier") = JModuleIdentifier();
39 zap['k'] = make_field(key, "key") = "", get_keys(getModuleStatusBit);
40 zap['d'] = make_field(debug) = 1;
41
42 zap(argc, argv);
43 }
44 catch(const exception &error) {
45 FATAL(error.what() << endl);
46 }
47
48
50
51 try {
52 load(detectorFile, detector);
53 }
54 catch(const JException& error) {
55 FATAL(error);
56 }
57
58 const JModuleRouter router(detector);
59
60 if (id != JModuleIdentifier()) {
61
62 if (router.hasModule(id)) {
63 if (key == "")
64 print(cout, router.getModule(id).getStatus(), putModuleStatusBit);
65 else
66 cout << router.getModule(id).has(getModuleStatusBit(key));
67 }
68
69 } else {
70
71 while (cin >> id && id != JModuleIdentifier()) {
72
73 if (router.hasModule(id)) {
74 if (key == "")
75 print(cout, router.getModule(id).getStatus(), putModuleStatusBit);
76 else
77 cout << router.getModule(id).has(getModuleStatusBit(key));
78 }
79 }
80 }
81}
Data structure for detector geometry and calibration.
General purpose messaging.
#define FATAL(A)
Definition JMessage.hh:67
int debug
debug level
Definition JSirene.cc:72
Direct access to module in detector data structure.
Utility class to parse command line options.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Definition JParser.hh:2142
void print(const TH1 &h1, std::ostream &out)
Print histogram parameters.
Auxiliary methods to convert data members or return values of member methods of a set of objects to a...
Detector data structure.
Definition JDetector.hh:96
Router for direct addressing of module data in detector data structure.
bool hasModule(const JObjectID &id) const
Has module.
const JModule & getModule(const JObjectID &id) const
Get module parameters.
bool has(const int bit) const
Test PMT status.
Definition JStatus.hh:120
General exception.
Definition JException.hh:24
Auxiliary class for object identification.
Definition JObjectID.hh:25
Utility class to parse command line options.
Definition JParser.hh:1698
int main(int argc, char **argv)
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
Detector file.
Definition JHead.hh:227
int getStatus() const
Get status.
Definition JStatus.hh:63