14 edm::LogVerbatim (
"rpcchamberquality") <<
"[RPCChamberQuality]: Constructor";
22 summaryDir_ = subsystemFolder +
"/"+ recHitTypeFolder +
"/"+ summaryFolder ;
23 prefixDir_ = subsystemFolder +
"/"+ recHitTypeFolder ;
37 edm::LogVerbatim (
"rpcchamberquality") <<
"[RPCChamberQuality]: Destructor ";
48 edm::LogVerbatim (
"rpcchamberquality") <<
"[RPCChamberQuality]: End Lumi Block";
52 edm::LogVerbatim (
"rpcchamberquality") <<
"[RPCChamberQuality]: Performing DQM client operation";
73 edm::LogVerbatim (
"rpcchamberquality") <<
"[RPCChamberQuality]: Performing DQM client operation";
88 std::stringstream histoName;
92 for (
int r = 0 ;
r < 3;
r++){
95 histoName<<
"RPCChamberQuality_"<<
regions_[
r];
96 me = ibooker.
book1D(histoName.str().c_str(), histoName.str().c_str(), 7, 0.5, 7.5);
103 histoName<<
"RPC_System_Quality_Overview";
104 me = ibooker.
book2D(histoName.str().c_str(), histoName.str().c_str(), 7, 0.5, 7.5, 3, 0.5, 3.5);
111 for(
int w=-2;
w<3;
w++){
114 histoName<<
"RPCChamberQuality_Roll_vs_Sector_Wheel"<<
w;
115 me = ibooker.
book2D(histoName.str().c_str(), histoName.str().c_str(), 12, 0.5, 12.5, 21, 0.5, 21.5);
121 histoName<<
"RPCChamberQuality_Distribution_Wheel"<<
w;
122 me = ibooker.
book1D(histoName.str().c_str(), histoName.str().c_str(), 7, 0.5, 7.5);
130 histoName<<
"RPCChamberQuality_Ring_vs_Segment_Disk"<<
d;
131 me = ibooker.
book2D(histoName.str().c_str(), histoName.str().c_str(), 36, 0.5, 36.5, 6, 0.5, 6.5);
136 histoName<<
"RPCChamberQuality_Distribution_Disk"<<
d;
137 me = ibooker.
book1D(histoName.str().c_str(), histoName.str().c_str(), 7, 0.5, 7.5);
147 std::stringstream meName;
162 for(
int r = 0 ;
r < 3 ;
r++) {
165 summary[
r] = igetter.
get(meName.str());
167 if( summary[
r] !=
nullptr ) summary[
r]->
Reset();
173 meName<<
"Roll_vs_Sector_Wheel"<<
wheel;
184 meName<<
"Ring_vs_Segment_Disk"<<
i;
192 meName<<
summaryDir_<<
"/RPC_System_Quality_Overview";
193 RpcOverview = igetter.
get(meName.str());
194 RpcOverview->
Reset();
197 for(
int r = 0 ;
r< 3;
r++) {
198 if (summary[
r] ==
nullptr )
continue;
200 if(entries == 0)
continue;
201 for (
int x = 1;
x <= 7;
x++) {
202 RpcOverview->setBinContent(
x,
r+1,(summary[
r]->getBinContent(
x)/entries));
227 std::stringstream meName;
230 meName<<
summaryDir_<<
"/RPCChamberQuality_"<<MESufix;
231 RCQ = igetter.
get(meName.str());
235 int pos = MESufix.find_last_of(
"_");
237 meName<<
summaryDir_<<
"/RPCChamberQuality_Distribution"<<MESufix.substr(pos);
238 RCQD = igetter.
get(meName.str());
239 if (RCQD) RCQD->
Reset();
244 HV = igetter.
get(meName.str());
248 LV = igetter.
get(meName.str());
251 meName <<
summaryDir_<<
"/DeadChannelFraction_"<<MESufix;
252 DEAD = igetter.
get(meName.str());
255 meName<<
summaryDir_<<
"/ClusterSizeIn1Bin_"<<MESufix;
256 CLS = igetter.
get(meName.str());
260 NoisySt = igetter.
get(meName.str());
263 meName<<
summaryDir_<<
"/NumberOfDigi_Mean_"<<MESufix;
264 MULT = igetter.
get(meName.str());
267 meName<<
summaryDir_<<
"/AsymmetryLeftRight_"<<MESufix;
268 Chip = igetter.
get(meName.str());
270 int xBinMax, yBinMax;
272 if (region != 0) xBinMax = 37;
275 for(
int x=1;
x<xBinMax;
x++) {
280 else if(
x==9 ||
x==11) yBinMax=16;
283 for(
int y=1;
y<yBinMax;
y++) {
288 float noisystrips = 0;
293 if(HV) hv = (
int)HV ->getBinContent(
x,
y);
294 if(LV) lv = (
int)LV ->getBinContent(
x,
y);
296 if( hv!=1 || lv!=1) {
299 if(DEAD) dead= DEAD -> getBinContent(
x,
y);
302 }
else if (0.33<=dead && dead<0.80 ){
305 if(CLS ) firstbin = CLS -> getBinContent(
x,
y);
306 if(firstbin >= 0.88) {
309 if(NoisySt) noisystrips = NoisySt -> getBinContent(
x,
y);
310 if (noisystrips > 0){
313 if(MULT) mult = MULT -> getBinContent(
x,
y);
328 if (RCQ) RCQ -> setBinContent(
x,
y, chamberState);
329 if (RCQD) RCQD ->
Fill(chamberState);
330 if (quality) quality->
Fill(chamberState);
T getUntrackedParameter(std::string const &, T const &) const
math::XYZTLorentzVectorD LV
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)
void labelXAxisSegment(MonitorElement *myMe)
void labelYAxisRoll(MonitorElement *myMe, int region, int ring, bool useRollInfo)
static const std::string xLabels_[7]
void fillMonitorElements(DQMStore::IGetter &)
void labelYAxisRing(MonitorElement *myMe, int numberOfRings, bool useRollInfo)
void dqmEndLuminosityBlock(DQMStore::IBooker &, DQMStore::IGetter &, edm::LuminosityBlock const &, edm::EventSetup const &) override
void setCurrentFolder(std::string const &fullpath)
RPCChamberQuality(const edm::ParameterSet &ps)
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
MonitorElement * book1D(Args &&...args)
void Reset()
reset ME (ie. contents, errors, etc)
void labelXAxisSector(MonitorElement *myMe)
MonitorElement * get(std::string const &path)
void performeClientOperation(std::string, int, MonitorElement *, DQMStore::IGetter &)
void dqmEndJob(DQMStore::IBooker &, DQMStore::IGetter &) override
~RPCChamberQuality() override
double getEntries() const
get # of entries
MonitorElement * book2D(Args &&...args)
MonitorElement * RpcEvents
static const std::string regions_[3]
double getBinContent(int binx) const
get content of bin (1-D)
void myBooker(DQMStore::IBooker &)