CMS 3D CMS Logo

List of all members | Classes | Public Member Functions | Private Member Functions | Private Attributes
SiStripQuality Class Referencefinal

#include <SiStripQuality.cc>

Inheritance diagram for SiStripQuality:
SiStripBadStrip

Classes

struct  BadComponent
 
class  BadComponentStrictWeakOrdering
 

Public Member Functions

void add (const RunInfo *)
 
void add (const SiStripBadStrip *)
 
void add (const SiStripDetCabling *)
 
void add (const SiStripDetVOff *)
 
void add (const uint32_t &, const SiStripBadStrip::Range &)
 
void addInvalidConnectionFromCabling ()
 
void addNotConnectedConnectionFromCabling ()
 
const SiStripDetCablingcabling () const
 
bool cleanUp (bool force=false)
 
void clear ()
 
void compact (unsigned int &, std::vector< unsigned int > &)
 
SiStripQuality difference (const SiStripQuality &) const
 
void fillBadComponents ()
 
short getBadApvs (const uint32_t &detid) const
 
const std::vector< BadComponent > & getBadComponentList () const
 
short getBadFibers (const uint32_t &detid) const
 
bool IsApvBad (const uint32_t &detid, const short &apvNb) const
 
bool IsFiberBad (const uint32_t &detid, const short &fiberNb) const
 
bool IsModuleBad (const uint32_t &detid) const
 
bool IsModuleUsable (const uint32_t &detid) const
 
bool IsStripBad (const Range &range, const short &strip) const
 
bool IsStripBad (const uint32_t &detid, const short &strip) const
 
int nBadStripsOnTheLeft (const Range &range, const short &strip) const
 
int nBadStripsOnTheRight (const Range &range, const short &strip) const
 
void ReduceGranularity (double)
 
void setPrintDebugOutput (const bool printDebug)
 
void setUseEmptyRunInfo (const bool useEmptyRunInfo)
 
 SiStripQuality ()=delete
 
 SiStripQuality (const SiStripQuality &)=default
 
 SiStripQuality (SiStripDetInfo)
 
 SiStripQuality (SiStripQuality &&)=default
 
 ~SiStripQuality () override=default
 
- Public Member Functions inherited from SiStripBadStrip
data decode (const unsigned int &value) const
 
unsigned int encode (const unsigned short &first, const unsigned short &NconsecutiveBadStrips, const unsigned short &flag=0)
 
ContainerIterator getDataVectorBegin () const
 
ContainerIterator getDataVectorEnd () const
 
void getDetIds (std::vector< uint32_t > &DetIds_) const
 
const Range getRange (const uint32_t detID) const
 
Range getRangeByPos (unsigned short pos) const
 
RegistryIterator getRegistryVectorBegin () const
 
RegistryIterator getRegistryVectorEnd () const
 
void printDebug (std::stringstream &ss, const TrackerTopology *trackerTopo) const
 
void printSummary (std::stringstream &ss, const TrackerTopology *trackerTopo) const
 
bool put (const uint32_t &detID, const InputVector &vect)
 
bool put (const uint32_t &detID, Range input)
 
 SiStripBadStrip ()
 
 SiStripBadStrip (const SiStripBadStrip &orig)
 
virtual ~SiStripBadStrip ()
 

Private Member Functions

void compact (std::vector< unsigned int > &, std::vector< unsigned int > &, unsigned short &)
 
void printActiveFedsInfo (const std::vector< uint16_t > &activeFedsFromCabling, const std::vector< int > &activeFedsFromRunInfo, const std::vector< int > &differentFeds, const bool printDebug)
 
void printDetInfo (const TrackerTopology *const tTopo, const uint32_t &detId, const uint32_t &apvPairNumber, std::stringstream &ss)
 Prints debug output for a given detId. More...
 
bool put_replace (const uint32_t &DetId, Range input)
 
void subtract (std::vector< unsigned int > &, const std::vector< unsigned int > &)
 
void subtraction (std::vector< unsigned int > &, const unsigned int &)
 
void turnOffFeds (const std::vector< int > &fedsList, const bool turnOffStrips, const bool printDebug)
 

Private Attributes

std::vector< BadComponentBadComponentVect
 
SiStripDetInfo info_
 
bool printDebug_
 
const SiStripDetCablingSiStripDetCabling_
 
bool toCleanUp
 
bool useEmptyRunInfo_
 

Additional Inherited Members

- Public Types inherited from SiStripBadStrip
typedef std::vector< unsigned int > Container
 
typedef std::vector< unsigned int >::const_iterator ContainerIterator
 
typedef Container InputVector
 
typedef std::pair< ContainerIterator, ContainerIteratorRange
 
typedef std::vector< DetRegistryRegistry
 
typedef Registry::const_iterator RegistryIterator
 
- Protected Attributes inherited from SiStripBadStrip
Registry indexes
 
Container v_badstrips
 

Detailed Description

Description: <one line="" class="" summary>="">

Usage: <usage>

Definition at line 32 of file SiStripQuality.h.

Constructor & Destructor Documentation

◆ SiStripQuality() [1/4]

SiStripQuality::SiStripQuality ( )
delete

◆ SiStripQuality() [2/4]

SiStripQuality::SiStripQuality ( SiStripDetInfo  iInfo)
explicit

Definition at line 17 of file SiStripQuality.cc.

18  : info_(std::move(iInfo)),
19  toCleanUp(false),
20  SiStripDetCabling_(nullptr),
21  printDebug_(false),
22  useEmptyRunInfo_(false) {}

◆ SiStripQuality() [3/4]

SiStripQuality::SiStripQuality ( const SiStripQuality )
default

◆ SiStripQuality() [4/4]

SiStripQuality::SiStripQuality ( SiStripQuality &&  )
default

◆ ~SiStripQuality()

SiStripQuality::~SiStripQuality ( )
overridedefault

Member Function Documentation

◆ add() [1/5]

void SiStripQuality::add ( const RunInfo runInfo)

Used to get the cabling from RunInfo.
It compares the feds from cabling with those from runInfo and it turns off all the strips associated to feds that are off for the RunInfo but not for FedCabling.

Definition at line 85 of file SiStripQuality.cc.

85  {
86  bool allFedsEmpty = runInfo->m_fed_in.empty();
87  if (allFedsEmpty) {
88  std::stringstream ss;
89  ss << "WARNING: the full list of feds in RunInfo is empty. ";
90  if (useEmptyRunInfo_) {
91  ss << " SiStripQuality will still use it and all tracker will be off." << std::endl;
92  } else {
93  ss << " SiStripQuality will not use it." << std::endl;
94  }
95  edm::LogInfo("SiStripQuality") << ss.str();
96  }
97 
98  if (!allFedsEmpty || useEmptyRunInfo_) {
99  // Take the list of active feds from fedCabling
100  auto ids = SiStripDetCabling_->fedCabling()->fedIds();
101 
102  std::vector<uint16_t> activeFedsFromCabling(ids.begin(), ids.end());
103  // Take the list of active feds from RunInfo
104  std::vector<int> activeFedsFromRunInfo;
105  // Take only Tracker feds (remove all non Tracker)
106  std::remove_copy_if(
107  runInfo->m_fed_in.begin(), runInfo->m_fed_in.end(), std::back_inserter(activeFedsFromRunInfo), [&](int x) {
109  });
110 
111  // Compare the two. If a fedId from RunInfo is not present in the fedCabling
112  // we need to get all the corresponding fedChannels and then the single apv
113  // pairs and use them to turn off the corresponding strips (apvNumber*256).
114  // set_difference returns the set of elements that are in the first and not
115  // in the second
116  std::sort(activeFedsFromCabling.begin(), activeFedsFromCabling.end());
117  std::sort(activeFedsFromRunInfo.begin(), activeFedsFromRunInfo.end());
118  std::vector<int> differentFeds;
119  // Take the feds active for cabling but not for runInfo
120  std::set_difference(activeFedsFromCabling.begin(),
121  activeFedsFromCabling.end(),
122  activeFedsFromRunInfo.begin(),
123  activeFedsFromRunInfo.end(),
124  std::back_inserter(differentFeds));
125 
126  // IGNORE for time being.
127  // printActiveFedsInfo(activeFedsFromCabling, activeFedsFromRunInfo,
128  // differentFeds, printDebug_);
129 
130  // Feds in the differentFeds vector are now to be turned off as they are off
131  // according to RunInfo but were not off in cabling and thus are still
132  // active for the SiStripQuality. The "true" means that the strips are to be
133  // set as bad.
134  turnOffFeds(differentFeds, true, printDebug_);
135 
136  // Consistency check
137  // -----------------
138  std::vector<int> check;
139  std::set_difference(activeFedsFromRunInfo.begin(),
140  activeFedsFromRunInfo.end(),
141  activeFedsFromCabling.begin(),
142  activeFedsFromCabling.end(),
143  std::back_inserter(check));
144  // This must not happen
145  if (!check.empty()) {
146  // throw cms::Exception("LogicError")
147  edm::LogInfo("SiStripQuality") << "The cabling should always include the active feds in runInfo and "
148  "possibly have some more"
149  << "there are instead " << check.size() << " feds only active in runInfo";
150  // The "false" means that we are only printing the output, but not setting
151  // the strips as bad. The second bool means that we always want the debug
152  // output in this case.
153  turnOffFeds(check, false, true);
154  }
155  }
156 }

References RPCNoise_example::check, SiStripDetCabling::fedCabling(), SiStripFedCabling::fedIds(), createfilelist::int, FEDNumbering::MAXSiStripFEDID, FEDNumbering::MINSiStripFEDID, printDebug_, submitPVValidationJobs::runInfo, SiStripDetCabling_, jetUpdater_cfi::sort, contentValuesCheck::ss, turnOffFeds(), useEmptyRunInfo_, and x.

Referenced by counter.Counter::register(), SequenceTypes.Task::remove(), and SequenceTypes.Task::replace().

◆ add() [2/5]

void SiStripQuality::add ( const SiStripBadStrip base)

Definition at line 226 of file SiStripQuality.cc.

226  {
227  SiStripBadStrip::RegistryIterator basebegin = base->getRegistryVectorBegin();
228  SiStripBadStrip::RegistryIterator baseend = base->getRegistryVectorEnd();
229 
230  // the Registry already contains data
231  // Loop on detids
232  for (SiStripBadStrip::RegistryIterator basep = basebegin; basep != baseend; ++basep) {
233  uint32_t detid = basep->detid;
234  LogTrace("SiStripQuality") << "add detid " << detid << std::endl;
235 
236  SiStripBadStrip::Range baserange =
237  SiStripBadStrip::Range(base->getDataVectorBegin() + basep->ibegin, base->getDataVectorBegin() + basep->iend);
238 
239  add(detid, baserange);
240  }
241 }

References add(), newFWLiteAna::base, and LogTrace.

Referenced by counter.Counter::register(), SequenceTypes.Task::remove(), and SequenceTypes.Task::replace().

◆ add() [3/5]

void SiStripQuality::add ( const SiStripDetCabling cab)

◆ add() [4/5]

void SiStripQuality::add ( const SiStripDetVOff Voff)

Definition at line 63 of file SiStripQuality.cc.

63  {
64  std::vector<unsigned int> vect;
65  short firstStrip = 0;
66  short range = 0;
67 
68  // Get vector of Voff dets
69  std::vector<uint32_t> vdets;
70  Voff->getDetIds(vdets);
71  std::vector<uint32_t>::const_iterator iter = vdets.begin();
72  std::vector<uint32_t>::const_iterator iterEnd = vdets.end();
73 
74  for (; iter != iterEnd; ++iter) {
75  vect.clear();
76  range = (short)(info_.getNumberOfApvsAndStripLength(*iter).first * 128.);
77  LogTrace("SiStripQuality") << "[add Voff] add detid " << *iter << " first strip " << firstStrip << " range "
78  << range << std::endl;
79  vect.push_back(encode(firstStrip, range));
80  SiStripBadStrip::Range Range(vect.begin(), vect.end());
81  add(*iter, Range);
82  }
83 }

References add(), SiStripBadStrip::encode(), SiStripDetVOff::getDetIds(), SiStripDetInfo::getNumberOfApvsAndStripLength(), info_, LogTrace, and FastTimerService_cff::range.

Referenced by counter.Counter::register(), SequenceTypes.Task::remove(), and SequenceTypes.Task::replace().

◆ add() [5/5]

void SiStripQuality::add ( const uint32_t &  detid,
const SiStripBadStrip::Range baserange 
)

Definition at line 243 of file SiStripQuality.cc.

243  {
244  std::vector<unsigned int> vect, tmp;
245 
246  unsigned short Nstrips = info_.getNumberOfApvsAndStripLength(detid).first * 128;
247 
248  // Is this detid already in the collections owned by this class?
250 
251  // Append bad strips
252  tmp.clear();
253  if (range.first == range.second) {
254  LogTrace("SiStripQuality") << "new detid" << std::endl;
255  // It's a new detid
256  tmp.insert(tmp.end(), baserange.first, baserange.second);
257  std::stable_sort(tmp.begin(), tmp.end());
258  LogTrace("SiStripQuality") << "ordered" << std::endl;
259  } else {
260  LogTrace("SiStripQuality") << "already exists" << std::endl;
261  // alredy existing detid
262 
263  // if full det is bad go to next detid
264  SiStripBadStrip::data data_ = decode(*(range.first));
265  if (range.second - range.first == 1 && data_.firstStrip == 0 && data_.range >= Nstrips) {
266  LogTrace("SiStripQuality") << "full det is bad.. " << range.second - range.first << " "
267  << decode(*(range.first)).firstStrip << " " << decode(*(range.first)).range << " "
268  << decode(*(range.first)).flag << "\n"
269  << std::endl;
270  return;
271  }
272 
273  tmp.insert(tmp.end(), baserange.first, baserange.second);
274  tmp.insert(tmp.end(), range.first, range.second);
275  std::stable_sort(tmp.begin(), tmp.end());
276  LogTrace("SiStripQuality") << "ordered" << std::endl;
277  }
278  // Compact data
279  compact(tmp, vect, Nstrips);
280  SiStripBadStrip::Range newrange(vect.begin(), vect.end());
281  if (!put_replace(detid, newrange))
282  edm::LogError("SiStripQuality") << "[" << __PRETTY_FUNCTION__ << "] " << std::endl;
283 }

References compact(), SiStripBadStrip::decode(), SiStripBadStrip::data::firstStrip, SiStripBadStrip::data::flag, SiStripDetInfo::getNumberOfApvsAndStripLength(), SiStripBadStrip::getRange(), info_, LogTrace, put_replace(), FastTimerService_cff::range, SiStripBadStrip::data::range, and createJobs::tmp.

Referenced by add(), addInvalidConnectionFromCabling(), addNotConnectedConnectionFromCabling(), ReduceGranularity(), counter.Counter::register(), SequenceTypes.Task::remove(), SequenceTypes.Task::replace(), and turnOffFeds().

◆ addInvalidConnectionFromCabling()

void SiStripQuality::addInvalidConnectionFromCabling ( )

Definition at line 182 of file SiStripQuality.cc.

182  {
183  std::vector<uint32_t> connected_detids;
184  SiStripDetCabling_->addActiveDetectorsRawIds(connected_detids);
185  std::vector<uint32_t>::const_iterator itdet = connected_detids.begin();
186  std::vector<uint32_t>::const_iterator itdetEnd = connected_detids.end();
187  for (; itdet != itdetEnd; ++itdet) {
188  // LogTrace("SiStripQuality") << "[addInvalidConnectionFromCabling] looking
189  // at detid " <<*itdet << std::endl;
190  const std::vector<const FedChannelConnection *> &fedconns = SiStripDetCabling_->getConnections(*itdet);
191  std::vector<const FedChannelConnection *>::const_iterator itconns = fedconns.begin();
192  std::vector<const FedChannelConnection *>::const_iterator itconnsEnd = fedconns.end();
193 
194  unsigned short nApvPairs = SiStripDetCabling_->nApvPairs(*itdet);
195  short ngoodConn = 0, goodConn = 0;
196  for (; itconns != itconnsEnd; ++itconns) {
197  // LogTrace("SiStripQuality") << "[addInvalidConnectionFromCabling]
198  // apvpair " << (*itconns)->apvPairNumber() << " napvpair " <<
199  // (*itconns)->nApvPairs()<< " detid " << (*itconns)->detId() <<
200  // std::endl;
201  if ((*itconns == nullptr) || ((*itconns)->nApvPairs() == sistrip::invalid_))
202  continue;
203  ngoodConn++;
204  goodConn = goodConn | (0x1 << (*itconns)->apvPairNumber());
205  }
206 
207  if (ngoodConn != nApvPairs) {
208  std::vector<unsigned int> vect;
209  for (size_t idx = 0; idx < nApvPairs; ++idx) {
210  if (!(goodConn & (0x1 << idx))) {
211  short firstStrip = idx * 256;
212  short range = 256;
213  LogTrace("SiStripQuality") << "[addInvalidConnectionFromCabling] add detid " << *itdet << "firstStrip "
214  << firstStrip << std::endl;
215  vect.push_back(encode(firstStrip, range));
216  }
217  }
218  if (!vect.empty()) {
219  SiStripBadStrip::Range Range(vect.begin(), vect.end());
220  add(*itdet, Range);
221  }
222  }
223  }
224 }

References add(), SiStripDetCabling::addActiveDetectorsRawIds(), SiStripBadStrip::encode(), SiStripDetCabling::getConnections(), heavyIonCSV_trainingSettings::idx, sistrip::invalid_, LogTrace, SiStripDetCabling::nApvPairs(), FastTimerService_cff::range, SiStripDetCabling_, and testProducerWithPsetDescEmpty_cfi::x1.

Referenced by add().

◆ addNotConnectedConnectionFromCabling()

void SiStripQuality::addNotConnectedConnectionFromCabling ( )

Definition at line 164 of file SiStripQuality.cc.

164  {
165  auto allData = info_.getAllData();
166  auto iter = allData.begin();
167  auto iterEnd = allData.end();
168  std::vector<unsigned int> vect;
169  short firstStrip = 0;
170  short range = 0;
171  for (; iter != iterEnd; ++iter)
172  if (!SiStripDetCabling_->IsConnected(iter->first)) {
173  vect.clear();
174  range = iter->second.nApvs * 128;
175  LogTrace("SiStripQuality") << "[addNotConnectedConnectionFromCabling] add detid " << iter->first << std::endl;
176  vect.push_back(encode(firstStrip, range));
177  SiStripBadStrip::Range Range(vect.begin(), vect.end());
178  add(iter->first, Range);
179  }
180 }

References add(), SiStripBadStrip::encode(), SiStripDetInfo::getAllData(), info_, SiStripDetCabling::IsConnected(), LogTrace, FastTimerService_cff::range, and SiStripDetCabling_.

Referenced by add().

◆ cabling()

const SiStripDetCabling* SiStripQuality::cabling ( ) const
inline

Definition at line 121 of file SiStripQuality.h.

121 { return SiStripDetCabling_; }

References SiStripDetCabling_.

◆ cleanUp()

bool SiStripQuality::cleanUp ( bool  force = false)

Definition at line 459 of file SiStripQuality.cc.

459  {
460  if (!toCleanUp && !force)
461  return false;
462 
463  toCleanUp = false;
464 
465  std::vector<unsigned int> v_badstrips_tmp = v_badstrips;
466  std::vector<DetRegistry> indexes_tmp = indexes;
467 
468  LogTrace("SiStripQuality") << "[SiStripQuality::cleanUp] before cleanUp v_badstrips.size()= " << v_badstrips.size()
469  << " indexes.size()=" << indexes.size() << std::endl;
470 
471  v_badstrips.clear();
472  indexes.clear();
473 
474  SiStripBadStrip::RegistryIterator basebegin = indexes_tmp.begin();
475  SiStripBadStrip::RegistryIterator baseend = indexes_tmp.end();
476 
477  for (SiStripBadStrip::RegistryIterator basep = basebegin; basep != baseend; ++basep) {
478  if (basep->ibegin != basep->iend) {
479  SiStripBadStrip::Range range(v_badstrips_tmp.begin() + basep->ibegin, v_badstrips_tmp.begin() + basep->iend);
480  if (!put(basep->detid, range))
481  edm::LogError("SiStripQuality") << "[" << __PRETTY_FUNCTION__ << "] " << std::endl;
482  }
483  }
484 
485  LogTrace("SiStripQuality") << "[SiStripQuality::cleanUp] after cleanUp v_badstrips.size()= " << v_badstrips.size()
486  << " indexes.size()=" << indexes.size() << std::endl;
487  return true;
488 }

References cmsStageWithFailover::force, SiStripBadStrip::indexes, LogTrace, SiStripBadStrip::put(), FastTimerService_cff::range, toCleanUp, and SiStripBadStrip::v_badstrips.

Referenced by difference().

◆ clear()

void SiStripQuality::clear ( void  )
inline

◆ compact() [1/2]

void SiStripQuality::compact ( std::vector< unsigned int > &  tmp,
std::vector< unsigned int > &  vect,
unsigned short &  Nstrips 
)
private

Definition at line 381 of file SiStripQuality.cc.

381  {
382  SiStripBadStrip::data fs_0, fs_1;
383  vect.clear();
384 
385  ContainerIterator it = tmp.begin();
386  fs_0 = decode(*it);
387 
388  // Check if at the module end
389  if (fs_0.firstStrip + fs_0.range >= Nstrips) {
390  vect.push_back(encode(fs_0.firstStrip, Nstrips - fs_0.firstStrip));
391  return;
392  }
393 
394  ++it;
395  for (; it != tmp.end(); ++it) {
396  fs_1 = decode(*it);
397 
398  if (fs_0.firstStrip + fs_0.range >= fs_1.firstStrip + fs_1.range) {
399  // fs_0 includes fs_1, go ahead
400  } else if (fs_0.firstStrip + fs_0.range >= fs_1.firstStrip) {
401  // contiguous or superimposed intervals
402  // Check if at the module end
403  if (fs_1.firstStrip + fs_1.range >= Nstrips) {
404  vect.push_back(encode(fs_0.firstStrip, Nstrips - fs_0.firstStrip));
405  return;
406  } else {
407  // create new fs_0
408  fs_0.range = fs_1.firstStrip + fs_1.range - fs_0.firstStrip;
409  }
410  } else {
411  // separated intervals
412  vect.push_back(encode(fs_0.firstStrip, fs_0.range));
413  fs_0 = fs_1;
414  }
415  }
416  vect.push_back(encode(fs_0.firstStrip, fs_0.range));
417 }

References SiStripBadStrip::decode(), SiStripBadStrip::encode(), SiStripBadStrip::data::firstStrip, SiStripBadStrip::data::range, and createJobs::tmp.

◆ compact() [2/2]

void SiStripQuality::compact ( unsigned int &  detid,
std::vector< unsigned int > &  vect 
)

Definition at line 285 of file SiStripQuality.cc.

285  {
286  std::vector<unsigned int> tmp = vect;
287  vect.clear();
288  std::stable_sort(tmp.begin(), tmp.end());
289  unsigned short Nstrips = info_.getNumberOfApvsAndStripLength(detid).first * 128;
290  compact(tmp, vect, Nstrips);
291 }

References SiStripDetInfo::getNumberOfApvsAndStripLength(), info_, and createJobs::tmp.

Referenced by add(), SiStripHotStripAlgorithmFromClusterOccupancy::extractBadStrips(), SiStripHitEffFromCalibTree::makeSQLite(), and SiStripCondObjBuilderFromDb::storeQuality().

◆ difference()

SiStripQuality SiStripQuality::difference ( const SiStripQuality other) const

Definition at line 24 of file SiStripQuality.cc.

24  {
25  SiStripBadStrip::RegistryIterator rbegin = other.getRegistryVectorBegin();
26  SiStripBadStrip::RegistryIterator rend = other.getRegistryVectorEnd();
27  std::vector<unsigned int> ovect, vect;
28  uint32_t detid;
29  unsigned short Nstrips;
30 
31  SiStripQuality retValue(*this);
32  for (SiStripBadStrip::RegistryIterator rp = rbegin; rp != rend; ++rp) {
33  detid = rp->detid;
34  Nstrips = info_.getNumberOfApvsAndStripLength(detid).first * 128;
35 
36  SiStripBadStrip::Range orange =
37  SiStripBadStrip::Range(other.getDataVectorBegin() + rp->ibegin, other.getDataVectorBegin() + rp->iend);
38 
39  // Is this detid already in the collections owned by this class?
40  SiStripBadStrip::Range range = retValue.getRange(detid);
41  if (range.first != range.second) { // yes, it is
42 
43  vect.clear();
44  ovect.clear();
45 
46  // if other full det is bad, remove det from this
47  SiStripBadStrip::data data_ = decode(*(orange.first));
48  if (orange.second - orange.first != 1 || data_.firstStrip != 0 || data_.range < Nstrips) {
49  ovect.insert(ovect.end(), orange.first, orange.second);
50  vect.insert(vect.end(), range.first, range.second);
51  retValue.subtract(vect, ovect);
52  }
53  SiStripBadStrip::Range newrange(vect.begin(), vect.end());
54  if (!retValue.put_replace(detid, newrange))
55  edm::LogError("SiStripQuality") << "[" << __PRETTY_FUNCTION__ << "] " << std::endl;
56  }
57  }
58  retValue.cleanUp();
59  retValue.fillBadComponents();
60  return retValue;
61 }

References cleanUp(), SiStripBadStrip::decode(), fillBadComponents(), SiStripBadStrip::data::firstStrip, SiStripDetInfo::getNumberOfApvsAndStripLength(), SiStripBadStrip::getRange(), info_, trackingPlots::other, put_replace(), FastTimerService_cff::range, SiStripBadStrip::data::range, and subtract().

◆ fillBadComponents()

void SiStripQuality::fillBadComponents ( )

Definition at line 490 of file SiStripQuality.cc.

490  {
491  BadComponentVect.clear();
492 
493  for (SiStripBadStrip::RegistryIterator basep = indexes.begin(); basep != indexes.end(); ++basep) {
494  SiStripBadStrip::Range range(v_badstrips.begin() + basep->ibegin, v_badstrips.begin() + basep->iend);
495 
496  // Fill BadModules, BadFibers, BadApvs vectors
497  unsigned short resultA = 0, resultF = 0;
498  BadComponent result;
499 
501  unsigned short Nstrips = info_.getNumberOfApvsAndStripLength(basep->detid).first * 128;
502 
503  // BadModules
504  fs = decode(*(range.first));
505  if (basep->iend - basep->ibegin == 1 && fs.firstStrip == 0 && fs.range == Nstrips) {
506  result.detid = basep->detid;
507  result.BadModule = true;
508  result.BadFibers = (1 << (Nstrips / 256)) - 1;
509  result.BadApvs = (1 << (Nstrips / 128)) - 1;
510 
511  BadComponentVect.push_back(result);
512 
513  } else {
514  // Bad Fibers and Apvs
515  for (SiStripBadStrip::ContainerIterator it = range.first; it != range.second; ++it) {
516  fs = decode(*it);
517 
518  // BadApvs
519  for (short apvNb = 0; apvNb < 6; ++apvNb) {
520  if (fs.firstStrip <= apvNb * 128 && (apvNb + 1) * 128 <= fs.firstStrip + fs.range) {
521  resultA = resultA | (1 << apvNb);
522  }
523  }
524  // BadFibers
525  for (short fiberNb = 0; fiberNb < 3; ++fiberNb) {
526  if (fs.firstStrip <= fiberNb * 256 && (fiberNb + 1) * 256 <= fs.firstStrip + fs.range) {
527  resultF = resultF | (1 << fiberNb);
528  }
529  }
530  }
531  if (resultA != 0) {
532  result.detid = basep->detid;
533  result.BadModule = false;
534  result.BadFibers = resultF;
535  result.BadApvs = resultA;
536  BadComponentVect.push_back(result);
537  }
538  }
539  }
540 }

References BadComponentVect, SiStripBadStrip::decode(), SiStripBadStrip::data::firstStrip, SiStripDetInfo::getNumberOfApvsAndStripLength(), SiStripBadStrip::indexes, info_, SiStripBadStrip::data::range, FastTimerService_cff::range, mps_fire::result, and SiStripBadStrip::v_badstrips.

Referenced by difference(), SiStripBadAPVAlgorithmFromClusterOccupancy::extractBadAPVs(), SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::extractBadAPVSandStrips(), SiStripHotStripAlgorithmFromClusterOccupancy::extractBadStrips(), and SiStripHitEffFromCalibTree::makeSQLite().

◆ getBadApvs()

short SiStripQuality::getBadApvs ( const uint32_t &  detid) const

Definition at line 626 of file SiStripQuality.cc.

626  {
627  std::vector<BadComponent>::const_iterator p = std::lower_bound(
629  if (p != BadComponentVect.end() && p->detid == detid)
630  return p->BadApvs;
631  return 0;
632 }

References BadComponentVect, pfDeepBoostedJetPreprocessParams_cfi::lower_bound, and AlCaHLTBitMon_ParallelJobs::p.

Referenced by HitEff::analyze(), and SiStripRecHitConverterAlgorithm::fillBad128StripBlocks().

◆ getBadComponentList()

const std::vector<BadComponent>& SiStripQuality::getBadComponentList ( ) const
inline

◆ getBadFibers()

short SiStripQuality::getBadFibers ( const uint32_t &  detid) const

Definition at line 634 of file SiStripQuality.cc.

634  {
635  std::vector<BadComponent>::const_iterator p = std::lower_bound(
637  if (p != BadComponentVect.end() && p->detid == detid)
638  return p->BadFibers;
639  return 0;
640 }

References BadComponentVect, pfDeepBoostedJetPreprocessParams_cfi::lower_bound, and AlCaHLTBitMon_ParallelJobs::p.

Referenced by SiStripRecHitConverterAlgorithm::fillBad128StripBlocks().

◆ IsApvBad()

bool SiStripQuality::IsApvBad ( const uint32_t &  detid,
const short &  apvNb 
) const

◆ IsFiberBad()

bool SiStripQuality::IsFiberBad ( const uint32_t &  detid,
const short &  fiberNb 
) const

Definition at line 566 of file SiStripQuality.cc.

566  {
567  std::vector<BadComponent>::const_iterator p = std::lower_bound(
569  if (p != BadComponentVect.end() && p->detid == detid)
570  return ((p->BadFibers >> fiberNb) & 0x1);
571  return false;
572 }

References BadComponentVect, pfDeepBoostedJetPreprocessParams_cfi::lower_bound, and AlCaHLTBitMon_ParallelJobs::p.

Referenced by SiStripClusterInfo::IsFiberBad().

◆ IsModuleBad()

bool SiStripQuality::IsModuleBad ( const uint32_t &  detid) const

◆ IsModuleUsable()

bool SiStripQuality::IsModuleUsable ( const uint32_t &  detid) const

Definition at line 544 of file SiStripQuality.cc.

544  {
545  std::vector<BadComponent>::const_iterator p = std::lower_bound(
547  if (p != BadComponentVect.end() && p->detid == detid)
548  if (p->BadModule)
549  return false;
550 
551  if (SiStripDetCabling_ != nullptr)
552  if (!SiStripDetCabling_->IsConnected(detid))
553  return false;
554 
555  return true;
556 }

References BadComponentVect, SiStripDetCabling::IsConnected(), pfDeepBoostedJetPreprocessParams_cfi::lower_bound, AlCaHLTBitMon_ParallelJobs::p, and SiStripDetCabling_.

Referenced by SiStripQualityDQM::fillGrandSummaryMEs(), SiStripClusterizerConditions::isModuleUsable(), SiStripClusterInfo::IsModuleUsable(), SiStripQualityStatistics::updateAndSave(), and SiStripRecHitConverterAlgorithm::useModule().

◆ IsStripBad() [1/2]

bool SiStripQuality::IsStripBad ( const Range range,
const short &  strip 
) const

Definition at line 587 of file SiStripQuality.cc.

587  {
588  bool result = false;
590  for (SiStripBadStrip::ContainerIterator it = range.first; it != range.second; ++it) {
591  fs = decode(*it);
592  if ((fs.firstStrip <= strip) & (strip < fs.firstStrip + fs.range)) {
593  result = true;
594  break;
595  }
596  }
597  return result;
598 }

References SiStripBadStrip::decode(), SiStripBadStrip::data::firstStrip, SiStripBadStrip::data::range, FastTimerService_cff::range, mps_fire::result, and digitizers_cfi::strip.

◆ IsStripBad() [2/2]

bool SiStripQuality::IsStripBad ( const uint32_t &  detid,
const short &  strip 
) const

◆ nBadStripsOnTheLeft()

int SiStripQuality::nBadStripsOnTheLeft ( const Range range,
const short &  strip 
) const

Definition at line 600 of file SiStripQuality.cc.

600  {
601  int result = 0;
603  for (SiStripBadStrip::ContainerIterator it = range.first; it != range.second; ++it) {
604  fs = decode(*it);
605  if (fs.firstStrip <= strip && strip < fs.firstStrip + fs.range) {
606  result = strip - fs.firstStrip + 1;
607  break;
608  }
609  }
610  return result;
611 }

References SiStripBadStrip::decode(), SiStripBadStrip::data::firstStrip, SiStripBadStrip::data::range, FastTimerService_cff::range, mps_fire::result, and digitizers_cfi::strip.

◆ nBadStripsOnTheRight()

int SiStripQuality::nBadStripsOnTheRight ( const Range range,
const short &  strip 
) const

Definition at line 613 of file SiStripQuality.cc.

613  {
614  int result = 0;
616  for (SiStripBadStrip::ContainerIterator it = range.first; it != range.second; ++it) {
617  fs = decode(*it);
618  if (fs.firstStrip <= strip && strip < fs.firstStrip + fs.range) {
619  result = fs.firstStrip + fs.range - strip;
620  break;
621  }
622  }
623  return result;
624 }

References SiStripBadStrip::decode(), SiStripBadStrip::data::firstStrip, SiStripBadStrip::data::range, FastTimerService_cff::range, mps_fire::result, and digitizers_cfi::strip.

◆ printActiveFedsInfo()

void SiStripQuality::printActiveFedsInfo ( const std::vector< uint16_t > &  activeFedsFromCabling,
const std::vector< int > &  activeFedsFromRunInfo,
const std::vector< int > &  differentFeds,
const bool  printDebug 
)
private

Prints debug output for the active feds comparing the list in RunInfo and FedCabling

Definition at line 676 of file SiStripQuality.cc.

679  {
680  std::ostringstream ss;
681 
682  if (printDebug) {
683  ss << "activeFedsFromCabling:" << std::endl;
684  std::copy(activeFedsFromCabling.begin(), activeFedsFromCabling.end(), std::ostream_iterator<uint16_t>(ss, " "));
685  ss << std::endl;
686  ss << "activeFedsFromRunInfo:" << std::endl;
687  std::copy(activeFedsFromRunInfo.begin(), activeFedsFromRunInfo.end(), std::ostream_iterator<int>(ss, " "));
688  ss << std::endl;
689  }
690  if (differentFeds.size() != 440) {
691  ss << "differentFeds : " << std::endl;
692  std::copy(differentFeds.begin(), differentFeds.end(), std::ostream_iterator<int>(ss, " "));
693  ss << std::endl;
694  } else {
695  ss << "There are 440 feds (all) active for Cabling but off for RunInfo. "
696  "Tracker was probably not in this run"
697  << std::endl;
698  }
699  edm::LogInfo("SiStripQuality") << ss.str() << std::endl;
700 }

References filterCSVwithJSON::copy, SiStripBadStrip::printDebug(), and contentValuesCheck::ss.

◆ printDetInfo()

void SiStripQuality::printDetInfo ( const TrackerTopology *const  tTopo,
const uint32_t &  detId,
const uint32_t &  apvPairNumber,
std::stringstream &  ss 
)
private

Prints debug output for a given detId.

Definition at line 642 of file SiStripQuality.cc.

645  {
646  std::string subDetName;
647  DetId detid(detId);
648  int layer = tTopo->layer(detid);
649  int stereo = 0;
650  switch (detid.subdetId()) {
651  case StripSubdetector::TIB: {
652  stereo = tTopo->tibIsStereo(detid);
653  subDetName = "TIB";
654  break;
655  }
656  case StripSubdetector::TOB: {
657  stereo = tTopo->tobIsStereo(detid);
658  subDetName = "TOB";
659  break;
660  }
661  case StripSubdetector::TEC: {
662  stereo = tTopo->tecIsStereo(detid);
663  subDetName = "TEC";
664  break;
665  }
666  case StripSubdetector::TID: {
667  stereo = tTopo->tidIsStereo(detid);
668  subDetName = "TID";
669  break;
670  }
671  }
672  ss << detId << " and apv = " << apvPairNumber << " of subDet = " << subDetName << ", layer = " << layer
673  << " stereo = " << stereo << std::endl;
674 }

References phase1PixelTopology::layer, TrackerTopology::layer(), contentValuesCheck::ss, AlCaHLTBitMon_QueryRunRegistry::string, DetId::subdetId(), StripSubdetector::TEC, TrackerTopology::tecIsStereo(), StripSubdetector::TIB, TrackerTopology::tibIsStereo(), StripSubdetector::TID, TrackerTopology::tidIsStereo(), StripSubdetector::TOB, and TrackerTopology::tobIsStereo().

Referenced by turnOffFeds().

◆ put_replace()

bool SiStripQuality::put_replace ( const uint32_t &  DetId,
Range  input 
)
private

Definition at line 293 of file SiStripQuality.cc.

293  {
294  // put in SiStripQuality::v_badstrips of DetId
295  Registry::iterator p = std::lower_bound(indexes.begin(), indexes.end(), DetId, SiStripBadStrip::StrictWeakOrdering());
296 
297  size_t sd = input.second - input.first;
298  DetRegistry detregistry;
299  detregistry.detid = DetId;
300  detregistry.ibegin = v_badstrips.size();
301  detregistry.iend = v_badstrips.size() + sd;
302 
303  v_badstrips.insert(v_badstrips.end(), input.first, input.second);
304 
305  if (p != indexes.end() && p->detid == DetId) {
306  LogTrace("SiStripQuality") << "[SiStripQuality::put_replace] Replacing "
307  "SiStripQuality for already stored DetID "
308  << DetId << std::endl;
309  toCleanUp = true;
310  *p = detregistry;
311  } else {
312  indexes.insert(p, detregistry);
313  }
314 
315  return true;
316 }

References SiStripBadStrip::DetRegistry::detid, SiStripBadStrip::DetRegistry::ibegin, SiStripBadStrip::DetRegistry::iend, SiStripBadStrip::indexes, input, LogTrace, pfDeepBoostedJetPreprocessParams_cfi::lower_bound, AlCaHLTBitMon_ParallelJobs::p, sd, toCleanUp, and SiStripBadStrip::v_badstrips.

Referenced by add(), and difference().

◆ ReduceGranularity()

void SiStripQuality::ReduceGranularity ( double  threshold)

Definition at line 324 of file SiStripQuality.cc.

324  {
327  SiStripBadStrip::data data_;
328  uint16_t BadStripPerApv[6], ipos;
329  std::vector<unsigned int> vect;
330 
331  for (; rp != rend; ++rp) {
332  uint32_t detid = rp->detid;
333 
334  BadStripPerApv[0] = 0;
335  BadStripPerApv[1] = 0;
336  BadStripPerApv[2] = 0;
337  BadStripPerApv[3] = 0;
338  BadStripPerApv[4] = 0;
339  BadStripPerApv[5] = 0;
340  ipos = 0;
341 
342  SiStripBadStrip::Range sqrange =
343  SiStripBadStrip::Range(getDataVectorBegin() + rp->ibegin, getDataVectorBegin() + rp->iend);
344 
345  for (int it = 0; it < sqrange.second - sqrange.first; it++) {
346  data_ = decode(*(sqrange.first + it));
347  LogTrace("SiStripQuality") << "[SiStripQuality::ReduceGranularity] detid " << detid << " first strip "
348  << data_.firstStrip << " lastStrip " << data_.firstStrip + data_.range - 1 << " range "
349  << data_.range;
350  ipos = data_.firstStrip / 128;
351  while (ipos <= (data_.firstStrip + data_.range - 1) / 128) {
352  BadStripPerApv[ipos] +=
353  std::min(data_.firstStrip + data_.range, (ipos + 1) * 128) - std::max(data_.firstStrip * 1, ipos * 128);
354  LogTrace("SiStripQuality") << "[SiStripQuality::ReduceGranularity] ipos " << ipos << " Counter "
355  << BadStripPerApv[ipos] << " min "
356  << std::min(data_.firstStrip + data_.range, (ipos + 1) * 128) << " max "
357  << std::max(data_.firstStrip * 1, ipos * 128) << " added "
358  << std::min(data_.firstStrip + data_.range, (ipos + 1) * 128) -
359  std::max(data_.firstStrip * 1, ipos * 128);
360  ipos++;
361  }
362  }
363 
364  LogTrace("SiStripQuality") << "[SiStripQuality::ReduceGranularity] Total for detid " << detid << " values "
365  << BadStripPerApv[0] << " " << BadStripPerApv[1] << " " << BadStripPerApv[2] << " "
366  << BadStripPerApv[3] << " " << BadStripPerApv[4] << " " << BadStripPerApv[5];
367 
368  vect.clear();
369  for (size_t i = 0; i < 6; ++i) {
370  if (BadStripPerApv[i] >= threshold * 128) {
371  vect.push_back(encode(i * 128, 128));
372  }
373  }
374  if (!vect.empty()) {
375  SiStripBadStrip::Range Range(vect.begin(), vect.end());
376  add(detid, Range);
377  }
378  }
379 }

References add(), SiStripBadStrip::decode(), SiStripBadStrip::encode(), SiStripBadStrip::data::firstStrip, SiStripBadStrip::getDataVectorBegin(), SiStripBadStrip::getRegistryVectorBegin(), SiStripBadStrip::getRegistryVectorEnd(), mps_fire::i, LogTrace, SiStripPI::max, min(), SiStripBadStrip::data::range, and remoteMonitoring_LED_IterMethod_cfg::threshold.

◆ setPrintDebugOutput()

void SiStripQuality::setPrintDebugOutput ( const bool  printDebug)
inline

Definition at line 118 of file SiStripQuality.h.

118 { printDebug_ = printDebug; }

References SiStripBadStrip::printDebug(), and printDebug_.

◆ setUseEmptyRunInfo()

void SiStripQuality::setUseEmptyRunInfo ( const bool  useEmptyRunInfo)
inline

Definition at line 119 of file SiStripQuality.h.

119 { useEmptyRunInfo_ = useEmptyRunInfo; }

References useEmptyRunInfo_.

◆ subtract()

void SiStripQuality::subtract ( std::vector< unsigned int > &  A,
const std::vector< unsigned int > &  B 
)
private

Definition at line 419 of file SiStripQuality.cc.

419  {
420  ContainerIterator it = B.begin();
421  ContainerIterator itend = B.end();
422  for (; it != itend; ++it) {
423  subtraction(A, *it);
424  }
425 }

References TtFullHadDaughter::B, and subtraction().

Referenced by difference().

◆ subtraction()

void SiStripQuality::subtraction ( std::vector< unsigned int > &  A,
const unsigned int &  B 
)
private

Definition at line 427 of file SiStripQuality.cc.

427  {
428  SiStripBadStrip::data fs_A, fs_B, fs_m, fs_M;
429  std::vector<unsigned int> tmp;
430 
431  fs_B = decode(B);
432  ContainerIterator jt = A.begin();
433  ContainerIterator jtend = A.end();
434  for (; jt != jtend; ++jt) {
435  fs_A = decode(*jt);
436  if (B < *jt) {
437  fs_m = fs_B;
438  fs_M = fs_A;
439  } else {
440  fs_m = fs_A;
441  fs_M = fs_B;
442  }
443  // A) Verify the range to be subtracted crosses the new range
444  if (fs_m.firstStrip + fs_m.range > fs_M.firstStrip) {
445  if (*jt < B) {
446  tmp.push_back(encode(fs_A.firstStrip, fs_B.firstStrip - fs_A.firstStrip));
447  }
448  if (fs_A.firstStrip + fs_A.range > fs_B.firstStrip + fs_B.range) {
449  tmp.push_back(
450  encode(fs_B.firstStrip + fs_B.range, fs_A.firstStrip + fs_A.range - (fs_B.firstStrip + fs_B.range)));
451  }
452  } else {
453  tmp.push_back(*jt);
454  }
455  }
456  A = tmp;
457 }

References TtFullHadDaughter::B, SiStripBadStrip::decode(), SiStripBadStrip::encode(), SiStripBadStrip::data::firstStrip, SiStripBadStrip::data::range, and createJobs::tmp.

Referenced by subtract().

◆ turnOffFeds()

void SiStripQuality::turnOffFeds ( const std::vector< int > &  fedsList,
const bool  turnOffStrips,
const bool  printDebug 
)
private

Loop on all the fedIds, take the fedChannels and then the detId. Depending on the value of a bool turn off or not the strips in the list.

Definition at line 702 of file SiStripQuality.cc.

702  {
703  std::stringstream ss;
704  if (printDebug) {
705  ss << "associated to detIds : " << std::endl;
706  }
707 
708  std::vector<int>::const_iterator fedIdIt = fedsList.begin();
709  for (; fedIdIt != fedsList.end(); ++fedIdIt) {
710  std::vector<FedChannelConnection>::const_iterator fedChIt =
711  SiStripDetCabling_->fedCabling()->fedConnections(*fedIdIt).begin();
712  for (; fedChIt != SiStripDetCabling_->fedCabling()->fedConnections(*fedIdIt).end(); ++fedChIt) {
713  uint32_t detId = fedChIt->detId();
714  if (detId == 0 || detId == 0xFFFFFFFF)
715  continue;
716  uint16_t apvPairNumber = fedChIt->apvPairNumber();
717 
718  if (printDebug) {
719  printDetInfo(SiStripDetCabling_->trackerTopology(), detId, apvPairNumber, ss);
720  }
721 
722  if (turnOffStrips) {
723  // apvPairNumber == i it means that the i*256 strips are to be set off
724  std::vector<unsigned int> vect;
725  vect.push_back(encode(apvPairNumber * 256, 256));
726  SiStripBadStrip::Range Range(vect.begin(), vect.end());
727  add(detId, Range);
728  LogTrace("SiStripQuality") << "[addOffForRunInfo] adding apvPairNumber " << apvPairNumber << " for detId "
729  << detId << " off according to RunInfo" << std::endl;
730  }
731  }
732  }
733  if (printDebug) {
734  edm::LogInfo("SiStripQuality") << ss.str() << std::endl;
735  }
736 }

References add(), SiStripBadStrip::encode(), SiStripDetCabling::fedCabling(), SiStripFedCabling::fedConnections(), LogTrace, SiStripBadStrip::printDebug(), printDetInfo(), SiStripDetCabling_, contentValuesCheck::ss, and SiStripDetCabling::trackerTopology().

Referenced by add().

Member Data Documentation

◆ BadComponentVect

std::vector<BadComponent> SiStripQuality::BadComponentVect
private

◆ info_

SiStripDetInfo SiStripQuality::info_
private

◆ printDebug_

bool SiStripQuality::printDebug_
private

Definition at line 152 of file SiStripQuality.h.

Referenced by add(), and setPrintDebugOutput().

◆ SiStripDetCabling_

const SiStripDetCabling* SiStripQuality::SiStripDetCabling_
private

◆ toCleanUp

bool SiStripQuality::toCleanUp
private

Definition at line 148 of file SiStripQuality.h.

Referenced by cleanUp(), clear(), and put_replace().

◆ useEmptyRunInfo_

bool SiStripQuality::useEmptyRunInfo_
private

Definition at line 153 of file SiStripQuality.h.

Referenced by add(), and setUseEmptyRunInfo().

SiStripDetCabling::trackerTopology
const TrackerTopology *const trackerTopology() const
Definition: SiStripDetCabling.h:87
SiStripDetCabling::addActiveDetectorsRawIds
void addActiveDetectorsRawIds(std::vector< uint32_t > &) const
Definition: SiStripDetCabling.cc:134
FastTimerService_cff.range
range
Definition: FastTimerService_cff.py:34
cmsStageWithFailover.force
force
Definition: cmsStageWithFailover.py:19
mps_fire.i
i
Definition: mps_fire.py:428
input
static const std::string input
Definition: EdmProvDump.cc:48
SiStripBadStrip::getRange
const Range getRange(const uint32_t detID) const
Definition: SiStripBadStrip.cc:27
filterCSVwithJSON.copy
copy
Definition: filterCSVwithJSON.py:36
SiStripQuality::add
void add(const uint32_t &, const SiStripBadStrip::Range &)
Definition: SiStripQuality.cc:243
TrackerTopology::tobIsStereo
bool tobIsStereo(const DetId &id) const
Definition: TrackerTopology.h:264
min
T min(T a, T b)
Definition: MathUtil.h:58
digitizers_cfi.strip
strip
Definition: digitizers_cfi.py:19
TrackerTopology::tecIsStereo
bool tecIsStereo(const DetId &id) const
Definition: TrackerTopology.h:265
SiStripBadStrip::decode
data decode(const unsigned int &value) const
Definition: SiStripBadStrip.h:78
TrackerTopology::layer
unsigned int layer(const DetId &id) const
Definition: TrackerTopology.cc:47
DDAxes::x
SiStripDetCabling::fedCabling
const SiStripFedCabling * fedCabling() const
Definition: SiStripDetCabling.h:86
SiStripBadStrip::put
bool put(const uint32_t &detID, const InputVector &vect)
Definition: SiStripBadStrip.h:65
edm::LogInfo
Log< level::Info, false > LogInfo
Definition: MessageLogger.h:125
createJobs.tmp
tmp
align.sh
Definition: createJobs.py:716
SiStripBadStrip::getDataVectorBegin
ContainerIterator getDataVectorBegin() const
Definition: SiStripBadStrip.h:73
SiStripQuality::printDebug_
bool printDebug_
Definition: SiStripQuality.h:152
SiStripQuality::printDetInfo
void printDetInfo(const TrackerTopology *const tTopo, const uint32_t &detId, const uint32_t &apvPairNumber, std::stringstream &ss)
Prints debug output for a given detId.
Definition: SiStripQuality.cc:642
heavyIonCSV_trainingSettings.idx
idx
Definition: heavyIonCSV_trainingSettings.py:5
SiStripQuality::BadComponentVect
std::vector< BadComponent > BadComponentVect
Definition: SiStripQuality.h:149
TrackerTopology::tidIsStereo
bool tidIsStereo(const DetId &id) const
Definition: TrackerTopology.h:267
contentValuesCheck.ss
ss
Definition: contentValuesCheck.py:33
DetId
Definition: DetId.h:17
testProducerWithPsetDescEmpty_cfi.x1
x1
Definition: testProducerWithPsetDescEmpty_cfi.py:33
RPCNoise_example.check
check
Definition: RPCNoise_example.py:71
SiStripBadStrip::Range
std::pair< ContainerIterator, ContainerIterator > Range
Definition: SiStripBadStrip.h:53
SiStripBadStrip::getRegistryVectorBegin
RegistryIterator getRegistryVectorBegin() const
Definition: SiStripBadStrip.h:75
SiStripBadStrip::printDebug
void printDebug(std::stringstream &ss, const TrackerTopology *trackerTopo) const
Definition: SiStripBadStrip.cc:76
SiStripBadStrip::data::flag
unsigned short flag
Definition: SiStripBadStrip.h:35
SiStripQuality::compact
void compact(unsigned int &, std::vector< unsigned int > &)
Definition: SiStripQuality.cc:285
FEDNumbering::MINSiStripFEDID
Definition: FEDNumbering.h:29
SiStripDetInfo::getNumberOfApvsAndStripLength
const std::pair< unsigned short, double > getNumberOfApvsAndStripLength(uint32_t detId) const
Definition: SiStripDetInfo.cc:19
TrackerTopology::tibIsStereo
bool tibIsStereo(const DetId &id) const
Definition: TrackerTopology.h:266
StripSubdetector::TIB
static constexpr auto TIB
Definition: StripSubdetector.h:16
SiStripDetInfo::getAllData
const std::map< uint32_t, DetInfo > & getAllData() const noexcept
Definition: SiStripDetInfo.h:59
SiStripDetCabling::IsConnected
bool IsConnected(const uint32_t &det_id) const
Definition: SiStripDetCabling.cc:375
trackingPlots.other
other
Definition: trackingPlots.py:1464
SiStripDetVOff::getDetIds
void getDetIds(std::vector< uint32_t > &DetIds_) const
Definition: SiStripDetVOff.cc:64
SiStripQuality::IsStripBad
bool IsStripBad(const uint32_t &detid, const short &strip) const
Definition: SiStripQuality.cc:582
phase1PixelTopology::layer
constexpr std::array< uint8_t, layerIndexSize > layer
Definition: phase1PixelTopology.h:99
pfDeepBoostedJetPreprocessParams_cfi.lower_bound
lower_bound
Definition: pfDeepBoostedJetPreprocessParams_cfi.py:15
AlCaHLTBitMon_ParallelJobs.p
def p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
SiStripPI::max
Definition: SiStripPayloadInspectorHelper.h:169
jetUpdater_cfi.sort
sort
Definition: jetUpdater_cfi.py:29
A
SiStripQuality::SiStripDetCabling_
const SiStripDetCabling * SiStripDetCabling_
Definition: SiStripQuality.h:151
createfilelist.int
int
Definition: createfilelist.py:10
SiStripBadStrip::data::firstStrip
unsigned short firstStrip
Definition: SiStripBadStrip.h:33
SiStripQuality::info_
SiStripDetInfo info_
Definition: SiStripQuality.h:147
SiStripBadStrip::indexes
Registry indexes
Definition: SiStripBadStrip.h:96
SiStripBadStrip::v_badstrips
Container v_badstrips
Definition: SiStripBadStrip.h:95
sistrip::invalid_
static const uint16_t invalid_
Definition: Constants.h:16
SiStripQuality::put_replace
bool put_replace(const uint32_t &DetId, Range input)
Definition: SiStripQuality.cc:293
AlCaHLTBitMon_QueryRunRegistry.string
string string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
SiStripQuality::subtraction
void subtraction(std::vector< unsigned int > &, const unsigned int &)
Definition: SiStripQuality.cc:427
SiStripQuality::BadComponentStrictWeakOrdering
Definition: SiStripQuality.h:41
TtFullHadDaughter::B
static const std::string B
Definition: TtFullHadronicEvent.h:9
eostools.move
def move(src, dest)
Definition: eostools.py:511
StripSubdetector::TEC
static constexpr auto TEC
Definition: StripSubdetector.h:19
SiStripQuality::useEmptyRunInfo_
bool useEmptyRunInfo_
Definition: SiStripQuality.h:153
SiStripDetCabling::nApvPairs
const uint16_t nApvPairs(uint32_t det_id) const
Definition: SiStripDetCabling.cc:209
StripSubdetector::TOB
static constexpr auto TOB
Definition: StripSubdetector.h:18
submitPVValidationJobs.runInfo
dictionary runInfo
Definition: submitPVValidationJobs.py:1013
SiStripBadStrip::RegistryIterator
Registry::const_iterator RegistryIterator
Definition: SiStripBadStrip.h:55
FEDNumbering::MAXSiStripFEDID
Definition: FEDNumbering.h:30
sd
double sd
Definition: CascadeWrapper.h:113
SiStripBadStrip::data::range
unsigned short range
Definition: SiStripBadStrip.h:34
SiStripFedCabling::fedIds
FedsConstIterRange fedIds() const
Definition: SiStripFedCabling.h:154
mps_fire.result
result
Definition: mps_fire.py:311
LogTrace
#define LogTrace(id)
Definition: MessageLogger.h:234
SiStripQuality::addInvalidConnectionFromCabling
void addInvalidConnectionFromCabling()
Definition: SiStripQuality.cc:182
SiStripBadStrip::StrictWeakOrdering
Definition: SiStripBadStrip.h:46
SiStripFedCabling::fedConnections
ConnsConstIterRange fedConnections(uint16_t fed_id) const
Definition: SiStripFedCabling.cc:160
remoteMonitoring_LED_IterMethod_cfg.threshold
threshold
Definition: remoteMonitoring_LED_IterMethod_cfg.py:430
newFWLiteAna.base
base
Definition: newFWLiteAna.py:92
SiStripQuality::toCleanUp
bool toCleanUp
Definition: SiStripQuality.h:148
SiStripBadStrip::encode
unsigned int encode(const unsigned short &first, const unsigned short &NconsecutiveBadStrips, const unsigned short &flag=0)
Definition: SiStripBadStrip.h:86
SiStripQuality::turnOffFeds
void turnOffFeds(const std::vector< int > &fedsList, const bool turnOffStrips, const bool printDebug)
Definition: SiStripQuality.cc:702
edm::Log
Definition: MessageLogger.h:70
SiStripBadStrip::ContainerIterator
std::vector< unsigned int >::const_iterator ContainerIterator
Definition: SiStripBadStrip.h:52
SiStripDetCabling::getConnections
const std::vector< const FedChannelConnection * > & getConnections(uint32_t det_id) const
Definition: SiStripDetCabling.cc:161
SiStripBadStrip::getRegistryVectorEnd
RegistryIterator getRegistryVectorEnd() const
Definition: SiStripBadStrip.h:76
SiStripQuality::addNotConnectedConnectionFromCabling
void addNotConnectedConnectionFromCabling()
Definition: SiStripQuality.cc:164
StripSubdetector::TID
static constexpr auto TID
Definition: StripSubdetector.h:17
SiStripBadStrip::data
Definition: SiStripBadStrip.h:32
SiStripQuality
Definition: SiStripQuality.h:32