CMS 3D CMS Logo

HcalDeadCellClient Class Reference

#include <DQM/HcalMonitorClient/interface/HcalDeadCellClient.h>

Inheritance diagram for HcalDeadCellClient:

HcalBaseClient

List of all members.

Public Member Functions

void analyze (void)
 Analyze.
void beginJob (const EventSetup &c)
 BeginJob.
void beginRun (void)
 BeginRun.
void cleanup (void)
 Cleanup.
void createTests ()
void endJob (void)
 EndJob.
void endRun (void)
 EndRun.
void getHistograms ()
 HcalDeadCellClient ()
 Constructor.
void htmlExpertOutput (int run, string htmlDir, string htmlName)
void htmlOutput (int run, string htmlDir, string htmlName)
 HtmlOutput.
void init (const edm::ParameterSet &ps, DQMStore *dbe, string clientName)
void loadHistograms (TFile *f)
void report ()
 process report
void resetAllME ()
void setup (void)
 Setup.
 ~HcalDeadCellClient ()
 Destructor.

Private Attributes

TH2F * BelowEnergyThresholdCellsByDepth [6]
TH2F * BelowNeighborsDeadCellsByDepth [6]
TH2F * BelowPedestalDeadCellsByDepth [6]
TH2F * d_HBenergyVsNeighbor
TH1F * d_HBnormped
TH1F * d_HBrechitenergy
TH2F * d_HEenergyVsNeighbor
TH1F * d_HEnormped
TH1F * d_HErechitenergy
TH2F * d_HFenergyVsNeighbor
TH1F * d_HFnormped
TH1F * d_HFrechitenergy
TH2F * d_HOenergyVsNeighbor
TH1F * d_HOnormped
TH1F * d_HOrechitenergy
int deadclient_checkNevents_
int deadclient_checkNevents_energy_
int deadclient_checkNevents_neighbor_
int deadclient_checkNevents_occupancy_
int deadclient_checkNevents_pedestal_
int deadclient_checkNevents_rechit_occupancy_
bool deadclient_makeDiagnostics_
bool deadclient_test_energy_
bool deadclient_test_neighbor_
bool deadclient_test_occupancy_
bool deadclient_test_pedestal_
bool deadclient_test_rechit_occupancy_
double minErrorFlag_
TH2F * ProblemDeadCells
TH2F * ProblemDeadCellsByDepth [6]
vector< std::string > subdets_
TH2F * UnoccupiedDeadCellsByDepth [6]
TH2F * UnoccupiedRecHitsByDepth [6]


Detailed Description

Definition at line 12 of file HcalDeadCellClient.h.


Constructor & Destructor Documentation

HcalDeadCellClient::HcalDeadCellClient (  ) 

Constructor.

Definition at line 8 of file HcalDeadCellClient.cc.

00008 {} // constructor 

HcalDeadCellClient::~HcalDeadCellClient (  ) 

Destructor.

Definition at line 72 of file HcalDeadCellClient.cc.

References cleanup().

00073 {
00074   this->cleanup();
00075 } // destructor


Member Function Documentation

void HcalDeadCellClient::analyze ( void   ) 

Analyze.

Definition at line 278 of file HcalDeadCellClient.cc.

References GenMuonPlsPt100GeV_cfg::cout, HcalBaseClient::debug_, lat::endl(), and HcalBaseClient::jevt_.

Referenced by HcalMonitorClient::analyze().

00279 {
00280   jevt_++;
00281   if ( jevt_ % 10 == 0 ) 
00282     {
00283       if ( debug_>1 ) cout << "<HcalDeadCellClient::analyze>  Running analyze "<<endl;
00284     }
00285   //getHistograms(); // not needed here?
00286   return;
00287 } // void HcalDeadCellClient::analyze(void)

void HcalDeadCellClient::beginJob ( const EventSetup c  ) 

BeginJob.

Definition at line 78 of file HcalDeadCellClient.cc.

References GenMuonPlsPt100GeV_cfg::cout, HcalBaseClient::debug_, lat::endl(), HcalBaseClient::ievt_, HcalBaseClient::jevt_, and setup().

Referenced by HcalMonitorClient::beginJob().

00078                                                              {
00079 
00080   if ( debug_>1 ) cout << "HcalDeadCellClient: beginJob" << endl;
00081 
00082   ievt_ = 0;
00083   jevt_ = 0;
00084   this->setup();
00085   return;
00086 } // void HcalDeadCellClient::beginJob(const EventSetup& eventSetup);

void HcalDeadCellClient::beginRun ( void   ) 

BeginRun.

Definition at line 89 of file HcalDeadCellClient.cc.

References GenMuonPlsPt100GeV_cfg::cout, HcalBaseClient::debug_, lat::endl(), HcalBaseClient::jevt_, resetAllME(), and setup().

Referenced by HcalMonitorClient::beginRun().

00090 {
00091   if ( debug_>1 ) cout << "HcalDeadCellClient: beginRun" << endl;
00092 
00093   jevt_ = 0;
00094   this->setup();
00095   this->resetAllME();
00096   return;
00097 } // void HcalDeadCellClient::beginRun(void)

void HcalDeadCellClient::cleanup ( void   ) 

Cleanup.

Definition at line 124 of file HcalDeadCellClient.cc.

References BelowEnergyThresholdCellsByDepth, BelowNeighborsDeadCellsByDepth, BelowPedestalDeadCellsByDepth, HcalBaseClient::cloneME_, d_HBenergyVsNeighbor, d_HBnormped, d_HBrechitenergy, d_HEenergyVsNeighbor, d_HEnormped, d_HErechitenergy, d_HFenergyVsNeighbor, d_HFnormped, d_HFrechitenergy, d_HOenergyVsNeighbor, d_HOnormped, d_HOrechitenergy, deadclient_makeDiagnostics_, HcalBaseClient::dqmQtests_, HcalBaseClient::dqmReportMapErr_, HcalBaseClient::dqmReportMapOther_, HcalBaseClient::dqmReportMapWarn_, i, ProblemDeadCells, ProblemDeadCellsByDepth, and UnoccupiedDeadCellsByDepth.

Referenced by endJob(), endRun(), and ~HcalDeadCellClient().

00125 {
00126   if(cloneME_)
00127     {
00128       // delete individual histogram pointers
00129       if (ProblemDeadCells) delete ProblemDeadCells;
00130       
00131       for (int i=0;i<6;++i)
00132         {
00133           // delete pointers within arrays of histograms
00134           if (ProblemDeadCellsByDepth[i])           delete ProblemDeadCellsByDepth[i];
00135           if (UnoccupiedDeadCellsByDepth[i])        delete UnoccupiedDeadCellsByDepth[i];
00136           if (BelowPedestalDeadCellsByDepth[i])     delete BelowPedestalDeadCellsByDepth[i];
00137           if (BelowNeighborsDeadCellsByDepth[i])    delete BelowNeighborsDeadCellsByDepth[i];
00138           if (BelowEnergyThresholdCellsByDepth[i])  delete BelowEnergyThresholdCellsByDepth[i];
00139         }
00140       
00141       if (deadclient_makeDiagnostics_)
00142         {
00143           if (d_HBnormped)          delete d_HBnormped;
00144           if (d_HBrechitenergy)     delete d_HBrechitenergy;
00145           if (d_HBenergyVsNeighbor) delete d_HBenergyVsNeighbor;
00146           if (d_HEnormped)          delete d_HEnormped;
00147           if (d_HErechitenergy)     delete d_HErechitenergy;
00148           if (d_HEenergyVsNeighbor) delete d_HEenergyVsNeighbor;
00149           if (d_HOnormped)          delete d_HOnormped;
00150           if (d_HOrechitenergy)     delete d_HOrechitenergy;
00151           if (d_HOenergyVsNeighbor) delete d_HOenergyVsNeighbor;
00152           if (d_HFnormped)          delete d_HFnormped;
00153           if (d_HFrechitenergy)     delete d_HFrechitenergy;
00154           if (d_HFenergyVsNeighbor) delete d_HFenergyVsNeighbor;
00155         } // if (deadclient_makeDiagnostics_)
00156       
00157 
00158     }
00159 
00160   // Set individual pointers to NULL
00161   ProblemDeadCells = 0;
00162 
00163   for (int i=0;i<6;++i)
00164     {
00165       // Set each array's pointers to NULL
00166       ProblemDeadCellsByDepth[i]=0;
00167       UnoccupiedDeadCellsByDepth[i]=0;
00168       BelowPedestalDeadCellsByDepth[i]=0;
00169       BelowNeighborsDeadCellsByDepth[i]=0;
00170       BelowEnergyThresholdCellsByDepth[i]=0;
00171     }
00172   
00173   if (deadclient_makeDiagnostics_)
00174     {
00175       d_HBnormped=0;
00176       d_HBrechitenergy=0;
00177       d_HBenergyVsNeighbor=0;
00178       d_HEnormped=0;
00179       d_HErechitenergy=0;
00180       d_HEenergyVsNeighbor=0;
00181       d_HOnormped=0;
00182       d_HOrechitenergy=0;
00183       d_HOenergyVsNeighbor=0;
00184       d_HFnormped=0;
00185       d_HFrechitenergy=0;
00186       d_HFenergyVsNeighbor=0;
00187     } // if (deadclient_makeDiagnostics_)
00188 
00189   dqmReportMapErr_.clear(); 
00190   dqmReportMapWarn_.clear(); 
00191   dqmReportMapOther_.clear();
00192   dqmQtests_.clear();
00193   
00194   return;
00195 } // void HcalDeadCellClient::cleanup(void)

void HcalDeadCellClient::createTests (  ) 

Definition at line 290 of file HcalDeadCellClient.cc.

References HcalBaseClient::dbe_.

Referenced by HcalMonitorClient::createTests().

00291 {
00292   // Removed a bunch of code that was in older versions of HcalDeadCellClient
00293   // tests should now be handled from outside
00294   if(!dbe_) return;
00295   return;
00296 } // void HcalDeadCellClient::createTests()

void HcalDeadCellClient::endJob ( void   ) 

EndJob.

Definition at line 100 of file HcalDeadCellClient.cc.

References cleanup(), GenMuonPlsPt100GeV_cfg::cout, HcalBaseClient::debug_, lat::endl(), and HcalBaseClient::ievt_.

Referenced by HcalMonitorClient::endJob().

00101 {
00102   if ( debug_>1 ) cout << "HcalDeadCellClient: endJob, ievt = " << ievt_ << endl;
00103 
00104   this->cleanup();
00105   return;
00106 } // void HcalDeadCellClient::endJob(void)

void HcalDeadCellClient::endRun ( void   ) 

EndRun.

Definition at line 109 of file HcalDeadCellClient.cc.

References cleanup(), GenMuonPlsPt100GeV_cfg::cout, HcalBaseClient::debug_, lat::endl(), and HcalBaseClient::jevt_.

Referenced by HcalMonitorClient::endRun().

00110 {
00111   if ( debug_>1 ) cout << "HcalDeadCellClient: endRun, jevt = " << jevt_ << endl;
00112 
00113   this->cleanup();
00114   return;
00115 } // void HcalDeadCellClient::endRun(void)

void HcalDeadCellClient::getHistograms (  ) 

Definition at line 219 of file HcalDeadCellClient.cc.

References BelowEnergyThresholdCellsByDepth, BelowNeighborsDeadCellsByDepth, BelowPedestalDeadCellsByDepth, HcalBaseClient::cloneME_, d_HBenergyVsNeighbor, d_HBnormped, d_HBrechitenergy, d_HEenergyVsNeighbor, d_HEnormped, d_HErechitenergy, d_HFenergyVsNeighbor, d_HFnormped, d_HFrechitenergy, d_HOenergyVsNeighbor, d_HOnormped, d_HOrechitenergy, HcalBaseClient::dbe_, deadclient_makeDiagnostics_, deadclient_test_energy_, deadclient_test_neighbor_, deadclient_test_occupancy_, deadclient_test_pedestal_, deadclient_test_rechit_occupancy_, HcalBaseClient::debug_, dummy1D, dummy2D, getAnyHisto(), HcalBaseClient::getSJ6histos(), i, name, ProblemDeadCells, ProblemDeadCellsByDepth, HcalBaseClient::process_, UnoccupiedDeadCellsByDepth, and UnoccupiedRecHitsByDepth.

Referenced by htmlOutput(), and report().

00220 {
00221   if(!dbe_) return;
00222 
00223   ostringstream name;
00224   // dummy histograms
00225   TH2F* dummy2D = new TH2F();
00226   TH1F* dummy1D = new TH1F();
00227 
00228   // Set Problem cell palette (green = 0 = good, red = 1 = bad)
00229 
00230 
00231   // Grab individual histograms
00232   name<<process_.c_str()<<"DeadCellMonitor_Hcal/ ProblemDeadCells";
00233   ProblemDeadCells = getAnyHisto(dummy2D, name.str(), process_, dbe_, debug_, cloneME_);
00234   name.str("");
00235 
00236   getSJ6histos("DeadCellMonitor_Hcal/problem_deadcells/", " Problem Dead Cell Rate", ProblemDeadCellsByDepth);
00237 
00238   if (deadclient_test_occupancy_) getSJ6histos("DeadCellMonitor_Hcal/dead_unoccupied_digi/",   "Dead Cells with No Digis", UnoccupiedDeadCellsByDepth);
00239   if (deadclient_test_rechit_occupancy_) getSJ6histos("DeadCellMonitor_Hcal/dead_unoccupied_rechit/",   "Dead Cells with No Rec Hits", UnoccupiedRecHitsByDepth);
00240  
00241   if (deadclient_test_pedestal_)  getSJ6histos("DeadCellMonitor_Hcal/dead_pedestaltest/", "Dead Cells Failing Pedestal Test", BelowPedestalDeadCellsByDepth);
00242   if (deadclient_test_neighbor_)  getSJ6histos("DeadCellMonitor_Hcal/dead_neighbortest/", "Dead Cells Failing Neighbor Test", BelowNeighborsDeadCellsByDepth);
00243   if (deadclient_test_energy_)    getSJ6histos("DeadCellMonitor_Hcal/dead_energytest/",   "Dead Cells Failing Energy Threshold Test", BelowEnergyThresholdCellsByDepth);
00244 
00245   if (deadclient_makeDiagnostics_)
00246     {
00247       d_HBnormped=getAnyHisto(dummy1D,(process_+"DeadCellMonitor_Hcal/diagnostics/pedestal/HB_normped").c_str(), process_, dbe_, debug_, cloneME_);
00248       d_HBrechitenergy=getAnyHisto(dummy1D,(process_+"DeadCellMonitor_Hcal/diagnostics/energythreshold/HB_rechitenergy").c_str(), process_, dbe_, debug_, cloneME_);
00249       d_HBenergyVsNeighbor=getAnyHisto(dummy2D,(process_+"DeadCellMonitor_Hcal/diagnostics/neighborcells/HB_energyVsNeighbor").c_str(), process_, dbe_, debug_, cloneME_);
00250       d_HEnormped=getAnyHisto(dummy1D,(process_+"DeadCellMonitor_Hcal/diagnostics/pedestal/HE_normped").c_str(), process_, dbe_, debug_, cloneME_);
00251       d_HErechitenergy=getAnyHisto(dummy1D,(process_+"DeadCellMonitor_Hcal/diagnostics/energythreshold/HE_rechitenergy").c_str(), process_, dbe_, debug_, cloneME_);
00252       d_HEenergyVsNeighbor=getAnyHisto(dummy2D,(process_+"DeadCellMonitor_Hcal/diagnostics/neighborcells/HE_energyVsNeighbor").c_str(), process_, dbe_, debug_, cloneME_);
00253       d_HOnormped=getAnyHisto(dummy1D,(process_+"DeadCellMonitor_Hcal/diagnostics/pedestal/HO_normped").c_str(), process_, dbe_, debug_, cloneME_);
00254       d_HOrechitenergy=getAnyHisto(dummy1D,(process_+"DeadCellMonitor_Hcal/diagnostics/energythreshold/HO_rechitenergy").c_str(), process_, dbe_, debug_, cloneME_);
00255       d_HOenergyVsNeighbor=getAnyHisto(dummy2D,(process_+"DeadCellMonitor_Hcal/diagnostics/neighborcells/HO_energyVsNeighbor").c_str(), process_, dbe_, debug_, cloneME_);
00256       d_HFnormped=getAnyHisto(dummy1D,(process_+"DeadCellMonitor_Hcal/diagnostics/pedestal/HF_normped").c_str(), process_, dbe_, debug_, cloneME_);
00257       d_HFrechitenergy=getAnyHisto(dummy1D,(process_+"DeadCellMonitor_Hcal/diagnostics/energythreshold/HF_rechitenergy").c_str(), process_, dbe_, debug_, cloneME_);
00258       d_HFenergyVsNeighbor=getAnyHisto(dummy2D,(process_+"DeadCellMonitor_Hcal/diagnostics/neighborcells/HF_energyVsNeighbor").c_str(), process_, dbe_, debug_, cloneME_);
00259     } // if (deadclient_makeDiagnostics_)
00260 
00261 
00262   // Force min/max on problemcells
00263   for (int i=0;i<6;++i)
00264     {
00265       if (ProblemDeadCellsByDepth[i])
00266         {
00267           ProblemDeadCellsByDepth[i]->SetMaximum(1);
00268           ProblemDeadCellsByDepth[i]->SetMinimum(0);
00269         }
00270       name.str("");
00271 
00272     } // for (int i=0;i<6;++i)
00273 
00274   return;
00275 } //void HcalDeadCellClient::getHistograms()

void HcalDeadCellClient::htmlExpertOutput ( int  run,
string  htmlDir,
string  htmlName 
)

Definition at line 501 of file HcalDeadCellClient.cc.

References BelowEnergyThresholdCellsByDepth, BelowNeighborsDeadCellsByDepth, BelowPedestalDeadCellsByDepth, GenMuonPlsPt100GeV_cfg::cout, HcalBaseClient::cpu_timer, edm::CPUTimer::cpuTime(), d_HBenergyVsNeighbor, d_HBnormped, d_HBrechitenergy, d_HEenergyVsNeighbor, d_HEnormped, d_HErechitenergy, d_HFenergyVsNeighbor, d_HFnormped, d_HFrechitenergy, d_HOenergyVsNeighbor, d_HOnormped, d_HOrechitenergy, HcalBaseClient::dbe_, deadclient_checkNevents_energy_, deadclient_checkNevents_occupancy_, deadclient_checkNevents_pedestal_, deadclient_checkNevents_rechit_occupancy_, deadclient_makeDiagnostics_, deadclient_test_energy_, deadclient_test_neighbor_, deadclient_test_occupancy_, deadclient_test_pedestal_, deadclient_test_rechit_occupancy_, HcalBaseClient::debug_, HcalBaseClient::dqmReportMapErr_, HcalBaseClient::dqmReportMapOther_, HcalBaseClient::dqmReportMapWarn_, lat::endl(), htmlAnyHisto(), htmlErrors(), i, HcalBaseClient::ievt_, HcalBaseClient::pcol_error_, ProblemDeadCellsByDepth, HcalBaseClient::process_, edm::CPUTimer::reset(), HcalBaseClient::showTiming_, edm::CPUTimer::start(), edm::CPUTimer::stop(), UnoccupiedDeadCellsByDepth, and UnoccupiedRecHitsByDepth.

Referenced by htmlOutput().

00502 {
00503   if (showTiming_)
00504     {
00505       cpu_timer.reset(); cpu_timer.start();
00506     }
00507 
00508   if (debug_>1) 
00509     cout <<" <HcalDeadCellClient::htmlExpertOutput>  Preparing Expert html output ..." <<endl;
00510   
00511   string client = "DeadCellMonitor";
00512   htmlErrors(runNo,htmlDir,client,process_,dbe_,dqmReportMapErr_,dqmReportMapWarn_,dqmReportMapOther_); // does this do anything?
00513 
00514 ofstream htmlFile;
00515   htmlFile.open((htmlDir +"Expert_"+ htmlName).c_str());
00516 
00517   // html page header
00518   htmlFile << "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">  " << endl;
00519   htmlFile << "<html>  " << endl;
00520   htmlFile << "<head>  " << endl;
00521   htmlFile << "  <meta content=\"text/html; charset=ISO-8859-1\"  " << endl;
00522   htmlFile << " https-equiv=\"content-type\">  " << endl;
00523   htmlFile << "  <title>Monitor: Hcal Dead Cell Task output</title> " << endl;
00524   htmlFile << "</head>  " << endl;
00525   htmlFile << "<style type=\"text/css\"> td { font-weight: bold } </style>" << endl;
00526   htmlFile << "<body>  " << endl;
00527   htmlFile <<"<a name=\"EXPERT_DEADCELL_TOP\" href = \".\"> Back to Main HCAL DQM Page </a><br>"<<endl;
00528   htmlFile <<"<a href= \""<<htmlName.c_str()<<"\" > Back to Dead Cell Status Page </a><br>"<<endl;
00529   htmlFile << "<br>  " << endl;
00530   htmlFile << "<h2>Run:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" << endl;
00531   htmlFile << "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span " << endl;
00532   htmlFile << " style=\"color: rgb(0, 0, 153);\">" << runNo << "</span></h2>" << endl;
00533   htmlFile << "<h2>Monitoring task:&nbsp;&nbsp;&nbsp;&nbsp; <span " << endl;
00534   htmlFile << " style=\"color: rgb(0, 0, 153);\">Hcal Dead Cells</span></h2> " << endl;
00535   htmlFile << "<h2>Events processed:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" << endl;
00536   htmlFile << "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span " << endl;
00537   htmlFile << " style=\"color: rgb(0, 0, 153);\">" << ievt_ << "</span></h2>" << endl;
00538   htmlFile << "<hr>" << endl;
00539 
00540   htmlFile << "<table width=100%  border = 1>"<<endl;
00541   htmlFile << "<tr><td align=\"center\" colspan=1><a href=\"#OVERALL_PROBLEMS\">PROBLEM CELLS BY DEPTH </a></td></tr>"<<endl;
00542   htmlFile << "<tr><td align=\"center\">"<<endl;
00543   if (deadclient_test_occupancy_) htmlFile<<"<br><a href=\"#OCC_PROBLEMS\">Dead cell according to Digi Occupancy Test </a>"<<endl;
00544   if (deadclient_test_rechit_occupancy_) htmlFile<<"<br><a href=\"#OCCRECHIT_PROBLEMS\">Dead cell according to RecHit Occupancy Test </a>"<<endl;
00545   if (deadclient_test_pedestal_ ) htmlFile<<"<br><a href=\"#PED_PROBLEMS\">Dead cell according to Pedestal Test </a>"<<endl;
00546   if (deadclient_test_energy_   ) htmlFile<<"<br><a href=\"#ENERGY_PROBLEMS\">Dead cell according to Energy Threshold Test </a>"<<endl;
00547   if (deadclient_test_neighbor_ ) htmlFile<<"<br><a href=\"#NEIGHBOR_PROBLEMS\">Dead cell according to Neighbor Test </a>"<<endl;
00548   htmlFile << "</td></tr>"<<endl;
00549   htmlFile <<"</table>"<<endl;
00550   htmlFile <<"<br><br>"<<endl;
00551 
00552 
00553   // Plot overall errors
00554   htmlFile << "<h2><strong><a name=\"OVERALL_PROBLEMS\">Eta-Phi Maps of Problem Cells By Depth</strong></h2>"<<endl;
00555   htmlFile <<" These plots of problem cells combine results from all dead cell tests<br>"<<endl;
00556   htmlFile <<"<a href= \"#EXPERT_DEADCELL_TOP\" > Back to Top</a><br>"<<endl;
00557   htmlFile << "<table border=\"0\" cellspacing=\"0\" " << endl;
00558   htmlFile << "cellpadding=\"10\"> " << endl;
00559   gStyle->SetPalette(20,pcol_error_); // set palette to standard error color scheme
00560   
00561   // Depths are stored as:  0:  HB/HF depth 1, 1:  HB/HF 2, 2:  HE 3, 3:  HO/ZDC, 4: HE 1, 5:  HE2
00562   // remap so that HE depths are plotted consecutively
00563   int mydepth[6]={0,1,4,5,2,3};
00564   for (int i=0;i<3;++i)
00565     {
00566       htmlFile << "<tr align=\"left\">" << endl;
00567       htmlAnyHisto(runNo,ProblemDeadCellsByDepth[mydepth[2*i]],"i#eta","i#phi", 92, htmlFile, htmlDir);
00568       htmlAnyHisto(runNo,ProblemDeadCellsByDepth[mydepth[2*i]+1],"i#eta","i#phi", 92, htmlFile, htmlDir);
00569       htmlFile <<"</tr>"<<endl;
00570     }
00571 
00572   htmlFile <<"</table>"<<endl;
00573   htmlFile <<"<br><hr><br>"<<endl;
00574   
00575   // Dead cells failing digi occupancy tests
00576   if (deadclient_test_occupancy_)
00577     {
00578       htmlFile << "<h2><strong><a name=\"OCC_PROBLEMS\">Digi Occupancy Problems</strong></h2>"<<endl;
00579       htmlFile <<"A cell fails this test if its digi is absent for "<<deadclient_checkNevents_occupancy_<<" consecutive events<br>"<<endl;
00580       htmlFile <<"<a href= \"#EXPERT_DEADCELL_TOP\" > Back to Top</a><br>"<<endl;
00581       htmlFile << "<table border=\"0\" cellspacing=\"0\" " << endl;
00582       htmlFile << "cellpadding=\"10\"> " << endl;
00583       gStyle->SetPalette(20,pcol_error_); // set palette to standard error color scheme
00584       for (int i=0;i<3;++i)
00585         {
00586           htmlFile << "<tr align=\"left\">" << endl;
00587           htmlAnyHisto(runNo,UnoccupiedDeadCellsByDepth[mydepth[2*i]],"i#eta","i#phi", 92, htmlFile, htmlDir);
00588           htmlAnyHisto(runNo,UnoccupiedDeadCellsByDepth[mydepth[2*i]+1],"i#eta","i#phi", 92, htmlFile, htmlDir);
00589           htmlFile <<"</tr>"<<endl;
00590         }
00591       htmlFile <<"</table>"<<endl;
00592       htmlFile <<"<br><hr><br>"<<endl;
00593     }
00594 
00595   // Dead cells failing rec hit occupancy tests
00596   if (deadclient_test_rechit_occupancy_)
00597     {
00598       htmlFile << "<h2><strong><a name=\"OCCRECHIT_PROBLEMS\">rec HitOccupancy Problems</strong></h2>"<<endl;
00599       htmlFile <<"A cell fails this test if its rechit is absent for "<<deadclient_checkNevents_rechit_occupancy_<<" consecutive events<br>"<<endl;
00600       htmlFile <<"<a href= \"#EXPERT_DEADCELL_TOP\" > Back to Top</a><br>"<<endl;
00601       htmlFile << "<table border=\"0\" cellspacing=\"0\" " << endl;
00602       htmlFile << "cellpadding=\"10\"> " << endl;
00603       gStyle->SetPalette(20,pcol_error_); // set palette to standard error color scheme
00604       for (int i=0;i<3;++i)
00605         {
00606           htmlFile << "<tr align=\"left\">" << endl;
00607           htmlAnyHisto(runNo,UnoccupiedRecHitsByDepth[mydepth[2*i]],"i#eta","i#phi", 92, htmlFile, htmlDir);
00608           htmlAnyHisto(runNo,UnoccupiedRecHitsByDepth[mydepth[2*i]+1],"i#eta","i#phi", 92, htmlFile, htmlDir);
00609           htmlFile <<"</tr>"<<endl;
00610         }
00611       htmlFile <<"</table>"<<endl;
00612       htmlFile <<"<br><hr><br>"<<endl;
00613     }
00614 
00615   // Dead cells failing pedestal tests
00616   if (deadclient_test_pedestal_)
00617     {
00618       htmlFile << "<h2><strong><a name=\"PED_PROBLEMS\">Pedestal Test Problems</strong></h2>"<<endl;
00619       htmlFile <<"A cell fails this test if its ADC sum is below (pedestal + Nsigma) for  "<<deadclient_checkNevents_pedestal_<<" consecutive events <br>"<<endl;
00620       htmlFile <<"<a href= \"#EXPERT_DEADCELL_TOP\" > Back to Top</a><br>"<<endl;
00621       htmlFile << "<table border=\"0\" cellspacing=\"0\" " << endl;
00622       htmlFile << "cellpadding=\"10\"> " << endl;
00623       gStyle->SetPalette(20,pcol_error_); // set palette to standard error color scheme
00624       for (int i=0;i<3;++i)
00625         {
00626           htmlFile << "<tr align=\"left\">" << endl;
00627           htmlAnyHisto(runNo,BelowPedestalDeadCellsByDepth[mydepth[2*i]],"i#eta","i#phi", 92, htmlFile, htmlDir);
00628           htmlAnyHisto(runNo,BelowPedestalDeadCellsByDepth[mydepth[2*i]+1],"i#eta","i#phi", 92, htmlFile, htmlDir);
00629           htmlFile <<"</tr>"<<endl;
00630         }
00631       if (deadclient_makeDiagnostics_)
00632         {
00633           htmlFile <<"<tr align=\"left\">" <<endl;
00634           htmlAnyHisto(runNo, d_HBnormped, "(ADC-ped)/width","", 92, htmlFile, htmlDir,1);
00635           htmlAnyHisto(runNo, d_HEnormped, "(ADC-ped)/width","", 92, htmlFile, htmlDir,1);
00636           htmlFile <<"</tr>"<<endl;
00637           htmlFile <<"<tr align=\"left\">" <<endl;
00638           htmlAnyHisto(runNo, d_HOnormped, "(ADC-ped)/width","", 92, htmlFile, htmlDir,1);
00639           htmlAnyHisto(runNo, d_HFnormped, "(ADC-ped)/width","", 92, htmlFile, htmlDir,1);
00640           htmlFile <<"</tr>"<<endl;
00641         } // if (deadclient_makeDiagnostics_)
00642       htmlFile <<"</table>"<<endl;
00643       htmlFile <<"<br><hr><br>"<<endl;
00644     }
00645 
00646   // Dead cells failing energy tests
00647   if (deadclient_test_energy_)
00648     {
00649       htmlFile << "<h2><strong><a name=\"ENERGY_PROBLEMS\">Energy Threshold Test Problems</strong></h2>"<<endl;
00650       htmlFile <<"A cell fails this test if its rechit energy is below threshold for "<<deadclient_checkNevents_energy_<<" consecutive events <br>"<<endl;
00651       htmlFile <<"<a href= \"#EXPERT_DEADCELL_TOP\" > Back to Top</a><br>"<<endl;
00652       htmlFile << "<table border=\"0\" cellspacing=\"0\" " << endl;
00653       htmlFile << "cellpadding=\"10\"> " << endl;
00654       gStyle->SetPalette(20,pcol_error_); // set palette to standard error color scheme
00655       for (int i=0;i<3;++i)
00656         {
00657           htmlFile << "<tr align=\"left\">" << endl;
00658           htmlAnyHisto(runNo,BelowEnergyThresholdCellsByDepth[mydepth[2*i]],"i#eta","i#phi", 92, htmlFile, htmlDir);
00659           htmlAnyHisto(runNo,BelowEnergyThresholdCellsByDepth[mydepth[2*i]+1],"i#eta","i#phi", 92, htmlFile, htmlDir);
00660           htmlFile <<"</tr>"<<endl;
00661         }
00662       if (deadclient_makeDiagnostics_)
00663         {
00664           htmlFile <<"<tr align=\"left\">" <<endl;
00665           htmlAnyHisto(runNo, d_HBrechitenergy, "Energy (GeV)","", 92, htmlFile, htmlDir,1,1);
00666           htmlAnyHisto(runNo, d_HErechitenergy, "Energy (GeV)","", 92, htmlFile, htmlDir,1,1);
00667           htmlFile <<"</tr>"<<endl;
00668           htmlFile <<"<tr align=\"left\">" <<endl;
00669           htmlAnyHisto(runNo, d_HOrechitenergy, "Energy (GeV)","", 92, htmlFile, htmlDir,1,1);
00670           htmlAnyHisto(runNo, d_HFrechitenergy, "Energy (GeV)","", 92, htmlFile, htmlDir,1,1);
00671           htmlFile <<"</tr>"<<endl;
00672         } // if (deadclient_makeDiagnostics_)
00673 
00674       htmlFile <<"</table>"<<endl;
00675       htmlFile <<"<br><hr><br>"<<endl;
00676     }
00677 
00678   // Dead cells failing neighbor tests
00679   if (deadclient_test_neighbor_)
00680     {
00681       htmlFile << "<h2><strong><a name=\"NEIGHBOR_PROBLEMS\">Neighbor Energy Test Problems</strong></h2>"<<endl;
00682       htmlFile <<"A cell fails this test if its rechit energy is significantly less than the average of its surrounding neighbors <br>"<<endl;
00683       htmlFile <<"<a href= \"#EXPERT_DEADCELL_TOP\" > Back to Top</a><br>"<<endl;
00684       htmlFile << "<table border=\"0\" cellspacing=\"0\" " << endl;
00685       htmlFile << "cellpadding=\"10\"> " << endl;
00686       gStyle->SetPalette(20,pcol_error_); // set palette to standard error color scheme
00687       for (int i=0;i<3;++i)
00688         {
00689           htmlFile << "<tr align=\"left\">" << endl;
00690           htmlAnyHisto(runNo,BelowNeighborsDeadCellsByDepth[mydepth[2*i]],"i#eta","i#phi", 92, htmlFile, htmlDir);
00691           htmlAnyHisto(runNo,BelowNeighborsDeadCellsByDepth[mydepth[2*i]+1],"i#eta","i#phi", 92, htmlFile, htmlDir);
00692           htmlFile <<"</tr>"<<endl;
00693         }
00694       if (deadclient_makeDiagnostics_)
00695         {
00696           gStyle->SetPalette(1);  // back to rainbow coloring
00697           htmlFile <<"<tr align=\"left\">" <<endl;
00698           htmlAnyHisto(runNo, d_HBenergyVsNeighbor, "i#eta","i#phi", 92, htmlFile, htmlDir);
00699           htmlAnyHisto(runNo, d_HEenergyVsNeighbor, "i#eta","i#phi", 92, htmlFile, htmlDir);
00700           htmlFile <<"</tr>"<<endl;
00701           htmlFile <<"<tr align=\"left\">" <<endl;
00702           htmlAnyHisto(runNo, d_HOenergyVsNeighbor, "i#eta","i#phi", 92, htmlFile, htmlDir);
00703           htmlAnyHisto(runNo, d_HFenergyVsNeighbor, "i#eta","i#phi", 92, htmlFile, htmlDir);
00704           htmlFile <<"</tr>"<<endl;
00705         } // if (deadclient_makeDiagnostics_)
00706 
00707       htmlFile <<"</table>"<<endl;
00708       htmlFile <<"<br><hr><br>"<<endl;
00709     }
00710 
00711 
00712   htmlFile <<"<br><hr><br><a href= \"#EXPERT_DEADCELL_TOP\" > Back to Top of Page </a><br>"<<endl;
00713   htmlFile <<"<a href = \".\"> Back to Main HCAL DQM Page </a><br>"<<endl;
00714   htmlFile <<"<a href= \""<<htmlName.c_str()<<"\" > Back to Dead Cell Status Page </a><br>"<<endl;
00715 
00716   htmlFile << "</body> " << endl;
00717   htmlFile << "</html> " << endl;
00718   
00719   htmlFile.close();
00720 
00721   if (showTiming_)
00722     {
00723       cpu_timer.stop();  cout <<"TIMER:: HcalDeadCellClient  HTMLEXPERTOUTPUT ->"<<cpu_timer.cpuTime()<<endl;
00724     }
00725   return;
00726 } // void HcalDeadCellClient::htmlExpertOutput(...)

void HcalDeadCellClient::htmlOutput ( int  run,
string  htmlDir,
string  htmlName 
)

HtmlOutput.

Definition at line 369 of file HcalDeadCellClient.cc.

References funct::abs(), GenMuonPlsPt100GeV_cfg::cout, HcalBaseClient::cpu_timer, edm::CPUTimer::cpuTime(), deadclient_test_energy_, deadclient_test_neighbor_, deadclient_test_occupancy_, deadclient_test_pedestal_, deadclient_test_rechit_occupancy_, HcalBaseClient::debug_, lat::endl(), eta, gen_hydjet_hard_muon_trigger_cfg::etaMin, getHistograms(), htmlAnyHisto(), htmlExpertOutput(), HcalBaseClient::ievt_, int, minErrorFlag_, name, HcalBaseClient::pcol_error_, phi, ProblemDeadCells, ProblemDeadCellsByDepth, edm::CPUTimer::reset(), HcalBaseClient::showTiming_, edm::CPUTimer::start(), and edm::CPUTimer::stop().

Referenced by HcalMonitorClient::htmlOutput().

00370 {
00371   if (showTiming_)
00372     {
00373       cpu_timer.reset(); cpu_timer.start();
00374     }
00375   getHistograms(); 
00376   if (debug_>1) cout << "Preparing HcalDeadCellClient html output ..." << endl;
00377 
00378   string client = "DeadCellMonitor";
00379 
00380   ofstream htmlFile;
00381   htmlFile.open((htmlDir + htmlName).c_str());
00382 
00383   // html page header
00384   htmlFile << "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">  " << endl;
00385   htmlFile << "<html>  " << endl;
00386   htmlFile << "<head>  " << endl;
00387   htmlFile << "  <meta content=\"text/html; charset=ISO-8859-1\"  " << endl;
00388   htmlFile << " https-equiv=\"content-type\">  " << endl;
00389   htmlFile << "  <title>Monitor: Hcal Dead Cell Task output</title> " << endl;
00390   htmlFile << "</head>  " << endl;
00391   htmlFile << "<style type=\"text/css\"> td { font-weight: bold } </style>" << endl;
00392   htmlFile << "<body>  " << endl;
00393   htmlFile << "<br>  " << endl;
00394   htmlFile << "<h2>Run:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" << endl;
00395   htmlFile << "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span " << endl;
00396   htmlFile << " style=\"color: rgb(0, 0, 153);\">" << runNo << "</span></h2>" << endl;
00397   htmlFile << "<h2>Monitoring task:&nbsp;&nbsp;&nbsp;&nbsp; <span " << endl;
00398   htmlFile << " style=\"color: rgb(0, 0, 153);\">Hcal Dead Cells</span></h2> " << endl;
00399 
00400   htmlFile << "<h2>Events processed:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" << endl;
00401   htmlFile << "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span " << endl;
00402   htmlFile << " style=\"color: rgb(0, 0, 153);\">" << ievt_ << "</span></h2>" << endl;
00403   htmlFile << "<hr>" << endl;
00404 
00405   htmlFile << "<h2><strong>Hcal Dead Cell Status</strong></h2>" << endl;
00406   htmlFile << "<h3>" << endl;
00407   htmlFile << "</h3>" << endl;
00408 
00409   htmlFile << "<table align=\"center\" border=\"0\" cellspacing=\"0\" " << endl;
00410   htmlFile << "cellpadding=\"10\"> " << endl;
00411   htmlFile << "<tr align=\"center\">" << endl;
00412   gStyle->SetPalette(20,pcol_error_); // set palette to standard error color scheme
00413   htmlAnyHisto(runNo,ProblemDeadCells,"i#eta","i#phi", 92, htmlFile, htmlDir);
00414   htmlFile<<"</tr>"<<endl;
00415   htmlFile<<"<tr align=\"center\"><td> A cell is considered dead if it meets any of the following criteria:"<<endl;
00416   if (deadclient_test_occupancy_) htmlFile<<"<br> A cell's digi is not present for a number of consecutive events; "<<endl;
00417   if (deadclient_test_rechit_occupancy_) htmlFile<<"<br> A cell's rec hit is not present for a number of consecutive events; "<<endl;
00418 
00419   if (deadclient_test_pedestal_ ) htmlFile<<"<br> A cell's ADC sum is consistently less than (pedestal + N sigma);"<<endl;
00420   if (deadclient_test_energy_   ) htmlFile<<"<br> A cell's energy is consistently less than a threshold value;"<<endl;
00421   if (deadclient_test_neighbor_ ) htmlFile<<"<br> A cell's energy is much less than the average of its neighbors;"<<endl;
00422   htmlFile<<"</td>"<<endl;
00423   htmlFile<<"</tr></table>"<<endl;
00424   htmlFile<<"<hr><table align=\"center\" border=\"0\" cellspacing=\"0\" " << endl;
00425   htmlFile << "cellpadding=\"10\"> " << endl;
00426   htmlFile << "<tr align=\"center\">" << endl;
00427   htmlFile<<"<tr><td align=center><a href=\"Expert_"<< htmlName<<"\"><h2>Detailed Dead Cell Plots</h2> </a></br></td>"<<endl;
00428   htmlFile<<"</tr></table><br><hr>"<<endl;
00429   
00430   // Now print out problem cells
00431   htmlFile <<"<br>"<<endl;
00432   htmlFile << "<h2><strong>Hcal Problem Cells</strong></h2>" << endl;
00433   htmlFile << "(A problem cell is listed below if its failure rate exceeds "<<(100.*minErrorFlag_)<<"%).<br><br>"<<endl;
00434   htmlFile << "<table align=\"center\" border=\"1\" cellspacing=\"0\" " << endl;
00435   htmlFile << "cellpadding=\"10\"> " << endl;
00436   htmlFile << "<tr align=\"center\">" << endl;
00437   htmlFile <<"<td> Problem Dead Cells<br>(ieta, iphi, depth)</td><td align=\"center\"> Fraction of Events <br>in which cells are bad (%)</td></tr>"<<endl;
00438 
00439   if (ProblemDeadCells==0)
00440     {
00441       if (debug_) cout <<"<HcalDeadCellClient::htmlOutput>  ERROR: can't find Problem Dead Cell plot!"<<endl;
00442       return;
00443     }
00444   int etabins  = ProblemDeadCells->GetNbinsX();
00445   int phibins  = ProblemDeadCells->GetNbinsY();
00446   float etaMin = ProblemDeadCells->GetXaxis()->GetXmin();
00447   float phiMin = ProblemDeadCells->GetYaxis()->GetXmin();
00448 
00449   int eta,phi;
00450 
00451   ostringstream name;
00452   for (int depth=0;depth<6; ++depth)
00453     {
00454       for (int ieta=1;ieta<=etabins;++ieta)
00455         {
00456           for (int iphi=1; iphi<=phibins;++iphi)
00457             {
00458               eta=ieta+int(etaMin)-1;
00459               phi=iphi+int(phiMin)-1;
00460               if (abs(eta)>20 && phi%2!=1) continue;
00461               if (abs(eta)>39 && phi%4!=3) continue;
00462               int mydepth=depth+1;
00463               if (mydepth>4) mydepth-=4; // last two depth values are for HE depth 1,2
00464               if (ProblemDeadCellsByDepth[depth]==0)
00465                 {
00466                   continue;
00467                 }
00468               if (ProblemDeadCellsByDepth[depth]->GetBinContent(ieta,iphi)>minErrorFlag_)
00469                 {
00470                   if (depth<2)
00471                     (fabs(eta)<29) ? name<<"HB" : name<<"HF";
00472                   else if (depth==3)
00473                     (fabs(eta)<42) ? name<<"HO" : name<<"ZDC";
00474                   else name <<"HE";
00475                   htmlFile<<"<td>"<<name.str().c_str()<<" ("<<eta<<", "<<phi<<", "<<mydepth<<")</td><td align=\"center\">"<<ProblemDeadCellsByDepth[depth]->GetBinContent(ieta,iphi)*100.<<"</td></tr>"<<endl;
00476 
00477                   name.str("");
00478                 }
00479             } // for (int iphi=1;...)
00480         } // for (int ieta=1;...)
00481     } // for (int depth=0;...)
00482   
00483   
00484   // html page footer
00485   htmlFile <<"</table> " << endl;
00486   htmlFile << "</body> " << endl;
00487   htmlFile << "</html> " << endl;
00488 
00489   htmlFile.close();
00490   htmlExpertOutput(runNo, htmlDir, htmlName);
00491 
00492   if (showTiming_)
00493     {
00494       cpu_timer.stop();  cout <<"TIMER:: HcalDeadCellClient HTMLOUTPUT  -> "<<cpu_timer.cpuTime()<<endl;
00495     }
00496 
00497   return;
00498 } //void HcalDeadCellClient::htmlOutput(int runNo, ...) 

void HcalDeadCellClient::init ( const edm::ParameterSet ps,
DQMStore dbe,
string  clientName 
) [virtual]

Reimplemented from HcalBaseClient.

Definition at line 10 of file HcalDeadCellClient.cc.

References BelowEnergyThresholdCellsByDepth, BelowNeighborsDeadCellsByDepth, BelowPedestalDeadCellsByDepth, d_HBenergyVsNeighbor, d_HBnormped, d_HBrechitenergy, d_HEenergyVsNeighbor, d_HEnormped, d_HErechitenergy, d_HFenergyVsNeighbor, d_HFnormped, d_HFrechitenergy, d_HOenergyVsNeighbor, d_HOnormped, d_HOrechitenergy, deadclient_checkNevents_, deadclient_checkNevents_energy_, deadclient_checkNevents_neighbor_, deadclient_checkNevents_occupancy_, deadclient_checkNevents_pedestal_, deadclient_checkNevents_rechit_occupancy_, deadclient_makeDiagnostics_, deadclient_test_energy_, deadclient_test_neighbor_, deadclient_test_occupancy_, deadclient_test_pedestal_, deadclient_test_rechit_occupancy_, edm::ParameterSet::getUntrackedParameter(), i, HcalBaseClient::init(), minErrorFlag_, ProblemDeadCells, ProblemDeadCellsByDepth, subdets_, and UnoccupiedDeadCellsByDepth.

Referenced by HcalMonitorClient::initialize().

00010                                                                                     {
00011   //Call the base class first
00012   HcalBaseClient::init(ps,dbe,clientName);
00013 
00014   // Get variable values from cfg file
00015   // Set which dead cell checks will looked at
00016   deadclient_test_occupancy_         = ps.getUntrackedParameter<bool>("DeadCellClient_test_occupancy",true);
00017   deadclient_test_rechit_occupancy_  = ps.getUntrackedParameter<bool>("DeadCellClient_test_occupancy",true);
00018   deadclient_test_pedestal_          = ps.getUntrackedParameter<bool>("DeadCellClient_test_pedestal",true);
00019   deadclient_test_neighbor_          = ps.getUntrackedParameter<bool>("DeadCellClient_test_neighbor",true);
00020   deadclient_test_energy_            = ps.getUntrackedParameter<bool>("DeadCellClient_test_energy",true);
00021 
00022   deadclient_checkNevents_ = ps.getUntrackedParameter<int>("DeadCellClient_checkNevents",100);
00023   deadclient_checkNevents_occupancy_ = ps.getUntrackedParameter<int>("DeadCellClient_checkNevents_occupancy",deadclient_checkNevents_);
00024   deadclient_checkNevents_rechit_occupancy_ = ps.getUntrackedParameter<int>("DeadCellClient_checkNevents_rechit_occupancy",deadclient_checkNevents_);
00025   deadclient_checkNevents_pedestal_  = ps.getUntrackedParameter<int>("DeadCellClient_checkNevents_pedestal" ,deadclient_checkNevents_);
00026   deadclient_checkNevents_neighbor_  = ps.getUntrackedParameter<int>("DeadCellClient_checkNevents_neighbor" ,deadclient_checkNevents_);
00027   deadclient_checkNevents_energy_    = ps.getUntrackedParameter<int>("DeadCellClient_checkNevents_energy"   ,deadclient_checkNevents_);
00028 
00029   minErrorFlag_ = ps.getUntrackedParameter<double>("DeadCellClient_minErrorFlag",0.0);
00030 
00031   deadclient_makeDiagnostics_ = ps.getUntrackedParameter<bool>("DeadCellClient_makeDiagnosticPlots",false);
00032 
00033   // Set histograms to NULL
00034   ProblemDeadCells=0;
00035   for (int i=0;i<6;++i)
00036     {
00037       // Set each array's pointers to NULL
00038       ProblemDeadCellsByDepth[i]=0;
00039       UnoccupiedDeadCellsByDepth[i]=0;
00040       BelowPedestalDeadCellsByDepth[i]=0;
00041       BelowNeighborsDeadCellsByDepth[i]=0;
00042       BelowEnergyThresholdCellsByDepth[i]=0;
00043     }  
00044 
00045   if (deadclient_makeDiagnostics_)
00046     {
00047       d_HBnormped=0;
00048       d_HBrechitenergy=0;
00049       d_HBenergyVsNeighbor=0;
00050       d_HEnormped=0;
00051       d_HErechitenergy=0;
00052       d_HEenergyVsNeighbor=0;
00053       d_HOnormped=0;
00054       d_HOrechitenergy=0;
00055       d_HOenergyVsNeighbor=0;
00056       d_HFnormped=0;
00057       d_HFrechitenergy=0;
00058       d_HFenergyVsNeighbor=0;
00059     } // if (deadclient_makeDiagnostics_)
00060 
00061   subdets_.push_back("HB HF Depth 1 ");
00062   subdets_.push_back("HB HF Depth 2 ");
00063   subdets_.push_back("HE Depth 3 ");
00064   subdets_.push_back("HO ZDC ");
00065   subdets_.push_back("HE Depth 1 ");
00066   subdets_.push_back("HE Depth 2 ");
00067 
00068   return;
00069 } // void HcalDeadCellClient::init(...)

void HcalDeadCellClient::loadHistograms ( TFile *  f  ) 

Definition at line 730 of file HcalDeadCellClient.cc.

References BelowEnergyThresholdCellsByDepth, BelowNeighborsDeadCellsByDepth, BelowPedestalDeadCellsByDepth, deadclient_test_energy_, deadclient_test_neighbor_, deadclient_test_occupancy_, deadclient_test_pedestal_, deadclient_test_rechit_occupancy_, i, HcalBaseClient::ievt_, name, ProblemDeadCells, ProblemDeadCellsByDepth, HcalBaseClient::process_, s, subdets_, UnoccupiedDeadCellsByDepth, and UnoccupiedRecHitsByDepth.

00731 {
00732   TNamed* tnd = (TNamed*)infile->Get("DQMData/Hcal/DeadCellMonitor_Hcal/Dead Cell Task Event Number");
00733   if(tnd)
00734     {
00735       string s =tnd->GetTitle();
00736       ievt_ = -1;
00737       sscanf((s.substr(2,s.length()-2)).c_str(), "%d", &ievt_);
00738     }
00739 
00740   ostringstream name;
00741   // Grab individual histograms
00742   name<<process_.c_str()<<"DeadCellMonitor_Hcal/ ProblemDeadCells";
00743   ProblemDeadCells = (TH2F*)infile->Get(name.str().c_str());
00744   name.str("");
00745   
00746   for (int i=0;i<6;++i)
00747     {
00748       // Grab arrays of histograms
00749       name<<process_.c_str()<<"DeadCellMonitor_Hcal/problem_deadcells/"<<subdets_[i]<<" Problem Dead Cell Rate";
00750       ProblemDeadCellsByDepth[i] = (TH2F*)infile->Get(name.str().c_str());
00751       name.str("");
00752       if (deadclient_test_occupancy_)
00753         {
00754           name<<process_.c_str()<<"DeadCellMonitor_Hcal/dead_unoccupied_digi/"<<subdets_[i]<<"Dead Cells with No Digis";
00755           UnoccupiedDeadCellsByDepth[i] = (TH2F*)infile->Get(name.str().c_str());
00756           name.str("");
00757         }
00758       if (deadclient_test_rechit_occupancy_)
00759         {
00760           name<<process_.c_str()<<"DeadCellMonitor_Hcal/dead_unoccupied_rechit/"<<subdets_[i]<<"Dead Cells with No Rec Hits";
00761           UnoccupiedRecHitsByDepth[i] = (TH2F*)infile->Get(name.str().c_str());
00762           name.str("");
00763         }
00764 
00765       if (deadclient_test_pedestal_)
00766         {
00767           name<<process_.c_str()<<"DeadCellMonitor_Hcal/dead_pedestaltest"<<subdets_[i]<<"Dead Cells Failing Pedestal Test";
00768           BelowPedestalDeadCellsByDepth[i] = (TH2F*)infile->Get(name.str().c_str());
00769           name.str("");
00770         }
00771       if (deadclient_test_neighbor_)
00772         {
00773           name<<process_.c_str()<<"DeadCellMonitor_Hcal/dead_neighbortest"<<subdets_[i]<<"Dead Cells Failing Neighbor Test";
00774           BelowNeighborsDeadCellsByDepth[i] = (TH2F*)infile->Get(name.str().c_str());
00775           name.str("");
00776         }
00777       if (deadclient_test_energy_)
00778         {
00779           name<<process_.c_str()<<"DeadCellMonitor_Hcal/dead_energytest"<<subdets_[i]<<"Dead Cells Failing Energy Threshold Test";
00780           BelowEnergyThresholdCellsByDepth[i] = (TH2F*)infile->Get(name.str().c_str());
00781           name.str("");
00782         }
00783 
00784     } //for (int i=0;i<6;++i)
00785   return;
00786 } // void HcalDeadCellClient::loadHistograms(...)

void HcalDeadCellClient::report (  ) 

process report

Definition at line 198 of file HcalDeadCellClient.cc.

References GenMuonPlsPt100GeV_cfg::cout, HcalBaseClient::dbe_, HcalBaseClient::debug_, lat::endl(), DQMStore::get(), getHistograms(), HcalBaseClient::ievt_, me, name, HcalBaseClient::process_, s, setup(), and MonitorElement::valueString().

Referenced by HcalMonitorClient::report().

00199 {
00200   if(!dbe_) return;
00201   if ( debug_>1 ) cout << "HcalDeadCellClient: report" << endl;
00202   this->setup();
00203 
00204   ostringstream name;
00205   name<<process_.c_str()<<"Hcal/DeadCellMonitor_Hcal/Dead Cell Task Event Number";
00206   MonitorElement* me = dbe_->get(name.str().c_str());
00207   if ( me ) {
00208     string s = me->valueString();
00209     ievt_ = -1;
00210     sscanf((s.substr(2,s.length()-2)).c_str(), "%d", &ievt_);
00211     if ( debug_>1 ) cout << "Found '" << name.str().c_str() << "'" << endl;
00212   }
00213   getHistograms();
00214 
00215   return;
00216 } // HcalDeadCellClient::report()

void HcalDeadCellClient::resetAllME (  ) 

Definition at line 299 of file HcalDeadCellClient.cc.

References HcalBaseClient::dbe_, deadclient_makeDiagnostics_, deadclient_test_energy_, deadclient_test_neighbor_, deadclient_test_occupancy_, deadclient_test_pedestal_, deadclient_test_rechit_occupancy_, i, name, HcalBaseClient::process_, resetME(), and subdets_.

Referenced by beginRun(), and HcalMonitorClient::resetAllME().

00300 {
00301   if(!dbe_) return;
00302   
00303   ostringstream name;
00304 
00305   // Reset individual histograms
00306   name<<process_.c_str()<<"DeadCellMonitor_Hcal/ ProblemDeadCells";
00307   resetME(name.str().c_str(),dbe_);
00308   name.str("");
00309 
00310   for (int i=0;i<6;++i)
00311     {
00312       // Reset arrays of histograms
00313       // Problem Pedestal Plots
00314       name<<process_.c_str()<<"DeadCellMonitor_Hcal/problem_deadcells/"<<subdets_[i]<<" Problem Dead Cell Rate";
00315       resetME(name.str().c_str(),dbe_);
00316       name.str("");
00317       if (deadclient_test_occupancy_)
00318         {
00319           name<<process_.c_str()<<"DeadCellMonitor_Hcal/dead_unoccupied_digi/"<<subdets_[i]<<"Dead Cells with No Digis";
00320           resetME(name.str().c_str(),dbe_);
00321           name.str("");
00322         }
00323       if (deadclient_test_rechit_occupancy_)
00324         {
00325           name<<process_.c_str()<<"DeadCellMonitor_Hcal/dead_unoccupied_rechit/"<<subdets_[i]<<"Dead Cells with No Rec Hits";
00326           resetME(name.str().c_str(),dbe_);
00327           name.str("");
00328         }
00329 
00330       if (deadclient_test_pedestal_)
00331         {
00332           name<<process_.c_str()<<"DeadCellMonitor_Hcal/dead_pedestaltest"<<subdets_[i]<<"Dead Cells Failing Pedestal Test";
00333           resetME(name.str().c_str(),dbe_);
00334           name.str("");
00335         }
00336       if (deadclient_test_neighbor_)
00337         {
00338           name<<process_.c_str()<<"DeadCellMonitor_Hcal/dead_neighbortest"<<subdets_[i]<<"Dead Cells Failing Neighbor Test";
00339           resetME(name.str().c_str(),dbe_);
00340           name.str("");
00341         }
00342       if (deadclient_test_energy_)
00343         {
00344           name<<process_.c_str()<<"DeadCellMonitor_Hcal/dead_energytest"<<subdets_[i]<<"Dead Cells Failing Energy Threshold Test";
00345           resetME(name.str().c_str(),dbe_);
00346           name.str("");
00347         }
00348       if (deadclient_makeDiagnostics_)
00349         {
00350           resetME((process_+"DeadCellMonitor_Hcal/diagnostics/pedestal/HB_normped").c_str(),dbe_);
00351           resetME((process_+"DeadCellMonitor_Hcal/diagnostics/energythreshold/HB_rechitenergy").c_str(),dbe_);
00352           resetME((process_+"DeadCellMonitor_Hcal/diagnostics/neighborcells/HB_energyVsNeighbor").c_str(),dbe_);
00353           resetME((process_+"DeadCellMonitor_Hcal/diagnostics/pedestal/HE_normped").c_str(),dbe_);
00354           resetME((process_+"DeadCellMonitor_Hcal/diagnostics/energythreshold/HE_rechitenergy").c_str(),dbe_);
00355           resetME((process_+"DeadCellMonitor_Hcal/diagnostics/neighborcells/HE_energyVsNeighbor").c_str(),dbe_);
00356           resetME((process_+"DeadCellMonitor_Hcal/diagnostics/pedestal/HO_normped").c_str(),dbe_);
00357           resetME((process_+"DeadCellMonitor_Hcal/diagnostics/energythreshold/HO_rechitenergy").c_str(),dbe_);
00358           resetME((process_+"DeadCellMonitor_Hcal/diagnostics/neighborcells/HO_energyVsNeighbor").c_str(),dbe_);
00359           resetME((process_+"DeadCellMonitor_Hcal/diagnostics/pedestal/HF_normped").c_str(),dbe_);
00360           resetME((process_+"DeadCellMonitor_Hcal/diagnostics/energythreshold/HF_rechitenergy").c_str(),dbe_);
00361           resetME((process_+"DeadCellMonitor_Hcal/diagnostics/neighborcells/HF_energyVsNeighbor").c_str(),dbe_);
00362     } // if (deadclient_makeDiagnostics_)
00363 
00364     }
00365   return;
00366 } // void HcalDeadCellClient::resetAllME()

void HcalDeadCellClient::setup ( void   ) 

Setup.

Definition at line 118 of file HcalDeadCellClient.cc.

Referenced by beginJob(), beginRun(), and report().

00119 {
00120   return;
00121 } // void HcalDeadCellClient::setup(void)


Member Data Documentation

TH2F* HcalDeadCellClient::BelowEnergyThresholdCellsByDepth[6] [private]

Definition at line 83 of file HcalDeadCellClient.h.

Referenced by cleanup(), getHistograms(), htmlExpertOutput(), init(), and loadHistograms().

TH2F* HcalDeadCellClient::BelowNeighborsDeadCellsByDepth[6] [private]

Definition at line 82 of file HcalDeadCellClient.h.

Referenced by cleanup(), getHistograms(), htmlExpertOutput(), init(), and loadHistograms().

TH2F* HcalDeadCellClient::BelowPedestalDeadCellsByDepth[6] [private]

Definition at line 81 of file HcalDeadCellClient.h.

Referenced by cleanup(), getHistograms(), htmlExpertOutput(), init(), and loadHistograms().

TH2F* HcalDeadCellClient::d_HBenergyVsNeighbor [private]

Definition at line 96 of file HcalDeadCellClient.h.

Referenced by cleanup(), getHistograms(), htmlExpertOutput(), and init().

TH1F* HcalDeadCellClient::d_HBnormped [private]

Definition at line 86 of file HcalDeadCellClient.h.

Referenced by cleanup(), getHistograms(), htmlExpertOutput(), and init().

TH1F* HcalDeadCellClient::d_HBrechitenergy [private]

Definition at line 91 of file HcalDeadCellClient.h.

Referenced by cleanup(), getHistograms(), htmlExpertOutput(), and init().

TH2F* HcalDeadCellClient::d_HEenergyVsNeighbor [private]

Definition at line 97 of file HcalDeadCellClient.h.

Referenced by cleanup(), getHistograms(), htmlExpertOutput(), and init().

TH1F* HcalDeadCellClient::d_HEnormped [private]

Definition at line 87 of file HcalDeadCellClient.h.

Referenced by cleanup(), getHistograms(), htmlExpertOutput(), and init().

TH1F* HcalDeadCellClient::d_HErechitenergy [private]

Definition at line 92 of file HcalDeadCellClient.h.

Referenced by cleanup(), getHistograms(), htmlExpertOutput(), and init().

TH2F* HcalDeadCellClient::d_HFenergyVsNeighbor [private]

Definition at line 99 of file HcalDeadCellClient.h.

Referenced by cleanup(), getHistograms(), htmlExpertOutput(), and init().

TH1F* HcalDeadCellClient::d_HFnormped [private]

Definition at line 89 of file HcalDeadCellClient.h.

Referenced by cleanup(), getHistograms(), htmlExpertOutput(), and init().

TH1F* HcalDeadCellClient::d_HFrechitenergy [private]

Definition at line 94 of file HcalDeadCellClient.h.

Referenced by cleanup(), getHistograms(), htmlExpertOutput(), and init().

TH2F* HcalDeadCellClient::d_HOenergyVsNeighbor [private]

Definition at line 98 of file HcalDeadCellClient.h.

Referenced by cleanup(), getHistograms(), htmlExpertOutput(), and init().

TH1F* HcalDeadCellClient::d_HOnormped [private]

Definition at line 88 of file HcalDeadCellClient.h.

Referenced by cleanup(), getHistograms(), htmlExpertOutput(), and init().

TH1F* HcalDeadCellClient::d_HOrechitenergy [private]

Definition at line 93 of file HcalDeadCellClient.h.

Referenced by cleanup(), getHistograms(), htmlExpertOutput(), and init().

int HcalDeadCellClient::deadclient_checkNevents_ [private]

Definition at line 69 of file HcalDeadCellClient.h.

Referenced by init().

int HcalDeadCellClient::deadclient_checkNevents_energy_ [private]

Definition at line 74 of file HcalDeadCellClient.h.

Referenced by htmlExpertOutput(), and init().

int HcalDeadCellClient::deadclient_checkNevents_neighbor_ [private]

Definition at line 73 of file HcalDeadCellClient.h.

Referenced by init().

int HcalDeadCellClient::deadclient_checkNevents_occupancy_ [private]

Definition at line 70 of file HcalDeadCellClient.h.

Referenced by htmlExpertOutput(), and init().

int HcalDeadCellClient::deadclient_checkNevents_pedestal_ [private]

Definition at line 72 of file HcalDeadCellClient.h.

Referenced by htmlExpertOutput(), and init().

int HcalDeadCellClient::deadclient_checkNevents_rechit_occupancy_ [private]

Definition at line 71 of file HcalDeadCellClient.h.

Referenced by htmlExpertOutput(), and init().

bool HcalDeadCellClient::deadclient_makeDiagnostics_ [private]

Definition at line 61 of file HcalDeadCellClient.h.

Referenced by cleanup(), getHistograms(), htmlExpertOutput(), init(), and resetAllME().

bool HcalDeadCellClient::deadclient_test_energy_ [private]

Definition at line 67 of file HcalDeadCellClient.h.

Referenced by getHistograms(), htmlExpertOutput(), htmlOutput(), init(), loadHistograms(), and resetAllME().

bool HcalDeadCellClient::deadclient_test_neighbor_ [private]

Definition at line 66 of file HcalDeadCellClient.h.

Referenced by getHistograms(), htmlExpertOutput(), htmlOutput(), init(), loadHistograms(), and resetAllME().

bool HcalDeadCellClient::deadclient_test_occupancy_ [private]

Definition at line 63 of file HcalDeadCellClient.h.

Referenced by getHistograms(), htmlExpertOutput(), htmlOutput(), init(), loadHistograms(), and resetAllME().

bool HcalDeadCellClient::deadclient_test_pedestal_ [private]

Definition at line 65 of file HcalDeadCellClient.h.

Referenced by getHistograms(), htmlExpertOutput(), htmlOutput(), init(), loadHistograms(), and resetAllME().

bool HcalDeadCellClient::deadclient_test_rechit_occupancy_ [private]

Definition at line 64 of file HcalDeadCellClient.h.

Referenced by getHistograms(), htmlExpertOutput(), htmlOutput(), init(), loadHistograms(), and resetAllME().

double HcalDeadCellClient::minErrorFlag_ [private]

Definition at line 60 of file HcalDeadCellClient.h.

Referenced by htmlOutput(), and init().

TH2F* HcalDeadCellClient::ProblemDeadCells [private]

Definition at line 77 of file HcalDeadCellClient.h.

Referenced by cleanup(), getHistograms(), htmlOutput(), init(), and loadHistograms().

TH2F* HcalDeadCellClient::ProblemDeadCellsByDepth[6] [private]

Definition at line 78 of file HcalDeadCellClient.h.

Referenced by cleanup(), getHistograms(), htmlExpertOutput(), htmlOutput(), init(), and loadHistograms().

vector<std::string> HcalDeadCellClient::subdets_ [private]

Definition at line 58 of file HcalDeadCellClient.h.

Referenced by init(), loadHistograms(), and resetAllME().

TH2F* HcalDeadCellClient::UnoccupiedDeadCellsByDepth[6] [private]

Definition at line 79 of file HcalDeadCellClient.h.

Referenced by cleanup(), getHistograms(), htmlExpertOutput(), init(), and loadHistograms().

TH2F* HcalDeadCellClient::UnoccupiedRecHitsByDepth[6] [private]

Definition at line 80 of file HcalDeadCellClient.h.

Referenced by getHistograms(), htmlExpertOutput(), and loadHistograms().


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