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  : TkMapFileName_(iConfig.getUntrackedParameter<std::string>("TkMapFileName", "")),
31  saveTkHistoMap_(iConfig.getUntrackedParameter<bool>("SaveTkHistoMap", true)),
32  tkMap(nullptr),
33  tkMapFullIOVs(nullptr),
34  tTopoToken_(esConsumes<edm::Transition::EndRun>()),
35  tkDetMapToken_(esConsumes<edm::Transition::EndRun>()),
36  withFedErrHelper_{iConfig, consumesCollector(), true} {
38  iConfig.getUntrackedParameter<edm::FileInPath>("file", edm::FileInPath(SiStripDetInfoFileReader::kDefaultFile))
39  .fullPath());
40 
41  tkMapFullIOVs = new TrackerMap("BadComponents");
42  tkhisto = nullptr;
43 }
44 
47  desc.addUntracked<std::string>("TkMapFileName", "");
48  desc.addUntracked<bool>("SaveTkHistoMap", true);
51  descriptions.add("siStripQualityStatistics", desc);
52 }
53 
57  }
59  if (!filename.empty()) {
60  tkMapFullIOVs->save(false, 0, 0, filename);
61  filename.erase(filename.begin() + filename.find('.'), filename.end());
62  tkMapFullIOVs->print(false, 0, 0, filename);
63 
64  if (saveTkHistoMap_) {
65  tkhisto->save(filename + ".root");
66  tkhisto->saveAsCanvas(filename + "_Canvas.root", "E");
67  }
68  }
69 }
70 
72  tTopo_ = std::make_unique<TrackerTopology>(iSetup.getData(tTopoToken_));
73  if ((!tkhisto) && (!TkMapFileName_.empty())) {
74  //here the baseline (the value of the empty,not assigned bins) is put to -1 (default is zero)
75  tkhisto = std::make_unique<TkHistoMap>(&iSetup.getData(tkDetMapToken_), "BadComp", "BadComp", -1.);
76  }
77 
79  run_ = run.id();
81  }
82 }
83 
85  for (int i = 0; i < 4; ++i) {
86  NTkBadComponent[i] = 0;
87  for (int j = 0; j < 19; ++j) {
88  ssV[i][j].str("");
89  for (int k = 0; k < 4; ++k)
90  NBadComponent[i][j][k] = 0;
91  }
92  }
93 
94  if (tkMap)
95  delete tkMap;
96  tkMap = new TrackerMap("BadComponents");
97 
98  std::stringstream ss;
99  std::vector<uint32_t> detids = detInfo_.getAllDetIds();
100  std::vector<uint32_t>::const_iterator idet = detids.begin();
101  for (; idet != detids.end(); ++idet) {
102  ss << "detid " << (*idet) << " IsModuleUsable " << siStripQuality->IsModuleUsable((*idet)) << "\n";
103  if (siStripQuality->IsModuleUsable((*idet)))
104  tkMap->fillc(*idet, 0x00ff00);
105  }
106  LogDebug("SiStripQualityStatistics") << ss.str() << std::endl;
107 
108  std::vector<SiStripQuality::BadComponent> BC = siStripQuality->getBadComponentList();
109 
110  for (size_t i = 0; i < BC.size(); ++i) {
111  //&&&&&&&&&&&&&
112  //Full Tk
113  //&&&&&&&&&&&&&
114 
115  if (BC[i].BadModule)
116  NTkBadComponent[0]++;
117  if (BC[i].BadFibers)
118  NTkBadComponent[1] += ((BC[i].BadFibers >> 2) & 0x1) + ((BC[i].BadFibers >> 1) & 0x1) + ((BC[i].BadFibers) & 0x1);
119  if (BC[i].BadApvs)
120  NTkBadComponent[2] += ((BC[i].BadApvs >> 5) & 0x1) + ((BC[i].BadApvs >> 4) & 0x1) + ((BC[i].BadApvs >> 3) & 0x1) +
121  ((BC[i].BadApvs >> 2) & 0x1) + ((BC[i].BadApvs >> 1) & 0x1) + ((BC[i].BadApvs) & 0x1);
122 
123  //&&&&&&&&&&&&&&&&&
124  //Single SubSyste
125  //&&&&&&&&&&&&&&&&&
126  int component;
127  DetId detectorId = DetId(BC[i].detid);
128  int subDet = detectorId.subdetId();
129  if (subDet == StripSubdetector::TIB) {
130  //&&&&&&&&&&&&&&&&&
131  //TIB
132  //&&&&&&&&&&&&&&&&&
133 
134  component = tTopo_->tibLayer(BC[i].detid);
135  SetBadComponents(0, component, BC[i]);
136 
137  } else if (subDet == StripSubdetector::TID) {
138  //&&&&&&&&&&&&&&&&&
139  //TID
140  //&&&&&&&&&&&&&&&&&
141 
142  component = tTopo_->tidSide(BC[i].detid) == 2 ? tTopo_->tidWheel(BC[i].detid) : tTopo_->tidWheel(BC[i].detid) + 3;
143  SetBadComponents(1, component, BC[i]);
144 
145  } else if (subDet == StripSubdetector::TOB) {
146  //&&&&&&&&&&&&&&&&&
147  //TOB
148  //&&&&&&&&&&&&&&&&&
149 
150  component = tTopo_->tobLayer(BC[i].detid);
151  SetBadComponents(2, component, BC[i]);
152 
153  } else if (subDet == StripSubdetector::TEC) {
154  //&&&&&&&&&&&&&&&&&
155  //TEC
156  //&&&&&&&&&&&&&&&&&
157 
158  component = tTopo_->tecSide(BC[i].detid) == 2 ? tTopo_->tecWheel(BC[i].detid) : tTopo_->tecWheel(BC[i].detid) + 9;
159  SetBadComponents(3, component, BC[i]);
160  }
161  }
162 
163  //&&&&&&&&&&&&&&&&&&
164  // Single Strip Info
165  //&&&&&&&&&&&&&&&&&&
166  float percentage = 0;
167 
168  SiStripQuality::RegistryIterator rbegin = siStripQuality->getRegistryVectorBegin();
170 
171  for (SiStripBadStrip::RegistryIterator rp = rbegin; rp != rend; ++rp) {
172  uint32_t detid = rp->detid;
173 
174  int subdet = -999;
175  int component = -999;
176  DetId detectorId = DetId(detid);
177  int subDet = detectorId.subdetId();
178  if (subDet == StripSubdetector::TIB) {
179  subdet = 0;
180  component = tTopo_->tibLayer(detid);
181  } else if (subDet == StripSubdetector::TID) {
182  subdet = 1;
183  component = tTopo_->tidSide(detid) == 2 ? tTopo_->tidWheel(detid) : tTopo_->tidWheel(detid) + 3;
184  } else if (subDet == StripSubdetector::TOB) {
185  subdet = 2;
186  component = tTopo_->tobLayer(detid);
187  } else if (subDet == StripSubdetector::TEC) {
188  subdet = 3;
189  component = tTopo_->tecSide(detid) == 2 ? tTopo_->tecWheel(detid) : tTopo_->tecWheel(detid) + 9;
190  }
191 
192  SiStripQuality::Range sqrange = SiStripQuality::Range(siStripQuality->getDataVectorBegin() + rp->ibegin,
193  siStripQuality->getDataVectorBegin() + rp->iend);
194 
195  percentage = 0;
196  for (int it = 0; it < sqrange.second - sqrange.first; it++) {
197  unsigned int range = siStripQuality->decode(*(sqrange.first + it)).range;
198  NTkBadComponent[3] += range;
199  NBadComponent[subdet][0][3] += range;
200  NBadComponent[subdet][component][3] += range;
201  percentage += range;
202  }
203  if (percentage != 0)
204  percentage /= 128. * detInfo_.getNumberOfApvsAndStripLength(detid).first;
205  if (percentage > 1)
206  edm::LogError("SiStripQualityStatistics") << "PROBLEM detid " << detid << " value " << percentage << std::endl;
207 
208  //------- Global Statistics on percentage of bad components along the IOVs ------//
209  tkMapFullIOVs->fill(detid, percentage);
210  if (tkhisto != nullptr)
211  tkhisto->fill(detid, percentage);
212  }
213 
214  //&&&&&&&&&&&&&&&&&&
215  // printout
216  //&&&&&&&&&&&&&&&&&&
217 
218  ss.str("");
219  ss << "\n-----------------\nNew IOV starting from run " << run_.run() << "\n-----------------\n";
220  ss << "\n-----------------\nGlobal Info\n-----------------";
221  ss << "\nBadComponent \t Modules \tFibers "
222  "\tApvs\tStrips\n----------------------------------------------------------------";
223  ss << "\nTracker:\t\t" << NTkBadComponent[0] << "\t" << NTkBadComponent[1] << "\t" << NTkBadComponent[2] << "\t"
224  << NTkBadComponent[3];
225  ss << "\n";
226  ss << "\nTIB:\t\t\t" << NBadComponent[0][0][0] << "\t" << NBadComponent[0][0][1] << "\t" << NBadComponent[0][0][2]
227  << "\t" << NBadComponent[0][0][3];
228  ss << "\nTID:\t\t\t" << NBadComponent[1][0][0] << "\t" << NBadComponent[1][0][1] << "\t" << NBadComponent[1][0][2]
229  << "\t" << NBadComponent[1][0][3];
230  ss << "\nTOB:\t\t\t" << NBadComponent[2][0][0] << "\t" << NBadComponent[2][0][1] << "\t" << NBadComponent[2][0][2]
231  << "\t" << NBadComponent[2][0][3];
232  ss << "\nTEC:\t\t\t" << NBadComponent[3][0][0] << "\t" << NBadComponent[3][0][1] << "\t" << NBadComponent[3][0][2]
233  << "\t" << NBadComponent[3][0][3];
234  ss << "\n";
235 
236  for (int i = 1; i < 5; ++i)
237  ss << "\nTIB Layer " << i << " :\t\t" << NBadComponent[0][i][0] << "\t" << NBadComponent[0][i][1] << "\t"
238  << NBadComponent[0][i][2] << "\t" << NBadComponent[0][i][3];
239  ss << "\n";
240  for (int i = 1; i < 4; ++i)
241  ss << "\nTID+ Disk " << i << " :\t\t" << NBadComponent[1][i][0] << "\t" << NBadComponent[1][i][1] << "\t"
242  << NBadComponent[1][i][2] << "\t" << NBadComponent[1][i][3];
243  for (int i = 4; i < 7; ++i)
244  ss << "\nTID- Disk " << i - 3 << " :\t\t" << NBadComponent[1][i][0] << "\t" << NBadComponent[1][i][1] << "\t"
245  << NBadComponent[1][i][2] << "\t" << NBadComponent[1][i][3];
246  ss << "\n";
247  for (int i = 1; i < 7; ++i)
248  ss << "\nTOB Layer " << i << " :\t\t" << NBadComponent[2][i][0] << "\t" << NBadComponent[2][i][1] << "\t"
249  << NBadComponent[2][i][2] << "\t" << NBadComponent[2][i][3];
250  ss << "\n";
251  for (int i = 1; i < 10; ++i)
252  ss << "\nTEC+ Disk " << i << " :\t\t" << NBadComponent[3][i][0] << "\t" << NBadComponent[3][i][1] << "\t"
253  << NBadComponent[3][i][2] << "\t" << NBadComponent[3][i][3];
254  for (int i = 10; i < 19; ++i)
255  ss << "\nTEC- Disk " << i - 9 << " :\t\t" << NBadComponent[3][i][0] << "\t" << NBadComponent[3][i][1] << "\t"
256  << NBadComponent[3][i][2] << "\t" << NBadComponent[3][i][3];
257  ss << "\n";
258 
259  ss << "\n----------------------------------------------------------------\n\t\t Detid \tModules Fibers "
260  "Apvs\n----------------------------------------------------------------";
261  for (int i = 1; i < 5; ++i)
262  ss << "\nTIB Layer " << i << " :" << ssV[0][i].str();
263  ss << "\n";
264  for (int i = 1; i < 4; ++i)
265  ss << "\nTID+ Disk " << i << " :" << ssV[1][i].str();
266  for (int i = 4; i < 7; ++i)
267  ss << "\nTID- Disk " << i - 3 << " :" << ssV[1][i].str();
268  ss << "\n";
269  for (int i = 1; i < 7; ++i)
270  ss << "\nTOB Layer " << i << " :" << ssV[2][i].str();
271  ss << "\n";
272  for (int i = 1; i < 10; ++i)
273  ss << "\nTEC+ Disk " << i << " :" << ssV[3][i].str();
274  for (int i = 10; i < 19; ++i)
275  ss << "\nTEC- Disk " << i - 9 << " :" << ssV[3][i].str();
276 
277  edm::LogInfo("SiStripQualityStatistics") << ss.str() << std::endl;
278 
280  std::stringstream sRun;
281  sRun.str("");
282  sRun << "_Run_" << std::setw(6) << std::setfill('0') << run_.run() << std::setw(0);
283 
284  if (!filename.empty()) {
285  filename.insert(filename.find('.'), sRun.str());
286  tkMap->save(true, 0, 0, filename);
287  filename.erase(filename.begin() + filename.find('.'), filename.end());
288  tkMap->print(true, 0, 0, filename);
289  }
290 }
291 
293  int napv = detInfo_.getNumberOfApvsAndStripLength(BC.detid).first;
294 
295  ssV[i][component] << "\n\t\t " << BC.detid << " \t " << BC.BadModule << " \t " << ((BC.BadFibers) & 0x1) << " ";
296  if (napv == 4)
297  ssV[i][component] << "x " << ((BC.BadFibers >> 1) & 0x1);
298 
299  if (napv == 6)
300  ssV[i][component] << ((BC.BadFibers >> 1) & 0x1) << " " << ((BC.BadFibers >> 2) & 0x1);
301  ssV[i][component] << " \t " << ((BC.BadApvs) & 0x1) << " " << ((BC.BadApvs >> 1) & 0x1) << " ";
302  if (napv == 4)
303  ssV[i][component] << "x x " << ((BC.BadApvs >> 2) & 0x1) << " " << ((BC.BadApvs >> 3) & 0x1);
304  if (napv == 6)
305  ssV[i][component] << ((BC.BadApvs >> 2) & 0x1) << " " << ((BC.BadApvs >> 3) & 0x1) << " "
306  << ((BC.BadApvs >> 4) & 0x1) << " " << ((BC.BadApvs >> 5) & 0x1) << " ";
307 
308  if (BC.BadApvs) {
309  NBadComponent[i][0][2] += ((BC.BadApvs >> 5) & 0x1) + ((BC.BadApvs >> 4) & 0x1) + ((BC.BadApvs >> 3) & 0x1) +
310  ((BC.BadApvs >> 2) & 0x1) + ((BC.BadApvs >> 1) & 0x1) + ((BC.BadApvs) & 0x1);
311  NBadComponent[i][component][2] += ((BC.BadApvs >> 5) & 0x1) + ((BC.BadApvs >> 4) & 0x1) +
312  ((BC.BadApvs >> 3) & 0x1) + ((BC.BadApvs >> 2) & 0x1) +
313  ((BC.BadApvs >> 1) & 0x1) + ((BC.BadApvs) & 0x1);
314  tkMap->fillc(BC.detid, 0xff0000);
315  }
316  if (BC.BadFibers) {
317  NBadComponent[i][0][1] += ((BC.BadFibers >> 2) & 0x1) + ((BC.BadFibers >> 1) & 0x1) + ((BC.BadFibers) & 0x1);
318  NBadComponent[i][component][1] +=
319  ((BC.BadFibers >> 2) & 0x1) + ((BC.BadFibers >> 1) & 0x1) + ((BC.BadFibers) & 0x1);
320  tkMap->fillc(BC.detid, 0x0000ff);
321  }
322  if (BC.BadModule) {
323  NBadComponent[i][0][0]++;
324  NBadComponent[i][component][0]++;
325  tkMap->fillc(BC.detid, 0x0);
326  }
327 }
SiStripQualityWithFromFedErrorsHelper::fillDescription
static void fillDescription(edm::ParameterSetDescription &desc)
Definition: SiStripQualityWithFromFedErrorsHelper.h:62
ConfigurationDescriptions.h
SiStripQuality::BadComponent::detid
uint32_t detid
Definition: SiStripQuality.h:35
FastTimerService_cff.range
range
Definition: FastTimerService_cff.py:34
SiStripQualityWithFromFedErrorsHelper::getMergedQuality
const SiStripQuality & getMergedQuality(dqm::harvesting::DQMStore::IGetter &getter)
Definition: SiStripQualityWithFromFedErrorsHelper.cc:201
electrons_cff.bool
bool
Definition: electrons_cff.py:366
mps_fire.i
i
Definition: mps_fire.py:428
MessageLogger.h
SiStripDetInfo::getAllDetIds
const std::vector< uint32_t > & getAllDetIds() const noexcept
Definition: SiStripDetInfo.h:53
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:35
edm::Run
Definition: Run.h:45
edm
HLT enums.
Definition: AlignableModifier.h:19
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
SiStripBadStrip::decode
data decode(const unsigned int &value) const
Definition: SiStripBadStrip.h:78
edm::EDConsumerBase::consumesCollector
ConsumesCollector consumesCollector()
Use a ConsumesCollector to gather consumes information from helper functions.
Definition: EDConsumerBase.cc:47
SiStripQuality::IsModuleUsable
bool IsModuleUsable(const uint32_t &detid) const
Definition: SiStripQuality.cc:544
SiStripQualityStatistics::TkMapFileName_
std::string TkMapFileName_
Definition: SiStripQualityStatistics.h:34
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::tkDetMapToken_
edm::ESGetToken< TkDetMap, TrackerTopologyRcd > tkDetMapToken_
Definition: SiStripQualityStatistics.h:48
SiStripBadStrip::getDataVectorBegin
ContainerIterator getDataVectorBegin() const
Definition: SiStripBadStrip.h:73
SiStripDetInfoFileReader::read
SiStripDetInfo read(std::string filePath)
Definition: SiStripDetInfoFileReader.cc:11
SiStripQualityStatistics::NTkBadComponent
int NTkBadComponent[4]
Definition: SiStripQualityStatistics.h:37
SiStripQualityStatistics::tkMap
TrackerMap * tkMap
Definition: SiStripQualityStatistics.h:44
contentValuesCheck.ss
ss
Definition: contentValuesCheck.py:33
DetId
Definition: DetId.h:17
edm::FileInPath
Definition: FileInPath.h:61
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:114
SiStripBadStrip::getRegistryVectorBegin
RegistryIterator getRegistryVectorBegin() const
Definition: SiStripBadStrip.h:75
edm::ConfigurationDescriptions::add
void add(std::string const &label, ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:57
SiStripQualityStatistics::NBadComponent
int NBadComponent[4][19][4]
Definition: SiStripQualityStatistics.h:38
SiStripDetInfo::getNumberOfApvsAndStripLength
const std::pair< unsigned short, double > getNumberOfApvsAndStripLength(uint32_t detId) const
Definition: SiStripDetInfo.cc:19
str
#define str(s)
Definition: TestProcessor.cc:53
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
edm::ConfigurationDescriptions
Definition: ConfigurationDescriptions.h:28
SiStripQualityStatistics::dqmEndJob
void dqmEndJob(DQMStore::IBooker &, DQMStore::IGetter &) override
Definition: SiStripQualityStatistics.cc:54
funct::true
true
Definition: Factorize.h:173
SiStripQualityStatistics::tTopoToken_
edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > tTopoToken_
Definition: SiStripQualityStatistics.h:47
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:233
edm::ParameterSet
Definition: ParameterSet.h:47
edm::Transition
Transition
Definition: Transition.h:12
SiStripQualityStatistics::withFedErrHelper_
SiStripQualityWithFromFedErrorsHelper withFedErrHelper_
Definition: SiStripQualityStatistics.h:50
SiStripQualityStatistics::tTopo_
std::unique_ptr< TrackerTopology > tTopo_
Definition: SiStripQualityStatistics.h:49
SiStripQuality::BadComponent::BadModule
bool BadModule
Definition: SiStripQuality.h:38
SiStripQualityStatistics::fillDescriptions
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
Definition: SiStripQualityStatistics.cc:45
SiStripQuality::BadComponent::BadApvs
unsigned short BadApvs
Definition: SiStripQuality.h:36
edm::EventSetup
Definition: EventSetup.h:58
edm::LogError
Log< level::Error, false > LogError
Definition: MessageLogger.h:123
AlCaHLTBitMon_QueryRunRegistry.string
string string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
SiStripQualityStatistics::detInfo_
SiStripDetInfo detInfo_
Definition: SiStripQualityStatistics.h:45
TrackerMap.h
edm::EventSetup::getData
bool getData(T &iHolder) const
Definition: EventSetup.h:127
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
SiStripQualityStatistics::endRun
void endRun(edm::Run const &, edm::EventSetup const &) override
Definition: SiStripQualityStatistics.cc:71
submitPVResolutionJobs.desc
string desc
Definition: submitPVResolutionJobs.py:251
std
Definition: JetResolutionObject.h:76
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:42
dqm::implementation::IGetter
Definition: DQMStore.h:484
SiStripDetInfoFileReader::kDefaultFile
constexpr static char const *const kDefaultFile
Definition: SiStripDetInfoFileReader.h:10
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:32
SiStripBadStrip::data::range
unsigned short range
Definition: SiStripBadStrip.h:34
SiStripQualityStatistics::SetBadComponents
void SetBadComponents(int, int, SiStripQuality::BadComponent &)
Definition: SiStripQualityStatistics.cc:292
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66
SiStripQualityWithFromFedErrorsHelper::addBadCompFromFedErr
bool addBadCompFromFedErr() const
Definition: SiStripQualityWithFromFedErrorsHelper.h:75
SiStripQualityStatistics::tkMapFullIOVs
TrackerMap * tkMapFullIOVs
Definition: SiStripQualityStatistics.h:44
SiStripQualityStatistics::tkhisto
std::unique_ptr< TkHistoMap > tkhisto
Definition: SiStripQualityStatistics.h:46
DeDxTools::esConsumes
ESGetTokenH3DDVariant esConsumes(std::string const &Reccord, edm::ConsumesCollector &)
Definition: DeDxTools.cc:283
StripSubdetector.h
SiStripBadStrip::getRegistryVectorEnd
RegistryIterator getRegistryVectorEnd() const
Definition: SiStripBadStrip.h:76
StripSubdetector::TID
static constexpr auto TID
Definition: StripSubdetector.h:17
edm::FileInPath::fullPath
std::string fullPath() const
Definition: FileInPath.cc:161
SiStripQualityWithFromFedErrorsHelper::qualityToken
const edm::ESGetToken< SiStripQuality, SiStripQualityRcd > & qualityToken() const
Definition: SiStripQualityWithFromFedErrorsHelper.h:76
TrackerMap::fillc
void fillc(int idmod, int RGBcode)
Definition: TrackerMap.h:135
SiStripQualityWithFromFedErrorsHelper::endRun
bool endRun(const edm::EventSetup &)
Definition: SiStripQualityWithFromFedErrorsHelper.cc:186
SiStripQuality
Definition: SiStripQuality.h:32
SiStripQualityStatistics::updateAndSave
void updateAndSave(const SiStripQuality *siStripQuality)
Definition: SiStripQualityStatistics.cc:84