Jpp test-rotations-old
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.