Jpp  pmt_effective_area_update_2
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Functions
getModuleID.cc File Reference

Auxiliary program to print module identifier for a given module location. More...

#include <string>
#include <iostream>
#include <iomanip>
#include "Jeep/JPrint.hh"
#include "Jeep/JParser.hh"
#include "Jeep/JMessage.hh"
#include "JSupport/JMeta.hh"
#include "JDetector/JDetector.hh"
#include "JDetector/JDetectorToolkit.hh"
#include "JDetector/JDetectorAddressMapToolkit.hh"
#include "dbclient/KM3NeTDBClient.h"
#include "JDB/JDB.hh"
#include "JDB/JDBToolkit.hh"
#include "JDB/JDBincludes.hh"
#include "JDB/JProductRouter.hh"

Go to the source code of this file.

Functions

int main (int argc, char **argv)
 

Detailed Description

Auxiliary program to print module identifier for a given module location.

Author
bjung, mjg

Definition in file getModuleID.cc.

Function Documentation

int main ( int  argc,
char **  argv 
)

Definition at line 29 of file getModuleID.cc.

30 {
31  using namespace std;
32  using namespace JPP;
33 
34  JServer server;
35  string usr;
36  string pwd;
37  string cookie;
38  JLocation location;
39  int detid;
40  int debug;
41 
42  try {
43 
44  JParser<> zap("Auxiliary program to print module identifier for a given module location."
45  "\nInteractive mode in absence of option -L <location>.");
46 
47  zap['s'] = make_field(server) = getServernames();
48  zap['u'] = make_field(usr) = "";
49  zap['!'] = make_field(pwd) = "";
50  zap['C'] = make_field(cookie) = "";
51  zap['D'] = make_field(detid, "Detector identifier") = -1;
52  zap['L'] = make_field(location, "Module location") = JLocation();
53  zap['d'] = make_field(debug) = 1;
54 
55  zap(argc, argv);
56  }
57  catch(const exception &error) {
58  FATAL(error.what() << endl);
59  }
60 
61 
62  while (location == JLocation()) {
63  cin >> location;
64  }
65 
66 
67  if (hasDetectorAddressMap(detid)) {
68 
70 
71  try {
72 
73  JDB::reset(usr, pwd, cookie);
74 
75  ResultSet& rs = getResultSet(getTable<JDetectorIntegration_t>());
76 
77  if (! (rs >> detector)) {
78  THROW(JDatabaseException, "Error reading " << getTable<JDetectorIntegration_t>());
79  }
80 
81  } catch (const exception& error) {
82 
83  FATAL(error.what() << endl);
84  }
85 
86  detector.configure(getDetector(detid));
87 
88  const JProductRouter router(detector, PBS::CLB_SEQUENCES);
89 
90  for (map<JUPI_t, JLocation_t>::const_iterator CLB = router.cbegin(); CLB != router.cend(); ++CLB) {
91 
92  if (location.getString() == CLB->second.string &&
93  location.getFloor() == CLB->second.floor) {
94 
95  cout << getCLBID(CLB->first) << endl;
96  break;
97  }
98  }
99 
100  } else {
101 
102  ERROR("No detector found corresponding to user specifications.");
103  }
104 }
Utility class to parse command line options.
Definition: JParser.hh:1500
Database exception.
Definition: JException.hh:648
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
Definition: JException.hh:670
bool hasDetectorAddressMap(const int id)
Check if detector address map is available.
static const JPBS_t CLB(3, 4, 3, 2)
PBS of central-logic board
JDetectorsHelper getDetector
Function object for mapping serial number to object identifier of detector and vice versa...
Definition: JDBToolkit.cc:5
Logical location of module.
Definition: JLocation.hh:37
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Definition: JParser.hh:1961
#define ERROR(A)
Definition: JMessage.hh:66
int debug
debug level
Definition: JSirene.cc:63
static const JPBSSequences CLB_SEQUENCES
PBS sequences for central-logic board.
Auxiliary class to map UPI to location in detector.
#define FATAL(A)
Definition: JMessage.hh:67
void reset(T &value)
Reset value.
ResultSet & getResultSet(const std::string &query)
Get result set.
Definition: JDB.hh:432
std::vector< JServer > getServernames()
Get list of names of available database servers.
Definition: JDB.hh:98
Wrapper class for server name.
Definition: JDB.hh:42
JCLBIDHelper getCLBID
Function object for mapping UPI of central-logic board to module identifier.
Definition: JDBToolkit.cc:6
do set_variable DETECTOR_TXT $WORKDIR detector
void configure(const std::string &detid)
Configure detector integration for given detector identifier.