#include <DQM/SiStripMonitorPedestals/interface/SiStripMonitorQuality.h>
Public Member Functions | |
virtual void | analyze (const edm::Event &, const edm::EventSetup &) |
virtual void | beginJob (edm::EventSetup const &) |
virtual void | beginRun (edm::Run const &run, edm::EventSetup const &eSetup) |
virtual void | endJob () |
virtual void | endRun (edm::Run const &run, edm::EventSetup const &eSetup) |
SiStripMonitorQuality (const edm::ParameterSet &) | |
~SiStripMonitorQuality () | |
Private Member Functions | |
MonitorElement * | getQualityME (uint32_t idet) |
Private Attributes | |
edm::ParameterSet | conf_ |
std::string | dataLabel_ |
edm::ESHandle< SiStripDetCabling > | detCabling_ |
DQMStore * | dqmStore_ |
unsigned long long | m_cacheID_ |
std::map< uint32_t, MonitorElement * > | QualityMEs |
edm::ESHandle< SiStripQuality > | stripQuality_ |
Usage: <usage>
Definition at line 45 of file SiStripMonitorQuality.h.
SiStripMonitorQuality::SiStripMonitorQuality | ( | const edm::ParameterSet & | iConfig | ) | [explicit] |
Definition at line 44 of file SiStripMonitorQuality.cc.
00044 : 00045 dqmStore_(edm::Service<DQMStore>().operator->()), 00046 conf_(iConfig), 00047 m_cacheID_(0) 00048 00049 00050 { 00051 edm::LogInfo("SiStripMonitorQuality") <<"SiStripMonitorQuality " 00052 << " Constructing....... "; 00053 }
SiStripMonitorQuality::~SiStripMonitorQuality | ( | ) |
Definition at line 56 of file SiStripMonitorQuality.cc.
00057 { 00058 edm::LogInfo("SiStripMonitorQuality") <<"SiStripMonitorQuality " 00059 << " Destructing....... "; 00060 }
void SiStripMonitorQuality::analyze | ( | const edm::Event & | iEvent, | |
const edm::EventSetup & | eSetup | |||
) | [virtual] |
Implements edm::EDAnalyzer.
Definition at line 74 of file SiStripMonitorQuality.cc.
References conf_, detCabling_, lat::endl(), MonitorElement::Fill(), edm::EventSetup::get(), MonitorElement::getNbinsX(), edm::ParameterSet::getParameter(), getQualityME(), it, m_cacheID_, me, range, stripQuality_, and value.
00075 { 00076 unsigned long long cacheID = eSetup.get<SiStripQualityRcd>().cacheIdentifier(); 00077 if (m_cacheID_ == cacheID) return; 00078 00079 m_cacheID_ = cacheID; 00080 00081 std::string quality_label = conf_.getParameter<std::string>("StripQualityLabel"); 00082 eSetup.get<SiStripQualityRcd>().get(quality_label,stripQuality_); 00083 eSetup.get<SiStripDetCablingRcd>().get( detCabling_ ); 00084 00085 edm::LogInfo("SiStripMonitorQuality") << "SiStripMonitorQuality::analyze: "<< 00086 " Reading SiStripQuality "<< std::endl; 00087 00088 SiStripBadStrip::RegistryIterator rbegin = stripQuality_->getRegistryVectorBegin(); 00089 SiStripBadStrip::RegistryIterator rend = stripQuality_->getRegistryVectorEnd(); 00090 uint32_t detid; 00091 00092 if (rbegin==rend) return; 00093 00094 for (SiStripBadStrip::RegistryIterator rp=rbegin; rp != rend; ++rp) { 00095 00096 detid = rp->detid; 00097 // Check consistency in DetId 00098 if (detid == 0 || detid == 0xFFFFFFFF){ 00099 edm::LogError("SiStripMonitorQuality") <<"SiStripMonitorQuality::analyze : " 00100 << "Wrong DetId !!!!!! " << detid << " Neglecting !!!!!! "; 00101 continue; 00102 } 00103 // check if the detid is connected in cabling 00104 if (!detCabling_->IsConnected(detid)) { 00105 edm::LogError("SiStripMonitorQuality") <<"SiStripMonitorQuality::analyze : " 00106 << " DetId " << detid << " not connected, Neglecting !!!!!! "; 00107 continue; 00108 } 00109 MonitorElement* me = getQualityME(detid); 00110 SiStripBadStrip::Range range = SiStripBadStrip::Range( stripQuality_->getDataVectorBegin()+rp->ibegin , 00111 stripQuality_->getDataVectorBegin()+rp->iend ); 00112 SiStripBadStrip::ContainerIterator it=range.first; 00113 for(;it!=range.second;++it){ 00114 unsigned int value=(*it); 00115 short str_start = stripQuality_->decode(value).firstStrip; 00116 short str_end = str_start + stripQuality_->decode(value).range; 00117 for ( short isr = str_start; isr < str_end + 1; isr++) { 00118 if (isr <= (me->getNbinsX()-1)) me->Fill(isr+1, 1.0); 00119 } 00120 } 00121 } 00122 }
void SiStripMonitorQuality::beginJob | ( | edm::EventSetup const & | ) | [virtual] |
void SiStripMonitorQuality::beginRun | ( | edm::Run const & | run, | |
edm::EventSetup const & | eSetup | |||
) | [virtual] |
Reimplemented from edm::EDAnalyzer.
Definition at line 137 of file SiStripMonitorQuality.cc.
00137 { 00138 edm::LogInfo("SiStripMonitorQuality") <<"SiStripMonitorQuality::EndJob: " 00139 << " Finishing!! "; 00140 }
void SiStripMonitorQuality::endRun | ( | edm::Run const & | run, | |
edm::EventSetup const & | eSetup | |||
) | [virtual] |
Reimplemented from edm::EDAnalyzer.
Definition at line 126 of file SiStripMonitorQuality.cc.
References conf_, dqmStore_, edm::ParameterSet::getParameter(), iggi_31X_cfg::outputFileName, DQMStore::save(), and DQMStore::showDirStructure().
00126 { 00127 bool outputMEsInRootFile = conf_.getParameter<bool>("OutputMEsInRootFile"); 00128 std::string outputFileName = conf_.getParameter<std::string>("OutputFileName"); 00129 if (outputMEsInRootFile) { 00130 dqmStore_->showDirStructure(); 00131 dqmStore_->save(outputFileName); 00132 } 00133 }
MonitorElement * SiStripMonitorQuality::getQualityME | ( | uint32_t | idet | ) | [private] |
Definition at line 144 of file SiStripMonitorQuality.cc.
References DQMStore::book1D(), SiStripHistoId::createHistoId(), detCabling_, dqmStore_, QualityMEs, MonitorElement::Reset(), MonitorElement::setAxisTitle(), SiStripFolderOrganizer::setDetectorFolder(), and DQMStore::tag().
Referenced by analyze().
00144 { 00145 00146 std::map<uint32_t, MonitorElement* >::iterator pos = QualityMEs.find(idet); 00147 MonitorElement* det_me; 00148 if (pos != QualityMEs.end()) { 00149 det_me = pos->second; 00150 det_me->Reset(); 00151 } else { 00152 int nStrip = detCabling_->nApvPairs(idet) * 256; 00153 00154 // use SistripHistoId for producing histogram id (and title) 00155 SiStripHistoId hidmanager; 00156 // create SiStripFolderOrganizer 00157 SiStripFolderOrganizer folder_organizer; 00158 // set appropriate folder using SiStripFolderOrganizer 00159 folder_organizer.setDetectorFolder(idet); // pass the detid to this method 00160 00161 std::string hid; 00162 hid = hidmanager.createHistoId("StripQualityFromCondDB","det", idet); 00163 00164 std::map<uint32_t, MonitorElement* >::iterator pos = QualityMEs.find(idet); 00165 00166 det_me = dqmStore_->book1D(hid, hid, nStrip,0.5,nStrip+0.5); 00167 dqmStore_->tag(det_me, idet); 00168 det_me->setAxisTitle("Strip Number",1); 00169 det_me->setAxisTitle("Quality Flag from CondDB ",2); 00170 QualityMEs.insert( std::make_pair(idet, det_me)); 00171 } 00172 return det_me; 00173 }
std::string SiStripMonitorQuality::dataLabel_ [private] |
Definition at line 68 of file SiStripMonitorQuality.h.
DQMStore* SiStripMonitorQuality::dqmStore_ [private] |
unsigned long long SiStripMonitorQuality::m_cacheID_ [private] |
std::map<uint32_t, MonitorElement*> SiStripMonitorQuality::QualityMEs [private] |