CMS 3D CMS Logo

SiStripQualityStatistics.cc
Go to the documentation of this file.
1 // -*- C++ -*-
2 //
3 // Package: SiStripQualityStatistics
4 // Class: SiStripQualityStatistics
5 //
13 //
14 // Original Author: Domenico GIORDANO
15 // Created: Wed Oct 3 12:11:10 CEST 2007
16 //
17 //
18 
26 
28 
30  : m_cacheID_(0),
31  dataLabel_(iConfig.getUntrackedParameter<std::string>("dataLabel", "")),
32  TkMapFileName_(iConfig.getUntrackedParameter<std::string>("TkMapFileName", "")),
33  saveTkHistoMap_(iConfig.getUntrackedParameter<bool>("SaveTkHistoMap", true)),
34  tkMap(nullptr),
35  tkMapFullIOVs(nullptr),
36  addBadCompFromFedErr_(iConfig.getUntrackedParameter<bool>("AddBadComponentsFromFedErrors", false)),
37  fedErrCutoff_(float(iConfig.getUntrackedParameter<double>("FedErrorBadComponentsCutoff", 0.8))),
38  tTopoToken_(esConsumes<edm::Transition::EndRun>()),
39  tkDetMapToken_(esConsumes<edm::Transition::EndRun>()),
40  stripQualityToken_(esConsumes<edm::Transition::EndRun>()),
41  fedCablingToken_(addBadCompFromFedErr_ ? decltype(fedCablingToken_){esConsumes<edm::Transition::EndRun>()}
42  : decltype(fedCablingToken_){}) {
44  iConfig
45  .getUntrackedParameter<edm::FileInPath>("file",
46  edm::FileInPath("CalibTracker/SiStripCommon/data/SiStripDetInfo.dat"))
47  .fullPath());
48 
49  tkMapFullIOVs = new TrackerMap("BadComponents");
50  tkhisto = nullptr;
51 }
52 
54 
57  SiStripQuality mergedQuality{*siStripQuality_};
58  auto fedErrQuality = sistrip::badStripFromFedErr(getter, *fedCabling_, fedErrCutoff_);
59  mergedQuality.add(fedErrQuality.get());
60  mergedQuality.cleanUp();
61  mergedQuality.fillBadComponents();
62  updateAndSave(&mergedQuality);
63  }
65  if (!filename.empty()) {
66  tkMapFullIOVs->save(false, 0, 0, filename);
67  filename.erase(filename.begin() + filename.find('.'), filename.end());
68  tkMapFullIOVs->print(false, 0, 0, filename);
69 
70  if (saveTkHistoMap_) {
71  tkhisto->save(filename + ".root");
72  tkhisto->saveAsCanvas(filename + "_Canvas.root", "E");
73  }
74  }
75 }
76 
78  tTopo_ = &iSetup.getData(tTopoToken_);
79  if ((!tkhisto) && (!TkMapFileName_.empty())) {
80  //here the baseline (the value of the empty,not assigned bins) is put to -1 (default is zero)
81  tkhisto = std::make_unique<TkHistoMap>(&iSetup.getData(tkDetMapToken_), "BadComp", "BadComp", -1.);
82  }
83 
84  if (stripQualityWatcher_.check(iSetup)) {
85  run_ = run.id();
86 
87  const auto stripQuality = &iSetup.getData(stripQualityToken_);
88  if (!addBadCompFromFedErr_) {
89  updateAndSave(stripQuality);
90  } else {
91  siStripQuality_ = stripQuality;
93  }
94  }
95 }
96 
98  for (int i = 0; i < 4; ++i) {
99  NTkBadComponent[i] = 0;
100  for (int j = 0; j < 19; ++j) {
101  ssV[i][j].str("");
102  for (int k = 0; k < 4; ++k)
103  NBadComponent[i][j][k] = 0;
104  }
105  }
106 
107  if (tkMap)
108  delete tkMap;
109  tkMap = new TrackerMap("BadComponents");
110 
111  std::stringstream ss;
112  std::vector<uint32_t> detids = reader->getAllDetIds();
113  std::vector<uint32_t>::const_iterator idet = detids.begin();
114  for (; idet != detids.end(); ++idet) {
115  ss << "detid " << (*idet) << " IsModuleUsable " << siStripQuality->IsModuleUsable((*idet)) << "\n";
116  if (siStripQuality->IsModuleUsable((*idet)))
117  tkMap->fillc(*idet, 0x00ff00);
118  }
119  LogDebug("SiStripQualityStatistics") << ss.str() << std::endl;
120 
121  std::vector<SiStripQuality::BadComponent> BC = siStripQuality->getBadComponentList();
122 
123  for (size_t i = 0; i < BC.size(); ++i) {
124  //&&&&&&&&&&&&&
125  //Full Tk
126  //&&&&&&&&&&&&&
127 
128  if (BC[i].BadModule)
129  NTkBadComponent[0]++;
130  if (BC[i].BadFibers)
131  NTkBadComponent[1] += ((BC[i].BadFibers >> 2) & 0x1) + ((BC[i].BadFibers >> 1) & 0x1) + ((BC[i].BadFibers) & 0x1);
132  if (BC[i].BadApvs)
133  NTkBadComponent[2] += ((BC[i].BadApvs >> 5) & 0x1) + ((BC[i].BadApvs >> 4) & 0x1) + ((BC[i].BadApvs >> 3) & 0x1) +
134  ((BC[i].BadApvs >> 2) & 0x1) + ((BC[i].BadApvs >> 1) & 0x1) + ((BC[i].BadApvs) & 0x1);
135 
136  //&&&&&&&&&&&&&&&&&
137  //Single SubSyste
138  //&&&&&&&&&&&&&&&&&
139  int component;
140  DetId detectorId = DetId(BC[i].detid);
141  int subDet = detectorId.subdetId();
142  if (subDet == StripSubdetector::TIB) {
143  //&&&&&&&&&&&&&&&&&
144  //TIB
145  //&&&&&&&&&&&&&&&&&
146 
147  component = tTopo_->tibLayer(BC[i].detid);
148  SetBadComponents(0, component, BC[i]);
149 
150  } else if (subDet == StripSubdetector::TID) {
151  //&&&&&&&&&&&&&&&&&
152  //TID
153  //&&&&&&&&&&&&&&&&&
154 
155  component = tTopo_->tidSide(BC[i].detid) == 2 ? tTopo_->tidWheel(BC[i].detid) : tTopo_->tidWheel(BC[i].detid) + 3;
156  SetBadComponents(1, component, BC[i]);
157 
158  } else if (subDet == StripSubdetector::TOB) {
159  //&&&&&&&&&&&&&&&&&
160  //TOB
161  //&&&&&&&&&&&&&&&&&
162 
163  component = tTopo_->tobLayer(BC[i].detid);
164  SetBadComponents(2, component, BC[i]);
165 
166  } else if (subDet == StripSubdetector::TEC) {
167  //&&&&&&&&&&&&&&&&&
168  //TEC
169  //&&&&&&&&&&&&&&&&&
170 
171  component = tTopo_->tecSide(BC[i].detid) == 2 ? tTopo_->tecWheel(BC[i].detid) : tTopo_->tecWheel(BC[i].detid) + 9;
172  SetBadComponents(3, component, BC[i]);
173  }
174  }
175 
176  //&&&&&&&&&&&&&&&&&&
177  // Single Strip Info
178  //&&&&&&&&&&&&&&&&&&
179  float percentage = 0;
180 
181  SiStripQuality::RegistryIterator rbegin = siStripQuality->getRegistryVectorBegin();
183 
184  for (SiStripBadStrip::RegistryIterator rp = rbegin; rp != rend; ++rp) {
185  uint32_t detid = rp->detid;
186 
187  int subdet = -999;
188  int component = -999;
189  DetId detectorId = DetId(detid);
190  int subDet = detectorId.subdetId();
191  if (subDet == StripSubdetector::TIB) {
192  subdet = 0;
193  component = tTopo_->tibLayer(detid);
194  } else if (subDet == StripSubdetector::TID) {
195  subdet = 1;
196  component = tTopo_->tidSide(detid) == 2 ? tTopo_->tidWheel(detid) : tTopo_->tidWheel(detid) + 3;
197  } else if (subDet == StripSubdetector::TOB) {
198  subdet = 2;
199  component = tTopo_->tobLayer(detid);
200  } else if (subDet == StripSubdetector::TEC) {
201  subdet = 3;
202  component = tTopo_->tecSide(detid) == 2 ? tTopo_->tecWheel(detid) : tTopo_->tecWheel(detid) + 9;
203  }
204 
205  SiStripQuality::Range sqrange = SiStripQuality::Range(siStripQuality->getDataVectorBegin() + rp->ibegin,
206  siStripQuality->getDataVectorBegin() + rp->iend);
207 
208  percentage = 0;
209  for (int it = 0; it < sqrange.second - sqrange.first; it++) {
210  unsigned int range = siStripQuality->decode(*(sqrange.first + it)).range;
211  NTkBadComponent[3] += range;
212  NBadComponent[subdet][0][3] += range;
213  NBadComponent[subdet][component][3] += range;
214  percentage += range;
215  }
216  if (percentage != 0)
217  percentage /= 128. * reader->getNumberOfApvsAndStripLength(detid).first;
218  if (percentage > 1)
219  edm::LogError("SiStripQualityStatistics") << "PROBLEM detid " << detid << " value " << percentage << std::endl;
220 
221  //------- Global Statistics on percentage of bad components along the IOVs ------//
222  tkMapFullIOVs->fill(detid, percentage);
223  if (tkhisto != nullptr)
224  tkhisto->fill(detid, percentage);
225  }
226 
227  //&&&&&&&&&&&&&&&&&&
228  // printout
229  //&&&&&&&&&&&&&&&&&&
230 
231  ss.str("");
232  ss << "\n-----------------\nNew IOV starting from run " << run_.run() << " chacheID " << m_cacheID_
233  << "\n-----------------\n";
234  ss << "\n-----------------\nGlobal Info\n-----------------";
235  ss << "\nBadComponent \t Modules \tFibers "
236  "\tApvs\tStrips\n----------------------------------------------------------------";
237  ss << "\nTracker:\t\t" << NTkBadComponent[0] << "\t" << NTkBadComponent[1] << "\t" << NTkBadComponent[2] << "\t"
238  << NTkBadComponent[3];
239  ss << "\n";
240  ss << "\nTIB:\t\t\t" << NBadComponent[0][0][0] << "\t" << NBadComponent[0][0][1] << "\t" << NBadComponent[0][0][2]
241  << "\t" << NBadComponent[0][0][3];
242  ss << "\nTID:\t\t\t" << NBadComponent[1][0][0] << "\t" << NBadComponent[1][0][1] << "\t" << NBadComponent[1][0][2]
243  << "\t" << NBadComponent[1][0][3];
244  ss << "\nTOB:\t\t\t" << NBadComponent[2][0][0] << "\t" << NBadComponent[2][0][1] << "\t" << NBadComponent[2][0][2]
245  << "\t" << NBadComponent[2][0][3];
246  ss << "\nTEC:\t\t\t" << NBadComponent[3][0][0] << "\t" << NBadComponent[3][0][1] << "\t" << NBadComponent[3][0][2]
247  << "\t" << NBadComponent[3][0][3];
248  ss << "\n";
249 
250  for (int i = 1; i < 5; ++i)
251  ss << "\nTIB Layer " << i << " :\t\t" << NBadComponent[0][i][0] << "\t" << NBadComponent[0][i][1] << "\t"
252  << NBadComponent[0][i][2] << "\t" << NBadComponent[0][i][3];
253  ss << "\n";
254  for (int i = 1; i < 4; ++i)
255  ss << "\nTID+ Disk " << i << " :\t\t" << NBadComponent[1][i][0] << "\t" << NBadComponent[1][i][1] << "\t"
256  << NBadComponent[1][i][2] << "\t" << NBadComponent[1][i][3];
257  for (int i = 4; i < 7; ++i)
258  ss << "\nTID- Disk " << i - 3 << " :\t\t" << NBadComponent[1][i][0] << "\t" << NBadComponent[1][i][1] << "\t"
259  << NBadComponent[1][i][2] << "\t" << NBadComponent[1][i][3];
260  ss << "\n";
261  for (int i = 1; i < 7; ++i)
262  ss << "\nTOB Layer " << i << " :\t\t" << NBadComponent[2][i][0] << "\t" << NBadComponent[2][i][1] << "\t"
263  << NBadComponent[2][i][2] << "\t" << NBadComponent[2][i][3];
264  ss << "\n";
265  for (int i = 1; i < 10; ++i)
266  ss << "\nTEC+ Disk " << i << " :\t\t" << NBadComponent[3][i][0] << "\t" << NBadComponent[3][i][1] << "\t"
267  << NBadComponent[3][i][2] << "\t" << NBadComponent[3][i][3];
268  for (int i = 10; i < 19; ++i)
269  ss << "\nTEC- Disk " << i - 9 << " :\t\t" << NBadComponent[3][i][0] << "\t" << NBadComponent[3][i][1] << "\t"
270  << NBadComponent[3][i][2] << "\t" << NBadComponent[3][i][3];
271  ss << "\n";
272 
273  ss << "\n----------------------------------------------------------------\n\t\t Detid \tModules Fibers "
274  "Apvs\n----------------------------------------------------------------";
275  for (int i = 1; i < 5; ++i)
276  ss << "\nTIB Layer " << i << " :" << ssV[0][i].str();
277  ss << "\n";
278  for (int i = 1; i < 4; ++i)
279  ss << "\nTID+ Disk " << i << " :" << ssV[1][i].str();
280  for (int i = 4; i < 7; ++i)
281  ss << "\nTID- Disk " << i - 3 << " :" << ssV[1][i].str();
282  ss << "\n";
283  for (int i = 1; i < 7; ++i)
284  ss << "\nTOB Layer " << i << " :" << ssV[2][i].str();
285  ss << "\n";
286  for (int i = 1; i < 10; ++i)
287  ss << "\nTEC+ Disk " << i << " :" << ssV[3][i].str();
288  for (int i = 10; i < 19; ++i)
289  ss << "\nTEC- Disk " << i - 9 << " :" << ssV[3][i].str();
290 
291  edm::LogInfo("SiStripQualityStatistics") << ss.str() << std::endl;
292 
294  std::stringstream sRun;
295  sRun.str("");
296  sRun << "_Run_" << std::setw(6) << std::setfill('0') << run_.run() << std::setw(0);
297 
298  if (!filename.empty()) {
299  filename.insert(filename.find('.'), sRun.str());
300  tkMap->save(true, 0, 0, filename);
301  filename.erase(filename.begin() + filename.find('.'), filename.end());
302  tkMap->print(true, 0, 0, filename);
303  }
304 }
305 
307  int napv = reader->getNumberOfApvsAndStripLength(BC.detid).first;
308 
309  ssV[i][component] << "\n\t\t " << BC.detid << " \t " << BC.BadModule << " \t " << ((BC.BadFibers) & 0x1) << " ";
310  if (napv == 4)
311  ssV[i][component] << "x " << ((BC.BadFibers >> 1) & 0x1);
312 
313  if (napv == 6)
314  ssV[i][component] << ((BC.BadFibers >> 1) & 0x1) << " " << ((BC.BadFibers >> 2) & 0x1);
315  ssV[i][component] << " \t " << ((BC.BadApvs) & 0x1) << " " << ((BC.BadApvs >> 1) & 0x1) << " ";
316  if (napv == 4)
317  ssV[i][component] << "x x " << ((BC.BadApvs >> 2) & 0x1) << " " << ((BC.BadApvs >> 3) & 0x1);
318  if (napv == 6)
319  ssV[i][component] << ((BC.BadApvs >> 2) & 0x1) << " " << ((BC.BadApvs >> 3) & 0x1) << " "
320  << ((BC.BadApvs >> 4) & 0x1) << " " << ((BC.BadApvs >> 5) & 0x1) << " ";
321 
322  if (BC.BadApvs) {
323  NBadComponent[i][0][2] += ((BC.BadApvs >> 5) & 0x1) + ((BC.BadApvs >> 4) & 0x1) + ((BC.BadApvs >> 3) & 0x1) +
324  ((BC.BadApvs >> 2) & 0x1) + ((BC.BadApvs >> 1) & 0x1) + ((BC.BadApvs) & 0x1);
325  NBadComponent[i][component][2] += ((BC.BadApvs >> 5) & 0x1) + ((BC.BadApvs >> 4) & 0x1) +
326  ((BC.BadApvs >> 3) & 0x1) + ((BC.BadApvs >> 2) & 0x1) +
327  ((BC.BadApvs >> 1) & 0x1) + ((BC.BadApvs) & 0x1);
328  tkMap->fillc(BC.detid, 0xff0000);
329  }
330  if (BC.BadFibers) {
331  NBadComponent[i][0][1] += ((BC.BadFibers >> 2) & 0x1) + ((BC.BadFibers >> 1) & 0x1) + ((BC.BadFibers) & 0x1);
332  NBadComponent[i][component][1] +=
333  ((BC.BadFibers >> 2) & 0x1) + ((BC.BadFibers >> 1) & 0x1) + ((BC.BadFibers) & 0x1);
334  tkMap->fillc(BC.detid, 0x0000ff);
335  }
336  if (BC.BadModule) {
337  NBadComponent[i][0][0]++;
338  NBadComponent[i][component][0]++;
339  tkMap->fillc(BC.detid, 0x0);
340  }
341 }
SiStripQualityStatistics::reader
SiStripDetInfoFileReader * reader
Definition: SiStripQualityStatistics.h:46
edm::ESWatcher::check
bool check(const edm::EventSetup &iSetup)
Definition: ESWatcher.h:52
SiStripQuality::BadComponent::detid
uint32_t detid
Definition: SiStripQuality.h:35
FastTimerService_cff.range
range
Definition: FastTimerService_cff.py:34
electrons_cff.bool
bool
Definition: electrons_cff.py:393
mps_fire.i
i
Definition: mps_fire.py:428
MessageLogger.h
dqmMemoryStats.float
float
Definition: dqmMemoryStats.py:127
funct::false
false
Definition: Factorize.h:29
SiStripQualityStatistics::stripQualityToken_
edm::ESGetToken< SiStripQuality, SiStripQualityRcd > stripQualityToken_
Definition: SiStripQualityStatistics.h:52
SiStripQualityStatistics::SiStripQualityStatistics
SiStripQualityStatistics(const edm::ParameterSet &)
Definition: SiStripQualityStatistics.cc:29
edm::RunID::run
RunNumber_t run() const
Definition: RunID.h:36
SiStripQualityStatistics::saveTkHistoMap_
bool saveTkHistoMap_
Definition: SiStripQualityStatistics.h:36
edm::Run
Definition: Run.h:45
sistrip::badStripFromFedErr
std::unique_ptr< SiStripQuality > badStripFromFedErr(dqm::harvesting::DQMStore::IGetter &dqmStore, const SiStripFedCabling &fedCabling, float cutoff)
Definition: SiStripQualityHelpers.cc:52
contentValuesFiles.fullPath
fullPath
Definition: contentValuesFiles.py:64
edm
HLT enums.
Definition: AlignableModifier.h:19
SiStripQualityStatistics::fedCablingToken_
edm::ESGetToken< SiStripFedCabling, SiStripFedCablingRcd > fedCablingToken_
Definition: SiStripQualityStatistics.h:53
SiStripBadStrip::decode
data decode(const unsigned int &value) const
Definition: SiStripBadStrip.h:78
SiStripQuality::IsModuleUsable
bool IsModuleUsable(const uint32_t &detid) const
Definition: SiStripQuality.cc:585
SiStripQualityStatistics::TkMapFileName_
std::string TkMapFileName_
Definition: SiStripQualityStatistics.h:35
TrackerMap::fill
void fill(int layer, int ring, int nmod, float x)
Definition: TrackerMap.cc:3288
edm::LogInfo
Log< level::Info, false > LogInfo
Definition: MessageLogger.h:125
SiStripQualityStatistics::fedErrCutoff_
float fedErrCutoff_
Definition: SiStripQualityStatistics.h:49
SiStripQualityStatistics::tkDetMapToken_
edm::ESGetToken< TkDetMap, TrackerTopologyRcd > tkDetMapToken_
Definition: SiStripQualityStatistics.h:51
SiStripDetInfoFileReader
Definition: SiStripDetInfoFileReader.h:30
SiStripBadStrip::getDataVectorBegin
ContainerIterator getDataVectorBegin() const
Definition: SiStripBadStrip.h:73
SiStripQualityStatistics::~SiStripQualityStatistics
~SiStripQualityStatistics() override
Definition: SiStripQualityStatistics.cc:53
TrackerTopology::tidWheel
unsigned int tidWheel(const DetId &id) const
Definition: TrackerTopology.h:201
SiStripQualityStatistics::addBadCompFromFedErr_
bool addBadCompFromFedErr_
Definition: SiStripQualityStatistics.h:48
SiStripQualityStatistics::NTkBadComponent
int NTkBadComponent[4]
Definition: SiStripQualityStatistics.h:38
SiStripQualityStatistics::tkMap
TrackerMap * tkMap
Definition: SiStripQualityStatistics.h:45
contentValuesCheck.ss
ss
Definition: contentValuesCheck.py:33
DetId
Definition: DetId.h:17
edm::FileInPath
Definition: FileInPath.h:64
TrackerTopology.h
testProducerWithPsetDescEmpty_cfi.x1
x1
Definition: testProducerWithPsetDescEmpty_cfi.py:33
SiStripBadStrip::Range
std::pair< ContainerIterator, ContainerIterator > Range
Definition: SiStripBadStrip.h:53
SiStripQuality::getBadComponentList
const std::vector< BadComponent > & getBadComponentList() const
Definition: SiStripQuality.h:119
SiStripBadStrip::getRegistryVectorBegin
RegistryIterator getRegistryVectorBegin() const
Definition: SiStripBadStrip.h:75
DQM.reader
reader
Definition: DQM.py:105
SiStripQualityStatistics::NBadComponent
int NBadComponent[4][19][4]
Definition: SiStripQualityStatistics.h:39
str
#define str(s)
Definition: TestProcessor.cc:51
corrVsCorr.filename
filename
Definition: corrVsCorr.py:123
StripSubdetector::TIB
static constexpr auto TIB
Definition: StripSubdetector.h:16
SiStripDetInfoFileReader.h
TrackerMap
Definition: TrackerMap.h:76
dqmdumpme.k
k
Definition: dqmdumpme.py:60
TrackerMap::print
void print(bool print_total=true, float minval=0., float maxval=0., std::string s="svgmap")
Definition: TrackerMap.cc:2942
SiStripQualityStatistics.h
SiStripQuality::BadComponent::BadFibers
unsigned short BadFibers
Definition: SiStripQuality.h:37
TkHistoMap.h
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
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
SiStripQualityStatistics::dqmEndJob
void dqmEndJob(DQMStore::IBooker &, DQMStore::IGetter &) override
Definition: SiStripQualityStatistics.cc:55
funct::true
true
Definition: Factorize.h:173
SiStripQualityStatistics::tTopoToken_
edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > tTopoToken_
Definition: SiStripQualityStatistics.h:50
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:223
edm::ParameterSet
Definition: ParameterSet.h:47
edm::Transition
Transition
Definition: Transition.h:12
SiStripQuality::BadComponent::BadModule
bool BadModule
Definition: SiStripQuality.h:38
TrackerTopology::tidSide
unsigned int tidSide(const DetId &id) const
Definition: TrackerTopology.h:190
SiStripQualityStatistics::stripQualityWatcher_
edm::ESWatcher< SiStripQualityRcd > stripQualityWatcher_
Definition: SiStripQualityStatistics.h:54
SiStripQuality::BadComponent::BadApvs
unsigned short BadApvs
Definition: SiStripQuality.h:36
edm::EventSetup
Definition: EventSetup.h:57
edm::LogError
Log< level::Error, false > LogError
Definition: MessageLogger.h:123
SiStripDetInfoFileReader::getAllDetIds
const std::vector< uint32_t > & getAllDetIds() const
Definition: SiStripDetInfoFileReader.h:52
TrackerMap.h
edm::EventSetup::getData
bool getData(T &iHolder) const
Definition: EventSetup.h:120
SiStripQualityHelpers.h
TrackerMap::save
void save(bool print_total=true, float minval=0., float maxval=0., std::string s="svgmap.svg", int width=1500, int height=800)
Definition: TrackerMap.cc:810
TrackerTopology::tobLayer
unsigned int tobLayer(const DetId &id) const
Definition: TrackerTopology.h:147
SiStripQualityStatistics::endRun
void endRun(edm::Run const &, edm::EventSetup const &) override
Definition: SiStripQualityStatistics.cc:77
std
Definition: JetResolutionObject.h:76
SiStripDetInfoFileReader::getNumberOfApvsAndStripLength
const std::pair< unsigned short, double > getNumberOfApvsAndStripLength(uint32_t detId) const
Definition: SiStripDetInfoFileReader.cc:101
writedatasetfile.run
run
Definition: writedatasetfile.py:27
SiStripQuality::BadComponent
Definition: SiStripQuality.h:34
StripSubdetector::TEC
static constexpr auto TEC
Definition: StripSubdetector.h:19
SiStripQualityStatistics::ssV
std::stringstream ssV[4][19]
Definition: SiStripQualityStatistics.h:43
dqm::implementation::IGetter
Definition: DQMStore.h:484
StripSubdetector::TOB
static constexpr auto TOB
Definition: StripSubdetector.h:18
SiStripBadStrip::RegistryIterator
Registry::const_iterator RegistryIterator
Definition: SiStripBadStrip.h:55
dqm::implementation::IBooker
Definition: DQMStore.h:43
SiStripQualityStatistics::run_
edm::RunID run_
Definition: SiStripQualityStatistics.h:33
SiStripBadStrip::data::range
unsigned short range
Definition: SiStripBadStrip.h:34
SiStripQualityStatistics::tTopo_
const TrackerTopology * tTopo_
Definition: SiStripQualityStatistics.h:55
SiStripQualityStatistics::SetBadComponents
void SetBadComponents(int, int, SiStripQuality::BadComponent &)
Definition: SiStripQualityStatistics.cc:306
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66
SiStripQualityStatistics::tkMapFullIOVs
TrackerMap * tkMapFullIOVs
Definition: SiStripQualityStatistics.h:45
SiStripQualityStatistics::tkhisto
std::unique_ptr< TkHistoMap > tkhisto
Definition: SiStripQualityStatistics.h:47
SiStripQualityStatistics::m_cacheID_
unsigned long long m_cacheID_
Definition: SiStripQualityStatistics.h:32
TrackerTopology::tecWheel
unsigned int tecWheel(const DetId &id) const
Definition: TrackerTopology.h:198
StripSubdetector.h
SiStripQualityStatistics::fedCabling_
const SiStripFedCabling * fedCabling_
Definition: SiStripQualityStatistics.h:56
SiStripBadStrip::getRegistryVectorEnd
RegistryIterator getRegistryVectorEnd() const
Definition: SiStripBadStrip.h:76
SiStripQualityStatistics::siStripQuality_
const SiStripQuality * siStripQuality_
Definition: SiStripQualityStatistics.h:57
StripSubdetector::TID
static constexpr auto TID
Definition: StripSubdetector.h:17
TrackerMap::fillc
void fillc(int idmod, int RGBcode)
Definition: TrackerMap.h:135
TrackerTopology::tibLayer
unsigned int tibLayer(const DetId &id) const
Definition: TrackerTopology.h:150
SiStripQuality
Definition: SiStripQuality.h:32
SiStripQualityStatistics::updateAndSave
void updateAndSave(const SiStripQuality *siStripQuality)
Definition: SiStripQualityStatistics.cc:97
TrackerTopology::tecSide
unsigned int tecSide(const DetId &id) const
Definition: TrackerTopology.h:184