Jpp test-rotations-old
the software that should make you happy
Loading...
Searching...
No Matches
getModuleID.cc
Go to the documentation of this file.
1#include <string>
2#include <iostream>
3#include <iomanip>
4
7
8#include "dbclient/KM3NeTDBClient.h"
9
10#include "JDB/JDB.hh"
11#include "JDB/JDBToolkit.hh"
13#include "JDB/JProductRouter.hh"
14
15#include "Jeep/JPrint.hh"
16#include "Jeep/JParser.hh"
17#include "Jeep/JMessage.hh"
18
19
20/**
21 * \file
22 *
23 * Auxiliary program to print module identifier for a given module location.
24 * \author bjung, mjg
25 */
26int main(int argc, char **argv)
27{
28 using namespace std;
29 using namespace JPP;
30
31 JServer server;
32 string usr;
33 string pwd;
34 string cookie;
35 JLocation location;
36 int detid;
37 int debug;
38
39 try {
40
41 JParser<> zap("Auxiliary program to print module identifier for a given module location.");
42
43 zap['s'] = make_field(server) = getServernames();
44 zap['u'] = make_field(usr) = "";
45 zap['!'] = make_field(pwd) = "";
46 zap['C'] = make_field(cookie) = "";
47 zap['D'] = make_field(detid, "Detector identifier");
48 zap['L'] = make_field(location, "Module location");
49 zap['d'] = make_field(debug) = 1;
50
51 zap(argc, argv);
52 }
53 catch(const exception &error) {
54 FATAL(error.what() << endl);
55 }
56
57
58 while (location == JLocation()) {
59 cin >> location;
60 }
61
62
64
65 try {
66
67 JDB::reset(usr, pwd, cookie);
68
69 ResultSet& rs = getResultSet(getTable<JDetectorIntegration_t>());
70
71 if (! (rs >> detector)) {
72 THROW(JDatabaseException, "Error reading " << getTable<JDetectorIntegration_t>());
73 }
74
75 } catch (const exception& error) {
76
77 FATAL(error.what() << endl);
78 }
79
80 detector.configure(getDetector(detid));
81
82 const JProductRouter router(detector, PBS::CLB_SEQUENCES);
83
84 for (map<JUPI_t, JLocation_t>::const_iterator CLB = router.cbegin(); CLB != router.cend(); ++CLB) {
85
86 if (location.getString() == CLB->second.string &&
87 location.getFloor() == CLB->second.floor) {
88
89 cout << getCLBID(CLB->first) << endl;
90 break;
91 }
92 }
93}
Data structure for detector geometry and calibration.
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
General purpose messaging.
#define FATAL(A)
Definition JMessage.hh:67
int debug
debug level
Definition JSirene.cc:72
Utility class to parse command line options.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Definition JParser.hh:2142
I/O formatting auxiliaries.
Logical location of module.
Definition JLocation.hh:40
int getFloor() const
Get floor number.
Definition JLocation.hh:146
int getString() const
Get string number.
Definition JLocation.hh:135
Database exception.
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
Auxiliary class to map UPI to location in detector.
Wrapper class for server name.
Definition JDB.hh:54