24 : bookedStatus_(
false),
29 LogDebug(
"SiStripBadComponentInfo") <<
"SiStripBadComponentInfo::Creating SiStripBadComponentInfo ";
33 LogDebug(
"SiStripBadComponentInfo") <<
"SiStripBadComponentInfo::Deleting SiStripBadComponentInfo ";
40 LogDebug(
"SiStripBadComponentInfo") <<
"SiStripBadComponentInfo:: End of Run";
53 for (
size_t i = 0;
i < BC.size(); ++
i) {
66 component =
tTopo_->tibLayer(BC[
i].detid);
71 if (
tTopo_->tidSide(BC[
i].detid) == 2)
75 component =
tTopo_->tidWheel(BC[
i].detid);
81 component =
tTopo_->tobLayer(BC[
i].detid);
86 if (
tTopo_->tecSide(BC[
i].detid) == 2)
90 component =
tTopo_->tecWheel(BC[
i].detid);
103 uint32_t detid = rp->detid;
105 int component = -999;
110 component =
tTopo_->tibLayer(detid);
112 if (
tTopo_->tidSide(detid) == 2)
116 component =
tTopo_->tidWheel(detid);
119 component =
tTopo_->tobLayer(detid);
121 if (
tTopo_->tecSide(detid) == 2)
125 component =
tTopo_->tecWheel(detid);
131 for (
int it = 0; it < sqrange.second - sqrange.first; it++) {
134 ?
mapBadStrip.at(std::make_pair(subdet, component))
143 LogDebug(
"SiStripBadComponentInfo") <<
"SiStripBadComponentInfo::dqmEndRun";
161 ibooker.
cd(
"SiStrip");
162 strip_dir = ibooker.
pwd();
165 <<
"SiStripBadComponentInfo::bookBadComponentHistos ==> " << strip_dir <<
" " << ibooker.
pwd() << std::endl;
166 if (!strip_dir.empty())
172 if (!strip_dir.empty())
177 htitle =
"SiStrip Bad APVs";
182 hname =
"BadFiberMap";
183 htitle =
"SiStrip Bad Fibers";
188 hname =
"BadStripMap";
189 htitle =
"SiStrip Bad Strips";
194 std::vector<std::string>
names;
195 names.push_back(
"TECB");
196 names.push_back(
"TECF");
197 names.push_back(
"TIB");
198 names.push_back(
"TIDB");
199 names.push_back(
"TIDF");
200 names.push_back(
"TOB");
202 for (
unsigned int i = 0;
i <
names.size();
i++) {
214 auto index = std::make_pair(xbin, component);
232 for (
int k = 1;
k <
me->getNbinsY();
k++) {
233 auto index = std::make_pair(
i,
k);
239 me->setBinContent(
i,
me->getNbinsY(), sum);
static constexpr auto TEC
ContainerIterator getDataVectorBegin() const
bool endRun(const edm::EventSetup &)
void createSummary(MonitorElement *me, const std::map< std::pair< int, int >, float > &map)
virtual void setCurrentFolder(std::string const &fullpath)
SiStripBadComponentInfo(edm::ParameterSet const &ps)
Constructor.
MonitorElement * badStripME_
#define DEFINE_FWK_MODULE(type)
virtual std::string pwd()
~SiStripBadComponentInfo() override
void endRun(edm::Run const &, edm::EventSetup const &) override
virtual bool dirExists(std::string const &path) const
Registry::const_iterator RegistryIterator
const std::string names[nVars_]
std::map< std::pair< int, int >, float > mapBadFiber
const std::vector< BadComponent > & getBadComponentList() const
void fillBadComponentMaps(const SiStripQuality *siStripQuality)
void bookBadComponentHistos(DQMStore::IBooker &ibooker, DQMStore::IGetter &igetter)
void dqmEndJob(DQMStore::IBooker &, DQMStore::IGetter &) override
std::unique_ptr< TrackerTopology > tTopo_
ConsumesCollector consumesCollector()
Use a ConsumesCollector to gather consumes information from helper functions.
std::map< std::pair< int, int >, float > mapBadAPV
MonitorElement * badFiberME_
RegistryIterator getRegistryVectorEnd() const
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum) ...
bool getData(T &iHolder) const
static constexpr auto TOB
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)
bool addBadCompFromFedErr() const
Log< level::Info, false > LogInfo
const edm::ESGetToken< SiStripQuality, SiStripQualityRcd > & qualityToken() const
static constexpr auto TIB
SiStripQualityWithFromFedErrorsHelper withFedErrHelper_
MonitorElement * book2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, FUNC onbooking=NOOP())
const SiStripQuality & getMergedQuality(dqm::harvesting::DQMStore::IGetter &getter)
std::map< std::pair< int, int >, float > mapBadStrip
std::pair< ContainerIterator, ContainerIterator > Range
data decode(const unsigned int &value) const
MonitorElement * badAPVME_
static constexpr auto TID
RegistryIterator getRegistryVectorBegin() const
edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > tTopoToken_
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)