1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
|
#ifndef _SiStripQualityChecker_h_
#define _SiStripQualityChecker_h_
#include "DQMServices/Core/interface/DQMStore.h"
#include "FWCore/ParameterSet/interface/ParameterSet.h"
#include <iostream>
#include <fstream>
#include <sstream>
#include <map>
#include <vector>
#include <string>
class TkDetMap;
class TrackerTopology;
class SiStripDetCabling;
class SiStripQualityChecker {
public:
typedef dqm::harvesting::MonitorElement MonitorElement;
typedef dqm::harvesting::DQMStore DQMStore;
SiStripQualityChecker(edm::ParameterSet const& ps);
~SiStripQualityChecker();
void bookStatus(DQMStore& dqm_store);
void resetStatus();
void fillDummyStatus();
void fillStatus(DQMStore& dqm_store,
const SiStripDetCabling* cabling,
const TkDetMap* tkDetMap,
const TrackerTopology* tTopo);
void fillStatusAtLumi(DQMStore& dqm_store);
void printStatusReport();
void fillFaultyModuleStatus(DQMStore& dqm_store, const TrackerTopology* tTopo);
private:
struct SubDetMEs {
MonitorElement* DetFraction;
MonitorElement* SToNFlag;
MonitorElement* SummaryFlag;
std::string detectorTag;
};
void fillDetectorStatus(DQMStore& dqm_store, const SiStripDetCabling* cabling);
void fillSubDetStatus(
DQMStore& dqm_store, const SiStripDetCabling* cabling, SubDetMEs& mes, unsigned int xbin, float& gflag);
void getModuleStatus(DQMStore& dqm_store,
std::vector<MonitorElement*>& layer_mes,
int& errdet,
int& errdet_hasBadChan,
int& errdet_hasTooManyDigis,
int& errdet_hasTooManyClu,
int& errdet_hasExclFed,
int& errdet_hasDcsErr);
void fillStatusHistogram(MonitorElement const*, int xbin, int ybin, float val);
void initialiseBadModuleList();
void fillDetectorStatusAtLumi(DQMStore& dqm_store);
std::map<std::string, SubDetMEs> SubDetMEsMap;
std::map<std::string, std::string> SubDetFolderMap;
MonitorElement* DetFractionReportMap{nullptr};
MonitorElement* DetFractionReportMap_hasBadChan{nullptr};
MonitorElement* DetFractionReportMap_hasTooManyDigis{nullptr};
MonitorElement* DetFractionReportMap_hasTooManyClu{nullptr};
MonitorElement* DetFractionReportMap_hasExclFed{nullptr};
MonitorElement* DetFractionReportMap_hasDcsErr{nullptr};
MonitorElement* SToNReportMap{nullptr};
MonitorElement* SummaryReportMap{nullptr};
MonitorElement* SummaryReportGlobal{nullptr};
MonitorElement* TrackSummaryReportMap{nullptr};
MonitorElement* TrackSummaryReportGlobal{nullptr};
std::map<uint32_t, uint16_t> badModuleList;
edm::ParameterSet const pSet_;
bool bookedStripStatus_{false};
const TkDetMap* tkDetMap_;
};
#endif
|