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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
|
#ifndef SiStripMonitorSummary_SiStripBaseCondObjDQM_h
#define SiStripMonitorSummary_SiStripBaseCondObjDQM_h
#include "FWCore/Framework/interface/ESWatcher.h"
#include "FWCore/Framework/interface/EventSetup.h"
#include "FWCore/MessageLogger/interface/MessageLogger.h"
#include "FWCore/ParameterSet/interface/ParameterSet.h"
#include "FWCore/ServiceRegistry/interface/Service.h"
#include "DataFormats/DetId/interface/DetId.h"
#include "DataFormats/SiStripDetId/interface/SiStripDetId.h"
#include "DataFormats/TrackerCommon/interface/TrackerTopology.h"
#include "DQM/SiStripCommon/interface/SiStripFolderOrganizer.h"
#include "DQM/SiStripCommon/interface/SiStripHistoId.h"
#include "DQMServices/Core/interface/DQMStore.h"
#include "CalibFormats/SiStripObjects/interface/SiStripDetInfo.h"
#include "CommonTools/TrackerMap/interface/TrackerMap.h"
#include "DQM/SiStripCommon/interface/TkHistoMap.h" /// ADDITON OF TK_HISTO_MAP
#include "CommonTools/UtilAlgos/interface/DetIdSelector.h"
#include <map>
#include <sstream>
#include <string>
#include <vector>
class TrackerTopology;
class SiStripBaseCondObjDQM {
public:
typedef dqm::legacy::DQMStore DQMStore;
typedef dqm::legacy::MonitorElement MonitorElement;
SiStripBaseCondObjDQM(edm::RunNumber_t iRun,
edm::ParameterSet const &hPSet,
edm::ParameterSet const &fPSet,
const TrackerTopology *tTopo);
virtual ~SiStripBaseCondObjDQM() {}
virtual void getActiveDetIds(const edm::EventSetup &eSetup) = 0;
void analysis(const edm::EventSetup &eSetup_);
void analysisOnDemand(const edm::EventSetup &eSetup_, uint32_t detIdOnDemand);
void analysisOnDemand(const edm::EventSetup &eSetup_, const std::vector<uint32_t> &detIdsOnDemand);
void analysisOnDemand(const edm::EventSetup &eSetup_,
std::string requestedSubDetector,
uint32_t requestedSide,
uint32_t requestedLayer);
void selectModules(std::vector<uint32_t> &detIds_);
// virtual void fillTopSummaryMEs()=0;
virtual void getConditionObject(const edm::EventSetup &eSetup_) = 0;
virtual bool checkChanged(const edm::EventSetup &eSetup) = 0;
virtual void end();
protected:
struct ModMEs {
ModMEs()
: ProfileDistr(nullptr),
CumulDistr(nullptr),
SummaryOfProfileDistr(nullptr),
SummaryOfCumulDistr(nullptr),
SummaryDistr(nullptr) {
;
}
MonitorElement *ProfileDistr;
MonitorElement *CumulDistr;
MonitorElement *SummaryOfProfileDistr;
MonitorElement *SummaryOfCumulDistr;
MonitorElement *SummaryDistr;
};
void getModMEs(ModMEs &CondObj_ME, const uint32_t &detId_);
void getSummaryMEs(ModMEs &CondObj_ME, const uint32_t &detId_);
std::pair<std::string, uint32_t> getLayerNameAndId(const uint32_t &detId_);
std::pair<std::string, uint32_t> getStringNameAndId(const uint32_t &detId_);
std::vector<uint32_t> GetSameLayerDetId(const std::vector<uint32_t> &activeDetIds, uint32_t selDetId);
virtual void fillModMEs(const std::vector<uint32_t> &selectedDetIds);
virtual void fillSummaryMEs(const std::vector<uint32_t> &selectedDetIds);
virtual void fillMEsForDet(const ModMEs &selModME_, uint32_t selDetId_) = 0;
virtual void fillMEsForLayer(
/*std::map<uint32_t, ModMEs> selModMEsMap_, */ uint32_t selDetId_) = 0;
void fillTkMap(const uint32_t &detid, const float &value);
SiStripDetInfo detInfo_;
edm::ParameterSet hPSet_;
edm::ParameterSet fPSet_;
bool Mod_On_;
bool HistoMaps_On_;
bool SummaryOnLayerLevel_On_;
bool SummaryOnStringLevel_On_;
bool GrandSummary_On_;
double minValue, maxValue;
std::vector<int> tkMapScaler;
// bool ActiveDetIds_On_;
std::string CondObj_fillId_;
std::string CondObj_name_;
std::map<uint32_t, ModMEs> ModMEsMap_;
std::map<uint32_t, ModMEs> SummaryMEsMap_;
std::vector<uint32_t> activeDetIds;
std::vector<uint32_t> all_DetIds;
std::unique_ptr<TkHistoMap> Tk_HM_;
std::unique_ptr<TkHistoMap> Tk_HM_H;
std::unique_ptr<TkHistoMap> Tk_HM_L;
TrackerMap *tkMap;
const TrackerTopology *tTopo_;
private:
void bookProfileMEs(SiStripBaseCondObjDQM::ModMEs &CondObj_ME, const uint32_t &detId_);
void bookCumulMEs(SiStripBaseCondObjDQM::ModMEs &CondObj_ME, const uint32_t &detId_);
void bookSummaryProfileMEs(SiStripBaseCondObjDQM::ModMEs &CondObj_ME, const uint32_t &detId_);
void bookSummaryCumulMEs(SiStripBaseCondObjDQM::ModMEs &CondObj_ME, const uint32_t &detId_);
void bookSummaryMEs(SiStripBaseCondObjDQM::ModMEs &CondObj_ME, const uint32_t &detId_);
void bookTkMap(const std::string &TkMapname);
void saveTkMap(const std::string &TkMapname, double minValue, double maxValue);
std::vector<uint32_t> ModulesToBeExcluded_;
std::vector<uint32_t> ModulesToBeIncluded_;
std::vector<std::string> SubDetectorsToBeExcluded_;
std::string condDataMonitoringMode_;
SiStripHistoId hidmanager;
SiStripFolderOrganizer folder_organizer;
DQMStore *dqmStore_;
edm::RunNumber_t runNumber_;
};
template <typename CondObj, typename Record>
class SiStripBaseCondObjDQMGet : public SiStripBaseCondObjDQM {
public:
using tokentype = typename edm::ESGetToken<CondObj, Record>;
SiStripBaseCondObjDQMGet(tokentype token,
edm::RunNumber_t iRun,
edm::ParameterSet const &hPSet,
edm::ParameterSet const &fPSet,
const TrackerTopology *tTopo)
: SiStripBaseCondObjDQM{iRun, hPSet, fPSet, tTopo}, token_{token} {}
~SiStripBaseCondObjDQMGet() override {}
void getConditionObject(const edm::EventSetup &eSetup) override { condObj_ = &eSetup.getData(token_); }
bool checkChanged(const edm::EventSetup &eSetup) override { return watcher_.check(eSetup); }
protected:
const CondObj *condObj_;
private:
tokentype token_;
edm::ESWatcher<Record> watcher_;
};
#endif
|