CMS 3D CMS Logo

SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.cc
Go to the documentation of this file.
2 
11 
13  const edm::ParameterSet& iConfig, const TrackerTopology* theTopo)
14  : ratio_(1.5),
15  lowoccupancy_(0),
16  highoccupancy_(100),
17  absolutelow_(0),
18  numberiterations_(2),
19  Nevents_(0),
20  absolute_occupancy_(0),
21  OutFileName_("Occupancy.root"),
22  DQMOutfileName_("DQMOutput"),
23  UseInputDB_(iConfig.getUntrackedParameter<bool>("UseInputDB", false)),
24  tTopo(theTopo) {
26 }
27 
29  LogTrace("SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy")
30  << "[SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::~"
31  "SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy] "
32  << std::endl;
33 }
34 
36  SiStripQuality* siStripQuality, HistoMap& DM, edm::ESHandle<SiStripQuality>& inSiStripQuality) {
37  LogTrace("SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy")
38  << "[SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::extractBadAPVs] " << std::endl;
39 
40  if (WriteOutputFile_ == true) {
41  f = new TFile(OutFileName_.c_str(), "RECREATE");
42  f->cd();
43 
44  apvtree = new TTree("moduleOccupancy", "tree");
45 
46  apvtree->Branch("DetRawId", &detrawid, "DetRawId/I");
47  apvtree->Branch("SubDetId", &subdetid, "SubDetId/I");
48  apvtree->Branch("Layer_Ring", &layer_ring, "Layer_Ring/I");
49  apvtree->Branch("Disc", &disc, "Disc/I");
50  apvtree->Branch("IsBack", &isback, "IsBack/I");
51  apvtree->Branch("IsExternalString", &isexternalstring, "IsExternalString/I");
52  apvtree->Branch("IsZMinusSide", &iszminusside, "IsZMinusSide/I");
53  apvtree->Branch("RodStringPetal", &rodstringpetal, "RodStringPetal/I");
54  apvtree->Branch("IsStereo", &isstereo, "IsStereo/I");
55  apvtree->Branch("ModuleNumber", &module_number, "ModuleNumber/I");
56  apvtree->Branch("NumberOfStrips", &number_strips, "NumberOfStrips/I");
57  apvtree->Branch("APVGlobalPositionX", &global_position_x, "APVGlobalPositionX/F");
58  apvtree->Branch("APVGlobalPositionY", &global_position_y, "APVGlobalPositionY/F");
59  apvtree->Branch("APVGlobalPositionZ", &global_position_z, "APVGlobalPositionZ/F");
60  apvtree->Branch("APVNumber", &apv_number, "APVNumber/I");
61  apvtree->Branch("APVAbsoluteOccupancy", &apvAbsoluteOccupancy, "apvAbsoluteOccupancy/I");
62  apvtree->Branch("APVMedianOccupancy", &apvMedianOccupancy, "apvMedianOccupancy/D");
63  apvtree->Branch("IsBad", &isBad, "IsBad/I");
64 
65  striptree = new TTree("stripOccupancy", "tree");
66 
67  striptree->Branch("DetRawId", &detrawid, "DetRawId/I");
68  striptree->Branch("SubDetId", &subdetid, "SubDetId/I");
69  striptree->Branch("Layer_Ring", &layer_ring, "Layer_Ring/I");
70  striptree->Branch("Disc", &disc, "Disc/I");
71  striptree->Branch("IsBack", &isback, "IsBack/I");
72  striptree->Branch("IsExternalString", &isexternalstring, "IsExternalString/I");
73  striptree->Branch("IsZMinusSide", &iszminusside, "IsZMinusSide/I");
74  striptree->Branch("RodStringPetal", &rodstringpetal, "RodStringPetal/I");
75  striptree->Branch("IsStereo", &isstereo, "IsStereo/I");
76  striptree->Branch("ModulePosition", &module_number, "ModulePosition/I");
77  striptree->Branch("NumberOfStrips", &number_strips, "NumberOfStrips/I");
78  striptree->Branch("StripNumber", &strip_number, "StripNumber/I");
79  striptree->Branch("APVChannel", &apv_channel, "APVChannel/I");
80  striptree->Branch("StripGlobalPositionX", &strip_global_position_x, "StripGlobalPositionX/F");
81  striptree->Branch("StripGlobalPositionY", &strip_global_position_y, "StripGlobalPositionY/F");
82  striptree->Branch("StripGlobalPositionZ", &strip_global_position_z, "StripGlobalPositionZ/F");
83  striptree->Branch("IsHot", &isHot, "IsHot/I");
84  striptree->Branch("HotStripsPerAPV", &hotStripsPerAPV, "HotStripsPerAPV/I");
85  striptree->Branch("HotStripsPerModule", &hotStripsPerModule, "HotStripsPerModule/I");
86  striptree->Branch("StripOccupancy", &singleStripOccupancy, "StripOccupancy/D");
87  striptree->Branch("StripHits", &stripHits, "StripHits/I");
88  striptree->Branch("PoissonProb", &poissonProb, "PoissonProb/D");
89  striptree->Branch("MedianAPVHits", &medianAPVHits, "MedianAPVHits/D");
90  striptree->Branch("AvgAPVHits", &avgAPVHits, "AvgAPVHits/D");
91  }
92 
93  HistoMap::iterator it = DM.begin();
94  HistoMap::iterator itEnd = DM.end();
95  std::vector<unsigned int> badStripList;
96  uint32_t detid;
97  for (; it != itEnd; ++it) {
98  Apv APV;
99 
100  for (int apv = 0; apv < 6; apv++) {
101  APV.apvMedian[apv] = 0;
102  APV.apvabsoluteOccupancy[apv] = 0;
103  APV.NEntries[apv] = 0;
104  APV.NEmptyBins[apv] = 0;
105 
106  for (int strip = 0; strip < 128; strip++) {
107  stripOccupancy[apv][strip] = 0;
108  stripWeight[apv][strip] = 0;
109  }
110  }
111 
112  number_strips = (int)((it->second.get())->GetNbinsX());
113  number_apvs = number_strips / 128;
114  APV.numberApvs = number_apvs;
115 
116  for (int apv = 0; apv < number_apvs; apv++) {
117  APV.th1f[apv] = new TH1F("tmp", "tmp", 128, 0.5, 128.5);
118  int NumberEntriesPerAPV = 0;
119 
120  for (int strip = 0; strip < 128; strip++) {
121  stripOccupancy[apv][strip] =
122  (it->second.get())->GetBinContent((apv * 128) + strip + 1); // Remember: Bin=0 is underflow bin!
123  stripWeight[apv][strip] = 1;
124  APV.apvabsoluteOccupancy[apv] +=
125  (it->second.get())->GetBinContent((apv * 128) + strip + 1); // Remember: Bin=0 is underflow bin!
126  APV.th1f[apv]->SetBinContent(strip + 1, (it->second.get())->GetBinContent((apv * 128) + strip + 1));
127  NumberEntriesPerAPV += (int)(it->second.get())->GetBinContent((apv * 128) + strip + 1);
128  }
129 
130  APV.th1f[apv]->SetEntries(NumberEntriesPerAPV);
131  APV.NEntries[apv] = (int)APV.th1f[apv]->GetEntries();
132  }
133 
134  for (int apv = 0; apv < number_apvs; apv++) {
135  APV.apvMedian[apv] = TMath::Median(128, stripOccupancy[apv], stripWeight[apv]);
136  }
137 
138  detid = it->first;
139  DetId detectorId = DetId(detid);
140 
141  if (edm::isDebugEnabled())
142  LogTrace("SiStripBadAPV") << "Analyzing detid " << detid << std::endl;
143 
144  detrawid = detid;
145  APV.detrawId = detrawid;
146  subdetid = detectorId.subdetId();
147 
148  switch (detectorId.subdetId()) {
152  APV.modulePosition = module_number;
153 
154  if (layer_ring == 1)
155  medianValues_TIB_Layer1.push_back(APV);
156  else if (layer_ring == 2)
157  medianValues_TIB_Layer2.push_back(APV);
158  else if (layer_ring == 3)
159  medianValues_TIB_Layer3.push_back(APV);
160  else if (layer_ring == 4)
161  medianValues_TIB_Layer4.push_back(APV);
162  break;
163 
167  APV.modulePosition = layer_ring;
168 
170  iszminusside = 1;
171  else
172  iszminusside = 0;
173 
174  if (iszminusside == 0) {
175  if (disc == 1)
176  medianValues_TIDPlus_Disc1.push_back(APV);
177  else if (disc == 2)
178  medianValues_TIDPlus_Disc2.push_back(APV);
179  else if (disc == 3)
180  medianValues_TIDPlus_Disc3.push_back(APV);
181  } else if (iszminusside == 1) {
182  if (disc == 1)
183  medianValues_TIDMinus_Disc1.push_back(APV);
184  else if (disc == 2)
185  medianValues_TIDMinus_Disc2.push_back(APV);
186  else if (disc == 3)
187  medianValues_TIDMinus_Disc3.push_back(APV);
188  }
189  break;
190 
194  APV.modulePosition = module_number;
195 
196  if (layer_ring == 1)
197  medianValues_TOB_Layer1.push_back(APV);
198  else if (layer_ring == 2)
199  medianValues_TOB_Layer2.push_back(APV);
200  else if (layer_ring == 3)
201  medianValues_TOB_Layer3.push_back(APV);
202  else if (layer_ring == 4)
203  medianValues_TOB_Layer4.push_back(APV);
204  else if (layer_ring == 5)
205  medianValues_TOB_Layer5.push_back(APV);
206  else if (layer_ring == 6)
207  medianValues_TOB_Layer6.push_back(APV);
208  break;
209 
213  APV.modulePosition = layer_ring;
214 
216  iszminusside = 1;
217  else
218  iszminusside = 0;
219 
220  if (iszminusside == 0) {
221  if (disc == 1)
222  medianValues_TECPlus_Disc1.push_back(APV);
223  else if (disc == 2)
224  medianValues_TECPlus_Disc2.push_back(APV);
225  else if (disc == 3)
226  medianValues_TECPlus_Disc3.push_back(APV);
227  else if (disc == 4)
228  medianValues_TECPlus_Disc4.push_back(APV);
229  else if (disc == 5)
230  medianValues_TECPlus_Disc5.push_back(APV);
231  else if (disc == 6)
232  medianValues_TECPlus_Disc6.push_back(APV);
233  else if (disc == 7)
234  medianValues_TECPlus_Disc7.push_back(APV);
235  else if (disc == 8)
236  medianValues_TECPlus_Disc8.push_back(APV);
237  else if (disc == 9)
238  medianValues_TECPlus_Disc9.push_back(APV);
239  } else if (iszminusside == 1) {
240  if (disc == 1)
241  medianValues_TECMinus_Disc1.push_back(APV);
242  else if (disc == 2)
243  medianValues_TECMinus_Disc2.push_back(APV);
244  else if (disc == 3)
245  medianValues_TECMinus_Disc3.push_back(APV);
246  else if (disc == 4)
247  medianValues_TECMinus_Disc4.push_back(APV);
248  else if (disc == 5)
249  medianValues_TECMinus_Disc5.push_back(APV);
250  else if (disc == 6)
251  medianValues_TECMinus_Disc6.push_back(APV);
252  else if (disc == 7)
253  medianValues_TECMinus_Disc7.push_back(APV);
254  else if (disc == 8)
255  medianValues_TECMinus_Disc8.push_back(APV);
256  else if (disc == 9)
257  medianValues_TECMinus_Disc9.push_back(APV);
258  }
259  break;
260 
261  default:
262  std::cout << "### Detector does not belong to TIB, TID, TOB or TEC !? ###" << std::endl;
263  std::cout << "### DetRawId: " << detrawid << " ###" << std::endl;
264  }
265 
266  } // end loop on modules
267 
268  // Calculate Mean and RMS for each Layer
273 
280 
287 
297 
307 
308  pQuality = siStripQuality;
309  badStripList.clear();
310 
311  // Initialize the DQM output histograms
313 
314  // Analyze the Occupancy for both APVs and Strips
315  AnalyzeOccupancy(siStripQuality, medianValues_TIB_Layer1, MeanAndRms_TIB_Layer1, badStripList, inSiStripQuality);
316  AnalyzeOccupancy(siStripQuality, medianValues_TIB_Layer2, MeanAndRms_TIB_Layer2, badStripList, inSiStripQuality);
317  AnalyzeOccupancy(siStripQuality, medianValues_TIB_Layer3, MeanAndRms_TIB_Layer3, badStripList, inSiStripQuality);
318  AnalyzeOccupancy(siStripQuality, medianValues_TIB_Layer4, MeanAndRms_TIB_Layer4, badStripList, inSiStripQuality);
319 
320  AnalyzeOccupancy(siStripQuality, medianValues_TOB_Layer1, MeanAndRms_TOB_Layer1, badStripList, inSiStripQuality);
321  AnalyzeOccupancy(siStripQuality, medianValues_TOB_Layer2, MeanAndRms_TOB_Layer2, badStripList, inSiStripQuality);
322  AnalyzeOccupancy(siStripQuality, medianValues_TOB_Layer3, MeanAndRms_TOB_Layer3, badStripList, inSiStripQuality);
323  AnalyzeOccupancy(siStripQuality, medianValues_TOB_Layer4, MeanAndRms_TOB_Layer4, badStripList, inSiStripQuality);
324  AnalyzeOccupancy(siStripQuality, medianValues_TOB_Layer5, MeanAndRms_TOB_Layer5, badStripList, inSiStripQuality);
325  AnalyzeOccupancy(siStripQuality, medianValues_TOB_Layer6, MeanAndRms_TOB_Layer6, badStripList, inSiStripQuality);
326 
328  siStripQuality, medianValues_TIDPlus_Disc1, MeanAndRms_TIDPlus_Disc1, badStripList, inSiStripQuality);
330  siStripQuality, medianValues_TIDPlus_Disc2, MeanAndRms_TIDPlus_Disc2, badStripList, inSiStripQuality);
332  siStripQuality, medianValues_TIDPlus_Disc3, MeanAndRms_TIDPlus_Disc3, badStripList, inSiStripQuality);
334  siStripQuality, medianValues_TIDMinus_Disc1, MeanAndRms_TIDMinus_Disc1, badStripList, inSiStripQuality);
336  siStripQuality, medianValues_TIDMinus_Disc2, MeanAndRms_TIDMinus_Disc2, badStripList, inSiStripQuality);
338  siStripQuality, medianValues_TIDMinus_Disc3, MeanAndRms_TIDMinus_Disc3, badStripList, inSiStripQuality);
339 
341  siStripQuality, medianValues_TECPlus_Disc1, MeanAndRms_TECPlus_Disc1, badStripList, inSiStripQuality);
343  siStripQuality, medianValues_TECPlus_Disc2, MeanAndRms_TECPlus_Disc2, badStripList, inSiStripQuality);
345  siStripQuality, medianValues_TECPlus_Disc3, MeanAndRms_TECPlus_Disc3, badStripList, inSiStripQuality);
347  siStripQuality, medianValues_TECPlus_Disc4, MeanAndRms_TECPlus_Disc4, badStripList, inSiStripQuality);
349  siStripQuality, medianValues_TECPlus_Disc5, MeanAndRms_TECPlus_Disc5, badStripList, inSiStripQuality);
351  siStripQuality, medianValues_TECPlus_Disc6, MeanAndRms_TECPlus_Disc6, badStripList, inSiStripQuality);
353  siStripQuality, medianValues_TECPlus_Disc7, MeanAndRms_TECPlus_Disc7, badStripList, inSiStripQuality);
355  siStripQuality, medianValues_TECPlus_Disc8, MeanAndRms_TECPlus_Disc8, badStripList, inSiStripQuality);
357  siStripQuality, medianValues_TECPlus_Disc9, MeanAndRms_TECPlus_Disc9, badStripList, inSiStripQuality);
358 
360  siStripQuality, medianValues_TECMinus_Disc1, MeanAndRms_TECMinus_Disc1, badStripList, inSiStripQuality);
362  siStripQuality, medianValues_TECMinus_Disc2, MeanAndRms_TECMinus_Disc2, badStripList, inSiStripQuality);
364  siStripQuality, medianValues_TECMinus_Disc3, MeanAndRms_TECMinus_Disc3, badStripList, inSiStripQuality);
366  siStripQuality, medianValues_TECMinus_Disc4, MeanAndRms_TECMinus_Disc4, badStripList, inSiStripQuality);
368  siStripQuality, medianValues_TECMinus_Disc5, MeanAndRms_TECMinus_Disc5, badStripList, inSiStripQuality);
370  siStripQuality, medianValues_TECMinus_Disc6, MeanAndRms_TECMinus_Disc6, badStripList, inSiStripQuality);
372  siStripQuality, medianValues_TECMinus_Disc7, MeanAndRms_TECMinus_Disc7, badStripList, inSiStripQuality);
374  siStripQuality, medianValues_TECMinus_Disc8, MeanAndRms_TECMinus_Disc8, badStripList, inSiStripQuality);
376  siStripQuality, medianValues_TECMinus_Disc9, MeanAndRms_TECMinus_Disc9, badStripList, inSiStripQuality);
377 
378  siStripQuality->fillBadComponents();
379 
380  // Fill DQM histograms
381  for (unsigned int i = 0; i < subDetName.size(); i++) {
382  projYDistanceVsStripNumber[i]->Add((TH1F*)distanceVsStripNumber[i]->ProjectionY());
384  distanceVsStripNumber[i]->ProfileX(pfxDistanceVsStripNumber[i]->GetName(), 1, 998));
385  projYNHitsVsStripNumber[i]->Add(nHitsVsStripNumber[i]->ProjectionY());
388  projYOccupancyVsStripNumber[i]->Add(occupancyVsStripNumber[i]->ProjectionY());
392  occupancyVsStripNumber[i]->ProfileX(pfxOccupancyVsStripNumber[i]->GetName(), -8., 0.));
396  occupancyHotStripsVsStripNumber[i]->ProfileX(pfxOccupancyHotStripsVsStripNumber[i]->GetName(), -8., 0.));
401  poissonProbVsStripNumber[i]->ProfileX(pfxPoissonProbVsStripNumber[i]->GetName(), -18., 0.));
407  distanceVsStripNumber[i]->ProjectionX(projXDistanceVsStripNumber[i]->GetName(), 1, 998));
408  }
409 
410  // Save output files
411 
412  if (WriteOutputFile_ == true) {
413  f->cd();
414  apvtree->Write();
415  striptree->Write();
416  f->Close();
417  }
418 
419  if (WriteDQMHistograms_ == true) {
420  dqmStore->cd();
422  }
423 
424  LogTrace("SiStripBadAPV") << ss.str() << std::endl;
425 }
426 
428  std::pair<double, double>* MeanRMS,
429  int number_iterations) {
430  Double_t tot[7], tot2[7];
431  Double_t n[7];
432 
433  Double_t Mean[7] = {0};
434  Double_t Rms[7] = {1000, 1000, 1000, 1000, 1000, 1000, 1000};
435 
436  int Moduleposition;
437 
438  for (int i = 0; i < number_iterations; i++) {
439  for (int j = 0; j < 7; j++) {
440  n[j] = 0;
441  tot[j] = 0;
442  tot2[j] = 0;
443  }
444 
445  for (uint32_t it = 0; it < a.size(); it++) {
446  Moduleposition = (a[it].modulePosition) - 1;
447 
448  for (int apv = 0; apv < a[it].numberApvs; apv++) {
449  if (i > 0) {
450  if (a[it].apvMedian[apv] < (Mean[Moduleposition] - 3 * Rms[Moduleposition]) ||
451  (a[it].apvMedian[apv] > (Mean[Moduleposition] + 5 * Rms[Moduleposition]))) {
452  continue;
453  }
454  }
455  tot[Moduleposition] += a[it].apvMedian[apv];
456  tot2[Moduleposition] += (a[it].apvMedian[apv]) * (a[it].apvMedian[apv]);
457  n[Moduleposition]++;
458  }
459  }
460 
461  for (int j = 0; j < 7; j++) {
462  if (n[j] != 0) {
463  Mean[j] = tot[j] / n[j];
464  Rms[j] = TMath::Sqrt(TMath::Abs(tot2[j] / n[j] - Mean[j] * Mean[j]));
465  }
466  }
467  }
468 
469  for (int j = 0; j < 7; j++) {
470  MeanRMS[j] = std::make_pair(Mean[j], Rms[j]);
471  }
472 }
473 
476  std::vector<Apv>& medianValues,
477  std::pair<double, double>* MeanAndRms,
478  std::vector<unsigned int>& BadStripList,
479  edm::ESHandle<SiStripQuality>& InSiStripQuality) {
480  int Moduleposition;
481  uint32_t Detid;
482 
483  for (uint32_t it = 0; it < medianValues.size(); it++) {
484  Moduleposition = (medianValues[it].modulePosition) - 1;
485  Detid = medianValues[it].detrawId;
486 
487  setBasicTreeParameters(Detid);
488 
489  DetId DetectorId = DetId(Detid);
490  const StripGeomDetUnit* TheStripDet = dynamic_cast<const StripGeomDetUnit*>((TkGeom->idToDet(DetectorId)));
491  const StripTopology* TheStripTopol = dynamic_cast<const StripTopology*>(&(TheStripDet->specificTopology()));
492 
493  //Analyze the occupancies
494  hotstripspermodule = 0;
495  vHotStripsInModule.clear();
496 
497  for (int apv = 0; apv < medianValues[it].numberApvs; apv++) {
498  double logMedianOccupancy = -1;
499  double logAbsoluteOccupancy = -1;
500 
501  for (int i = 0; i < 128; i++) {
502  ishot[i] = 0;
503  stripoccupancy[i] = 0;
504  striphits[i] = 0;
505  poissonprob[i] = 0;
506  }
507 
508  number_strips = (medianValues[it].numberApvs) * 128;
509  apv_number = apv + 1;
510  apvMedianOccupancy = medianValues[it].apvMedian[apv];
511  apvAbsoluteOccupancy = medianValues[it].apvabsoluteOccupancy[apv];
512  isBad = 0;
513  hotstripsperapv[apv] = 0;
514 
515  LocalPoint pos_apv_local = TheStripTopol->localPosition((apv * 128));
516  GlobalPoint pos_apv_global = (TkGeom->idToDet(DetectorId))->surface().toGlobal(pos_apv_local);
517 
518  global_position_x = pos_apv_global.x();
519  global_position_y = pos_apv_global.y();
520  global_position_z = pos_apv_global.z();
521 
522  if (apvMedianOccupancy > 0)
523  logMedianOccupancy = log10(apvMedianOccupancy);
524  if (apvAbsoluteOccupancy > 0)
525  logAbsoluteOccupancy = log10(apvAbsoluteOccupancy);
526 
527  //Fill the DQM histograms
528  unsigned int layer = 0;
529  if (subdetid == 3 || subdetid == 5)
530  layer = layer_ring;
531  else
532  layer = disc;
533 
534  // Fill histograms for all the tracker
535  medianVsAbsoluteOccupancy[0][0]->Fill(logAbsoluteOccupancy, logMedianOccupancy);
536  medianOccupancy[0][0]->Fill(logMedianOccupancy);
537  absoluteOccupancy[0][0]->Fill(logAbsoluteOccupancy);
538  // Fill summary histograms for each subdetector
539  medianVsAbsoluteOccupancy[subdetid - 2][0]->Fill(logAbsoluteOccupancy, logMedianOccupancy);
540  medianOccupancy[subdetid - 2][0]->Fill(logMedianOccupancy);
541  absoluteOccupancy[subdetid - 2][0]->Fill(logAbsoluteOccupancy);
542  // Fill histograms for each layer/disk
543  medianVsAbsoluteOccupancy[subdetid - 2][layer]->Fill(logAbsoluteOccupancy, logMedianOccupancy);
544  medianOccupancy[subdetid - 2][layer]->Fill(logMedianOccupancy);
545  absoluteOccupancy[subdetid - 2][layer]->Fill(logAbsoluteOccupancy);
546 
547  if (UseInputDB_) {
548  if (InSiStripQuality->IsApvBad(Detid, apv)) {
549  if (WriteOutputFile_ == true) {
550  apvtree->Fill();
551  for (int strip = 0; strip < 128; strip++) {
552  strip_number = (apv * 128) + strip + 1;
553  apv_channel = apv + 1;
554  isHot = ishot[strip];
558 
561 
562  LocalPoint pos_strip_local = TheStripTopol->localPosition(strip);
563  GlobalPoint pos_strip_global = (TkGeom->idToDet(DetectorId))->surface().toGlobal(pos_strip_local);
564 
565  strip_global_position_x = pos_strip_global.x();
566  strip_global_position_y = pos_strip_global.y();
567  strip_global_position_z = pos_strip_global.z();
568  striptree->Fill();
569 
570  // Fill the strip DQM Plots
572  }
573 
574  if (vHotStripsInModule.size() == 1) {
575  distance = 999;
578  } else if (vHotStripsInModule.size() > 1) {
579  for (unsigned int iVec = 0; iVec != vHotStripsInModule.size(); iVec++) {
580  if (iVec == 0)
582  else if (iVec == vHotStripsInModule.size() - 1) {
585  } else if (vHotStripsInModule.size() > 2) {
586  distanceR = vHotStripsInModule[iVec + 1] - vHotStripsInModule[iVec];
587  distanceL = vHotStripsInModule[iVec] - vHotStripsInModule[iVec - 1];
589  } else {
590  std::cout << "ERROR! distance is never computed!!!\n";
591  }
594  }
595  }
596  }
597  continue; //if the apv is already flagged as bad, continue.
598  }
599  }
600 
601  if (medianValues[it].apvMedian[apv] > minNevents_) {
602  if ((medianValues[it].apvMedian[apv] >
603  (MeanAndRms[Moduleposition].first + highoccupancy_ * MeanAndRms[Moduleposition].second)) &&
604  (medianValues[it].apvMedian[apv] > absolutelow_)) {
605  BadStripList.push_back(pQuality->encode((apv * 128), 128, 0));
606  isBad = 1;
607  }
608  } else if (medianValues[it].apvMedian[apv] <
609  (MeanAndRms[Moduleposition].first - lowoccupancy_ * MeanAndRms[Moduleposition].second) &&
610  (MeanAndRms[Moduleposition].first > 2 || medianValues[it].apvabsoluteOccupancy[apv] == 0)) {
611  BadStripList.push_back(pQuality->encode((apv * 128), 128, 0));
612  isBad = 1;
613  }
614 
615  if (isBad != 1) {
616  iterativeSearch(medianValues[it], BadStripList, apv);
617  }
618 
619  if (WriteOutputFile_ == true) {
620  apvtree->Fill();
621  for (int strip = 0; strip < 128; strip++) {
622  strip_number = (apv * 128) + strip + 1;
623  apv_channel = apv + 1;
624  isHot = ishot[strip];
628 
631 
632  LocalPoint pos_strip_local = TheStripTopol->localPosition(strip);
633  GlobalPoint pos_strip_global = (TkGeom->idToDet(DetectorId))->surface().toGlobal(pos_strip_local);
634 
635  strip_global_position_x = pos_strip_global.x();
636  strip_global_position_y = pos_strip_global.y();
637  strip_global_position_z = pos_strip_global.z();
638  striptree->Fill();
639 
640  // Fill the strip DQM Plots
642  }
643  if (vHotStripsInModule.size() == 1) {
644  distance = 999;
647  } else if (vHotStripsInModule.size() > 1) {
648  for (unsigned int iVec = 0; iVec != vHotStripsInModule.size(); iVec++) {
649  if (iVec == 0)
651  else if (iVec == vHotStripsInModule.size() - 1) {
652  distance =
654  } else if (vHotStripsInModule.size() > 2) {
655  distanceR = vHotStripsInModule[iVec + 1] - vHotStripsInModule[iVec];
656  distanceL = vHotStripsInModule[iVec] - vHotStripsInModule[iVec - 1];
658  } else {
659  std::cout << "ERROR! distance is never computed!!!\n";
660  }
663  }
664  }
665  }
666  }
667 
668  if (BadStripList.begin() != BadStripList.end()) {
669  quality->compact(Detid, BadStripList);
670  SiStripQuality::Range range(BadStripList.begin(), BadStripList.end());
671  quality->put(Detid, range);
672  }
673  BadStripList.clear();
674  }
675 }
676 
678  std::vector<unsigned int>& vect,
679  int apv) {
680  if (!histo.NEntries[apv] || histo.NEntries[apv] <= MinNumEntries_ || histo.NEntries[apv] <= minNevents_)
681  return;
682 
683  size_t startingSize = vect.size();
684  long double diff = 1. - prob_;
685 
686  size_t Nbins = histo.th1f[apv]->GetNbinsX();
687  size_t ibinStart = 1;
688  size_t ibinStop = Nbins + 1;
689  int MaxEntry = (int)histo.th1f[apv]->GetMaximum();
690 
691  std::vector<long double> vPoissonProbs(MaxEntry + 1, 0);
692  long double meanVal = 1. * histo.NEntries[apv] / (1. * Nbins - histo.NEmptyBins[apv]);
693  evaluatePoissonian(vPoissonProbs, meanVal);
694 
695  // Find median occupancy, taking into account only good strips
696  unsigned int goodstripentries[128];
697  int nGoodStrips = 0;
698  for (size_t i = ibinStart; i < ibinStop; ++i) {
699  if (ishot[(apv * 128) + i - 1] == 0) {
700  goodstripentries[nGoodStrips] = (unsigned int)histo.th1f[apv]->GetBinContent(i);
701  nGoodStrips++;
702  }
703  }
704  double median = TMath::Median(nGoodStrips, goodstripentries);
705 
706  for (size_t i = ibinStart; i < ibinStop; ++i) {
707  unsigned int entries = (unsigned int)histo.th1f[apv]->GetBinContent(i);
708 
709  if (ishot[i - 1] == 0) {
710  stripoccupancy[i - 1] = entries / (double)Nevents_;
711  striphits[i - 1] = entries;
712  poissonprob[i - 1] = 1 - vPoissonProbs[entries];
713  medianapvhits[apv] = median;
714  avgapvhits[apv] = meanVal;
715  }
716 
717  if (entries <= MinNumEntriesPerStrip_ || entries <= minNevents_ || entries / median < ratio_)
718  continue;
719 
720  if (diff < vPoissonProbs[entries]) {
721  ishot[i - 1] = 1;
723  hotstripsperapv[apv]++;
724  histo.th1f[apv]->SetBinContent(i, 0.);
725  histo.NEntries[apv] -= entries;
726  histo.NEmptyBins[apv]++;
727  if (edm::isDebugEnabled())
728  LogTrace("SiStripHotStrip") << " rejecting strip " << (apv * 128) + i - 1 << " value " << entries << " diff "
729  << diff << " prob " << vPoissonProbs[entries] << std::endl;
730  vect.push_back(pQuality->encode((apv * 128) + i - 1, 1, 0));
731  }
732  }
733  if (edm::isDebugEnabled())
734  LogTrace("SiStripHotStrip") << " [SiStripHotStripAlgorithmFromClusterOccupancy::iterativeSearch] Nbins=" << Nbins
735  << " MaxEntry=" << MaxEntry << " meanVal=" << meanVal
736  << " NEmptyBins=" << histo.NEmptyBins[apv] << " NEntries=" << histo.NEntries[apv]
737  << " thEntries " << histo.th1f[apv]->GetEntries() << " startingSize " << startingSize
738  << " vector.size " << vect.size() << std::endl;
739 
740  if (vect.size() != startingSize)
741  iterativeSearch(histo, vect, apv);
742 }
743 
745  long double& meanVal) {
746  for (size_t i = 0; i < vPoissonProbs.size(); ++i) {
747  vPoissonProbs[i] = (i == 0) ? TMath::Poisson(i, meanVal) : vPoissonProbs[i - 1] + TMath::Poisson(i, meanVal);
748  }
749 }
750 
752  DetId DetectorID = DetId(detid);
753 
754  detrawid = detid;
755  subdetid = DetectorID.subdetId();
756 
757  switch (DetectorID.subdetId()) {
759  layer_ring = tTopo->tibLayer(detid);
760  disc = -1;
761  isstereo = tTopo->tibIsStereo(detid);
762  isback = -1;
763  if (tTopo->tibIsExternalString(detid))
764  isexternalstring = 1;
765  else
766  isexternalstring = 0;
767  if (tTopo->tibIsZMinusSide(detid))
768  iszminusside = 1;
769  else
770  iszminusside = 0;
771  rodstringpetal = tTopo->tibString(detid);
772  module_number = tTopo->tibModule(detid);
773 
774  break;
775 
777  layer_ring = tTopo->tidRing(detid);
778  disc = tTopo->tidWheel(detid);
779  isstereo = tTopo->tidIsStereo(detid);
780  if (tTopo->tidIsBackRing(detid))
781  isback = 1;
782  else
783  isback = 0;
784  if (tTopo->tidIsZMinusSide(detid))
785  iszminusside = 1;
786  else
787  iszminusside = 0;
788  isexternalstring = -1;
789  rodstringpetal = -1;
790  module_number = tTopo->tidModule(detid);
791 
792  break;
793 
795  layer_ring = tTopo->tobLayer(detid);
796  disc = -1;
797  isstereo = tTopo->tobIsStereo(detid);
798  isback = -1;
799  if (tTopo->tobIsZMinusSide(detid))
800  iszminusside = 1;
801  else
802  iszminusside = 0;
803  isexternalstring = -1;
804  rodstringpetal = tTopo->tobRod(detid);
805  module_number = tTopo->tobModule(detid);
806 
807  break;
808 
810  layer_ring = tTopo->tecRing(detid);
811  disc = tTopo->tecWheel(detid);
812  isstereo = tTopo->tecIsStereo(detid);
813  if (tTopo->tecIsBackPetal(detid))
814  isback = 1;
815  else
816  isback = 0;
817  if (tTopo->tecIsZMinusSide(detid))
818  iszminusside = 1;
819  else
820  iszminusside = 0;
821  isexternalstring = -1;
823  module_number = tTopo->tecModule(detid);
824 
825  break;
826 
827  default:
828  std::cout << "### Detector does not belong to TIB, TID, TOB or TEC !? ###" << std::endl;
829  std::cout << "### DetRawId: " << detid << " ###" << std::endl;
830  }
831 }
832 
835 }
836 
838  oss.str("");
839  oss << 1; //runNumber
840 
841  dqmStore = edm::Service<DQMStore>().operator->();
842  dqmStore->setCurrentFolder("ChannelStatusPlots");
843 
844  // Initialize histograms
845  subDetName.push_back("");
846  subDetName.push_back("TIB");
847  subDetName.push_back("TID");
848  subDetName.push_back("TOB");
849  subDetName.push_back("TEC");
850  nLayers.push_back(0);
851  nLayers.push_back(4);
852  nLayers.push_back(3);
853  nLayers.push_back(6);
854  nLayers.push_back(9);
855  layerName.push_back("");
856  layerName.push_back("Layer");
857  layerName.push_back("Disk");
858  layerName.push_back("Layer");
859  layerName.push_back("Disk");
860 
862  std::string histoTitle;
863 
864  for (unsigned int i = 0; i < subDetName.size(); i++) {
865  histoName = "distanceVsStripNumber" + subDetName[i];
866  histoTitle = "Distance between hot strips vs. strip number";
867  if (i != 0)
868  histoTitle += " in " + subDetName[i];
869  tmp = dqmStore->book2D(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5, 999, 0.5, 999.5);
870  distanceVsStripNumber.push_back(tmp->getTH2F());
871 
872  histoName = "pfxDistanceVsStripNumber" + subDetName[i];
873  tmp_prof = new TProfile(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5);
876  pfxDistanceVsStripNumber[i]->GetXaxis()->SetTitle("Strip");
877  pfxDistanceVsStripNumber[i]->GetYaxis()->SetTitle("Distance");
878 
879  histoName = "projXDistanceVsStripNumber" + subDetName[i];
880  histoTitle = "Number of hot strips vs. strip number";
881  if (i != 0)
882  histoTitle += " in " + subDetName[i];
883  tmp = dqmStore->book1D(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5);
884  projXDistanceVsStripNumber.push_back(tmp->getTH1F());
885  projXDistanceVsStripNumber[i]->GetXaxis()->SetTitle("Strip");
886  projXDistanceVsStripNumber[i]->GetYaxis()->SetTitle("N_{hot}");
887 
888  histoName = "projYDistanceVsStripNumber" + subDetName[i];
889  histoTitle = "Distribution of distance between hot strips";
890  if (i != 0)
891  histoTitle += " in " + subDetName[i];
892  tmp = dqmStore->book1D(histoName.c_str(), histoTitle.c_str(), 999, 0.5, 999.5);
893  projYDistanceVsStripNumber.push_back(tmp->getTH1F());
894  projYDistanceVsStripNumber[i]->GetXaxis()->SetTitle("Distance");
895  projYDistanceVsStripNumber[i]->GetYaxis()->SetTitle("N_{strips}");
896 
897  //
898  histoName = "occupancyVsStripNumber" + subDetName[i];
899  histoTitle = "Occupancy of strips vs. strip number";
900  if (i != 0)
901  histoTitle += " in " + subDetName[i];
902  tmp = dqmStore->book2D(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5, 1000, -8., 0.);
903  occupancyVsStripNumber.push_back(tmp->getTH2F());
904 
905  histoName = "pfxOccupancyVsStripNumber" + subDetName[i];
906  tmp_prof = new TProfile(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5);
909  pfxOccupancyVsStripNumber[i]->GetXaxis()->SetTitle("Strip");
910  pfxOccupancyVsStripNumber[i]->GetYaxis()->SetTitle("log_{10}(Occupancy)");
911 
912  histoName = "projYOccupancyVsStripNumber" + subDetName[i];
913  histoTitle = "Distribution of strip occupancy";
914  if (i != 0)
915  histoTitle += " in " + subDetName[i];
916  tmp = dqmStore->book1D(histoName.c_str(), histoTitle.c_str(), 1000, -8., 0.);
918  projYOccupancyVsStripNumber[i]->GetXaxis()->SetTitle("log_{10}(Occupancy)");
919  projYOccupancyVsStripNumber[i]->GetYaxis()->SetTitle("N_{strips}");
920 
921  //
922  histoName = "occupancyHotStripsVsStripNumber" + subDetName[i];
923  histoTitle = "Occupancy of hot strips vs. strip number";
924  if (i != 0)
925  histoTitle += " in " + subDetName[i];
926  tmp = dqmStore->book2D(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5, 1000, -8., 0.);
928 
929  histoName = "pfxOccupancyHotStripsVsStripNumber" + subDetName[i];
930  tmp_prof = new TProfile(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5);
933  pfxOccupancyHotStripsVsStripNumber[i]->GetXaxis()->SetTitle("Strip");
934  pfxOccupancyHotStripsVsStripNumber[i]->GetYaxis()->SetTitle("log_{10}(Occupancy)");
935 
936  histoName = "projYOccupancyHotStripsVsStripNumber" + subDetName[i];
937  histoTitle = "Distribution of hot strip occupancy";
938  if (i != 0)
939  histoTitle += " in " + subDetName[i];
940  tmp = dqmStore->book1D(histoName.c_str(), histoTitle.c_str(), 1000, -8., 0.);
942  projYOccupancyHotStripsVsStripNumber[i]->GetXaxis()->SetTitle("log_{10}(Occupancy)");
943  projYOccupancyHotStripsVsStripNumber[i]->GetYaxis()->SetTitle("N_{strips}");
944 
945  //
946  histoName = "occupancyGoodStripsVsStripNumber" + subDetName[i];
947  histoTitle = "Occupancy of good strips vs. strip number";
948  if (i != 0)
949  histoTitle += " in " + subDetName[i];
950  tmp = dqmStore->book2D(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5, 1000, -8., 0.);
952 
953  histoName = "pfxOccupancyGoodStripsVsStripNumber" + subDetName[i];
954  tmp_prof = new TProfile(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5);
957  pfxOccupancyGoodStripsVsStripNumber[i]->GetXaxis()->SetTitle("Strip");
958  pfxOccupancyGoodStripsVsStripNumber[i]->GetYaxis()->SetTitle("log_{10}(Occupancy)");
959 
960  histoName = "projYOccupancyGoodStripsVsStripNumber" + subDetName[i];
961  histoTitle = "Distribution of good strip occupancy";
962  if (i != 0)
963  histoTitle += " in " + subDetName[i];
964  tmp = dqmStore->book1D(histoName.c_str(), histoTitle.c_str(), 1000, -8., 0.);
966  projYOccupancyGoodStripsVsStripNumber[i]->GetXaxis()->SetTitle("log_{10}(Occupancy)");
967  projYOccupancyGoodStripsVsStripNumber[i]->GetYaxis()->SetTitle("N_{strips}");
968 
969  //
970  histoName = "poissonProbVsStripNumber" + subDetName[i];
971  histoTitle = "Poisson probability of strips vs. strip number";
972  if (i != 0)
973  histoTitle += " in " + subDetName[i];
974  tmp = dqmStore->book2D(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5, 1000, -18., 0.);
975  poissonProbVsStripNumber.push_back(tmp->getTH2F());
976 
977  histoName = "pfxPoissonProbVsStripNumber" + subDetName[i];
978  tmp_prof = new TProfile(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5);
981  pfxPoissonProbVsStripNumber[i]->GetXaxis()->SetTitle("Strip");
982  pfxPoissonProbVsStripNumber[i]->GetYaxis()->SetTitle("log_{10}(Probability)");
983 
984  histoName = "projYPoissonProbVsStripNumber" + subDetName[i];
985  histoTitle = "Distribution of strip Poisson probability";
986  if (i != 0)
987  histoTitle += " in " + subDetName[i];
988  tmp = dqmStore->book1D(histoName.c_str(), histoTitle.c_str(), 1000, -18., 0.);
990  projYPoissonProbVsStripNumber[i]->GetXaxis()->SetTitle("log_{10}(Probability)");
991  projYPoissonProbVsStripNumber[i]->GetYaxis()->SetTitle("N_{strips}");
992 
993  //
994  histoName = "poissonProbHotStripsVsStripNumber" + subDetName[i];
995  histoTitle = "Poisson probability of hot strips vs. strip number";
996  if (i != 0)
997  histoTitle += " in " + subDetName[i];
998  tmp = dqmStore->book2D(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5, 1000, -18., 0.);
1000 
1001  histoName = "pfxPoissonProbHotStripsVsStripNumber" + subDetName[i];
1002  tmp_prof = new TProfile(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5);
1003  tmp = dqmStore->bookProfile(histoName.c_str(), tmp_prof);
1005  pfxPoissonProbHotStripsVsStripNumber[i]->GetXaxis()->SetTitle("Strip");
1006  pfxPoissonProbHotStripsVsStripNumber[i]->GetYaxis()->SetTitle("log_{10}(Probability)");
1007 
1008  histoName = "projYPoissonProbHotStripsVsStripNumber" + subDetName[i];
1009  histoTitle = "Distribution of hot strip Poisson probability";
1010  if (i != 0)
1011  histoTitle += " in " + subDetName[i];
1012  tmp = dqmStore->book1D(histoName.c_str(), histoTitle.c_str(), 1000, -18., 0.);
1014  projYPoissonProbHotStripsVsStripNumber[i]->GetXaxis()->SetTitle("log_{10}(Probability)");
1015  projYPoissonProbHotStripsVsStripNumber[i]->GetYaxis()->SetTitle("N_{strips}");
1016 
1017  //
1018  histoName = "poissonProbGoodStripsVsStripNumber" + subDetName[i];
1019  histoTitle = "Poisson probability of good strips vs. strip number";
1020  if (i != 0)
1021  histoTitle += " in " + subDetName[i];
1022  tmp = dqmStore->book2D(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5, 1000, -18., 0.);
1024 
1025  histoName = "pfxPoissonProbGoodStripsVsStripNumber" + subDetName[i];
1026  tmp_prof = new TProfile(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5);
1027  tmp = dqmStore->bookProfile(histoName.c_str(), tmp_prof);
1029  pfxPoissonProbGoodStripsVsStripNumber[i]->GetXaxis()->SetTitle("Strip");
1030  pfxPoissonProbGoodStripsVsStripNumber[i]->GetYaxis()->SetTitle("log_{10}(Probability)");
1031 
1032  histoName = "projYPoissonProbGoodStripsVsStripNumber" + subDetName[i];
1033  histoTitle = "Distribution of good strip Poisson probability";
1034  if (i != 0)
1035  histoTitle += " in " + subDetName[i];
1036  tmp = dqmStore->book1D(histoName.c_str(), histoTitle.c_str(), 1000, -18., 0.);
1038  projYPoissonProbGoodStripsVsStripNumber[i]->GetXaxis()->SetTitle("log_{10}(Probability)");
1039  projYPoissonProbGoodStripsVsStripNumber[i]->GetYaxis()->SetTitle("N_{strips}");
1040 
1041  //
1042  histoName = "nHitsVsStripNumber" + subDetName[i];
1043  histoTitle = "NHits in strips vs. strip number";
1044  if (i != 0)
1045  histoTitle += " in " + subDetName[i];
1046  tmp = dqmStore->book2D(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5, 10000, -0.5, 9999.5);
1047  nHitsVsStripNumber.push_back(tmp->getTH2F());
1048 
1049  histoName = "pfxNHitsVsStripNumber" + subDetName[i];
1050  tmp_prof = new TProfile(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5);
1051  tmp = dqmStore->bookProfile(histoName.c_str(), tmp_prof);
1052  pfxNHitsVsStripNumber.push_back(tmp->getTProfile());
1053 
1054  histoName = "projXNHitsVsStripNumber" + subDetName[i];
1055  histoTitle = "Cumulative nHits in strips vs. strip number";
1056  if (i != 0)
1057  histoTitle += " in " + subDetName[i];
1058  tmp = dqmStore->book1D(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5);
1059  projXNHitsVsStripNumber.push_back(tmp->getTH1F());
1060 
1061  histoName = "projYNHitsVsStripNumber" + subDetName[i];
1062  histoTitle = "Distribution of nHits for all strips";
1063  if (i != 0)
1064  histoTitle += " in " + subDetName[i];
1065  tmp = dqmStore->book1D(histoName.c_str(), histoTitle.c_str(), 10000, -0.5, 9999.5);
1066  projYNHitsVsStripNumber.push_back(tmp->getTH1F());
1067  projYNHitsVsStripNumber[i]->GetXaxis()->SetTitle("N_{hits}");
1068  projYNHitsVsStripNumber[i]->GetYaxis()->SetTitle("N_{strips}");
1069 
1070  //
1071  histoName = "nHitsHotStripsVsStripNumber" + subDetName[i];
1072  histoTitle = "NHits in hot strips vs. strip number";
1073  if (i != 0)
1074  histoTitle += " in " + subDetName[i];
1075  tmp = dqmStore->book2D(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5, 10000, -0.5, 9999.5);
1076  nHitsHotStripsVsStripNumber.push_back(tmp->getTH2F());
1077 
1078  histoName = "pfxNHitsHotStripsVsStripNumber" + subDetName[i];
1079  tmp_prof = new TProfile(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5);
1080  tmp = dqmStore->bookProfile(histoName.c_str(), tmp_prof);
1082 
1083  histoName = "projXNHitsHotStripsVsStripNumber" + subDetName[i];
1084  histoTitle = "Cumulative nHits in hot strips vs. strip number";
1085  if (i != 0)
1086  histoTitle += " in " + subDetName[i];
1087  tmp = dqmStore->book1D(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5);
1089 
1090  histoName = "projYNHitsHotStripsVsStripNumber" + subDetName[i];
1091  histoTitle = "Distribution of nHits for hot strips";
1092  if (i != 0)
1093  histoTitle += " in " + subDetName[i];
1094  tmp = dqmStore->book1D(histoName.c_str(), histoTitle.c_str(), 10000, -0.5, 9999.5);
1096  projYNHitsHotStripsVsStripNumber[i]->GetXaxis()->SetTitle("N_{hits}");
1097  projYNHitsHotStripsVsStripNumber[i]->GetYaxis()->SetTitle("N_{strips}");
1098 
1099  //
1100  histoName = "nHitsGoodStripsVsStripNumber" + subDetName[i];
1101  histoTitle = "NHits in good strips vs. strip number";
1102  if (i != 0)
1103  histoTitle += " in " + subDetName[i];
1104  tmp = dqmStore->book2D(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5, 10000, -0.5, 9999.5);
1106 
1107  histoName = "pfxNHitsGoodStripsVsStripNumber" + subDetName[i];
1108  tmp_prof = new TProfile(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5);
1109  tmp = dqmStore->bookProfile(histoName.c_str(), tmp_prof);
1111 
1112  histoName = "projXNHitsGoodStripsVsStripNumber" + subDetName[i];
1113  histoTitle = "Cumulative nHits in good strips vs. strip number";
1114  if (i != 0)
1115  histoTitle += " in " + subDetName[i];
1116  tmp = dqmStore->book1D(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5);
1118 
1119  histoName = "projYNHitsGoodStripsVsStripNumber" + subDetName[i];
1120  histoTitle = "Distribution of nHits for good strips";
1121  if (i != 0)
1122  histoTitle += " in " + subDetName[i];
1123  tmp = dqmStore->book1D(histoName.c_str(), histoTitle.c_str(), 10000, -0.5, 9999.5);
1125  projYNHitsGoodStripsVsStripNumber[i]->GetXaxis()->SetTitle("N_{hits}");
1126  projYNHitsGoodStripsVsStripNumber[i]->GetYaxis()->SetTitle("N_{strips}");
1127 
1128  for (unsigned int j = 0; j <= nLayers[i]; j++) {
1129  histoName = "medianVsAbsoluteOccupancy" + subDetName[i];
1130  if (j != 0) {
1131  oss.str("");
1132  oss << j;
1133  histoName += layerName[i] + oss.str();
1134  }
1135  histoTitle = "Median APV occupancy vs. absolute APV occupancy";
1136  if (i != 0)
1137  histoTitle += " in " + subDetName[i];
1138  if (j != 0) {
1139  histoTitle += " " + layerName[i] + " " + oss.str();
1140  }
1141  tmp = dqmStore->book2D(histoName.c_str(), histoTitle.c_str(), 1000, 0., 6., 1000, -1., 3.);
1143  medianVsAbsoluteOccupancy[i][j]->Rebin2D(10, 10);
1144  medianVsAbsoluteOccupancy[i][j]->GetXaxis()->SetTitle("log_{10}(Abs. Occupancy)");
1145  medianVsAbsoluteOccupancy[i][j]->GetYaxis()->SetTitle("log_{10}(Median Occupancy)");
1146  //
1147  histoName = "medianOccupancy" + subDetName[i];
1148  if (j != 0) {
1149  oss.str("");
1150  oss << j;
1151  histoName += layerName[i] + oss.str();
1152  }
1153  histoTitle = "Median APV occupancy";
1154  if (i != 0)
1155  histoTitle += " in " + subDetName[i];
1156  if (j != 0) {
1157  histoTitle += " " + layerName[i] + " " + oss.str();
1158  }
1159  tmp = dqmStore->book1D(histoName.c_str(), histoTitle.c_str(), 1000, -1., 3.);
1160  medianOccupancy[i][j] = tmp->getTH1F();
1161  medianOccupancy[i][j]->GetXaxis()->SetTitle("log_{10}(Occupancy)");
1162  medianOccupancy[i][j]->GetYaxis()->SetTitle("APVs");
1163  //
1164  histoName = "absoluteOccupancy" + subDetName[i];
1165  if (j != 0) {
1166  oss.str("");
1167  oss << j;
1168  histoName += layerName[i] + oss.str();
1169  }
1170  histoTitle = "Absolute APV occupancy";
1171  if (i != 0)
1172  histoTitle += " in " + subDetName[i];
1173  if (j != 0) {
1174  histoTitle += " " + layerName[i] + " " + oss.str();
1175  }
1176  tmp = dqmStore->book1D(histoName.c_str(), histoTitle.c_str(), 1000, 0., 6.);
1177  absoluteOccupancy[i][j] = tmp->getTH1F();
1178  absoluteOccupancy[i][j]->GetXaxis()->SetTitle("log_{10}(Occupancy)");
1179  absoluteOccupancy[i][j]->GetYaxis()->SetTitle("APVs");
1180  }
1181  }
1182 }
1183 
1185  double logStripOccupancy = -1;
1186  double logPoissonProb = -1;
1187 
1188  if (singleStripOccupancy > 0)
1189  logStripOccupancy = log10(singleStripOccupancy);
1190  if (poissonProb > 0)
1191  logPoissonProb = log10(fabs(poissonProb));
1192 
1193  occupancyVsStripNumber[0]->Fill(strip_number, logStripOccupancy);
1194  occupancyVsStripNumber[subdetid - 2]->Fill(strip_number, logStripOccupancy);
1195  poissonProbVsStripNumber[0]->Fill(strip_number, logPoissonProb);
1196  poissonProbVsStripNumber[subdetid - 2]->Fill(strip_number, logPoissonProb);
1199 
1200  if (isHot) {
1201  vHotStripsInModule.push_back(strip_number);
1202  occupancyHotStripsVsStripNumber[0]->Fill(strip_number, logStripOccupancy);
1203  occupancyHotStripsVsStripNumber[subdetid - 2]->Fill(strip_number, logStripOccupancy);
1204  poissonProbHotStripsVsStripNumber[0]->Fill(strip_number, logPoissonProb);
1205  poissonProbHotStripsVsStripNumber[subdetid - 2]->Fill(strip_number, logPoissonProb);
1208  } else {
1209  occupancyGoodStripsVsStripNumber[0]->Fill(strip_number, logStripOccupancy);
1210  occupancyGoodStripsVsStripNumber[subdetid - 2]->Fill(strip_number, logStripOccupancy);
1211  poissonProbGoodStripsVsStripNumber[0]->Fill(strip_number, logPoissonProb);
1212  poissonProbGoodStripsVsStripNumber[subdetid - 2]->Fill(strip_number, logPoissonProb);
1215  }
1216 }
TrackerGeometry::idToDet
const TrackerGeomDet * idToDet(DetId) const override
Definition: TrackerGeometry.cc:193
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::medianValues_TIDMinus_Disc2
std::vector< Apv > medianValues_TIDMinus_Disc2
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:160
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::distanceVsStripNumber
std::vector< TH2F * > distanceVsStripNumber
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:271
change_name.diff
diff
Definition: change_name.py:13
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::subDetName
std::vector< std::string > subDetName
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:309
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::MeanAndRms_TECMinus_Disc2
std::pair< double, double > MeanAndRms_TECMinus_Disc2[7]
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:187
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::strip_global_position_z
float strip_global_position_z
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:225
FastTimerService_cff.range
range
Definition: FastTimerService_cff.py:34
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::extractBadAPVSandStrips
void extractBadAPVSandStrips(SiStripQuality *, HistoMap &, edm::ESHandle< SiStripQuality > &)
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.cc:35
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::MeanAndRms_TIB_Layer2
std::pair< double, double > MeanAndRms_TIB_Layer2[7]
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:132
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::medianValues_TIB_Layer3
std::vector< Apv > medianValues_TIB_Layer3
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:133
TrackerTopology::tidIsZMinusSide
bool tidIsZMinusSide(const DetId &id) const
Definition: TrackerTopology.h:259
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::poissonprob
double poissonprob[128]
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:249
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::projYDistanceVsStripNumber
std::vector< TH1F * > projYDistanceVsStripNumber
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:274
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::stripoccupancy
double stripoccupancy[128]
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:247
electrons_cff.bool
bool
Definition: electrons_cff.py:393
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::oss
std::ostringstream oss
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:255
mps_fire.i
i
Definition: mps_fire.py:428
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::MeanAndRms_TIDPlus_Disc3
std::pair< double, double > MeanAndRms_TIDPlus_Disc3[7]
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:156
TrackerTopology::tibIsExternalString
bool tibIsExternalString(const DetId &id) const
Definition: TrackerTopology.h:431
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::MeanAndRms_TECMinus_Disc5
std::pair< double, double > MeanAndRms_TECMinus_Disc5[7]
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:193
StripGeomDetUnit.h
MessageLogger.h
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::Nevents_
double Nevents_
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:113
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::ratio_
long double ratio_
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:106
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::MeanAndRms_TECMinus_Disc3
std::pair< double, double > MeanAndRms_TECMinus_Disc3[7]
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:189
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::medianValues_TECMinus_Disc9
std::vector< Apv > medianValues_TECMinus_Disc9
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:200
funct::false
false
Definition: Factorize.h:29
dqmiodumpmetadata.n
n
Definition: dqmiodumpmetadata.py:28
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::medianValues_TIB_Layer1
std::vector< Apv > medianValues_TIB_Layer1
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:129
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::medianAPVHits
double medianAPVHits
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:240
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::setBasicTreeParameters
void setBasicTreeParameters(int detid)
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.cc:751
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::WriteDQMHistograms_
bool WriteDQMHistograms_
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:119
TrackerTopology::tobIsStereo
bool tobIsStereo(const DetId &id) const
Definition: TrackerTopology.h:264
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::avgapvhits
double avgapvhits[6]
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:251
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::rodstringpetal
int rodstringpetal
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:213
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::medianValues_TECPlus_Disc2
std::vector< Apv > medianValues_TECPlus_Disc2
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:167
PV3DBase::x
T x() const
Definition: PV3DBase.h:59
TrackerTopology::tecIsZMinusSide
bool tecIsZMinusSide(const DetId &id) const
Definition: TrackerTopology.h:262
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::medianValues_TECPlus_Disc8
std::vector< Apv > medianValues_TECPlus_Disc8
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:179
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::CalculateMeanAndRMS
void CalculateMeanAndRMS(const std::vector< Apv > &, std::pair< double, double > *, int)
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.cc:427
StripTopology::localPosition
virtual LocalPoint localPosition(float strip) const =0
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::initializeDQMHistograms
void initializeDQMHistograms()
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.cc:837
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::global_position_x
float global_position_x
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:220
TrackerTopology
Definition: TrackerTopology.h:16
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::projXNHitsHotStripsVsStripNumber
std::vector< TH1F * > projXNHitsHotStripsVsStripNumber
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:302
digitizers_cfi.strip
strip
Definition: digitizers_cfi.py:19
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::medianValues_TOB_Layer2
std::vector< Apv > medianValues_TOB_Layer2
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:140
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::medianValues_TIB_Layer2
std::vector< Apv > medianValues_TIB_Layer2
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:131
gather_cfg.cout
cout
Definition: gather_cfg.py:144
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::poissonProbGoodStripsVsStripNumber
std::vector< TH2F * > poissonProbGoodStripsVsStripNumber
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:292
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::MeanAndRms_TIB_Layer1
std::pair< double, double > MeanAndRms_TIB_Layer1[7]
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:130
pfDeepBoostedJetPreprocessParams_cfi.median
median
Definition: pfDeepBoostedJetPreprocessParams_cfi.py:12
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::medianValues_TOB_Layer6
std::vector< Apv > medianValues_TOB_Layer6
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:148
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::nLayers
std::vector< unsigned int > nLayers
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:310
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::medianValues_TECPlus_Disc1
std::vector< Apv > medianValues_TECPlus_Disc1
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:165
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::pfxNHitsGoodStripsVsStripNumber
std::vector< TProfile * > pfxNHitsGoodStripsVsStripNumber
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:305
TrackerTopology::tecIsStereo
bool tecIsStereo(const DetId &id) const
Definition: TrackerTopology.h:265
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::medianapvhits
double medianapvhits[6]
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:250
timingPdfMaker.histo
histo
Definition: timingPdfMaker.py:279
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::medianValues_TECMinus_Disc4
std::vector< Apv > medianValues_TECMinus_Disc4
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:190
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::MeanAndRms_TIDPlus_Disc1
std::pair< double, double > MeanAndRms_TIDPlus_Disc1[7]
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:152
edm::second
U second(std::pair< T, U > const &p)
Definition: ParameterSet.cc:222
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::pfxPoissonProbGoodStripsVsStripNumber
std::vector< TProfile * > pfxPoissonProbGoodStripsVsStripNumber
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:293
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::MeanAndRms_TOB_Layer2
std::pair< double, double > MeanAndRms_TOB_Layer2[7]
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:141
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::prob_
long double prob_
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:105
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::MeanAndRms_TOB_Layer1
std::pair< double, double > MeanAndRms_TOB_Layer1[7]
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:139
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::pfxDistanceVsStripNumber
std::vector< TProfile * > pfxDistanceVsStripNumber
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:272
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::projYPoissonProbGoodStripsVsStripNumber
std::vector< TH1F * > projYPoissonProbGoodStripsVsStripNumber
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:294
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::MeanAndRms_TECMinus_Disc4
std::pair< double, double > MeanAndRms_TECMinus_Disc4[7]
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:191
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::setMinNumOfEvents
void setMinNumOfEvents()
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.cc:833
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::tmp_prof
TProfile * tmp_prof
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:260
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::global_position_y
float global_position_y
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:221
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::MinNumEntries_
unsigned short MinNumEntries_
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:107
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::subdetid
int subdetid
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:207
StripTopology.h
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::medianValues_TECPlus_Disc4
std::vector< Apv > medianValues_TECPlus_Disc4
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:171
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::medianValues_TECPlus_Disc6
std::vector< Apv > medianValues_TECPlus_Disc6
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:175
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::MeanAndRms_TOB_Layer3
std::pair< double, double > MeanAndRms_TOB_Layer3[7]
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:143
TrackerTopology::tidModule
unsigned int tidModule(const DetId &id) const
Definition: TrackerTopology.h:175
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::apvtree
TTree * apvtree
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:204
dqm::legacy::MonitorElement::getTH1F
virtual TH1F * getTH1F() const
Definition: MonitorElement.h:478
dqmdumpme.first
first
Definition: dqmdumpme.py:55
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::striptree
TTree * striptree
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:231
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::projYOccupancyVsStripNumber
std::vector< TH1F * > projYOccupancyVsStripNumber
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:278
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::singleStripOccupancy
double singleStripOccupancy
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:238
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::isexternalstring
int isexternalstring
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:211
TrackerTopology::tidRing
unsigned int tidRing(const DetId &id) const
Definition: TrackerTopology.h:218
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::MeanAndRms_TECMinus_Disc8
std::pair< double, double > MeanAndRms_TECMinus_Disc8[7]
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:199
TrackerTopology::tobRod
unsigned int tobRod(const DetId &id) const
Definition: TrackerTopology.h:195
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::isHot
int isHot
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:235
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::projYOccupancyHotStripsVsStripNumber
std::vector< TH1F * > projYOccupancyHotStripsVsStripNumber
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:281
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::isback
int isback
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:210
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::number_strips
int number_strips
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:216
TrackerTopology::tidWheel
unsigned int tidWheel(const DetId &id) const
Definition: TrackerTopology.h:201
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::pfxPoissonProbHotStripsVsStripNumber
std::vector< TProfile * > pfxPoissonProbHotStripsVsStripNumber
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:290
Mean
Definition: SiPixelActionExecutor.h:21
TrackerTopology::tidIsStereo
bool tidIsStereo(const DetId &id) const
Definition: TrackerTopology.h:267
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::layer_ring
int layer_ring
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:208
PV3DBase::z
T z() const
Definition: PV3DBase.h:61
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::TkGeom
const TrackerGeometry * TkGeom
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:121
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::stripHits
int stripHits
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:239
DetId
Definition: DetId.h:17
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::number_apvs
int number_apvs
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:217
TrackerTopology.h
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::medianValues_TIDMinus_Disc3
std::vector< Apv > medianValues_TIDMinus_Disc3
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:162
SiStripBadStrip::Range
std::pair< ContainerIterator, ContainerIterator > Range
Definition: SiStripBadStrip.h:53
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::minNevents_
double minNevents_
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:115
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::pfxNHitsHotStripsVsStripNumber
std::vector< TProfile * > pfxNHitsHotStripsVsStripNumber
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:301
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::apv_channel
int apv_channel
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:233
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::medianValues_TIDPlus_Disc3
std::vector< Apv > medianValues_TIDPlus_Disc3
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:155
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::MeanAndRms_TIB_Layer3
std::pair< double, double > MeanAndRms_TIB_Layer3[7]
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:134
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::medianValues_TOB_Layer5
std::vector< Apv > medianValues_TOB_Layer5
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:146
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::dqmStore
DQMStore * dqmStore
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:257
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::ishot
int ishot[128]
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:244
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::detrawid
uint32_t detrawid
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:206
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::MeanAndRms_TECMinus_Disc1
std::pair< double, double > MeanAndRms_TECMinus_Disc1[7]
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:185
Abs
T Abs(T a)
Definition: MathUtil.h:49
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::medianValues_TECMinus_Disc1
std::vector< Apv > medianValues_TECMinus_Disc1
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:184
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::MeanAndRms_TECMinus_Disc7
std::pair< double, double > MeanAndRms_TECMinus_Disc7[7]
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:197
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::hotStripsPerAPV
int hotStripsPerAPV
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:236
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::stripWeight
double stripWeight[6][128]
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:127
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::absolute_occupancy_
long double absolute_occupancy_
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:114
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::MeanAndRms_TIDPlus_Disc2
std::pair< double, double > MeanAndRms_TIDPlus_Disc2[7]
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:154
Service.h
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::MeanAndRms_TOB_Layer6
std::pair< double, double > MeanAndRms_TOB_Layer6[7]
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:149
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::striphits
int striphits[128]
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:248
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::isBad
int isBad
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:229
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::projYOccupancyGoodStripsVsStripNumber
std::vector< TH1F * > projYOccupancyGoodStripsVsStripNumber
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:284
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::projYNHitsHotStripsVsStripNumber
std::vector< TH1F * > projYNHitsHotStripsVsStripNumber
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:303
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::projYNHitsVsStripNumber
std::vector< TH1F * > projYNHitsVsStripNumber
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:299
edm::ESHandle< SiStripQuality >
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::medianValues_TECMinus_Disc8
std::vector< Apv > medianValues_TECMinus_Disc8
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:198
dqm::implementation::IBooker::bookProfile
MonitorElement * bookProfile(TString const &name, TString const &title, int nchX, double lowX, double highX, int, double lowY, double highY, char const *option="s", FUNC onbooking=NOOP())
Definition: DQMStore.h:322
TrackerTopology::tibIsStereo
bool tibIsStereo(const DetId &id) const
Definition: TrackerTopology.h:266
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::strip_number
int strip_number
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:232
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::isstereo
int isstereo
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:214
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h
dqm::implementation::DQMStore::setCurrentFolder
void setCurrentFolder(std::string const &fullpath) override
Definition: DQMStore.h:569
StripSubdetector::TIB
static constexpr auto TIB
Definition: StripSubdetector.h:16
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::DQMOutfileName_
std::string DQMOutfileName_
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:118
dqm::legacy::MonitorElement::getTProfile
virtual TProfile * getTProfile() const
Definition: MonitorElement.h:506
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::pfxOccupancyGoodStripsVsStripNumber
std::vector< TProfile * > pfxOccupancyGoodStripsVsStripNumber
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:283
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::MeanAndRms_TECMinus_Disc6
std::pair< double, double > MeanAndRms_TECMinus_Disc6[7]
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:195
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::projXNHitsVsStripNumber
std::vector< TH1F * > projXNHitsVsStripNumber
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:298
Point3DBase< float, LocalTag >
dqm::implementation::DQMStore::save
DQM_DEPRECATED void save(std::string const &filename, std::string const &path="")
Definition: DQMStore.cc:761
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::MinNumEntriesPerStrip_
unsigned short MinNumEntriesPerStrip_
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:108
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::layerName
std::vector< std::string > layerName
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:311
DetId::subdetId
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum)
Definition: DetId.h:48
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::pfxPoissonProbVsStripNumber
std::vector< TProfile * > pfxPoissonProbVsStripNumber
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:287
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::medianValues_TECMinus_Disc5
std::vector< Apv > medianValues_TECMinus_Disc5
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:192
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::fillStripDQMHistograms
void fillStripDQMHistograms()
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.cc:1184
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::medianValues_TECMinus_Disc6
std::vector< Apv > medianValues_TECMinus_Disc6
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:194
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::MeanAndRms_TIDMinus_Disc2
std::pair< double, double > MeanAndRms_TIDMinus_Disc2[7]
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:161
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::global_position_z
float global_position_z
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:222
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::lowoccupancy_
long double lowoccupancy_
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:109
TrackerTopology::tibString
unsigned int tibString(const DetId &id) const
Definition: TrackerTopology.h:419
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::MeanAndRms_TECPlus_Disc2
std::pair< double, double > MeanAndRms_TECPlus_Disc2[7]
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:168
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::medianValues_TECMinus_Disc7
std::vector< Apv > medianValues_TECMinus_Disc7
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:196
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::HistoMap
SiStrip::QualityHistosMap HistoMap
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:47
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::projYNHitsGoodStripsVsStripNumber
std::vector< TH1F * > projYNHitsGoodStripsVsStripNumber
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:307
edm::ParameterSet
Definition: ParameterSet.h:47
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::hotstripsperapv
int hotstripsperapv[6]
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:245
a
double a
Definition: hdecay.h:119
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::projXDistanceVsStripNumber
std::vector< TH1F * > projXDistanceVsStripNumber
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:273
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::MeanAndRms_TECPlus_Disc3
std::pair< double, double > MeanAndRms_TECPlus_Disc3[7]
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:170
TrackerTopology::tecPetalNumber
unsigned int tecPetalNumber(const DetId &id) const
Definition: TrackerTopology.h:221
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::iterativeSearch
void iterativeSearch(Apv &, std::vector< unsigned int > &, int)
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.cc:677
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::MeanAndRms_TECPlus_Disc5
std::pair< double, double > MeanAndRms_TECPlus_Disc5[7]
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:174
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::medianOccupancy
TH1F * medianOccupancy[5][10]
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:268
TrackerTopology::tobIsZMinusSide
bool tobIsZMinusSide(const DetId &id) const
Definition: TrackerTopology.h:253
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::strip_global_position_x
float strip_global_position_x
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:223
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::iszminusside
int iszminusside
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:212
SiStripMonitorCluster_cfi.Nbins
Nbins
Definition: SiStripMonitorCluster_cfi.py:32
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::Apv
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:76
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::poissonProb
double poissonProb
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:242
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::medianValues_TIDMinus_Disc1
std::vector< Apv > medianValues_TIDMinus_Disc1
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:158
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::UseInputDB_
bool UseInputDB_
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:120
PV3DBase::y
T y() const
Definition: PV3DBase.h:60
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::projYPoissonProbVsStripNumber
std::vector< TH1F * > projYPoissonProbVsStripNumber
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:288
TrackerTopology::tibModule
unsigned int tibModule(const DetId &id) const
Definition: TrackerTopology.h:172
sistrip::APV
Definition: ConstantsForGranularity.h:79
edm::Service
Definition: Service.h:30
createfilelist.int
int
Definition: createfilelist.py:10
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::medianValues_TIDPlus_Disc2
std::vector< Apv > medianValues_TIDPlus_Disc2
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:153
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::pfxNHitsVsStripNumber
std::vector< TProfile * > pfxNHitsVsStripNumber
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:297
TrackerTopology::tecRing
unsigned int tecRing(const DetId &id) const
ring id
Definition: TrackerTopology.h:217
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::occupancyHotStripsVsStripNumber
std::vector< TH2F * > occupancyHotStripsVsStripNumber
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:279
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::poissonProbHotStripsVsStripNumber
std::vector< TH2F * > poissonProbHotStripsVsStripNumber
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:289
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::hotStripsPerModule
int hotStripsPerModule
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:237
SiStripQuality::fillBadComponents
void fillBadComponents()
Definition: SiStripQuality.cc:531
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::medianValues_TECMinus_Disc2
std::vector< Apv > medianValues_TECMinus_Disc2
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:186
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::MeanAndRms_TIDMinus_Disc1
std::pair< double, double > MeanAndRms_TIDMinus_Disc1[7]
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:159
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::MeanAndRms_TOB_Layer4
std::pair< double, double > MeanAndRms_TOB_Layer4[7]
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:145
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::stripOccupancy
double stripOccupancy[6][128]
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:126
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::MeanAndRms_TIDMinus_Disc3
std::pair< double, double > MeanAndRms_TIDMinus_Disc3[7]
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:163
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::medianValues_TIB_Layer4
std::vector< Apv > medianValues_TIB_Layer4
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:135
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::disc
int disc
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:209
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::medianValues_TIDPlus_Disc1
std::vector< Apv > medianValues_TIDPlus_Disc1
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:151
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::numberiterations_
int numberiterations_
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:112
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::absoluteOccupancy
TH1F * absoluteOccupancy[5][10]
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:269
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::MeanAndRms_TOB_Layer5
std::pair< double, double > MeanAndRms_TOB_Layer5[7]
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:147
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::tTopo
const TrackerTopology * tTopo
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:122
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy(const edm::ParameterSet &, const TrackerTopology *)
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.cc:12
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::~SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy
virtual ~SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy()
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.cc:28
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::occupancyGoodStripsVsStripNumber
std::vector< TH2F * > occupancyGoodStripsVsStripNumber
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:282
SiStripQuality::IsApvBad
bool IsApvBad(const uint32_t &detid, const short &apvNb) const
Definition: SiStripQuality.cc:615
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::apvMedianOccupancy
double apvMedianOccupancy
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:228
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::medianValues_TECPlus_Disc3
std::vector< Apv > medianValues_TECPlus_Disc3
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:169
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::distanceR
unsigned int distanceR
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:315
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::MeanAndRms_TECPlus_Disc7
std::pair< double, double > MeanAndRms_TECPlus_Disc7[7]
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:178
TrackerTopology::tobLayer
unsigned int tobLayer(const DetId &id) const
Definition: TrackerTopology.h:147
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::hotstripspermodule
int hotstripspermodule
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:246
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::pfxOccupancyHotStripsVsStripNumber
std::vector< TProfile * > pfxOccupancyHotStripsVsStripNumber
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:280
TrackerTopology::tidIsBackRing
bool tidIsBackRing(const DetId &id) const
Definition: TrackerTopology.h:441
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::pQuality
SiStripQuality * pQuality
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:124
StripSubdetector::TEC
static constexpr auto TEC
Definition: StripSubdetector.h:19
TrackerTopology::tobModule
unsigned int tobModule(const DetId &id) const
Definition: TrackerTopology.h:166
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::WriteOutputFile_
bool WriteOutputFile_
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:117
qcdUeDQM_cfi.quality
quality
Definition: qcdUeDQM_cfi.py:31
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::medianValues_TOB_Layer3
std::vector< Apv > medianValues_TOB_Layer3
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:142
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::MeanAndRms_TECPlus_Disc8
std::pair< double, double > MeanAndRms_TECPlus_Disc8[7]
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:180
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::f
TFile * f
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:203
DetId.h
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::module_number
int module_number
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:215
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::medianValues_TOB_Layer1
std::vector< Apv > medianValues_TOB_Layer1
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:138
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::OutFileName_
std::string OutFileName_
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:116
dqm::implementation::IBooker::book2D
MonitorElement * book2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, FUNC onbooking=NOOP())
Definition: DQMStore.h:177
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::AnalyzeOccupancy
void AnalyzeOccupancy(SiStripQuality *, std::vector< Apv > &, std::pair< double, double > *, std::vector< unsigned int > &, edm::ESHandle< SiStripQuality > &)
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.cc:474
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::occupancyVsStripNumber
std::vector< TH2F * > occupancyVsStripNumber
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:276
SiStripQuality.h
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::distanceL
unsigned int distanceL
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:315
StripSubdetector::TOB
static constexpr auto TOB
Definition: StripSubdetector.h:18
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::nHitsHotStripsVsStripNumber
std::vector< TH2F * > nHitsHotStripsVsStripNumber
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:300
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::apv_number
int apv_number
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:218
HltBtagPostValidation_cff.histoName
histoName
Definition: HltBtagPostValidation_cff.py:17
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::nHitsGoodStripsVsStripNumber
std::vector< TH2F * > nHitsGoodStripsVsStripNumber
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:304
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::MeanAndRms_TECPlus_Disc9
std::pair< double, double > MeanAndRms_TECPlus_Disc9[7]
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:182
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::medianValues_TECPlus_Disc5
std::vector< Apv > medianValues_TECPlus_Disc5
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:173
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::medianValues_TECPlus_Disc9
std::vector< Apv > medianValues_TECPlus_Disc9
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:181
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::highoccupancy_
long double highoccupancy_
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:110
TrackerTopology::tecModule
unsigned int tecModule(const DetId &id) const
Definition: TrackerTopology.h:169
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::projXNHitsGoodStripsVsStripNumber
std::vector< TH1F * > projXNHitsGoodStripsVsStripNumber
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:306
edm::isDebugEnabled
bool isDebugEnabled()
Definition: MessageLogger.cc:12
StripGeomDetUnit::specificTopology
virtual const StripTopology & specificTopology() const
Returns a reference to the strip proxy topology.
Definition: StripGeomDetUnit.cc:17
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::poissonProbVsStripNumber
std::vector< TH2F * > poissonProbVsStripNumber
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:286
LogTrace
#define LogTrace(id)
Definition: MessageLogger.h:224
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::evaluatePoissonian
void evaluatePoissonian(std::vector< long double > &, long double &meanVal)
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.cc:744
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::apvAbsoluteOccupancy
int apvAbsoluteOccupancy
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:227
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::medianValues_TOB_Layer4
std::vector< Apv > medianValues_TOB_Layer4
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:144
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::projYPoissonProbHotStripsVsStripNumber
std::vector< TH1F * > projYPoissonProbHotStripsVsStripNumber
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:291
TrackerTopology::tecIsBackPetal
bool tecIsBackPetal(const DetId &id) const
Definition: TrackerTopology.h:414
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::MeanAndRms_TIB_Layer4
std::pair< double, double > MeanAndRms_TIB_Layer4[7]
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:136
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::ss
std::stringstream ss
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:253
SiStripQuality::clear
void clear()
Definition: SiStripQuality.h:52
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::tmp
MonitorElement * tmp
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:259
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::nHitsVsStripNumber
std::vector< TH2F * > nHitsVsStripNumber
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:296
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::medianVsAbsoluteOccupancy
TH2F * medianVsAbsoluteOccupancy[5][10]
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:267
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::avgAPVHits
double avgAPVHits
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:241
SiStripBadStrip::encode
unsigned int encode(const unsigned short &first, const unsigned short &NconsecutiveBadStrips, const unsigned short &flag=0)
Definition: SiStripBadStrip.h:86
TrackerTopology::tibIsZMinusSide
bool tibIsZMinusSide(const DetId &id) const
Definition: TrackerTopology.h:256
TrackerTopology::tecWheel
unsigned int tecWheel(const DetId &id) const
Definition: TrackerTopology.h:198
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::strip_global_position_y
float strip_global_position_y
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:224
StripTopology
Definition: StripTopology.h:11
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::vHotStripsInModule
std::vector< unsigned int > vHotStripsInModule
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:313
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::medianValues_TECPlus_Disc7
std::vector< Apv > medianValues_TECPlus_Disc7
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:177
StripSubdetector.h
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::pfxOccupancyVsStripNumber
std::vector< TProfile * > pfxOccupancyVsStripNumber
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:277
StripSubdetector::TID
static constexpr auto TID
Definition: StripSubdetector.h:17
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::MeanAndRms_TECPlus_Disc4
std::pair< double, double > MeanAndRms_TECPlus_Disc4[7]
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:172
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::medianValues_TECMinus_Disc3
std::vector< Apv > medianValues_TECMinus_Disc3
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:188
dqm::implementation::DQMStore::cd
void cd() override
Definition: DQMStore.h:564
dqm::implementation::IBooker::book1D
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::MeanAndRms_TECMinus_Disc9
std::pair< double, double > MeanAndRms_TECMinus_Disc9[7]
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:201
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::MeanAndRms_TECPlus_Disc6
std::pair< double, double > MeanAndRms_TECPlus_Disc6[7]
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:176
StripGeomDetUnit
Definition: StripGeomDetUnit.h:15
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::distance
unsigned int distance
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:314
TrackerTopology::tibLayer
unsigned int tibLayer(const DetId &id) const
Definition: TrackerTopology.h:150
dqm::legacy::MonitorElement::getTH2F
virtual TH2F * getTH2F() const
Definition: MonitorElement.h:490
SiStripQuality
Definition: SiStripQuality.h:32
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::absolutelow_
long double absolutelow_
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:111
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::MeanAndRms_TECPlus_Disc1
std::pair< double, double > MeanAndRms_TECPlus_Disc1[7]
Definition: SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy.h:166