![]() |
![]() |
#include <CalibTracker/SiPixelIsAliveCalibration/src/SiPixelIsAliveCalibration.cc>
Public Member Functions | |
virtual bool | doFits (uint32_t detid, std::vector< SiPixelCalibDigi >::const_iterator ipix) |
void | doSetup (const edm::ParameterSet &) |
SiPixelIsAliveCalibration (const edm::ParameterSet &) | |
~SiPixelIsAliveCalibration () | |
Private Member Functions | |
virtual void | calibrationEnd () |
virtual void | calibrationSetup (const edm::EventSetup &) |
virtual bool | checkCorrectCalibrationType () |
virtual void | newDetID (uint32_t detid) |
Private Attributes | |
std::map< uint32_t, MonitorElement * > | bookkeeper_ |
double | mineff_ |
std::map< uint32_t, MonitorElement * > | summaries_ |
Implementation: <Notes on="" implementation>="">
Definition at line 38 of file SiPixelIsAliveCalibration.cc.
SiPixelIsAliveCalibration::SiPixelIsAliveCalibration | ( | const edm::ParameterSet & | iConfig | ) | [explicit] |
Definition at line 71 of file SiPixelIsAliveCalibration.cc.
00071 : 00072 SiPixelOfflineCalibAnalysisBase(iConfig), 00073 mineff_(iConfig.getUntrackedParameter<double>("minEfficiencyForAliveDef",0.8)) 00074 { 00075 //now do what ever initialization is needed 00076 00077 }
SiPixelIsAliveCalibration::~SiPixelIsAliveCalibration | ( | ) |
Definition at line 80 of file SiPixelIsAliveCalibration.cc.
00081 { 00082 00083 // do anything here that needs to be done at desctruction time 00084 // (e.g. close files, deallocate resources etc.) 00085 00086 }
void SiPixelIsAliveCalibration::calibrationEnd | ( | ) | [private, virtual] |
Reimplemented from SiPixelOfflineCalibAnalysisBase.
Definition at line 152 of file SiPixelIsAliveCalibration.cc.
References bookkeeper_, lat::endl(), icol, mineff_, SiPixelOfflineCalibAnalysisBase::setDQMDirectory(), and SiPixelOfflineCalibAnalysisBase::translateDetIdToString().
00152 { 00153 // print summary of bad modules: 00154 for(std::map<uint32_t, MonitorElement *>::const_iterator idet= bookkeeper_.begin(); idet!=bookkeeper_.end();++idet){ 00155 float idead = 0; 00156 float iunderthres=0; 00157 float imultiplefill=0; 00158 float itot=0; 00159 uint32_t detid=idet->first; 00160 00161 setDQMDirectory(detid); 00162 for(int icol=1; icol <= bookkeeper_[detid]->getNbinsX(); ++icol){ 00163 for(int irow=1; irow <= bookkeeper_[detid]->getNbinsY(); ++irow){ 00164 itot++; 00165 double val = bookkeeper_[detid]->getBinContent(icol,irow); 00166 if(val==0) 00167 idead++; 00168 if(val<mineff_) 00169 iunderthres++; 00170 if(val==-2) 00171 imultiplefill++; 00172 00173 } 00174 } 00175 edm::LogInfo("SiPixelIsAliveCalibration") << "summary for " << translateDetIdToString(detid) << "\tfrac dead:" << idead/itot << " frac below " << mineff_ << ":" << iunderthres/itot << " bad " << imultiplefill/itot << std::endl; 00176 } 00177 00178 }
void SiPixelIsAliveCalibration::calibrationSetup | ( | const edm::EventSetup & | iSetup | ) | [private, virtual] |
Reimplemented from SiPixelOfflineCalibAnalysisBase.
Definition at line 121 of file SiPixelIsAliveCalibration.cc.
bool SiPixelIsAliveCalibration::checkCorrectCalibrationType | ( | ) | [private, virtual] |
Reimplemented from SiPixelOfflineCalibAnalysisBase.
Definition at line 104 of file SiPixelIsAliveCalibration.cc.
References SiPixelOfflineCalibAnalysisBase::calibrationMode_.
00104 { 00105 if(calibrationMode_=="PixelAlive") 00106 return true; 00107 else if(calibrationMode_=="unknown"){ 00108 edm::LogInfo("SiPixelIsAliveCalibration") << "calibration mode is: " << calibrationMode_ << ", continuing anyway..." ; 00109 return true; 00110 } 00111 else{ 00112 // edm::LogError("SiPixelIsAliveCalibration")<< "unknown calibration mode for Pixel ALive, should be \"PixelAlive\" and is \"" << calibrationMode_ << "\""; 00113 } 00114 return false; 00115 00116 }
bool SiPixelIsAliveCalibration::doFits | ( | uint32_t | detid, | |
std::vector< SiPixelCalibDigi >::const_iterator | ipix | |||
) | [virtual] |
Reimplemented from SiPixelOfflineCalibAnalysisBase.
Definition at line 125 of file SiPixelIsAliveCalibration.cc.
References bookkeeper_, SiPixelOfflineCalibAnalysisBase::calib_, lat::endl(), i, and summaries_.
00125 { 00126 edm::LogInfo("SiPixelIsAliveCalibration") << "now looking at DetID " << detid << ", pixel " << ipix->row() << "," << ipix->col() << std::endl; 00127 00128 double denom=0; 00129 double nom=0; 00130 for(uint32_t i=0; i<ipix->getnpoints(); i++){ 00131 nom+=ipix->getnentries(i); 00132 denom+=calib_->getNTriggers(); 00133 if(i>0) 00134 edm::LogWarning("SiPixelIsAliveCalibration::doFits") << " ERROR!!" << " number of vcal points is now " << i << " for detid " << detid << std::endl; 00135 } 00136 edm::LogInfo("SiPixelIsAliveCalibration") << "DetID/col/row " << detid << "/"<< ipix->col() << "/" << ipix->row() << ", now calculating efficiency: " << nom << "/" << denom <<"=" << nom/denom << std::endl; 00137 double eff = -1; 00138 if(denom>0) 00139 eff = nom/denom; 00140 if(bookkeeper_[detid]->getBinContent(ipix->col()+1,ipix->row()+1)==0){ 00141 bookkeeper_[detid]->Fill(ipix->col(), ipix->row(), eff); 00142 summaries_[detid]->Fill(eff); 00143 float zerobin = summaries_[detid]->getBinContent(1); 00144 summaries_[detid]->setBinContent(1, zerobin-1); 00145 } 00146 else 00147 bookkeeper_[detid]->setBinContent(ipix->col()+1,ipix->row()+1,-2); 00148 return true; 00149 }
void SiPixelIsAliveCalibration::doSetup | ( | const edm::ParameterSet & | iConf | ) |
void SiPixelIsAliveCalibration::newDetID | ( | uint32_t | detid | ) | [private, virtual] |
Reimplemented from SiPixelOfflineCalibAnalysisBase.
Definition at line 93 of file SiPixelIsAliveCalibration.cc.
References SiPixelOfflineCalibAnalysisBase::bookDQMHistogram1D(), SiPixelOfflineCalibAnalysisBase::bookDQMHistoPlaquetteSummary2D(), bookkeeper_, SiPixelOfflineCalibAnalysisBase::calib_, SiPixelOfflineCalibAnalysisBase::setDQMDirectory(), summaries_, and SiPixelOfflineCalibAnalysisBase::translateDetIdToString().
00093 { 00094 setDQMDirectory(detid); 00095 std::string tempname=translateDetIdToString(detid); 00096 bookkeeper_[detid]= bookDQMHistoPlaquetteSummary2D(detid,"pixelAlive","pixel alive for "+tempname); 00097 int xpix = bookkeeper_[detid]->getNbinsX(); 00098 int ypix = bookkeeper_[detid]->getNbinsY(); 00099 int tpix = xpix*ypix; 00100 summaries_[detid]= bookDQMHistogram1D(detid,"pixelAliveSummary",bookkeeper_[detid]->getTitle(),calib_->getNTriggers()+1,-.05,.95+(1./(float)calib_->getNTriggers())); 00101 summaries_[detid]->setBinContent(1, tpix); 00102 }
std::map<uint32_t,MonitorElement *> SiPixelIsAliveCalibration::bookkeeper_ [private] |
Definition at line 55 of file SiPixelIsAliveCalibration.cc.
Referenced by calibrationEnd(), doFits(), and newDetID().
double SiPixelIsAliveCalibration::mineff_ [private] |
std::map<uint32_t,MonitorElement *> SiPixelIsAliveCalibration::summaries_ [private] |