clas12root
Loading...
Searching...
No Matches
qadb_reader.h
Go to the documentation of this file.
1#ifndef QADB_READER_H
2#define QADB_READER_H
3
4#ifdef CLAS_QADB
5#include "QADB.h"
6#endif
7
8#include <iostream>
9#include <string>
10#include <vector>
11#include <set>
12
13namespace clas12 {
14 using std::string;
15
17
18 public:
19 qadb_reader(const string& pass,int runNb=0);
20 //virtual ~qadb_reader()=default;
21
22
23
24 public:
25 bool isValid();
26
27 void addQARequirement(string req){_reqsQA.push_back(req);_masksAdded=false;};
28 void setQARequirements( std::vector<string> reqs){_reqsQA=reqs;_masksAdded=false;};
29
30 void requireOkForAsymmetry(bool ok){_reqOKAsymmetry=ok;};
31 void requireGolden(bool ok){_reqGolden=ok;};
32 bool passQAReqs(int evNb);
33
34 void setRun(int runNb){
35 if(runNb==11||runNb==10) //simulation no QADB
36 runNb=0;
37 _runNb=runNb;
38 }
39
40 void copySettings(const qadb_reader& other);
41
42
43 double getChargeForRunlist(std::set<int> Runs);
44
45 private:
46
47 qadb_reader()=default;
48
49
50 std::vector<string> _reqsQA;
51 bool _reqOKAsymmetry{false};
52 bool _reqGolden{false};
53 int _runNb{0};
54 bool _masksAdded{false};
55
56 //ifdefs must go last , or can lead to issues with PROOF
57 //i.e. refences are slighty shifted
58
59#ifdef CLAS_QADB
60 public:
61
62 int GetMask(){return _qa.GetMask();};
63 bool query(int runNb, int evNb){return _qa.Query(runNb,evNb);};
64 bool querybyFileNb(int runNb, int fileNb){return _qa.QueryByFilenum(runNb,fileNb);};
65 int getMaxFileNb(int runNb){return _qa.GetMaxFilenum(runNb);};
66 int getFileNb(){return _qa.GetFilenum();};
67 int getRunNb(){return _qa.GetRunnum();};
68 bool isGolden(int runNb, int evNb){return _qa.Golden(runNb,evNb);};
69 int getMinEventNb(){return _qa.GetEvnumMin();};
70 int getMaxEventNb(){return _qa.GetEvnumMax();};
71 int getDefect(int sector=0){return _qa.GetDefect(sector);};
72 bool hasDefect(const char * defectName, int sector){return _qa.HasDefect(defectName,sector);};
73 bool hasDefect(const char * defectName){return _qa.HasDefect(defectName);};
74 string getComment(){return _qa.GetComment();};
75 bool isOkForAsymmetry(int runNb, int evNb){return _qa.OkForAsymmetry(runNb,evNb);};
76
77 double getCharge(){return _qa.GetCharge();};
78 void resetAccCharge(){_qa.ResetAccumulatedCharge();};
79 void accumulateCharge(int evNb){if(evNb!=0){query(_runNb,evNb);_qa.AccumulateCharge();}};
80 void addMask(const char * defectName, bool maskBit){_qa.SetMaskBit(defectName,maskBit);};
81 void addAllMasks();
82 double getAccCharge(){return _qa.GetAccumulatedCharge();};
83
84 private:
85 QA::QADB _qa;
86
87#else
88 public:
89 double getAccCharge(){return 0.0;};
90 void accumulateCharge(int evNb){}
91#endif
92
93 private:
94 double _prevSumCharge=0.0;
95 public:
96 double getPreviousCharge() const {return _prevSumCharge;}
97 void setPreviousCharge(double val) {_prevSumCharge=val;}
98
99
100 };
101
102}
103#endif /* QADB_READER_H */
Definition qadb_reader.h:16
void requireGolden(bool ok)
Definition qadb_reader.h:31
void requireOkForAsymmetry(bool ok)
Definition qadb_reader.h:30
void copySettings(const qadb_reader &other)
Definition qadb_reader.cpp:112
void setRun(int runNb)
Definition qadb_reader.h:34
double getPreviousCharge() const
Definition qadb_reader.h:96
double getChargeForRunlist(std::set< int > Runs)
Definition qadb_reader.cpp:107
void setPreviousCharge(double val)
Definition qadb_reader.h:97
void addQARequirement(string req)
Definition qadb_reader.h:27
void setQARequirements(std::vector< string > reqs)
Definition qadb_reader.h:28
double getAccCharge()
Definition qadb_reader.h:89
void accumulateCharge(int evNb)
Definition qadb_reader.h:90
bool passQAReqs(int evNb)
Checks if an event passes all the QA requirements.
Definition qadb_reader.cpp:101
qadb_reader(const string &pass, int runNb=0)
Definition qadb_reader.cpp:93
Definition calextras.cpp:10