|
![CMS Logo](/cmsdoxygen/common/rightImage.jpg) |
#include <SiStripQualityHotStripIdentifierRoot.h>
|
| SiStripQualityHotStripIdentifierRoot (const edm::ParameterSet &) |
|
| ~SiStripQualityHotStripIdentifierRoot () override |
|
| ConditionDBWriter (const edm::ParameterSet &iConfig) |
|
| ~ConditionDBWriter () override |
|
void | callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func) |
|
| EDAnalyzer () |
|
SerialTaskQueue * | globalLuminosityBlocksQueue () |
|
SerialTaskQueue * | globalRunsQueue () |
|
ModuleDescription const & | moduleDescription () const |
|
std::string | workerType () const |
|
| ~EDAnalyzer () 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 &&)=default |
|
| EDConsumerBase (EDConsumerBase const &)=delete |
|
ESProxyIndex const * | esGetTokenIndices (edm::Transition iTrans) const |
|
std::vector< ESProxyIndex > 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 & | operator= (EDConsumerBase &&)=default |
|
EDConsumerBase const & | operator= (EDConsumerBase const &)=delete |
|
bool | registeredToConsume (ProductResolverIndex, bool, BranchType) const |
|
bool | registeredToConsumeMany (TypeID const &, 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::ESRecordsToProxyIndices const &) |
|
virtual | ~EDConsumerBase () noexcept(false) |
|
|
static const std::string & | baseType () |
|
static void | fillDescriptions (ConfigurationDescriptions &descriptions) |
|
static void | prevalidate (ConfigurationDescriptions &) |
|
static bool | wantsGlobalLuminosityBlocks () |
|
static bool | wantsGlobalRuns () |
|
static bool | wantsInputProcessBlocks () |
|
static bool | wantsProcessBlocks () |
|
static bool | wantsStreamLuminosityBlocks () |
|
static bool | wantsStreamRuns () |
|
void | setDoStore (const bool doStore) |
| When set to false the payload will not be written to the db. More...
|
|
void | storeOnDbNow () |
|
cond::Time_t | timeOfLastIOV () |
|
EDGetToken | consumes (const TypeToGet &id, edm::InputTag const &tag) |
|
template<typename ProductType , BranchType B = InEvent> |
EDGetTokenT< ProductType > | consumes (edm::InputTag const &tag) |
|
template<BranchType B = InEvent> |
EDConsumerBaseAdaptor< B > | consumes (edm::InputTag tag) noexcept |
|
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<Transition Tr = Transition::Event> |
constexpr auto | esConsumes () noexcept |
|
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event> |
auto | esConsumes (ESInputTag const &tag) |
|
template<Transition Tr = Transition::Event> |
auto | esConsumes (ESInputTag tag) noexcept |
|
template<Transition Tr = Transition::Event> |
ESGetTokenGeneric | esConsumes (eventsetup::EventSetupRecordKey const &iRecord, eventsetup::DataKey const &iKey) |
| Used with EventSetupRecord::doGet. More...
|
|
EDGetToken | mayConsume (const TypeToGet &id, edm::InputTag const &tag) |
|
template<BranchType B> |
EDGetToken | mayConsume (const TypeToGet &id, edm::InputTag const &tag) |
|
template<typename ProductType , BranchType B = InEvent> |
EDGetTokenT< ProductType > | mayConsume (edm::InputTag const &tag) |
|
◆ DQMStore
◆ MonitorElement
◆ SiStripQualityHotStripIdentifierRoot()
SiStripQualityHotStripIdentifierRoot::SiStripQualityHotStripIdentifierRoot |
( |
const edm::ParameterSet & |
iConfig | ) |
|
|
explicit |
◆ ~SiStripQualityHotStripIdentifierRoot()
SiStripQualityHotStripIdentifierRoot::~SiStripQualityHotStripIdentifierRoot |
( |
| ) |
|
|
override |
◆ algoAnalyze()
|
inlineoverrideprivatevirtual |
◆ algoBeginLuminosityBlock()
|
inlineoverrideprivatevirtual |
◆ algoBeginRun()
◆ algoEndJob()
void SiStripQualityHotStripIdentifierRoot::algoEndJob |
( |
| ) |
|
|
overrideprivatevirtual |
◆ bookHistos()
void SiStripQualityHotStripIdentifierRoot::bookHistos |
( |
| ) |
|
|
private |
Definition at line 258 of file SiStripQualityHotStripIdentifierRoot.cc.
260 <<
" [SiStripQualityHotStripIdentifierRoot::bookHistos] " <<
dirpath << std::endl;
265 <<
" [SiStripQualityHotStripIdentifierRoot::bookHistos] vector size " <<
MEs.size() << std::endl;
267 std::vector<MonitorElement*>::const_iterator iter =
MEs.begin();
268 std::vector<MonitorElement*>::const_iterator iterEnd =
MEs.end();
271 bool gotNentries =
true;
272 if (
parameters.getUntrackedParameter<uint32_t>(
"NumberOfEvents", 0) == 0 &&
273 parameters.getUntrackedParameter<
double>(
"OccupancyThreshold", 0) != 0)
276 <<
"[SiStripQualityHotStripIdentifierRoot::bookHistos] gotNentries flag " << gotNentries <<
" number of "
277 <<
parameters.getUntrackedParameter<uint32_t>(
"NumberOfEvents", 0) <<
" occup "
278 <<
parameters.getUntrackedParameter<
double>(
"OccupancyThreshold", 0) <<
" OccupancyHisto"
282 for (; iter != iterEnd; ++iter) {
285 if (!gotNentries && strstr(me_name.c_str(),
"TotalNumberOfCluster__T") !=
nullptr &&
286 strstr(me_name.c_str(),
"Profile") ==
nullptr) {
294 <<
"[SiStripQualityHotStripIdentifierRoot::bookHistos] gotNentries flag " << gotNentries << std::endl;
300 <<
" [SiStripQualityHotStripIdentifierRoot::bookHistos] :: Histogram with to check # of events missing"
303 for (; iter != iterEnd; ++iter) {
306 if (strstr(me_name.c_str(), (
parameters.getUntrackedParameter<
std::string>(
"OccupancyHisto")).c_str()) ==
nullptr)
309 unsigned int detid = 0;
311 sprintf(
title,
"%s", me_name.c_str());
313 char* ptr = strtok_r(
title,
"__", &saveptr);
315 while (ptr !=
nullptr) {
320 ptr = strtok_r(
nullptr,
"_", &saveptr);
323 LogDebug(
"SiStripQualityHotStripIdentifierRoot")
324 <<
" [SiStripQualityHotStripIdentifierRoot::bookHistos] detid " << detid << std::endl;
References c, ClusterPositionHistoMap, conf_, dirpath, dqmStore_, dqm::implementation::IGetter::getAllContents(), edm::ParameterSet::getParameter(), LogDebug, MeanNumberOfCluster, EcalMEFormatter_cfi::MEs, AlCaHLTBitMon_QueryRunRegistry::string, runGCPTkAlMap::title, and TotNumberOfEvents.
Referenced by getNewObject().
◆ getNewObject()
std::unique_ptr< SiStripBadStrip > SiStripQualityHotStripIdentifierRoot::getNewObject |
( |
| ) |
|
|
overrideprivatevirtual |
Implements ConditionDBWriter< SiStripBadStrip >.
Definition at line 53 of file SiStripQualityHotStripIdentifierRoot.cc.
55 <<
"SiStripQualityHotStripIdentifierRoot::getNewObject called" << std::endl;
57 auto obj = std::make_unique<SiStripBadStrip>();
66 <<
" [SiStripQualityHotStripIdentifierRoot::getNewObject] Total number of events is " <<
TotNumberOfEvents
67 <<
" which is bigger than " <<
calibrationthreshold <<
". Calibration is preparing to be launched."
71 <<
"Mean Number of Cluster is " <<
MeanNumberOfCluster <<
". Calibration is launched." << std::endl;
73 if (
AlgoName ==
"SiStripHotStripAlgorithmFromClusterOccupancy") {
74 edm::LogInfo(
"SiStripQualityHotStripIdentifierRoot") <<
" [SiStripQualityHotStripIdentifierRoot::getNewObject] "
75 "call to SiStripHotStripAlgorithmFromClusterOccupancy"
100 <<
" [SiStripQualityHotStripIdentifierRoot::getNewObject] copy SiStripObject in SiStripBadStrip"
103 std::stringstream
ss;
107 for (; rIter != rIterEnd; ++rIter) {
109 qobj->getDataVectorBegin() + rIter->iend);
112 <<
"[SiStripQualityHotStripIdentifierRoot::getNewObject] detid already exists" << std::endl;
115 <<
" [SiStripQualityHotStripIdentifierRoot::getNewObject] " <<
ss.str() << std::endl;
116 }
else if (
AlgoName ==
"SiStripBadAPVAlgorithmFromClusterOccupancy") {
117 edm::LogInfo(
"SiStripQualityHotStripIdentifierRoot") <<
" [SiStripQualityHotStripIdentifierRoot::getNewObject] "
118 "call to SiStripBadAPVAlgorithmFromClusterOccupancy"
124 parameters.getUntrackedParameter<
double>(
"HighOccupancyThreshold", 10));
128 parameters.getUntrackedParameter<
double>(
"OccupancyThreshold", 1.E-5));
144 <<
" [SiStripQualityHotStripIdentifierRoot::getNewObject] copy SiStripObject in SiStripBadStrip"
147 std::stringstream
ss;
151 for (; rIter != rIterEnd; ++rIter) {
153 qobj->getDataVectorBegin() + rIter->iend);
156 <<
"[SiStripQualityHotStripIdentifierRoot::getNewObject] detid already exists" << std::endl;
159 <<
" [SiStripQualityHotStripIdentifierRoot::getNewObject] " <<
ss.str() << std::endl;
161 }
else if (
AlgoName ==
"SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy") {
163 <<
" [SiStripQualityHotStripIdentifierRoot::getNewObject] call to "
164 "SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy"
169 parameters.getUntrackedParameter<
double>(
"ProbabilityThreshold", 1.E-7));
172 parameters.getUntrackedParameter<uint32_t>(
"MinNumEntriesPerStrip", 5));
182 parameters.getUntrackedParameter<
double>(
"HighOccupancyThreshold", 10));
186 parameters.getUntrackedParameter<
double>(
"OccupancyThreshold", 1.E-5));
200 <<
" [SiStripQualityHotStripIdentifierRoot::getNewObject] copy SiStripObject in SiStripBadStrip"
203 std::stringstream
ss;
207 for (; rIter != rIterEnd; ++rIter) {
209 qobj->getDataVectorBegin() + rIter->iend);
212 <<
"[SiStripQualityHotStripIdentifierRoot::getNewObject] detid already exists" << std::endl;
215 <<
" [SiStripQualityHotStripIdentifierRoot::getNewObject] " <<
ss.str() << std::endl;
217 edm::LogError(
"SiStripQualityHotStripIdentifierRoot") <<
" [SiStripQualityHotStripIdentifierRoot::getNewObject]"
218 " call for a unknow HotStrip identification algoritm"
221 std::vector<uint32_t>
a;
225 <<
"[SiStripQualityHotStripIdentifierRoot::getNewObject] detid already exists" << std::endl;
231 <<
" [SiStripQualityHotStripIdentifierRoot::getNewObject] :: Empty Events :: "
232 <<
"Mean Number of Cluster is " <<
MeanNumberOfCluster <<
" Calibration NOT launched" << std::endl;
237 <<
" [SiStripQualityHotStripIdentifierRoot::getNewObject] :: Not Enough Events :: "
238 <<
"Total number of events is " <<
TotNumberOfEvents <<
" Calibration NOT launched" << std::endl;
References a, HLTSiStripMonitoring_cff::AlgoName, bookHistos(), calibrationthreshold, ClusterPositionHistoMap, conf_, SiStripBadAPVAlgorithmFromClusterOccupancy::extractBadAPVs(), SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::extractBadAPVSandStrips(), SiStripHotStripAlgorithmFromClusterOccupancy::extractBadStrips(), edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), SiStripDetInfoFileReader::kDefaultFile, MeanNumberOfCluster, getGTfromDQMFile::obj, FastTimerService_cff::range, SiStripDetInfoFileReader::read(), SiStripBadAPVAlgorithmFromClusterOccupancy::setAbsoluteLowThreshold(), SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::setAbsoluteLowThreshold(), SiStripBadAPVAlgorithmFromClusterOccupancy::setAbsoluteOccupancyThreshold(), SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::setAbsoluteOccupancyThreshold(), ConditionDBWriter< SiStripBadStrip >::setDoStore(), SiStripBadAPVAlgorithmFromClusterOccupancy::setHighOccupancyThreshold(), SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::setHighOccupancyThreshold(), SiStripBadAPVAlgorithmFromClusterOccupancy::setLowOccupancyThreshold(), SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::setLowOccupancyThreshold(), SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::setMinNumEntries(), SiStripHotStripAlgorithmFromClusterOccupancy::setMinNumEntries(), SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::setMinNumEntriesPerStrip(), SiStripHotStripAlgorithmFromClusterOccupancy::setMinNumEntriesPerStrip(), SiStripBadAPVAlgorithmFromClusterOccupancy::setMinNumOfEvents(), SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::setMinNumOfEvents(), SiStripBadAPVAlgorithmFromClusterOccupancy::setNumberIterations(), SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::setNumberIterations(), SiStripBadAPVAlgorithmFromClusterOccupancy::setNumberOfEvents(), SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::setNumberOfEvents(), SiStripHotStripAlgorithmFromClusterOccupancy::setNumberOfEvents(), SiStripHotStripAlgorithmFromClusterOccupancy::setOccupancyThreshold(), SiStripBadAPVAlgorithmFromClusterOccupancy::setOutputFileName(), SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::setOutputFileName(), SiStripHotStripAlgorithmFromClusterOccupancy::setOutputFileName(), SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::setProbabilityThreshold(), SiStripHotStripAlgorithmFromClusterOccupancy::setProbabilityThreshold(), SiStripBadAPVAlgorithmFromClusterOccupancy::setTrackerGeometry(), SiStripHotStripAlgorithmFromClusterOccupancy::setTrackerGeometry(), SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy::setTrackerGeometry(), AlCaHarvesting_cff::SiStripQuality, SiStripQuality_, contentValuesCheck::ss, AlCaHLTBitMon_QueryRunRegistry::string, theIdentifier, theIdentifier2, theIdentifier3, TotNumberOfEvents, tracker_, and tTopo.
◆ calibrationthreshold
uint32_t SiStripQualityHotStripIdentifierRoot::calibrationthreshold |
|
private |
◆ ClusterPositionHistoMap
◆ conf_
◆ dirpath
std::string SiStripQualityHotStripIdentifierRoot::dirpath |
|
private |
◆ dqmStore_
DQMStore* SiStripQualityHotStripIdentifierRoot::dqmStore_ |
|
private |
◆ file0
TFile* SiStripQualityHotStripIdentifierRoot::file0 |
|
private |
◆ filename
std::string SiStripQualityHotStripIdentifierRoot::filename |
|
private |
◆ MaxClusterWidth_
unsigned short SiStripQualityHotStripIdentifierRoot::MaxClusterWidth_ |
|
private |
◆ MeanNumberOfCluster
double SiStripQualityHotStripIdentifierRoot::MeanNumberOfCluster |
|
private |
◆ MinClusterWidth_
unsigned short SiStripQualityHotStripIdentifierRoot::MinClusterWidth_ |
|
private |
◆ SiStripQuality_
const SiStripQuality* SiStripQualityHotStripIdentifierRoot::SiStripQuality_ |
|
private |
◆ stripQualityToken_
◆ stripQualityWatcher_
◆ theIdentifier
◆ theIdentifier2
◆ theIdentifier3
◆ tkGeomToken_
◆ TotNumberOfEvents
double SiStripQualityHotStripIdentifierRoot::TotNumberOfEvents |
|
private |
◆ tracker_
◆ tTopo
◆ tTopoToken_
◆ UseInputDB_
bool SiStripQualityHotStripIdentifierRoot::UseInputDB_ |
|
private |
bool check(const edm::EventSetup &iSetup)
const TrackerTopology * tTopo
void extractBadAPVs(SiStripQuality *, HistoMap &, const SiStripQuality *)
void extractBadAPVSandStrips(SiStripQuality *, HistoMap &, const SiStripQuality *)
void setOccupancyThreshold(long double occupancy)
void setDoStore(const bool doStore)
When set to false the payload will not be written to the db.
edm::ESGetToken< SiStripQuality, SiStripQualityRcd > stripQualityToken_
void setMinNumEntriesPerStrip(unsigned short m)
void setProbabilityThreshold(long double prob)
void setNumberOfEvents(double Nevents)
uint32_t calibrationthreshold
void setNumberOfEvents(double Nevents)
void setAbsoluteLowThreshold(long double absolute_low)
void setLowOccupancyThreshold(long double low_occupancy)
void setHighOccupancyThreshold(long double high_occupancy)
void setNumberIterations(int number_iterations)
T getUntrackedParameter(std::string const &, T const &) const
Log< level::Info, false > LogInfo
void setTrackerGeometry(const TrackerGeometry *tkgeom)
virtual std::vector< dqm::harvesting::MonitorElement * > getAllContents(std::string const &path) const
Log< level::Warning, false > LogWarning
const edm::ParameterSet conf_
SiStripDetInfo read(std::string filePath)
SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy * theIdentifier3
void setAbsoluteOccupancyThreshold(long double absolute_occupancy)
void extractBadStrips(SiStripQuality *, HistoMap &, const SiStripQuality *)
edm::ESWatcher< SiStripQualityRcd > stripQualityWatcher_
void setLowOccupancyThreshold(long double low_occupancy)
const TrackerGeometry * tracker_
std::pair< ContainerIterator, ContainerIterator > Range
void setNumberOfEvents(double Nevents)
SiStripBadAPVAlgorithmFromClusterOccupancy * theIdentifier2
void setMinNumEntries(unsigned short m)
edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > tkGeomToken_
void setTrackerGeometry(const TrackerGeometry *tkgeom)
void setOutputFileName(std::string OutputFileName, bool WriteOutputFile)
edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > tTopoToken_
void setHighOccupancyThreshold(long double high_occupancy)
void setTrackerGeometry(const TrackerGeometry *tkgeom)
void setAbsoluteLowThreshold(long double absolute_low)
void setProbabilityThreshold(long double prob)
void setOutputFileName(std::string OutputFileName, bool WriteOutputFile)
Log< level::Error, false > LogError
SiStripHotStripAlgorithmFromClusterOccupancy * theIdentifier
bool getData(T &iHolder) const
void setMinNumEntries(unsigned short m)
void setNumberIterations(int number_iterations)
constexpr static char const *const kDefaultFile
const SiStripQuality * SiStripQuality_
T getParameter(std::string const &) const
DQM_DEPRECATED bool open(std::string const &filename, bool overwrite=false, std::string const &path="", std::string const &prepend="", OpenRunDirs stripdirs=KeepRunDirs, bool fileMustExist=true)
void setAbsoluteOccupancyThreshold(long double occupancy)
Registry::const_iterator RegistryIterator
double MeanNumberOfCluster
void setMinNumEntriesPerStrip(unsigned short m)
SiStrip::QualityHistosMap ClusterPositionHistoMap
void setOutputFileName(std::string OutputFileName, bool WriteOutputFile, std::string DQMOutfileName, bool WriteDQMHistograms)