Jpp 20.0.0-27-g39925593c-D
the software that should make you happy
Loading...
Searching...
No Matches
JCheckDetectorIntegration.cc
Go to the documentation of this file.
1#include <string>
2#include <iostream>
3#include <iomanip>
4#include <map>
5
6#include "JDB/JDB.hh"
7#include "JDB/JSelector.hh"
9#include "JDB/JDBToolkit.hh"
12#include "JDB/JProductRouter.hh"
13#include "JDB/JLocation_t.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 check detector integration.
24 * \author mdejong
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 string outputFile;
36 string detid;
37 int debug;
38
39 try {
40
41 JParser<> zap("Auxiliary program to check detector integration.");
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['d'] = make_field(debug) = 1;
49
50 zap(argc, argv);
51 }
52 catch(const exception &error) {
53 FATAL(error.what() << endl);
54 }
55
56
57 try {
58
59 JDB::reset(usr, pwd, cookie);
60
61 const int ID = getDetector<int> (detid);
62 detid = getDetector<string>(detid);
63
64 typedef map<JUPI_t, JLocation_t> detector_type;
65
66 detector_type detectorA;
67
68 {
70
71 for (JDetectorIntegration parameters; rs >> parameters; ) {
72
73 if (parameters.PMTUPI.getPBS() == PBS::PMT) {
74 detectorA[parameters.PMTUPI] = JLocation_t(parameters.DUID, parameters.FLOORID, parameters.CABLEPOS);
75 }
76 }
77
78 rs.Close();
79 }
80
81
83
84 {
85 ResultSet& rs = getResultSet(getTable<JDetectorIntegration_t>());
86
87 if (! (rs >> detectorB)) {
89 }
90 }
91
92 detectorB.configure(detid);
93
94 const JProductRouter router(detectorB, PBS::PMT_SEQUENCES);
95
96
97 for (detector_type::const_iterator i = detectorA.begin(); i != detectorA.end(); ++i) {
98
99 const JLocation_t locationA = i->second;
100 const JLocation_t locationB = router.getLocation(i->first);
101
102 cout << locationA << ' ' << locationB << ' ' << (locationA != locationB ? "*" : "") << endl;
103 }
104 }
105 catch(const exception& error) {
106 FATAL(error.what() << endl);
107 }
108}
int main(int argc, char **argv)
string outputFile
#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.
Database exception.
Template definition of a multi-dimensional oscillation probability interpolation table.
Utility class to parse command line options.
Definition JParser.hh:1698
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
Auxiliary data structure for location of product in detector.
Auxiliary class to map UPI to location in detector.
JLocation_t getLocation(const JUPI_t &upi) const
Get location of product with given UPI.
Wrapper class for server name.
Definition JDB.hh:54