CMS 3D CMS Logo

SiPixelIsAliveCalibration Class Reference

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

#include <CalibTracker/SiPixelIsAliveCalibration/src/SiPixelIsAliveCalibration.cc>

Inheritance diagram for SiPixelIsAliveCalibration:

SiPixelOfflineCalibAnalysisBase edm::EDAnalyzer

List of all members.

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_


Detailed Description

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

Implementation: <Notes on="" implementation>="">

Definition at line 38 of file SiPixelIsAliveCalibration.cc.


Constructor & Destructor Documentation

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 }


Member Function Documentation

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.

00121                                                                        {
00122 
00123 }

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  ) 

Definition at line 117 of file SiPixelIsAliveCalibration.cc.

00117                                                                    {
00118 
00119 }

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 }


Member Data Documentation

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]

Definition at line 57 of file SiPixelIsAliveCalibration.cc.

Referenced by calibrationEnd().

std::map<uint32_t,MonitorElement *> SiPixelIsAliveCalibration::summaries_ [private]

Definition at line 56 of file SiPixelIsAliveCalibration.cc.

Referenced by doFits(), and newDetID().


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