11 "Good",
"OFF",
"Nois.St",
"Nois.Ch",
"Part.Dead",
"Dead",
"Bad.Shape"};
23 summaryDir_ = subsystemFolder +
"/" + recHitTypeFolder +
"/" + summaryFolder;
24 prefixDir_ = subsystemFolder +
"/" + recHitTypeFolder;
45 edm::LogVerbatim(
"rpcchamberquality") <<
"[RPCChamberQuality]: End Lumi Block";
48 edm::LogVerbatim(
"rpcchamberquality") <<
"[RPCChamberQuality]: Performing DQM client operation";
66 edm::LogVerbatim(
"rpcchamberquality") <<
"[RPCChamberQuality]: Performing DQM client operation";
86 for (
int r = 0;
r < 3;
r++) {
88 histoName <<
"RPCChamberQuality_" <<
regions_[
r];
89 me = ibooker.
book1D(histoName.str().c_str(), histoName.str().c_str(), 7, 0.5, 7.5);
91 for (
int x = 1;
x < 8;
x++) {
97 histoName <<
"RPC_System_Quality_Overview";
98 me = ibooker.
book2D(histoName.str().c_str(), histoName.str().c_str(), 7, 0.5, 7.5, 3, 0.5, 3.5);
103 for (
int x = 1;
x < 8;
x++) {
107 for (
int w = -2;
w < 3;
w++) {
110 histoName <<
"RPCChamberQuality_Roll_vs_Sector_Wheel" <<
w;
111 me = ibooker.
book2D(histoName.str().c_str(), histoName.str().c_str(), 12, 0.5, 12.5, 21, 0.5, 21.5);
117 histoName <<
"RPCChamberQuality_Distribution_Wheel" <<
w;
118 me = ibooker.
book1D(histoName.str().c_str(), histoName.str().c_str(), 7, 0.5, 7.5);
120 for (
int x = 1;
x < 8;
x++) {
129 histoName <<
"RPCChamberQuality_Ring_vs_Segment_Disk" <<
d;
130 me = ibooker.
book2D(histoName.str().c_str(), histoName.str().c_str(), 36, 0.5, 36.5, 6, 0.5, 6.5);
135 histoName <<
"RPCChamberQuality_Distribution_Disk" <<
d;
136 me = ibooker.
book1D(histoName.str().c_str(), histoName.str().c_str(), 7, 0.5, 7.5);
138 for (
int x = 1;
x < 8;
x++) {
145 std::stringstream meName;
160 for (
int r = 0;
r < 3;
r++) {
163 summary[
r] = igetter.
get(meName.str());
165 if (summary[
r] !=
nullptr)
172 meName <<
"Roll_vs_Sector_Wheel" <<
wheel;
183 meName <<
"Ring_vs_Segment_Disk" <<
i;
193 meName <<
summaryDir_ <<
"/RPC_System_Quality_Overview";
194 RpcOverview = igetter.
get(meName.str());
195 RpcOverview->
Reset();
198 for (
int r = 0;
r < 3;
r++) {
199 if (summary[
r] ==
nullptr)
204 for (
int x = 1;
x <= 7;
x++) {
205 RpcOverview->setBinContent(
x,
r + 1, (summary[
r]->getBinContent(
x) / entries));
226 std::stringstream meName;
229 meName <<
summaryDir_ <<
"/RPCChamberQuality_" << MESufix;
230 RCQ = igetter.
get(meName.str());
233 int pos = MESufix.find_last_of(
"_");
235 meName <<
summaryDir_ <<
"/RPCChamberQuality_Distribution" << MESufix.substr(pos);
236 RCQD = igetter.
get(meName.str());
243 HV = igetter.
get(meName.str());
247 LV = igetter.
get(meName.str());
250 meName <<
summaryDir_ <<
"/DeadChannelFraction_" << MESufix;
251 DEAD = igetter.
get(meName.str());
254 meName <<
summaryDir_ <<
"/ClusterSizeIn1Bin_" << MESufix;
255 CLS = igetter.
get(meName.str());
258 meName <<
summaryDir_ <<
"/RPCNoisyStrips_" << MESufix;
259 NoisySt = igetter.
get(meName.str());
262 meName <<
summaryDir_ <<
"/NumberOfDigi_Mean_" << MESufix;
263 MULT = igetter.
get(meName.str());
266 meName <<
summaryDir_ <<
"/AsymmetryLeftRight_" << MESufix;
267 Chip = igetter.
get(meName.str());
269 int xBinMax, yBinMax;
276 for (
int x = 1;
x < xBinMax;
x++) {
282 else if (
x == 9 ||
x == 11)
287 for (
int y = 1;
y < yBinMax;
y++) {
292 float noisystrips = 0;
302 if (hv != 1 || lv != 1) {
309 }
else if (0.33 <= dead && dead < 0.80) {
314 if (firstbin >= 0.88) {
319 if (noisystrips > 0) {
342 RCQD->
Fill(chamberState);
344 quality->
Fill(chamberState);
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX)
T getUntrackedParameter(std::string const &, T const &) const
math::XYZTLorentzVectorD LV
void setCurrentFolder(std::string const &fullpath)
void labelXAxisSegment(MonitorElement *myMe)
void labelYAxisRoll(MonitorElement *myMe, int region, int ring, bool useRollInfo)
static const std::string xLabels_[7]
void fillMonitorElements(DQMStore::IGetter &)
virtual void Reset()
reset ME (ie. contents, errors, etc)
void labelYAxisRing(MonitorElement *myMe, int numberOfRings, bool useRollInfo)
void dqmEndLuminosityBlock(DQMStore::IBooker &, DQMStore::IGetter &, edm::LuminosityBlock const &, edm::EventSetup const &) override
RPCChamberQuality(const edm::ParameterSet &ps)
virtual double getEntries() const
get # of entries
virtual void setBinLabel(int bin, const std::string &label, int axis=1)
set bin label for x, y or z axis (axis=1, 2, 3 respectively)
virtual double getBinContent(int binx) const
get content of bin (1-D)
void labelXAxisSector(MonitorElement *myMe)
void performeClientOperation(std::string, int, MonitorElement *, DQMStore::IGetter &)
void dqmEndJob(DQMStore::IBooker &, DQMStore::IGetter &) override
~RPCChamberQuality() override
virtual void setBinContent(int binx, double content)
set content of bin (1-D)
MonitorElement * RpcEvents
static const std::string regions_[3]
MonitorElement * book2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY)
MonitorElement * get(std::string const &path)
void myBooker(DQMStore::IBooker &)