#include <RPCDeadChannelTest.h>
Definition at line 10 of file RPCDeadChannelTest.h.
RPCDeadChannelTest::RPCDeadChannelTest | ( | const edm::ParameterSet & | ps | ) |
Constructor.
Definition at line 18 of file RPCDeadChannelTest.cc.
References edm::ParameterSet::getUntrackedParameter(), globalFolder_, numberOfDisks_, numberOfRings_, and prescaleFactor_.
{ edm::LogVerbatim ("deadChannel") << "[RPCDeadChannelTest]: Constructor"; globalFolder_ = ps.getUntrackedParameter<std::string>("RPCGlobalFolder", "RPC/RecHits/SummaryHistograms"); prescaleFactor_ = ps.getUntrackedParameter<int>("DiagnosticPrescale", 1); numberOfDisks_ = ps.getUntrackedParameter<int>("NumberOfEndcapDisks", 3); numberOfRings_ = ps.getUntrackedParameter<int>("NumberOfEndcapRings", 2); }
RPCDeadChannelTest::~RPCDeadChannelTest | ( | ) | [virtual] |
void RPCDeadChannelTest::analyze | ( | const edm::Event & | iEvent, |
const edm::EventSetup & | c | ||
) | [virtual] |
void RPCDeadChannelTest::beginJob | ( | DQMStore * | dbe | ) | [virtual] |
BeginJob.
Implements RPCClient.
Definition at line 30 of file RPCDeadChannelTest.cc.
References dbe_.
{ dbe_=dbe; }
void RPCDeadChannelTest::beginLuminosityBlock | ( | edm::LuminosityBlock const & | lumiSeg, |
edm::EventSetup const & | context | ||
) | [virtual] |
void RPCDeadChannelTest::beginRun | ( | const edm::Run & | r, |
const edm::EventSetup & | c | ||
) | [virtual] |
void RPCDeadChannelTest::CalculateDeadChannelPercentage | ( | RPCDetId & | detId, |
MonitorElement * | myMe, | ||
edm::EventSetup const & | iSetup | ||
) | [protected] |
Definition at line 136 of file RPCDeadChannelTest.cc.
References DEADDisk, DEADWheel, rpcdqm::utils::detId2RollNr(), edm::EventSetup::get(), QReport::getBadChannels(), MonitorElement::getQReport(), RPCRoll::nstrips(), NULL, numberOfDisks_, numberOfRings_, RPCDetId::region(), RPCDetId::ring(), RPCDetId::roll(), RPCDetId::sector(), RPCGeomServ::segment(), MonitorElement::setBinContent(), and RPCDetId::station().
Referenced by clientOperation().
{ edm::ESHandle<RPCGeometry> rpcgeo; iSetup.get<MuonGeometryRecord>().get(rpcgeo); const RPCRoll * rpcRoll = rpcgeo->roll(detId); unsigned int nstrips =rpcRoll->nstrips(); MonitorElement * DEAD = NULL; const QReport * theOccupancyQReport = myMe->getQReport("DeadChannel_0"); if(theOccupancyQReport) { std::vector<dqm::me_util::Channel> badChannels = theOccupancyQReport->getBadChannels(); if (detId.region()==0) DEAD = DEADWheel[detId.ring() + 2] ; else{ if(-detId.station()+ numberOfDisks_ >= 0 ){ if(detId.region()<0){ DEAD = DEADDisk[-detId.station() + numberOfDisks_]; }else{ DEAD = DEADDisk[detId.station() + numberOfDisks_-1]; } } } if (DEAD){ int xBin,yBin; if(detId.region()==0){//Barrel xBin= detId.sector(); rpcdqm::utils rollNumber; yBin = rollNumber.detId2RollNr(detId); }else{//Endcap //get segment number RPCGeomServ RPCServ(detId); xBin = RPCServ.segment(); (numberOfRings_ == 3 ? yBin= detId.ring()*3-detId.roll()+1 : yBin= (detId.ring()-1)*3-detId.roll()+1); } DEAD->setBinContent(xBin,yBin, (float)badChannels.size()/nstrips ); } } }
void RPCDeadChannelTest::clientOperation | ( | edm::EventSetup const & | c | ) | [virtual] |
Implements RPCClient.
Definition at line 118 of file RPCDeadChannelTest.cc.
References CalculateDeadChannelPercentage(), i, myDetIds_, and myOccupancyMe_.
{ edm::LogVerbatim ("deadChannel") <<"[RPCDeadChannelTest]:Client Operation"; //Loop on chambers for (unsigned int i = 0 ; i<myOccupancyMe_.size();i++){ this->CalculateDeadChannelPercentage(myDetIds_[i],myOccupancyMe_[i],iSetup); }//End loop on rolls in given chambers }
void RPCDeadChannelTest::endJob | ( | void | ) | [virtual] |
void RPCDeadChannelTest::endLuminosityBlock | ( | edm::LuminosityBlock const & | lumiSeg, |
edm::EventSetup const & | iSetup | ||
) | [virtual] |
void RPCDeadChannelTest::endRun | ( | const edm::Run & | r, |
const edm::EventSetup & | iSetup, | ||
std::vector< MonitorElement * > | meVector, | ||
std::vector< RPCDetId > | detIdVector | ||
) | [virtual] |
Implements RPCClient.
Definition at line 34 of file RPCDeadChannelTest.cc.
References DQMStore::book2D(), dbe_, DEADDisk, DEADWheel, DQMStore::get(), MonitorElement::getName(), globalFolder_, i, rpcdqm::utils::labelXAxisSector(), rpcdqm::utils::labelXAxisSegment(), rpcdqm::utils::labelYAxisRing(), rpcdqm::utils::labelYAxisRoll(), MessageLogger_cff::limit, myDetIds_, myOccupancyMe_, numberOfDisks_, numberOfRings_, rpcdqm::OCCUPANCY, evf::evtn::offset(), DQMStore::removeElement(), DQMStore::setCurrentFolder(), packageDocSplitter::tagList, ExpressReco_HICollisions_FallBack::x, and ExpressReco_HICollisions_FallBack::y.
{ edm::LogVerbatim ("deadChannel") << "[RPCDeadChannelTest]: End run"; MonitorElement* me; dbe_->setCurrentFolder( globalFolder_); std::stringstream histoName; rpcdqm::utils rpcUtils; int limit = numberOfDisks_; if(numberOfDisks_ < 2) limit = 2; for (int i = -1 * limit; i<= limit;i++ ){//loop on wheels and disks if (i>-3 && i<3){//wheels histoName.str(""); histoName<<"DeadChannelFraction_Roll_vs_Sector_Wheel"<<i; me = 0; me = dbe_->get(globalFolder_ +"/"+ histoName.str()); if (0!=me ) { dbe_->removeElement(me->getName()); } DEADWheel[i+2] = dbe_->book2D(histoName.str().c_str(), histoName.str().c_str(), 12, 0.5, 12.5, 21, 0.5, 21.5); for (int x = 1; x<=12; x++) for(int y=1; y<=21; y++) DEADWheel[i+2]->setBinContent(x,y,-1); rpcUtils.labelXAxisSector( DEADWheel[i+2]); rpcUtils.labelYAxisRoll( DEADWheel[i+2], 0, i); }//end wheels if (i == 0 || i > numberOfDisks_ || i< (-1 * numberOfDisks_))continue; int offset = numberOfDisks_; if (i>0) offset --; //used to skip case equale to zero histoName.str(""); histoName<<"DeadChannelFraction_Ring_vs_Segment_Disk"<<i; me = 0; me = dbe_->get(globalFolder_ +"/"+ histoName.str()); if (0!=me ) { dbe_->removeElement(me->getName()); } DEADDisk[i+offset] = dbe_->book2D(histoName.str().c_str(), histoName.str().c_str(),36, 0.5, 36.5, 3*numberOfRings_, 0.5,3*numberOfRings_+ 0.5); rpcUtils.labelXAxisSegment(DEADDisk[i+offset]); rpcUtils.labelYAxisRing(DEADDisk[i+offset], numberOfRings_); }//end loop on wheels and disks //Get Occuoancy ME for each roll for (unsigned int i = 0 ; i<meVector.size(); i++){ bool flag= false; DQMNet::TagList tagList; tagList = meVector[i]->getTags(); DQMNet::TagList::iterator tagItr = tagList.begin(); while (tagItr != tagList.end() && !flag ) { if((*tagItr) == rpcdqm::OCCUPANCY) flag= true; tagItr++; } if(flag){ myOccupancyMe_.push_back(meVector[i]); myDetIds_.push_back(detIdVector[i]); } } }
DQMStore* RPCDeadChannelTest::dbe_ [private] |
Definition at line 54 of file RPCDeadChannelTest.h.
Referenced by beginJob(), endRun(), and ~RPCDeadChannelTest().
MonitorElement* RPCDeadChannelTest::DEADDisk[10] [private] |
Definition at line 60 of file RPCDeadChannelTest.h.
Referenced by CalculateDeadChannelPercentage(), and endRun().
MonitorElement* RPCDeadChannelTest::DEADWheel[5] [private] |
Definition at line 59 of file RPCDeadChannelTest.h.
Referenced by CalculateDeadChannelPercentage(), and endRun().
std::string RPCDeadChannelTest::globalFolder_ [private] |
Definition at line 50 of file RPCDeadChannelTest.h.
Referenced by endRun(), and RPCDeadChannelTest().
std::vector<RPCDetId> RPCDeadChannelTest::myDetIds_ [private] |
Definition at line 52 of file RPCDeadChannelTest.h.
Referenced by clientOperation(), and endRun().
std::vector<MonitorElement *> RPCDeadChannelTest::myOccupancyMe_ [private] |
Definition at line 51 of file RPCDeadChannelTest.h.
Referenced by clientOperation(), and endRun().
int RPCDeadChannelTest::numberOfDisks_ [private] |
Definition at line 57 of file RPCDeadChannelTest.h.
Referenced by CalculateDeadChannelPercentage(), endRun(), and RPCDeadChannelTest().
int RPCDeadChannelTest::numberOfRings_ [private] |
Definition at line 58 of file RPCDeadChannelTest.h.
Referenced by CalculateDeadChannelPercentage(), endRun(), and RPCDeadChannelTest().
int RPCDeadChannelTest::prescaleFactor_ [private] |
Definition at line 49 of file RPCDeadChannelTest.h.
Referenced by RPCDeadChannelTest().