#include <SiStripQualityDQM.h>
Public Member Functions | |
void | fillGrandSummaryMEs () |
void | fillMEsForDet (ModMEs selModME_, uint32_t selDetId_) |
void | fillMEsForLayer (std::map< uint32_t, ModMEs > selModMEsMap_, uint32_t selDetId_) |
void | fillModMEs (const std::vector< uint32_t > &selectedDetIds) |
void | fillSummaryMEs (const std::vector< uint32_t > &selectedDetIds) |
void | getActiveDetIds (const edm::EventSetup &eSetup) |
unsigned long long | getCache (const edm::EventSetup &eSetup) |
void | getConditionObject (const edm::EventSetup &eSetup) |
SiStripQualityDQM (const edm::EventSetup &eSetup, edm::ParameterSet const &hPSet, edm::ParameterSet const &fPSet) | |
virtual | ~SiStripQualityDQM () |
Private Member Functions | |
void | SetBadComponents (int i, int component, SiStripQuality::BadComponent &BC) |
Private Attributes | |
std::vector< uint32_t > | alreadyFilledLayers |
int | NBadComponent [4][19][4] |
int | NTkBadComponent [4] |
edm::ESHandle< SiStripQuality > | qualityHandle_ |
std::string | qualityLabel_ |
std::stringstream | ssV [4][19] |
Definition at line 29 of file SiStripQualityDQM.h.
SiStripQualityDQM::SiStripQualityDQM | ( | const edm::EventSetup & | eSetup, |
edm::ParameterSet const & | hPSet, | ||
edm::ParameterSet const & | fPSet | ||
) |
Definition at line 6 of file SiStripQualityDQM.cc.
References edm::ParameterSet::getParameter(), SiStripBaseCondObjDQM::HistoMaps_On_, qualityLabel_, and SiStripBaseCondObjDQM::Tk_HM_.
:SiStripBaseCondObjDQM(eSetup, hPSet, fPSet){ qualityLabel_ = fPSet.getParameter<std::string>("StripQualityLabel"); // Build the Histo_TkMap: if(HistoMaps_On_ ) Tk_HM_ = new TkHistoMap("SiStrip/Histo_Map","Quality_TkMap",0.); }
SiStripQualityDQM::~SiStripQualityDQM | ( | ) | [virtual] |
Definition at line 20 of file SiStripQualityDQM.cc.
{}
void SiStripQualityDQM::fillGrandSummaryMEs | ( | ) |
Definition at line 206 of file SiStripQualityDQM.cc.
References a, DQMStore::book1D(), alignmentValidation::c1, cond::rpcobgas::detid, SiStripBaseCondObjDQM::dqmStore_, MonitorElement::Fill(), ExpressReco_HICollisions_FallBack::FolderName, SiStripBaseCondObjDQM::fPSet_, SiStripDetInfoFileReader::getAllDetIds(), edm::ParameterSet::getParameter(), MonitorElement::getTH1(), SiStripBaseCondObjDQM::hPSet_, i, j, gen::k, TIBDetId::layer(), TOBDetId::layer(), LogDebug, AlCaRecoCosmics_cfg::name, NBadComponent, NTkBadComponent, cmsCodeRules::cppFunctionSkipper::operator, qualityHandle_, SiStripBaseCondObjDQM::reader, MonitorElement::setAxisTitle(), SetBadComponents(), DQMStore::setCurrentFolder(), TIDDetId::side(), TECDetId::side(), ssV, DetId::subdetId(), sistripsummary::TEC, sistripsummary::TIB, sistripsummary::TID, sistripsummary::TOB, TIDDetId::wheel(), and TECDetId::wheel().
Referenced by SiStripClassToMonitorCondData::analyseCondData(), SiStripMonitorCondData::analyze(), SiStripClassToMonitorCondData::getLayerMEsOnDemand(), and SiStripClassToMonitorCondData::getModMEsOnDemand().
{ std::string hSummary_BadObjects_xTitle = hPSet_.getParameter<std::string>("Summary_BadObjects_histo_xTitle"); std::string hSummary_BadModules_name = hPSet_.getParameter<std::string>("Summary_BadModules_histo_name"); std::string hSummary_BadModules_yTitle = hPSet_.getParameter<std::string>("Summary_BadModules_histo_yTitle"); std::string hSummary_BadFibers_name = hPSet_.getParameter<std::string>("Summary_BadFibers_histo_name"); std::string hSummary_BadFibers_yTitle = hPSet_.getParameter<std::string>("Summary_BadFibers_histo_yTitle"); std::string hSummary_BadApvs_name = hPSet_.getParameter<std::string>("Summary_BadApvs_histo_name"); std::string hSummary_BadApvs_yTitle = hPSet_.getParameter<std::string>("Summary_BadApvs_histo_yTitle"); std::string hSummary_BadStrips_name = hPSet_.getParameter<std::string>("Summary_BadStrips_histo_name"); std::string hSummary_BadStrips_yTitle = hPSet_.getParameter<std::string>("Summary_BadStrips_histo_yTitle"); int NchX = 34; double LowX = 0.5; double HighX = 34.5; MonitorElement *ME[4]; DQMStore* dqmStore_=edm::Service<DQMStore>().operator->(); std::string FolderName=fPSet_.getParameter<std::string>("FolderName_For_QualityAndCabling_SummaryHistos"); dqmStore_->setCurrentFolder(FolderName); ME[0] = dqmStore_->book1D(hSummary_BadModules_name,hSummary_BadModules_name,NchX,LowX,HighX); ME[0]->setAxisTitle(hSummary_BadObjects_xTitle,1); ME[0]->setAxisTitle(hSummary_BadModules_yTitle,2); ME[1] = dqmStore_->book1D(hSummary_BadFibers_name,hSummary_BadFibers_name,NchX,LowX,HighX); ME[1]->setAxisTitle(hSummary_BadObjects_xTitle,1); ME[1]->setAxisTitle(hSummary_BadFibers_yTitle,2); ME[2] = dqmStore_->book1D(hSummary_BadApvs_name,hSummary_BadApvs_name,NchX,LowX,HighX); ME[2]->setAxisTitle(hSummary_BadObjects_xTitle,1); ME[2]->setAxisTitle(hSummary_BadApvs_yTitle,2); ME[3] = dqmStore_->book1D(hSummary_BadStrips_name,hSummary_BadStrips_name,NchX,LowX,HighX); ME[3]->setAxisTitle(hSummary_BadObjects_xTitle,1); ME[3]->setAxisTitle(hSummary_BadStrips_yTitle,2); //============================== for(int i=0;i<4;++i){ NTkBadComponent[i]=0; for(int j=0;j<19;++j){ ssV[i][j].str(""); for(int k=0;k<4;++k) NBadComponent[i][j][k]=0; } } std::stringstream ss; ss.str(""); std::vector<uint32_t> detids=reader->getAllDetIds(); std::vector<uint32_t>::const_iterator idet=detids.begin(); for(;idet!=detids.end();++idet){ ss << "detid " << (*idet) << " IsModuleUsable " << qualityHandle_->IsModuleUsable((*idet)) << "\n"; } LogDebug("SiStripQualityStatistics") << ss.str() << std::endl; std::vector<SiStripQuality::BadComponent> BC = qualityHandle_->getBadComponentList(); for (size_t i=0;i<BC.size();++i){ //&&&&&&&&&&&&& //Full Tk //&&&&&&&&&&&&& if (BC[i].BadModule) NTkBadComponent[0]++; if (BC[i].BadFibers) NTkBadComponent[1]+= ( (BC[i].BadFibers>>2)&0x1 )+ ( (BC[i].BadFibers>>1)&0x1 ) + ( (BC[i].BadFibers)&0x1 ); if (BC[i].BadApvs) NTkBadComponent[2]+= ( (BC[i].BadApvs>>5)&0x1 )+ ( (BC[i].BadApvs>>4)&0x1 ) + ( (BC[i].BadApvs>>3)&0x1 ) + ( (BC[i].BadApvs>>2)&0x1 )+ ( (BC[i].BadApvs>>1)&0x1 ) + ( (BC[i].BadApvs)&0x1 ); //&&&&&&&&&&&&&&&&& //Single SubSyste //&&&&&&&&&&&&&&&&& int component; SiStripDetId a(BC[i].detid); if ( a.subdetId() == SiStripDetId::TIB ){ //&&&&&&&&&&&&&&&&& //TIB //&&&&&&&&&&&&&&&&& component=TIBDetId(BC[i].detid).layer(); SetBadComponents(0, component, BC[i]); } else if ( a.subdetId() == SiStripDetId::TID ) { //&&&&&&&&&&&&&&&&& //TID //&&&&&&&&&&&&&&&&& component=TIDDetId(BC[i].detid).side()==2?TIDDetId(BC[i].detid).wheel():TIDDetId(BC[i].detid).wheel()+3; SetBadComponents(1, component, BC[i]); } else if ( a.subdetId() == SiStripDetId::TOB ) { //&&&&&&&&&&&&&&&&& //TOB //&&&&&&&&&&&&&&&&& component=TOBDetId(BC[i].detid).layer(); SetBadComponents(2, component, BC[i]); } else if ( a.subdetId() == SiStripDetId::TEC ) { //&&&&&&&&&&&&&&&&& //TEC //&&&&&&&&&&&&&&&&& component=TECDetId(BC[i].detid).side()==2?TECDetId(BC[i].detid).wheel():TECDetId(BC[i].detid).wheel()+9; SetBadComponents(3, component, BC[i]); } } //&&&&&&&&&&&&&&&&&& // Single Strip Info //&&&&&&&&&&&&&&&&&& SiStripQuality::RegistryIterator rbegin = qualityHandle_->getRegistryVectorBegin(); SiStripQuality::RegistryIterator rend = qualityHandle_->getRegistryVectorEnd(); for (SiStripBadStrip::RegistryIterator rp=rbegin; rp != rend; ++rp) { uint32_t detid=rp->detid; int subdet=0; int component=0; SiStripDetId a(detid); if ( a.subdetId() == 3 ){ subdet=0; component=TIBDetId(detid).layer(); } else if ( a.subdetId() == 4 ) { subdet=1; component=TIDDetId(detid).side()==2?TIDDetId(detid).wheel():TIDDetId(detid).wheel()+3; } else if ( a.subdetId() == 5 ) { subdet=2; component=TOBDetId(detid).layer(); } else if ( a.subdetId() == 6 ) { subdet=3; component=TECDetId(detid).side()==2?TECDetId(detid).wheel():TECDetId(detid).wheel()+9; } SiStripQuality::Range sqrange = SiStripQuality::Range( qualityHandle_->getDataVectorBegin()+rp->ibegin , qualityHandle_->getDataVectorBegin()+rp->iend ); for(int it=0;it<sqrange.second-sqrange.first;it++){ unsigned int range=qualityHandle_->decode( *(sqrange.first+it) ).range; NTkBadComponent[3]+=range; NBadComponent[subdet][0][3]+=range; NBadComponent[subdet][component][3]+=range; } } //&&&&&&&&&&&&&&&&&& // printout //&&&&&&&&&&&&&&&&&& ss.str(""); ss << "\n-----------------\nGlobal Info\n-----------------"; ss << "\nBadComponent \t Modules \tFibers \tApvs\tStrips\n----------------------------------------------------------------"; ss << "\nTracker:\t\t"<<NTkBadComponent[0]<<"\t"<<NTkBadComponent[1]<<"\t"<<NTkBadComponent[2]<<"\t"<<NTkBadComponent[3]; ss<< "\n"; ss << "\nTIB:\t\t\t"<<NBadComponent[0][0][0]<<"\t"<<NBadComponent[0][0][1]<<"\t"<<NBadComponent[0][0][2]<<"\t"<<NBadComponent[0][0][3]; ss << "\nTID:\t\t\t"<<NBadComponent[1][0][0]<<"\t"<<NBadComponent[1][0][1]<<"\t"<<NBadComponent[1][0][2]<<"\t"<<NBadComponent[1][0][3]; ss << "\nTOB:\t\t\t"<<NBadComponent[2][0][0]<<"\t"<<NBadComponent[2][0][1]<<"\t"<<NBadComponent[2][0][2]<<"\t"<<NBadComponent[2][0][3]; ss << "\nTEC:\t\t\t"<<NBadComponent[3][0][0]<<"\t"<<NBadComponent[3][0][1]<<"\t"<<NBadComponent[3][0][2]<<"\t"<<NBadComponent[3][0][3]; ss << "\n"; for (int i=1;i<5;++i){ ss << "\nTIB Layer " << i << " :\t\t"<<NBadComponent[0][i][0]<<"\t"<<NBadComponent[0][i][1]<<"\t"<<NBadComponent[0][i][2]<<"\t"<<NBadComponent[0][i][3]; std::stringstream binlabel; binlabel<<"TIB L "<<i; for(int j=0;j<4;j++){ ME[j]->Fill(i,NBadComponent[0][i][j]); ME[j]->getTH1()->GetXaxis()->SetBinLabel(i,binlabel.str().c_str()); } } ss << "\n"; for (int i=1;i<4;++i){ ss << "\nTID+ Disk " << i << " :\t\t"<<NBadComponent[1][i][0]<<"\t"<<NBadComponent[1][i][1]<<"\t"<<NBadComponent[1][i][2]<<"\t"<<NBadComponent[1][i][3]; std::stringstream binlabel; binlabel<<"TID+ D "<<i; for(int j=0;j<4;j++){ ME[j]->Fill(i+4,NBadComponent[1][i][j]); ME[j]->getTH1()->GetXaxis()->SetBinLabel(i+4,binlabel.str().c_str()); } } for (int i=4;i<7;++i){ ss << "\nTID- Disk " << i-3 << " :\t\t"<<NBadComponent[1][i][0]<<"\t"<<NBadComponent[1][i][1]<<"\t"<<NBadComponent[1][i][2]<<"\t"<<NBadComponent[1][i][3]; std::stringstream binlabel; binlabel<<"TID- D "<<i-3; for(int j=0;j<4;j++){ ME[j]->Fill(i+4,NBadComponent[1][i][j]); ME[j]->getTH1()->GetXaxis()->SetBinLabel(i+4,binlabel.str().c_str()); } } ss << "\n"; for (int i=1;i<7;++i){ ss << "\nTOB Layer " << i << " :\t\t"<<NBadComponent[2][i][0]<<"\t"<<NBadComponent[2][i][1]<<"\t"<<NBadComponent[2][i][2]<<"\t"<<NBadComponent[2][i][3]; std::stringstream binlabel; binlabel<<"TOB L "<<i; for(int j=0;j<4;j++){ ME[j]->Fill(i+10,NBadComponent[2][i][j]); ME[j]->getTH1()->GetXaxis()->SetBinLabel(i+10,binlabel.str().c_str()); } } ss << "\n"; for (int i=1;i<10;++i){ ss << "\nTEC+ Disk " << i << " :\t\t"<<NBadComponent[3][i][0]<<"\t"<<NBadComponent[3][i][1]<<"\t"<<NBadComponent[3][i][2]<<"\t"<<NBadComponent[3][i][3]; std::stringstream binlabel; binlabel<<"TEC+ D "<<i; for(int j=0;j<4;j++){ ME[j]->Fill(i+16,NBadComponent[3][i][j]); ME[j]->getTH1()->GetXaxis()->SetBinLabel(i+16,binlabel.str().c_str()); } } for (int i=10;i<19;++i){ ss << "\nTEC- Disk " << i-9 << " :\t\t"<<NBadComponent[3][i][0]<<"\t"<<NBadComponent[3][i][1]<<"\t"<<NBadComponent[3][i][2]<<"\t"<<NBadComponent[3][i][3]; std::stringstream binlabel; binlabel<<"TEC- D "<<i-9; for(int j=0;j<4;j++){ ME[j]->Fill(i+16,NBadComponent[3][i][j]); ME[j]->getTH1()->GetXaxis()->SetBinLabel(i+16,binlabel.str().c_str()); } } ss<< "\n"; ss << "\n----------------------------------------------------------------\n\t\t Detid \tModules Fibers Apvs\n----------------------------------------------------------------"; for (int i=1;i<5;++i) ss << "\nTIB Layer " << i << " :" << ssV[0][i].str(); ss << "\n"; for (int i=1;i<4;++i) ss << "\nTID+ Disk " << i << " :" << ssV[1][i].str(); for (int i=4;i<7;++i) ss << "\nTID- Disk " << i-3 << " :" << ssV[1][i].str(); ss << "\n"; for (int i=1;i<7;++i) ss << "\nTOB Layer " << i << " :" << ssV[2][i].str(); ss << "\n"; for (int i=1;i<10;++i) ss << "\nTEC+ Disk " << i << " :" << ssV[3][i].str(); for (int i=10;i<19;++i) ss << "\nTEC- Disk " << i-9 << " :" << ssV[3][i].str(); edm::LogInfo("SiStripQualityStatistics") << ss.str() << std::endl; for (int i=0; i<4; i++){ TCanvas c1("c1"); ME[i]->getTH1()->Draw(); std::string name (ME[i]->getTH1()->GetTitle()); name+=".png"; c1.Print(name.c_str()); } }
void SiStripQualityDQM::fillMEsForDet | ( | ModMEs | selModME_, |
uint32_t | selDetId_ | ||
) | [virtual] |
Implements SiStripBaseCondObjDQM.
Definition at line 50 of file SiStripQualityDQM.cc.
References ExpressReco_HICollisions_FallBack::e, MonitorElement::Fill(), SiStripBaseCondObjDQM::getModMEs(), SiStripDetInfoFileReader::getNumberOfApvsAndStripLength(), SiStripBaseCondObjDQM::ModMEs::ProfileDistr, qualityHandle_, SiStripBaseCondObjDQM::reader, and cms::Exception::what().
Referenced by fillModMEs().
{ getModMEs(selModME_,selDetId_); SiStripQuality::Range qualityRange = qualityHandle_->getRange(selDetId_); int nStrip = reader->getNumberOfApvsAndStripLength(selDetId_).first*128; for( int istrip=0;istrip<nStrip;++istrip){ try{ selModME_.ProfileDistr->Fill(istrip+1,qualityHandle_->IsStripBad(qualityRange,istrip)?0.:1.); } catch(cms::Exception& e){ edm::LogError("SiStripQualityDQM") << "[SiStripQualityDQM::fillMEsForDet] cms::Exception accessing qualityHandle_->IsStripBad(qualityRange,istrip)?1.:0.) for strip " << istrip << " and detid " << selDetId_ << " : " << e.what() ; } }// istrip }
void SiStripQualityDQM::fillMEsForLayer | ( | std::map< uint32_t, ModMEs > | selModMEsMap_, |
uint32_t | selDetId_ | ||
) | [virtual] |
Implements SiStripBaseCondObjDQM.
Definition at line 110 of file SiStripQualityDQM.cc.
References SiStripBaseCondObjDQM::activeDetIds, alreadyFilledLayers, trackerHits::c, SiStripHistoId::createHistoLayer(), ExpressReco_HICollisions_FallBack::e, MonitorElement::Fill(), SiStripBaseCondObjDQM::fillTkMap(), first, SiStripBaseCondObjDQM::fPSet_, SiStripBaseCondObjDQM::getLayerNameAndId(), SiStripDetInfoFileReader::getNumberOfApvsAndStripLength(), edm::ParameterSet::getParameter(), SiStripBaseCondObjDQM::GetSameLayerDetId(), SiStripBaseCondObjDQM::getSummaryMEs(), MonitorElement::getTH1(), SiStripBaseCondObjDQM::hidmanager, SiStripBaseCondObjDQM::HistoMaps_On_, SiStripBaseCondObjDQM::hPSet_, i, qualityHandle_, SiStripBaseCondObjDQM::reader, edm::second(), TkHistoMap::setBinContent(), python::multivaluedict::sort(), SiStripBaseCondObjDQM::ModMEs::SummaryDistr, SiStripBaseCondObjDQM::Tk_HM_, and cms::Exception::what().
Referenced by fillSummaryMEs().
{ float numberOfBadStrips=0; SiStripHistoId hidmanager; if(hPSet_.getParameter<bool>("FillSummaryAtLayerLevel")){ std::string hSummary_description; hSummary_description = hPSet_.getParameter<std::string>("Summary_description"); std::string hSummary_name; // ---- int subDetId_ = ((selDetId_>>25)&0x7); if( subDetId_<3 || subDetId_>6 ){ edm::LogError("SiStripQualityDQM") << "[SiStripQualityDQM::fillMEsForLayer] WRONG INPUT : no such subdetector type : " << subDetId_ << " no folder set!" << std::endl; return; } // ---- hSummary_name = hidmanager.createHistoLayer(hSummary_description, "layer", getLayerNameAndId(selDetId_).first, "") ; std::map<uint32_t, ModMEs>::iterator selMEsMapIter_ = selMEsMap_.find(getLayerNameAndId(selDetId_).second); ModMEs selME_; selME_ =selMEsMapIter_->second; getSummaryMEs(selME_,selDetId_ ); std::vector<uint32_t> sameLayerDetIds_; sameLayerDetIds_.clear(); sameLayerDetIds_=GetSameLayerDetId(activeDetIds,selDetId_); // ----- // unsigned int iBin=0; //%%%%%%%%%%%%%%%%%%% //%%% FIXME: patch to fix the bug causing double counting on each layer //%%%%%%%%%%%%%%%%%%%%%%% if(std::binary_search(alreadyFilledLayers.begin(),alreadyFilledLayers.end(),sameLayerDetIds_[0])) return; alreadyFilledLayers.push_back(sameLayerDetIds_[0]); sort(alreadyFilledLayers.begin(),alreadyFilledLayers.end()); //%%%%%%%%%%%%%%%%%%%%%%% END %%%%%%%%%% for(unsigned int i=0;i< sameLayerDetIds_.size(); i++){ SiStripQuality::Range qualityRange = qualityHandle_->getRange(sameLayerDetIds_[i]); int nStrip = reader->getNumberOfApvsAndStripLength(sameLayerDetIds_[i]).first*128; numberOfBadStrips=0; for( int istrip=0;istrip<nStrip;++istrip){ if(qualityHandle_->IsStripBad(qualityRange,istrip)) { numberOfBadStrips++;} } try{ float fr=100*float(numberOfBadStrips)/nStrip; selME_.SummaryDistr->Fill(i+1,fr); if(fr>20){ char c[9]; sprintf(c,"%d",sameLayerDetIds_[i]); selME_.SummaryDistr->getTH1()->GetXaxis()->SetBinLabel(i+1,c); } // Fill the TkHistoMap with Quality output : if(HistoMaps_On_ ) Tk_HM_->setBinContent(sameLayerDetIds_[i], fr); // Fill the TkMap if(fPSet_.getParameter<bool>("TkMap_On") || hPSet_.getParameter<bool>("TkMap_On")){ fillTkMap(sameLayerDetIds_[i], fr); } } catch(cms::Exception& e){ edm::LogError("SiStripQualityDQM") << "[SiStripQualityDQM::fillMEsForLayer] cms::Exception filling fraction of bad strips for detId " << sameLayerDetIds_[i] << " : " << e.what() ; } } }//if Fill ... }
void SiStripQualityDQM::fillModMEs | ( | const std::vector< uint32_t > & | selectedDetIds | ) | [virtual] |
Reimplemented from SiStripBaseCondObjDQM.
Definition at line 34 of file SiStripQualityDQM.cc.
References fillMEsForDet().
{ ModMEs CondObj_ME; for(std::vector<uint32_t>::const_iterator detIter_ = selectedDetIds.begin(); detIter_!= selectedDetIds.end();detIter_++){ fillMEsForDet(CondObj_ME,*detIter_); } }
void SiStripQualityDQM::fillSummaryMEs | ( | const std::vector< uint32_t > & | selectedDetIds | ) | [virtual] |
Reimplemented from SiStripBaseCondObjDQM.
Definition at line 81 of file SiStripQualityDQM.cc.
References alignmentValidation::c1, fillMEsForLayer(), SiStripBaseCondObjDQM::fPSet_, edm::ParameterSet::getParameter(), MonitorElement::getTH1(), SiStripBaseCondObjDQM::hPSet_, AlCaRecoCosmics_cfg::name, SiStripBaseCondObjDQM::ModMEs::SummaryDistr, and SiStripBaseCondObjDQM::SummaryMEsMap_.
{ for(std::vector<uint32_t>::const_iterator detIter_ = selectedDetIds.begin(); detIter_!= selectedDetIds.end();detIter_++){ fillMEsForLayer(SummaryMEsMap_, *detIter_); } for (std::map<uint32_t, ModMEs>::iterator iter=SummaryMEsMap_.begin(); iter!=SummaryMEsMap_.end(); iter++){ ModMEs selME; selME = iter->second; if(hPSet_.getParameter<bool>("FillSummaryAtLayerLevel") && fPSet_.getParameter<bool>("OutputSummaryAtLayerLevelAsImage")){ TCanvas c1("c1"); selME.SummaryDistr->getTH1()->Draw(); std::string name (selME.SummaryDistr->getTH1()->GetTitle()); name+=".png"; c1.Print(name.c_str()); } } }
void SiStripQualityDQM::getActiveDetIds | ( | const edm::EventSetup & | eSetup | ) | [virtual] |
Implements SiStripBaseCondObjDQM.
Definition at line 25 of file SiStripQualityDQM.cc.
References SiStripBaseCondObjDQM::activeDetIds, getConditionObject(), and qualityHandle_.
{ getConditionObject(eSetup); qualityHandle_->getDetIds(activeDetIds); }
unsigned long long SiStripQualityDQM::getCache | ( | const edm::EventSetup & | eSetup | ) | [inline, virtual] |
Implements SiStripBaseCondObjDQM.
Definition at line 49 of file SiStripQualityDQM.h.
References edm::EventSetup::get().
{ return eSetup.get<SiStripQualityRcd>().cacheIdentifier();}
void SiStripQualityDQM::getConditionObject | ( | const edm::EventSetup & | eSetup | ) | [inline, virtual] |
Implements SiStripBaseCondObjDQM.
Definition at line 51 of file SiStripQualityDQM.h.
References SiStripBaseCondObjDQM::cacheID_current, SiStripBaseCondObjDQM::cacheID_memory, edm::EventSetup::get(), qualityHandle_, and qualityLabel_.
Referenced by getActiveDetIds().
{ eSetup.get<SiStripQualityRcd>().get(qualityLabel_,qualityHandle_); cacheID_memory = cacheID_current; }
void SiStripQualityDQM::SetBadComponents | ( | int | i, |
int | component, | ||
SiStripQuality::BadComponent & | BC | ||
) | [private] |
Definition at line 484 of file SiStripQualityDQM.cc.
References SiStripQuality::BadComponent::BadApvs, SiStripQuality::BadComponent::BadFibers, SiStripQuality::BadComponent::BadModule, SiStripQuality::BadComponent::detid, SiStripDetInfoFileReader::getNumberOfApvsAndStripLength(), i, NBadComponent, SiStripBaseCondObjDQM::reader, and ssV.
Referenced by fillGrandSummaryMEs().
{ int napv=reader->getNumberOfApvsAndStripLength(BC.detid).first; ssV[i][component] << "\n\t\t " << BC.detid << " \t " << BC.BadModule << " \t " << ( (BC.BadFibers)&0x1 ) << " "; if (napv==4) ssV[i][component] << "x " <<( (BC.BadFibers>>1)&0x1 ); if (napv==6) ssV[i][component] << ( (BC.BadFibers>>1)&0x1 ) << " " << ( (BC.BadFibers>>2)&0x1 ); ssV[i][component] << " \t " << ( (BC.BadApvs)&0x1 ) << " " << ( (BC.BadApvs>>1)&0x1 ) << " "; if (napv==4) ssV[i][component] << "x x " << ( (BC.BadApvs>>2)&0x1 ) << " " << ( (BC.BadApvs>>3)&0x1 ); if (napv==6) ssV[i][component] << ( (BC.BadApvs>>2)&0x1 ) << " " << ( (BC.BadApvs>>3)&0x1 ) << " " << ( (BC.BadApvs>>4)&0x1 ) << " " << ( (BC.BadApvs>>5)&0x1 ) << " "; if (BC.BadApvs){ NBadComponent[i][0][2]+= ( (BC.BadApvs>>5)&0x1 )+ ( (BC.BadApvs>>4)&0x1 ) + ( (BC.BadApvs>>3)&0x1 ) + ( (BC.BadApvs>>2)&0x1 )+ ( (BC.BadApvs>>1)&0x1 ) + ( (BC.BadApvs)&0x1 ); NBadComponent[i][component][2]+= ( (BC.BadApvs>>5)&0x1 )+ ( (BC.BadApvs>>4)&0x1 ) + ( (BC.BadApvs>>3)&0x1 ) + ( (BC.BadApvs>>2)&0x1 )+ ( (BC.BadApvs>>1)&0x1 ) + ( (BC.BadApvs)&0x1 ); // tkMap->fillc(BC.detid,0xff0000); } if (BC.BadFibers){ NBadComponent[i][0][1]+= ( (BC.BadFibers>>2)&0x1 )+ ( (BC.BadFibers>>1)&0x1 ) + ( (BC.BadFibers)&0x1 ); NBadComponent[i][component][1]+= ( (BC.BadFibers>>2)&0x1 )+ ( (BC.BadFibers>>1)&0x1 ) + ( (BC.BadFibers)&0x1 ); // tkMap->fillc(BC.detid,0x0000ff); } if (BC.BadModule){ NBadComponent[i][0][0]++; NBadComponent[i][component][0]++; // tkMap->fillc(BC.detid,0x0); } }
std::vector<uint32_t> SiStripQualityDQM::alreadyFilledLayers [private] |
Definition at line 64 of file SiStripQualityDQM.h.
Referenced by fillMEsForLayer().
int SiStripQualityDQM::NBadComponent[4][19][4] [private] |
Definition at line 60 of file SiStripQualityDQM.h.
Referenced by fillGrandSummaryMEs(), and SetBadComponents().
int SiStripQualityDQM::NTkBadComponent[4] [private] |
Definition at line 59 of file SiStripQualityDQM.h.
Referenced by fillGrandSummaryMEs().
Definition at line 58 of file SiStripQualityDQM.h.
Referenced by fillGrandSummaryMEs(), fillMEsForDet(), fillMEsForLayer(), getActiveDetIds(), and getConditionObject().
std::string SiStripQualityDQM::qualityLabel_ [private] |
Definition at line 57 of file SiStripQualityDQM.h.
Referenced by getConditionObject(), and SiStripQualityDQM().
std::stringstream SiStripQualityDQM::ssV[4][19] [private] |
Definition at line 61 of file SiStripQualityDQM.h.
Referenced by fillGrandSummaryMEs(), and SetBadComponents().