Jpp 19.3.0-rc.1
the software that should make you happy
Loading...
Searching...
No Matches
JPMTTTS.cc File Reference

Auxiliary program to set TTS function identifier in PMT parameters file according PMT variant. More...

#include <string>
#include <iostream>
#include <iomanip>
#include <limits>
#include <map>
#include "JDB/JDB.hh"
#include "JDB/JSelector.hh"
#include "JDB/JSelectorSupportkit.hh"
#include "JDB/JDBToolkit.hh"
#include "JDB/JDetectorIntegration.hh"
#include "JDetector/JPMTParametersMap.hh"
#include "JSystem/JStat.hh"
#include "JSupport/JMeta.hh"
#include "Jeep/JPrint.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

Auxiliary program to set TTS function identifier in PMT parameters file according PMT variant.

Author
mdejong

Definition in file JPMTTTS.cc.

Function Documentation

◆ main()

int main ( int argc,
char ** argv )

< wild card

Definition at line 30 of file JPMTTTS.cc.

31{
32 using namespace std;
33 using namespace JPP;
34
35 const std::string WILDCARD = "%"; //!< wild card
36
37 JServer server;
38 string usr;
39 string pwd;
40 string cookie;
41 string detid;
43 string pmtFile;
44 int debug;
45
46 TTS["HAMA-R12199"] = 1;
47 TTS["HAMA-R14374"] = 67;
48 TTS["HAMA-R14374-02"] = 67;
49 TTS[WILDCARD] = 1;
50
51 try {
52
53 JParser<> zap("Auxiliary program to set TTS function identifier in PMT parameters file according PMT variant.");
54
55 zap['s'] = make_field(server) = getServernames();
56 zap['u'] = make_field(usr) = "";
57 zap['!'] = make_field(pwd) = "";
58 zap['C'] = make_field(cookie) = "";
59 zap['D'] = make_field(detid);
60 zap['P'] = make_field(pmtFile, "PMT parameters file") = "";
61 zap['!'] = make_field(TTS, "map PMT variant to TTS function identifier") = JPARSER::initialised();
62 zap['d'] = make_field(debug) = 2;
63
64 zap(argc, argv);
65 }
66 catch(const exception &error) {
67 FATAL(error.what() << endl);
68 }
69
70
71 JPMTParametersMap parameters;
72
73 if (pmtFile != "" && getFileStatus(pmtFile.c_str())) {
74 parameters.load(pmtFile.c_str());
75 }
76
77 try {
78
79 JDB::reset(usr, pwd, cookie);
80
81 ResultSet& rs = getResultSet(getTable<JDetectorIntegration>(), getSelector<JDetectorIntegration>(getDetector<int>(detid)));
82
83 for (JDetectorIntegration component; rs >> component; ) {
84
85 if (component.PMTUPI.getPBS() == PBS::PMT) {
86
88
89 if ((p = TTS.find(component.PMTUPI.getVariant())) != TTS.end())
90 ;
91 else if ((p = TTS.find(WILDCARD)) != TTS.end())
92 ;
93 else
94 FATAL("Invalid variant " << component.PMTUPI << ".");
95
96 const JPMTIdentifier id(component.DOMID, component.CABLEPOS);
97
98 parameters[id].TTS_ns = -(p->second);
99 }
100 }
101
102 rs.Close();
103 }
104 catch(const exception& error) {
105 FATAL(error.what() << endl);
106 }
107
108 if (pmtFile != "") {
109
110 parameters.comment.add(JMeta(argc, argv));
111
112 parameters.store(pmtFile.c_str());
113
114 } else {
115
116 cout << parameters << endl;
117 }
118}
#define FATAL(A)
Definition JMessage.hh:67
int debug
debug level
Definition JSirene.cc:72
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Definition JParser.hh:2142
Auxiliary class for map of PMT parameters.
Utility class to parse command line options.
Definition JParser.hh:1698
ResultSet & getResultSet(const std::string &query)
Get result set.
Definition JDB.hh:438
std::vector< JServer > getServernames()
Get list of names of available database servers.
Definition JDB.hh:108
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
Wrapper class for server name.
Definition JDB.hh:54
Template definition for getting table specific selector.
JComment & add(const std::string &comment)
Add comment.
Definition JComment.hh:100
void store(const char *file_name) const
Store to output file.
void load(const char *file_name)
Load from input file.
Empty structure for specification of parser element that is initialised (i.e. does not require input)...
Definition JParser.hh:68
Auxiliary class for ROOT I/O of application specific meta data.
Definition JMeta.hh:72