Jpp  master_rocky-40-g5f0272dcd
the software that should make you happy
Functions
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;
42  map<string, int> TTS;
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 }
JDAQPMTIdentifier PMT
Command line options.
#define FATAL(A)
Definition: JMessage.hh:67
int debug
debug level
Definition: JSirene.cc:69
#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:437
std::vector< JServer > getServernames()
Get list of names of available database servers.
Definition: JDB.hh:107
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
static JStat getFileStatus
Function object for file status.
Definition: JStat.hh:173
void reset(T &value)
Reset value.
static const char WILDCARD
Definition: JDAQTags.hh:56
Definition: JSTDTypes.hh:14
Wrapper class for server name.
Definition: JDB.hh:53
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