clas12root
Loading...
Searching...
No Matches
clas12databases.h
Go to the documentation of this file.
1/*
2 * File: clas12databases.h
3 * Author: dglazier
4 *
5 */
6
7#pragma once
8
9#include "rcdb_reader.h"
10#include "ccdb_reader.h"
11#include "qadb_reader.h"
12#include "TRcdbVals.h"
13
14#include <TString.h>
15#include <string>
16#include <TSystem.h>
17
18namespace clas12 {
19
20 using std::string;
21
22
24
25
26 //where to make database connections
27 static string _RcdbPath;
28 static string _CcdbPath;
29 //static string _QadbPath;//!
30
31 public:
32
35 clas12databases(const clas12databases &other);
37
38 void initDBs();
39
40 void notifyRun(int runNb);
41
42
43 //static void SetQADBConnection(const string& name);
44 static void SetCCDBLocalConnection(const string& name);
45 static void SetCCDBRemoteConnection();
46 static void SetRCDBLocalConnection(const string& name);
47 static void SetRCDBRemoteConnection();
48 static void SetRCDBRootConnection(const string& name);
49 static std::string FullPath(const string& fname);
50
51 ccdb_reader* cc() const{return _ccdb.get();}
52 rcdb_reader* rc()const {return _rcdb.get();}
53 qadb_reader* qa()const {return _qadb.get();}
54
55 void close();
56 void open();
57
58 const string& ccdbPath() const {return _myCcdbPath;}
59 const string& rcdbPath() const {return _myRcdbPath;}
60 //const string& qadbPath() const {return _myQadbPath;}
61
62
63
64 //qadb stuff
65 //I would rather this was not needed here
66 //but it is to make sure it gets passed to PROOF
67 void qadb_addQARequirement(string req){
68 if(_qadb.get()==nullptr){
69 throw std::runtime_error("clas12databases::qadb_addQARequirement - Need to call clas12reader::applyQA(cook) first");
70 }
71 _qadb->addQARequirement(req);_qadbReqsQA.push_back(req);
72 }
73 void qadb_setQARequirements( std::vector<string> reqs){_qadb->setQARequirements(reqs); _qadbReqsQA = reqs;};
74
75 void qadb_requireOkForAsymmetry(bool ok){_qadb->requireOkForAsymmetry(ok);_qadbReqOKAsymmetry=ok;};
76 void qadb_requireGolden(bool ok){_qadb->requireGolden(ok);_qadbReqGolden=ok;};
77
78 void setVerbose(short level=1){_verbose=level;}
79
80 void turnOffQADB(){_qadb.reset();}
81 void turnOffRCDB(){_rcdb.reset();}
82 void turnOffCCDB(){_ccdb.reset();}
83
84 void setPass(const string& pass){
85 _pass = pass;
86 initQA();
87 }
88 void initQA(){
89 std::cout<<"clas12databases::initQA pass = "<<_pass<<" run ="<<_runNb<<std::endl;
90 _qadb.reset( new qadb_reader{_pass,_runNb} );
91 qadb_requireOkForAsymmetry(_qadbReqOKAsymmetry);
92 qadb_requireGolden(_qadbReqGolden);
93 qadb_setQARequirements(_qadbReqsQA);
94 }
95 private:
96
97 //names for copying to ROOT file for selector
98 string _myRcdbPath;
99 string _myCcdbPath;
100 //string _myQadbPath;
101
102 string _pass;
103 int _runNb={0};
104
105 std::unique_ptr<rcdb_reader> _rcdb;
106 std::unique_ptr<ccdb_reader> _ccdb;
107 std::unique_ptr<qadb_reader> _qadb;
108
109
110 //qadb stuff
111 //I would rather this wwas not needed here
112 //but it is to make sure it gets passed to PROOF
113 std::vector<string> _qadbReqsQA;
114 bool _qadbReqOKAsymmetry{false};
115 bool _qadbReqGolden{false};
116
117 short _verbose={0};
118 };
119
120
121
122}
Definition ccdb_reader.h:19
void notifyRun(int runNb)
Definition clas12databases.cpp:99
void close()
Definition clas12databases.cpp:121
void turnOffQADB()
Definition clas12databases.h:80
const string & rcdbPath() const
Definition clas12databases.h:59
const string & ccdbPath() const
Definition clas12databases.h:58
static void SetRCDBRootConnection(const string &name)
Definition clas12databases.cpp:17
void qadb_setQARequirements(std::vector< string > reqs)
Definition clas12databases.h:73
static void SetRCDBRemoteConnection()
Definition clas12databases.cpp:16
rcdb_reader * rc() const
Definition clas12databases.h:52
void qadb_requireOkForAsymmetry(bool ok)
Definition clas12databases.h:75
void turnOffRCDB()
Definition clas12databases.h:81
static void SetRCDBLocalConnection(const string &name)
Definition clas12databases.cpp:15
static std::string FullPath(const string &fname)
Definition clas12databases.cpp:19
static void SetCCDBRemoteConnection()
Definition clas12databases.cpp:14
clas12databases()
Definition clas12databases.cpp:25
void qadb_requireGolden(bool ok)
Definition clas12databases.h:76
void open()
Definition clas12databases.cpp:126
void initQA()
Definition clas12databases.h:88
void turnOffCCDB()
Definition clas12databases.h:82
clas12databases & operator=(const clas12databases &other)
Definition clas12databases.cpp:38
void initDBs()
Definition clas12databases.cpp:75
ccdb_reader * cc() const
Definition clas12databases.h:51
void setPass(const string &pass)
Definition clas12databases.h:84
qadb_reader * qa() const
Definition clas12databases.h:53
static void SetCCDBLocalConnection(const string &name)
Definition clas12databases.cpp:13
void setVerbose(short level=1)
Definition clas12databases.h:78
void qadb_addQARequirement(string req)
Definition clas12databases.h:67
Definition qadb_reader.h:16
Definition rcdb_reader.h:25
Definition calextras.cpp:10