CMS 3D CMS Logo

SiStripMonitorQuality Class Reference

Description: <one line="" class="" summary>="">. More...

#include <DQM/SiStripMonitorPedestals/interface/SiStripMonitorQuality.h>

Inheritance diagram for SiStripMonitorQuality:

edm::EDAnalyzer

List of all members.

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

MonitorElementgetQualityME (uint32_t idet)

Private Attributes

edm::ParameterSet conf_
std::string dataLabel_
edm::ESHandle< SiStripDetCablingdetCabling_
DQMStoredqmStore_
unsigned long long m_cacheID_
std::map< uint32_t,
MonitorElement * > 
QualityMEs
edm::ESHandle< SiStripQualitystripQuality_


Detailed Description

Description: <one line="" class="" summary>="">.

Usage: <usage>

Definition at line 45 of file SiStripMonitorQuality.h.


Constructor & Destructor Documentation

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 }


Member Function Documentation

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]

Reimplemented from edm::EDAnalyzer.

Definition at line 64 of file SiStripMonitorQuality.cc.

00064                                                          {
00065 }

void SiStripMonitorQuality::beginRun ( edm::Run const &  run,
edm::EventSetup const &  eSetup 
) [virtual]

Reimplemented from edm::EDAnalyzer.

Definition at line 69 of file SiStripMonitorQuality.cc.

00069                                                                                   {
00070 }

void SiStripMonitorQuality::endJob ( void   )  [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 }


Member Data Documentation

edm::ParameterSet SiStripMonitorQuality::conf_ [private]

Definition at line 63 of file SiStripMonitorQuality.h.

Referenced by analyze(), and endRun().

std::string SiStripMonitorQuality::dataLabel_ [private]

Definition at line 68 of file SiStripMonitorQuality.h.

edm::ESHandle< SiStripDetCabling > SiStripMonitorQuality::detCabling_ [private]

Definition at line 64 of file SiStripMonitorQuality.h.

Referenced by analyze(), and getQualityME().

DQMStore* SiStripMonitorQuality::dqmStore_ [private]

Definition at line 62 of file SiStripMonitorQuality.h.

Referenced by endRun(), and getQualityME().

unsigned long long SiStripMonitorQuality::m_cacheID_ [private]

Definition at line 70 of file SiStripMonitorQuality.h.

Referenced by analyze().

std::map<uint32_t, MonitorElement*> SiStripMonitorQuality::QualityMEs [private]

Definition at line 67 of file SiStripMonitorQuality.h.

Referenced by getQualityME().

edm::ESHandle< SiStripQuality > SiStripMonitorQuality::stripQuality_ [private]

Definition at line 65 of file SiStripMonitorQuality.h.

Referenced by analyze().


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:32:25 2009 for CMSSW by  doxygen 1.5.4