|
void | dqmEndJob (DQMStore::IBooker &, DQMStore::IGetter &) override |
|
void | endRun (edm::Run const &, edm::EventSetup const &) override |
|
| SiStripQualityStatistics (const edm::ParameterSet &) |
|
| ~SiStripQualityStatistics () override=default |
|
void | accumulate (edm::Event const &ev, edm::EventSetup const &es) final |
|
void | beginJob () override |
|
void | beginLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &) final |
|
void | beginRun (edm::Run const &run, edm::EventSetup const &) override |
|
virtual void | dqmAnalyze (DQMStore::IBooker &, DQMStore::IGetter &, edm::Event const &, edm::EventSetup const &) |
|
| DQMEDHarvester (edm::ParameterSet const &iConfig) |
|
| DQMEDHarvester () |
|
virtual void | dqmEndLuminosityBlock (DQMStore::IBooker &, DQMStore::IGetter &, edm::LuminosityBlock const &, edm::EventSetup const &) |
|
virtual void | dqmEndRun (DQMStore::IBooker &, DQMStore::IGetter &, edm::Run const &, edm::EventSetup const &) |
|
void | endLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &) final |
|
void | endLuminosityBlockProduce (edm::LuminosityBlock &lumi, edm::EventSetup const &es) final |
|
void | endProcessBlockProduce (edm::ProcessBlock &) final |
|
void | endRun (edm::Run const &, edm::EventSetup const &) override |
|
void | endRunProduce (edm::Run &run, edm::EventSetup const &es) final |
|
| ~DQMEDHarvester () override=default |
|
| EDProducer ()=default |
|
| EDProducer (const EDProducer &)=delete |
|
SerialTaskQueue * | globalLuminosityBlocksQueue () final |
|
SerialTaskQueue * | globalRunsQueue () final |
|
bool | hasAbilityToProduceInBeginLumis () const final |
|
bool | hasAbilityToProduceInBeginProcessBlocks () const final |
|
bool | hasAbilityToProduceInBeginRuns () const final |
|
bool | hasAbilityToProduceInEndLumis () const final |
|
bool | hasAbilityToProduceInEndProcessBlocks () const final |
|
bool | hasAbilityToProduceInEndRuns () const final |
|
const EDProducer & | operator= (const EDProducer &)=delete |
|
bool | wantsGlobalLuminosityBlocks () const final |
|
bool | wantsGlobalRuns () const final |
|
bool | wantsInputProcessBlocks () const final |
|
bool | wantsProcessBlocks () const final |
|
| EDProducerBase () |
|
ModuleDescription const & | moduleDescription () const |
|
bool | wantsStreamLuminosityBlocks () const |
|
bool | wantsStreamRuns () const |
|
| ~EDProducerBase () override |
|
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 |
|
std::vector< bool > const & | recordProvenanceList () 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) |
|
TypeLabelList const & | typeLabelList () const |
| used by the fwk to register the list of products of this module More...
|
|
| ~ProducerBase () noexcept(false) override |
|
std::vector< ConsumesInfo > | consumesInfo () 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 |
|
ESResolverIndex const * | esGetTokenIndices (edm::Transition iTrans) const |
|
std::vector< ESResolverIndex > const & | esGetTokenIndicesVector (edm::Transition iTrans) const |
|
std::vector< ESRecordIndex > const & | esGetTokenRecordIndicesVector (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::array< std::vector< ModuleDescription const *> *, NumBranchTypes > &modulesAll, std::vector< ModuleProcessName > &modulesInPreviousProcesses, ProductRegistry const &preg, std::map< std::string, ModuleDescription const *> const &labelsToDesc, std::string const &processName) const |
|
EDConsumerBase const & | operator= (EDConsumerBase const &)=delete |
|
EDConsumerBase & | operator= (EDConsumerBase &&)=default |
|
bool | registeredToConsume (ProductResolverIndex, bool, BranchType) const |
|
void | selectInputProcessBlocks (ProductRegistry const &productRegistry, ProcessBlockHelperBase const &processBlockHelperBase) |
|
ProductResolverIndexAndSkipBit | uncheckedIndexFrom (EDGetToken) const |
|
void | updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet) |
|
void | updateLookup (eventsetup::ESRecordsToProductResolverIndices const &) |
|
virtual | ~EDConsumerBase () noexcept(false) |
|
|
typedef dqm::harvesting::DQMStore | DQMStore |
|
typedef dqm::harvesting::MonitorElement | MonitorElement |
|
typedef EDProducerBase | ModuleType |
|
template<typename T > |
using | BranchAliasSetterT = ProductRegistryHelper::BranchAliasSetterT< T > |
|
using | ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex > > |
|
typedef ProductRegistryHelper::TypeLabelList | TypeLabelList |
|
typedef ProductLabels | Labels |
|
template<Transition Tr = Transition::Event> |
auto | produces (std::string instanceName) noexcept |
| declare what type of product will make and with which optional label More...
|
|
template<Transition B> |
BranchAliasSetter | produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true) |
|
template<BranchType B> |
BranchAliasSetter | produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true) |
|
BranchAliasSetter | produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true) |
|
template<typename ProductType , Transition B> |
BranchAliasSetterT< ProductType > | produces (std::string instanceName) |
|
template<class ProductType > |
BranchAliasSetterT< ProductType > | produces () |
|
template<typename ProductType , BranchType B> |
BranchAliasSetterT< ProductType > | produces (std::string instanceName) |
|
template<typename ProductType , BranchType B> |
BranchAliasSetterT< ProductType > | produces () |
|
template<class ProductType > |
BranchAliasSetterT< ProductType > | produces (std::string instanceName) |
|
template<typename ProductType , Transition B> |
BranchAliasSetterT< ProductType > | produces () |
|
template<Transition Tr = Transition::Event> |
auto | produces () noexcept |
|
ProducesCollector | producesCollector () |
|
template<typename ProductType , BranchType B = InEvent> |
EDGetTokenT< ProductType > | consumes (edm::InputTag const &tag) |
|
template<BranchType B = InEvent> |
EDConsumerBaseAdaptor< B > | consumes (edm::InputTag tag) noexcept |
|
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 ESProduct , typename ESRecord , Transition Tr = Transition::Event> |
auto | esConsumes () |
|
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event> |
auto | esConsumes (ESInputTag const &tag) |
|
template<Transition Tr = Transition::Event> |
constexpr auto | esConsumes () |
|
template<Transition Tr = Transition::Event> |
auto | esConsumes (ESInputTag tag) |
|
template<Transition Tr = Transition::Event> |
ESGetTokenGeneric | esConsumes (eventsetup::EventSetupRecordKey const &iRecord, eventsetup::DataKey const &iKey) |
| Used with EventSetupRecord::doGet. More...
|
|
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) |
|
void | resetItemsToGetFrom (BranchType iType) |
|
DQMStore * | dqmstore_ |
|
edm::GetterOfProducts< DQMToken > | jobmegetter_ |
|
edm::EDPutTokenT< DQMToken > | jobToken_ |
|
edm::GetterOfProducts< DQMToken > | lumimegetter_ |
|
edm::EDPutTokenT< DQMToken > | lumiToken_ |
|
edm::GetterOfProducts< DQMToken > | runmegetter_ |
|
edm::EDPutTokenT< DQMToken > | runToken_ |
|
Description: <one line="" class="" summary>="">
Implementation: <Notes on="" implementation>="">
Definition at line 38 of file SiStripQualityStatistics.cc.
void SiStripQualityStatistics::updateAndSave |
( |
const SiStripQuality * |
siStripQuality | ) |
|
|
private |
Definition at line 128 of file SiStripQualityStatistics.cc.
References SiStripBadStrip::decode(), detInfo_, corrVsCorr::filename, TrackerMap::fill(), TrackerMap::fillc(), SiStripDetInfo::getAllDetIds(), SiStripQuality::getBadComponentList(), SiStripBadStrip::getDataVectorBegin(), SiStripDetInfo::getNumberOfApvsAndStripLength(), SiStripBadStrip::getRegistryVectorBegin(), SiStripBadStrip::getRegistryVectorEnd(), mps_fire::i, SiStripQuality::IsModuleUsable(), dqmiolumiharvest::j, dqmdumpme::k, LogDebug, NBadComponent, NTkBadComponent, TrackerMap::print(), FastTimerService_cff::range, SiStripBadStrip::data::range, edm::RunID::run(), run_, TrackerMap::save(), SetBadComponents(), contentValuesCheck::ss, ssV, str, AlCaHLTBitMon_QueryRunRegistry::string, DetId::subdetId(), StripSubdetector::TEC, StripSubdetector::TIB, StripSubdetector::TID, tkhisto, tkMap, TkMapFileName_, tkMapFullIOVs, StripSubdetector::TOB, tTopo_, and testProducerWithPsetDescEmpty_cfi::x1.
Referenced by dqmEndJob(), and endRun().
129 for (
int i = 0;
i < 4; ++
i) {
131 for (
int j = 0;
j < 19; ++
j) {
133 for (
int k = 0;
k < 4; ++
k)
142 std::stringstream
ss;
144 std::vector<uint32_t>::const_iterator idet = detids.begin();
145 for (; idet != detids.end(); ++idet) {
146 ss <<
"detid " << (*idet) <<
" IsModuleUsable " << siStripQuality->
IsModuleUsable((*idet)) <<
"\n";
150 LogDebug(
"SiStripQualityStatistics") <<
ss.str() << std::endl;
154 for (
size_t i = 0;
i < BC.size(); ++
i) {
165 ((BC[
i].BadApvs >> 2) & 0
x1) + ((BC[
i].BadApvs >> 1) & 0
x1) + ((BC[
i].BadApvs) & 0
x1);
178 component =
tTopo_->tibLayer(BC[
i].detid);
186 component =
tTopo_->tidSide(BC[
i].detid) == 2 ?
tTopo_->tidWheel(BC[
i].detid) :
tTopo_->tidWheel(BC[
i].detid) + 3;
194 component =
tTopo_->tobLayer(BC[
i].detid);
202 component =
tTopo_->tecSide(BC[
i].detid) == 2 ?
tTopo_->tecWheel(BC[
i].detid) :
tTopo_->tecWheel(BC[
i].detid) + 9;
210 float percentage = 0;
216 uint32_t detid = rp->detid;
219 int component = -999;
224 component =
tTopo_->tibLayer(detid);
227 component =
tTopo_->tidSide(detid) == 2 ?
tTopo_->tidWheel(detid) :
tTopo_->tidWheel(detid) + 3;
230 component =
tTopo_->tobLayer(detid);
233 component =
tTopo_->tecSide(detid) == 2 ?
tTopo_->tecWheel(detid) :
tTopo_->tecWheel(detid) + 9;
240 for (
int it = 0; it < sqrange.second - sqrange.first; it++) {
250 edm::LogError(
"SiStripQualityStatistics") <<
"PROBLEM detid " << detid <<
" value " << percentage << std::endl;
255 tkhisto->fill(detid, percentage);
263 ss <<
"\n-----------------\nNew IOV starting from run " <<
run_.
run() <<
"\n-----------------\n";
264 ss <<
"\n-----------------\nGlobal Info\n-----------------";
265 ss <<
"\nBadComponent \t Modules \tFibers " 266 "\tApvs\tStrips\n----------------------------------------------------------------";
280 for (
int i = 1;
i < 5; ++
i)
284 for (
int i = 1;
i < 4; ++
i)
287 for (
int i = 4;
i < 7; ++
i)
291 for (
int i = 1;
i < 7; ++
i)
295 for (
int i = 1;
i < 10; ++
i)
298 for (
int i = 10;
i < 19; ++
i)
303 ss <<
"\n----------------------------------------------------------------\n\t\t Detid \tModules Fibers " 304 "Apvs\n----------------------------------------------------------------";
305 for (
int i = 1;
i < 5; ++
i)
306 ss <<
"\nTIB Layer " <<
i <<
" :" <<
ssV[0][
i].
str();
308 for (
int i = 1;
i < 4; ++
i)
309 ss <<
"\nTID+ Disk " <<
i <<
" :" <<
ssV[1][
i].
str();
310 for (
int i = 4;
i < 7; ++
i)
311 ss <<
"\nTID- Disk " <<
i - 3 <<
" :" <<
ssV[1][
i].
str();
313 for (
int i = 1;
i < 7; ++
i)
314 ss <<
"\nTOB Layer " <<
i <<
" :" <<
ssV[2][
i].
str();
316 for (
int i = 1;
i < 10; ++
i)
317 ss <<
"\nTEC+ Disk " <<
i <<
" :" <<
ssV[3][
i].
str();
318 for (
int i = 10;
i < 19; ++
i)
319 ss <<
"\nTEC- Disk " <<
i - 9 <<
" :" <<
ssV[3][
i].
str();
321 edm::LogInfo(
"SiStripQualityStatistics") <<
ss.str() << std::endl;
324 std::stringstream sRun;
326 sRun <<
"_Run_" << std::setw(6) << std::setfill(
'0') <<
run_.
run() << std::setw(0);
static constexpr auto TEC
ContainerIterator getDataVectorBegin() const
void SetBadComponents(int, int, SiStripQuality::BadComponent &)
TrackerMap * tkMapFullIOVs
int NBadComponent[4][19][4]
Registry::const_iterator RegistryIterator
Log< level::Error, false > LogError
const std::vector< BadComponent > & getBadComponentList() const
std::unique_ptr< TrackerTopology > tTopo_
void save(bool print_total=true, float minval=0., float maxval=0., std::string s="svgmap.svg", int width=1500, int height=800)
RegistryIterator getRegistryVectorEnd() const
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum) ...
static constexpr auto TOB
void fillc(int idmod, int RGBcode)
std::stringstream ssV[4][19]
Log< level::Info, false > LogInfo
static constexpr auto TIB
const std::pair< unsigned short, double > getNumberOfApvsAndStripLength(uint32_t detId) const
std::unique_ptr< TkHistoMap > tkhisto
std::pair< ContainerIterator, ContainerIterator > Range
void print(bool print_total=true, float minval=0., float maxval=0., std::string s="svgmap")
const std::string TkMapFileName_
data decode(const unsigned int &value) const
bool IsModuleUsable(uint32_t detid) const
static constexpr auto TID
const std::vector< uint32_t > & getAllDetIds() const noexcept
RegistryIterator getRegistryVectorBegin() const
void fill(int layer, int ring, int nmod, float x)