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

Auxiliary program to determine TDC constraints (input to JFitK40.cc) according HV settings from the database. More...

#include <string>
#include <iostream>
#include <fstream>
#include <vector>
#include "JDB/JDB.hh"
#include "JDB/JSelector.hh"
#include "JDB/JSelectorSupportkit.hh"
#include "JDB/JDBToolkit.hh"
#include "JDB/JDetectorIntegration.hh"
#include "JDB/JPMTHV.hh"
#include "JDetector/JPMTIdentifier.hh"
#include "Jeep/JPrint.hh"
#include "Jeep/JParser.hh"
#include "Jeep/JMessage.hh"

Go to the source code of this file.

Functions

int main (const int argc, const char *const argv[])
 

Detailed Description

Auxiliary program to determine TDC constraints (input to JFitK40.cc) according HV settings from the database.

Author
mdejong

Definition in file JTDC.cc.

Function Documentation

◆ main()

int main ( const int argc,
const char *const argv[] )

Definition at line 25 of file JTDC.cc.

26{
27 using namespace std;
28 using namespace JPP;
29
30 typedef pair<int, int> run_type;
31
32 JServer server;
33 string usr;
34 string pwd;
35 string cookie;
36 string detid;
37 run_type runs;
38 string outputFile;
39 bool usePMTID; // option for old data for which correction for PMT cable swaps does not apply
40 int debug;
41
42 try {
43
44 JParser<> zap("Auxiliary program to determine TDC constraints (input to JFitK40.cc) according HV settings from the database.");
45
46 zap['s'] = make_field(server) = getServernames();
47 zap['u'] = make_field(usr) = "";
48 zap['!'] = make_field(pwd) = "";
49 zap['C'] = make_field(cookie) = "";
50 zap['D'] = make_field(detid, "Detector identifier");
51 zap['r'] = make_field(runs, "Pair of data taking runs");
52 zap['o'] = make_field(outputFile, "TDC file") = "";
53 zap['U'] = make_field(usePMTID);
54 zap['d'] = make_field(debug) = 1;
55
56 zap(argc, argv);
57 }
58 catch(const exception& error) {
59 FATAL(error.what() << endl);
60 }
61
62
63 try {
64
65 JDB::reset(usr, pwd, cookie);
66
67 const int ID = getDetector<int> (detid);
68 detid = getDetector<string>(detid);
69
70 typedef vector<JDetectorIntegration> detector_type;
71
72 detector_type detector;
73
74 {
75 ResultSet& rs = getResultSet(getTable<JDetectorIntegration>(), getSelector<JDetectorIntegration>(ID));
76
77 for (JDetectorIntegration parameters; rs >> parameters; ) {
78 detector.push_back(parameters);
79 }
80
81 rs.Close();
82 }
83
84 const JPMTHV pmt_hv[] = {
85 JPMTHV(ID, runs.first),
86 JPMTHV(ID, runs.second)
87 };
88
89 filebuf buffer;
90
91 if (outputFile != "") {
92 buffer.open(outputFile.c_str(), ios::out);
93 }
94
95 ostream os(buffer.is_open() ? &buffer : cout.rdbuf());
96
97 for (detector_type::const_iterator i = detector.begin(); i != detector.end(); ++i) {
98 if (i->PMTUPI.getPBS() == PBS::PMT) {
99 try {
100 if (pmt_hv[0](i->PMTUPI).value == pmt_hv[1](i->PMTUPI).value) {
101 if (usePMTID)
102 os << setw(10) << i->DOMID << ' ' << setw(2) << i->PMTID << endl;
103 else
104 os << setw(10) << i->DOMID << ' ' << setw(2) << i->CABLEPOS << endl;
105 }
106 }
107 catch(const exception& error) {
108 ERROR("Invalid UPI " << i->PMTUPI << ' ' << setw(10) << i->DOMID << ' ' << setw(2) << i->PMTID << endl);
109 }
110 }
111 }
112
113 buffer.close();
114 }
115 catch(const exception& error) {
116 FATAL(error.what() << endl);
117 }
118}
string outputFile
#define ERROR(A)
Definition JMessage.hh:66
#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 PMT HVs.
Definition JPMTHV.hh:20
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).
Detector file.
Definition JHead.hh:227
Wrapper class for server name.
Definition JDB.hh:54
Template definition for getting table specific selector.