CMS 3D CMS Logo

List of all members | Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes
SiStripBadComponentInfo Class Reference

#include <SiStripBadComponentInfo.h>

Inheritance diagram for SiStripBadComponentInfo:
DQMEDHarvester edm::one::EDProducer< edm::Accumulator, edm::EndLuminosityBlockProducer, edm::EndRunProducer, edm::one::WatchLuminosityBlocks, edm::one::WatchRuns, edm::one::SharedResources > edm::one::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

 SiStripBadComponentInfo (edm::ParameterSet const &ps)
 Constructor. More...
 
 ~SiStripBadComponentInfo () override
 
- Public Member Functions inherited from DQMEDHarvester
void accumulate (edm::Event const &ev, edm::EventSetup const &es) final
 
void beginLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &) final
 
void beginRun (edm::Run const &, edm::EventSetup const &) override
 
 DQMEDHarvester ()
 
virtual void dqmEndLuminosityBlock (DQMStore::IBooker &, DQMStore::IGetter &, edm::LuminosityBlock const &, edm::EventSetup const &)
 
void endJob () final
 
void endLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &) final
 
void endLuminosityBlockProduce (edm::LuminosityBlock &, edm::EventSetup const &) final
 
void endRun (edm::Run const &, edm::EventSetup const &) override
 
void endRunProduce (edm::Run &run, edm::EventSetup const &setup) override
 
 ~DQMEDHarvester () override=default
 
- Public Member Functions inherited from edm::one::EDProducer< edm::Accumulator, edm::EndLuminosityBlockProducer, edm::EndRunProducer, edm::one::WatchLuminosityBlocks, edm::one::WatchRuns, edm::one::SharedResources >
 EDProducer ()=default
 
SerialTaskQueueglobalLuminosityBlocksQueue () final
 
SerialTaskQueueglobalRunsQueue () final
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
- Public Member Functions inherited from edm::one::EDProducerBase
 EDProducerBase ()
 
ModuleDescription const & moduleDescription () const
 
bool wantsStreamLuminosityBlocks () const
 
bool wantsStreamRuns () const
 
 ~EDProducerBase () override
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector< edm::ProductResolverIndex > const & indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
std::vector< edm::ProductResolverIndex > const & putTokenIndexToProductResolverIndex () const
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription const &)> registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
 
 ~ProducerBase () noexcept(false) override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ESProxyIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Protected Member Functions

void dqmEndJob (DQMStore::IBooker &, DQMStore::IGetter &) override
 
void endRun (edm::Run const &, edm::EventSetup const &) override
 
- Protected Member Functions inherited from edm::ProducerBase
ProducesCollector producesCollector ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 

Private Member Functions

void bookBadComponentHistos (DQMStore::IBooker &ibooker, DQMStore::IGetter &igetter)
 
void checkBadComponents (edm::EventSetup const &eSetup)
 
void createSummary (MonitorElement *me, const std::map< std::pair< int, int >, float > &map)
 
void fillBadComponentMaps (const SiStripQuality *siStripQuality)
 
void fillBadComponentMaps (int xbin, int component, SiStripQuality::BadComponent const &BC)
 

Private Attributes

bool addBadCompFromFedErr_
 
MonitorElementbadAPVME_
 
MonitorElementbadFiberME_
 
MonitorElementbadStripME_
 
bool bookedStatus_
 
edm::ESHandle< SiStripFedCablingfedCabling_
 
float fedErrCutoff_
 
std::map< std::pair< int, int >, float > mapBadAPV
 
std::map< std::pair< int, int >, float > mapBadFiber
 
std::map< std::pair< int, int >, float > mapBadStrip
 
int nSubSystem_
 
std::string qualityLabel_
 
edm::ESHandle< SiStripQualitysiStripQuality_
 
edm::ESHandle< TrackerTopologytTopo_
 

Additional Inherited Members

- Public Types inherited from DQMEDHarvester
typedef dqm::harvesting::DQMStore DQMStore
 
typedef dqm::harvesting::MonitorElement MonitorElement
 
- Public Types inherited from edm::one::EDProducerBase
typedef EDProducerBase ModuleType
 
- Public Types inherited from edm::ProducerBase
using ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex >>
 
typedef ProductRegistryHelper::TypeLabelList TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::one::EDProducerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Attributes inherited from DQMEDHarvester
edm::EDPutTokenT< DQMTokenlumiToken_
 
edm::EDPutTokenT< DQMTokenrunToken_
 

Detailed Description

DQM/SiStripMonitorCluster/interface/SiStripBadComponentInfo.h

Description: Checks the # of SiStrip FEDs from DAQ Usage: <usage>

Definition at line 41 of file SiStripBadComponentInfo.h.

Constructor & Destructor Documentation

SiStripBadComponentInfo::SiStripBadComponentInfo ( edm::ParameterSet const &  ps)

Constructor.

Definition at line 25 of file SiStripBadComponentInfo.cc.

References addBadCompFromFedErr_, fedErrCutoff_, dqmMemoryStats::float, edm::ParameterSet::getUntrackedParameter(), and LogDebug.

26  : bookedStatus_(false), nSubSystem_(6), qualityLabel_(pSet.getParameter<std::string>("StripQualityLabel")) {
27  addBadCompFromFedErr_ = pSet.getUntrackedParameter<bool>("AddBadComponentsFromFedErrors", false);
28  fedErrCutoff_ = float(pSet.getUntrackedParameter<double>("FedErrorBadComponentsCutoff", 0.8));
29  // Create MessageSender
30  LogDebug("SiStripBadComponentInfo") << "SiStripBadComponentInfo::Deleting SiStripBadComponentInfo ";
31 }
#define LogDebug(id)
SiStripBadComponentInfo::~SiStripBadComponentInfo ( )
override

Definition at line 33 of file SiStripBadComponentInfo.cc.

References LogDebug.

33  {
34  LogDebug("SiStripBadComponentInfo") << "SiStripBadComponentInfo::Deleting SiStripBadComponentInfo ";
35 }
#define LogDebug(id)

Member Function Documentation

void SiStripBadComponentInfo::bookBadComponentHistos ( DQMStore::IBooker ibooker,
DQMStore::IGetter igetter 
)
private

Definition at line 168 of file SiStripBadComponentInfo.cc.

References badAPVME_, badFiberME_, badStripME_, dqm::dqmstoreimpl::DQMStore::IBooker::book2D(), bookedStatus_, dqm::dqmstoreimpl::DQMStore::IBooker::cd(), dqm::dqmstoreimpl::DQMStore::IGetter::dirExists(), mps_fire::i, names, nSubSystem_, dqm::dqmstoreimpl::DQMStore::IBooker::pwd(), dqm::impl::MonitorElement::setAxisTitle(), dqm::impl::MonitorElement::setBinLabel(), dqm::dqmstoreimpl::DQMStore::IBooker::setCurrentFolder(), and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by dqmEndJob().

168  {
169  if (!bookedStatus_) {
170  std::string strip_dir = "";
171  ibooker.cd();
172  // SiStripUtility::getTopFolderPath(dqmStore_, "SiStrip", strip_dir);
173  if (igetter.dirExists("SiStrip")) {
174  ibooker.cd("SiStrip");
175  strip_dir = ibooker.pwd();
176  }
177  edm::LogInfo("SiStripBadComponentInfo")
178  << "SiStripBadComponentInfo::bookBadComponentHistos ==> " << strip_dir << " " << ibooker.pwd() << std::endl;
179  if (!strip_dir.empty())
180  ibooker.setCurrentFolder(strip_dir + "/EventInfo");
181  else
182  ibooker.setCurrentFolder("SiStrip/EventInfo");
183 
184  ibooker.cd();
185  if (!strip_dir.empty())
186  ibooker.setCurrentFolder(strip_dir + "/EventInfo/BadComponentContents");
187 
188  std::string hname, htitle;
189  hname = "BadAPVMap";
190  htitle = "SiStrip Bad APVs";
191  badAPVME_ = ibooker.book2D(hname, htitle, nSubSystem_, 0.5, nSubSystem_ + 0.5, 10, 0.5, 10.5);
192  badAPVME_->setAxisTitle("Sub Detector Type", 1);
193  badAPVME_->setAxisTitle("Layer/Disc Number", 2);
194 
195  hname = "BadFiberMap";
196  htitle = "SiStrip Bad Fibers";
197  badFiberME_ = ibooker.book2D(hname, htitle, nSubSystem_, 0.5, nSubSystem_ + 0.5, 10, 0.5, 10.5);
198  badFiberME_->setAxisTitle("Sub Detector Type", 1);
199  badFiberME_->setAxisTitle("Layer/Disc Number", 2);
200 
201  hname = "BadStripMap";
202  htitle = "SiStrip Bad Strips";
203  badStripME_ = ibooker.book2D(hname, htitle, nSubSystem_, 0.5, nSubSystem_ + 0.5, 10, 0.5, 10.5);
204  badStripME_->setAxisTitle("Sub Detector Type", 1);
205  badStripME_->setAxisTitle("Layer/Disc Number", 2);
206 
207  std::vector<std::string> names;
208  names.push_back("TECB");
209  names.push_back("TECF");
210  names.push_back("TIB");
211  names.push_back("TIDB");
212  names.push_back("TIDF");
213  names.push_back("TOB");
214 
215  for (unsigned int i = 0; i < names.size(); i++) {
216  badAPVME_->setBinLabel(i + 1, names[i]);
217  badFiberME_->setBinLabel(i + 1, names[i]);
218  badStripME_->setBinLabel(i + 1, names[i]);
219  }
220 
221  bookedStatus_ = true;
222  ibooker.cd();
223  }
224 }
const std::string names[nVars_]
virtual void setBinLabel(int bin, const std::string &label, int axis=1)
set bin label for x, y or z axis (axis=1, 2, 3 respectively)
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
void SiStripBadComponentInfo::checkBadComponents ( edm::EventSetup const &  eSetup)
private

Definition at line 40 of file SiStripBadComponentInfo.cc.

References addBadCompFromFedErr_, fedCabling_, fillBadComponentMaps(), edm::EventSetup::get(), LogDebug, edm::ESHandle< T >::product(), qualityLabel_, siStripQuality_, and tTopo_.

Referenced by endRun().

40  {
41  LogDebug("SiStripBadComponentInfo") << "SiStripBadComponentInfo:: Begining of Run";
42 
43  // Retrieve tracker topology from geometry
44  eSetup.get<TrackerTopologyRcd>().get(tTopo_);
45  eSetup.get<SiStripFedCablingRcd>().get(fedCabling_);
46 
48  if (!addBadCompFromFedErr_) {
50  }
51 }
#define LogDebug(id)
edm::ESHandle< SiStripQuality > siStripQuality_
void fillBadComponentMaps(const SiStripQuality *siStripQuality)
edm::ESHandle< TrackerTopology > tTopo_
edm::ESHandle< SiStripFedCabling > fedCabling_
T const * product() const
Definition: ESHandle.h:86
void SiStripBadComponentInfo::createSummary ( MonitorElement me,
const std::map< std::pair< int, int >, float > &  map 
)
private

Definition at line 242 of file SiStripBadComponentInfo.cc.

References DEFINE_FWK_MODULE, dqm::impl::MonitorElement::getNbinsY(), mps_fire::i, dqmdumpme::k, genParticles_cff::map, nSubSystem_, and dqm::impl::MonitorElement::setBinContent().

Referenced by dqmEndJob().

242  {
243  for (int i = 1; i < nSubSystem_ + 1; i++) {
244  float sum = 0.0;
245  for (int k = 1; k < me->getNbinsY(); k++) {
246  auto index = std::make_pair(i, k);
247  if (map.find(index) != map.end()) {
248  me->setBinContent(i, k, map.at(index)); // fill the layer/wheel bins
249  sum += map.at(index);
250  }
251  }
252  me->setBinContent(i, me->getNbinsY(), sum); // fill the summary bin (last one)
253  }
254 }
virtual int getNbinsY() const
get # of bins in Y-axis
virtual void setBinContent(int binx, double content)
set content of bin (1-D)
void SiStripBadComponentInfo::dqmEndJob ( DQMStore::IBooker ibooker,
DQMStore::IGetter igetter 
)
overrideprotectedvirtual

Implements DQMEDHarvester.

Definition at line 150 of file SiStripBadComponentInfo.cc.

References addBadCompFromFedErr_, badAPVME_, badFiberME_, sistrip::badStripFromFedErr(), badStripME_, bookBadComponentHistos(), createSummary(), fedCabling_, fedErrCutoff_, fillBadComponentMaps(), LogDebug, mapBadAPV, mapBadFiber, and mapBadStrip.

150  {
151  LogDebug("SiStripBadComponentInfo") << "SiStripBadComponentInfo::dqmEndRun";
152  if (addBadCompFromFedErr_) {
153  auto mergedQuality = std::make_unique<SiStripQuality>(*siStripQuality_);
154  auto fedErrQuality = sistrip::badStripFromFedErr(igetter, *fedCabling_, fedErrCutoff_);
155  mergedQuality->add(fedErrQuality.get());
156  mergedQuality->cleanUp();
157  mergedQuality->fillBadComponents();
158  fillBadComponentMaps(mergedQuality.get());
159  }
160  bookBadComponentHistos(ibooker, igetter);
164 }
#define LogDebug(id)
void createSummary(MonitorElement *me, const std::map< std::pair< int, int >, float > &map)
std::map< std::pair< int, int >, float > mapBadFiber
void fillBadComponentMaps(const SiStripQuality *siStripQuality)
void bookBadComponentHistos(DQMStore::IBooker &ibooker, DQMStore::IGetter &igetter)
std::map< std::pair< int, int >, float > mapBadAPV
std::unique_ptr< SiStripQuality > badStripFromFedErr(dqm::harvesting::DQMStore::IGetter &dqmStore, const SiStripFedCabling &fedCabling, float cutoff)
std::map< std::pair< int, int >, float > mapBadStrip
edm::ESHandle< SiStripFedCabling > fedCabling_
void SiStripBadComponentInfo::endRun ( edm::Run const &  run,
edm::EventSetup const &  eSetup 
)
overrideprotected

Definition at line 145 of file SiStripBadComponentInfo.cc.

References checkBadComponents(), and LogDebug.

145  {
146  LogDebug("SiStripBadComponentInfo") << "SiStripBadComponentInfo:: End of Run";
147  checkBadComponents(eSetup);
148 }
#define LogDebug(id)
void checkBadComponents(edm::EventSetup const &eSetup)
void SiStripBadComponentInfo::fillBadComponentMaps ( const SiStripQuality siStripQuality)
private

Definition at line 53 of file SiStripBadComponentInfo.cc.

References SiStripBadStrip::decode(), SiStripQuality::getBadComponentList(), SiStripBadStrip::getDataVectorBegin(), SiStripBadStrip::getRegistryVectorBegin(), SiStripBadStrip::getRegistryVectorEnd(), mps_fire::i, mapBadStrip, FastTimerService_cff::range, SiStripBadStrip::data::range, DetId::subdetId(), StripSubdetector::TEC, TrackerTopology::tecSide(), TrackerTopology::tecWheel(), StripSubdetector::TIB, TrackerTopology::tibLayer(), StripSubdetector::TID, TrackerTopology::tidSide(), TrackerTopology::tidWheel(), StripSubdetector::TOB, TrackerTopology::tobLayer(), tTopo_, and heppy_batch::val.

Referenced by checkBadComponents(), and dqmEndJob().

53  {
54  auto const& BC = siStripQuality->getBadComponentList();
55 
56  for (size_t i = 0; i < BC.size(); ++i) {
57  int subdet = -999;
58  int component = -999;
59 
60  //&&&&&&&&&&&&&&&&&
61  // Single SubSyste
62  //&&&&&&&&&&&&&&&&&
63  int subDet = DetId(BC[i].detid).subdetId();
64  if (subDet == StripSubdetector::TIB) {
65  //&&&&&&&&&&&&&&&&&
66  // TIB
67  //&&&&&&&&&&&&&&&&&
68  subdet = 3;
69  component = tTopo_->tibLayer(BC[i].detid);
70  } else if (subDet == StripSubdetector::TID) {
71  //&&&&&&&&&&&&&&&&&
72  // TID
73  //&&&&&&&&&&&&&&&&&
74  if (tTopo_->tidSide(BC[i].detid) == 2)
75  subdet = 4;
76  else
77  subdet = 5;
78  component = tTopo_->tidWheel(BC[i].detid);
79  } else if (subDet == StripSubdetector::TOB) {
80  //&&&&&&&&&&&&&&&&&
81  // TOB
82  //&&&&&&&&&&&&&&&&&
83  subdet = 6;
84  component = tTopo_->tobLayer(BC[i].detid);
85  } else if (subDet == StripSubdetector::TEC) {
86  //&&&&&&&&&&&&&&&&&
87  // TEC
88  //&&&&&&&&&&&&&&&&&
89  if (tTopo_->tecSide(BC[i].detid) == 2)
90  subdet = 2;
91  else
92  subdet = 1;
93  component = tTopo_->tecWheel(BC[i].detid);
94  }
95  fillBadComponentMaps(subdet, component, BC[i]);
96  }
97 
98  //&&&&&&&&&&&&&&&&&&
99  // Single Strip Info
100  //&&&&&&&&&&&&&&&&&&
101 
102  SiStripQuality::RegistryIterator rbegin = siStripQuality->getRegistryVectorBegin();
104 
105  for (SiStripBadStrip::RegistryIterator rp = rbegin; rp != rend; ++rp) {
106  uint32_t detid = rp->detid;
107  int subdet = -999;
108  int component = -999;
109  DetId detectorId = DetId(detid);
110  int subDet = detectorId.subdetId();
111  if (subDet == StripSubdetector::TIB) {
112  subdet = 3;
113  component = tTopo_->tibLayer(detid);
114  } else if (subDet == StripSubdetector::TID) {
115  if (tTopo_->tidSide(detid) == 2)
116  subdet = 5;
117  else
118  subdet = 4;
119  component = tTopo_->tidWheel(detid);
120  } else if (subDet == StripSubdetector::TOB) {
121  subdet = 6;
122  component = tTopo_->tobLayer(detid);
123  } else if (subDet == StripSubdetector::TEC) {
124  if (tTopo_->tecSide(detid) == 2)
125  subdet = 2;
126  else
127  subdet = 1;
128  component = tTopo_->tecWheel(detid);
129  }
130 
131  SiStripQuality::Range sqrange = SiStripQuality::Range(siStripQuality->getDataVectorBegin() + rp->ibegin,
132  siStripQuality->getDataVectorBegin() + rp->iend);
133 
134  for (int it = 0; it < sqrange.second - sqrange.first; it++) {
135  unsigned int range = siStripQuality->decode(*(sqrange.first + it)).range;
136  float val = (mapBadStrip.find(std::make_pair(subdet, component)) != mapBadStrip.end())
137  ? mapBadStrip.at(std::make_pair(subdet, component))
138  : 0.;
139  val += range;
140  mapBadStrip[std::make_pair(subdet, component)] = val;
141  }
142  }
143 }
unsigned short range
static constexpr auto TEC
const std::vector< BadComponent > & getBadComponentList() const
unsigned int tibLayer(const DetId &id) const
unsigned int tidWheel(const DetId &id) const
Registry::const_iterator RegistryIterator
void fillBadComponentMaps(const SiStripQuality *siStripQuality)
RegistryIterator getRegistryVectorEnd() const
unsigned int tidSide(const DetId &id) const
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector&#39;s numbering enum) ...
Definition: DetId.h:48
static constexpr auto TOB
ContainerIterator getDataVectorBegin() const
Definition: DetId.h:17
static constexpr auto TIB
RegistryIterator getRegistryVectorBegin() const
edm::ESHandle< TrackerTopology > tTopo_
std::map< std::pair< int, int >, float > mapBadStrip
std::pair< ContainerIterator, ContainerIterator > Range
unsigned int tecWheel(const DetId &id) const
static constexpr auto TID
data decode(const unsigned int &value) const
unsigned int tobLayer(const DetId &id) const
unsigned int tecSide(const DetId &id) const
void SiStripBadComponentInfo::fillBadComponentMaps ( int  xbin,
int  component,
SiStripQuality::BadComponent const &  BC 
)
private

Definition at line 226 of file SiStripBadComponentInfo.cc.

References SiStripQuality::BadComponent::BadApvs, SiStripQuality::BadComponent::BadFibers, KineDebug3::count(), mapBadAPV, mapBadFiber, and heppy_batch::val.

226  {
227  auto index = std::make_pair(xbin, component);
228 
229  if (BC.BadApvs) {
230  int ntot = std::bitset<16>(BC.BadApvs & 0x3f).count();
231  float val = (mapBadAPV.find(index) != mapBadAPV.end()) ? mapBadAPV.at(index) : 0.;
232  val += ntot;
233  mapBadAPV[index] = val;
234  }
235  if (BC.BadFibers) {
236  int ntot = std::bitset<16>(BC.BadFibers & 0x7).count();
237  float val = (mapBadFiber.find(index) != mapBadFiber.end()) ? mapBadFiber.at(index) : 0.;
238  val += ntot;
239  mapBadFiber[index] = val;
240  }
241 }
std::map< std::pair< int, int >, float > mapBadFiber
std::map< std::pair< int, int >, float > mapBadAPV

Member Data Documentation

bool SiStripBadComponentInfo::addBadCompFromFedErr_
private
MonitorElement* SiStripBadComponentInfo::badAPVME_
private

Definition at line 59 of file SiStripBadComponentInfo.h.

Referenced by bookBadComponentHistos(), and dqmEndJob().

MonitorElement* SiStripBadComponentInfo::badFiberME_
private

Definition at line 60 of file SiStripBadComponentInfo.h.

Referenced by bookBadComponentHistos(), and dqmEndJob().

MonitorElement* SiStripBadComponentInfo::badStripME_
private

Definition at line 61 of file SiStripBadComponentInfo.h.

Referenced by bookBadComponentHistos(), and dqmEndJob().

bool SiStripBadComponentInfo::bookedStatus_
private

Definition at line 67 of file SiStripBadComponentInfo.h.

Referenced by bookBadComponentHistos().

edm::ESHandle<SiStripFedCabling> SiStripBadComponentInfo::fedCabling_
private

Definition at line 73 of file SiStripBadComponentInfo.h.

Referenced by checkBadComponents(), and dqmEndJob().

float SiStripBadComponentInfo::fedErrCutoff_
private

Definition at line 75 of file SiStripBadComponentInfo.h.

Referenced by dqmEndJob(), and SiStripBadComponentInfo().

std::map<std::pair<int, int>, float> SiStripBadComponentInfo::mapBadAPV
private

Definition at line 63 of file SiStripBadComponentInfo.h.

Referenced by dqmEndJob(), and fillBadComponentMaps().

std::map<std::pair<int, int>, float> SiStripBadComponentInfo::mapBadFiber
private

Definition at line 64 of file SiStripBadComponentInfo.h.

Referenced by dqmEndJob(), and fillBadComponentMaps().

std::map<std::pair<int, int>, float> SiStripBadComponentInfo::mapBadStrip
private

Definition at line 65 of file SiStripBadComponentInfo.h.

Referenced by dqmEndJob(), and fillBadComponentMaps().

int SiStripBadComponentInfo::nSubSystem_
private

Definition at line 68 of file SiStripBadComponentInfo.h.

Referenced by bookBadComponentHistos(), and createSummary().

std::string SiStripBadComponentInfo::qualityLabel_
private

Definition at line 69 of file SiStripBadComponentInfo.h.

Referenced by checkBadComponents().

edm::ESHandle<SiStripQuality> SiStripBadComponentInfo::siStripQuality_
private

Definition at line 71 of file SiStripBadComponentInfo.h.

Referenced by checkBadComponents().

edm::ESHandle<TrackerTopology> SiStripBadComponentInfo::tTopo_
private

Definition at line 72 of file SiStripBadComponentInfo.h.

Referenced by checkBadComponents(), and fillBadComponentMaps().