CMS 3D CMS Logo

HcalRecHitClient.cc

Go to the documentation of this file.
00001 #include <DQM/HcalMonitorClient/interface/HcalRecHitClient.h>
00002 #include <DQM/HcalMonitorClient/interface/HcalClientUtils.h>
00003 #include <math.h>
00004 #include <iostream>
00005 
00006 HcalRecHitClient::HcalRecHitClient(){} // constructor 
00007 
00008 void HcalRecHitClient::init(const ParameterSet& ps, DQMStore* dbe,string clientName){
00009   //Call the base class first
00010   HcalBaseClient::init(ps,dbe,clientName);
00011 
00012   // Get variable values from cfg file
00013 
00014   rechitclient_checkNevents_ = ps.getUntrackedParameter<int>("RecHitClient_checkNevents",100);
00015 
00016   minErrorFlag_ = ps.getUntrackedParameter<double>("RecHitClient_minErrorFlag",0.0);
00017 
00018   rechitclient_makeDiagnostics_ = ps.getUntrackedParameter<bool>("RecHitClient_makeDiagnosticPlots",false);
00019 
00020   // Set histograms to NULL
00021   ProblemRecHits=0;
00022   for (int i=0;i<6;++i)
00023     {
00024       // Set each array's pointers to NULL
00025       ProblemRecHitsByDepth[i]    =0;
00026       OccupancyByDepth[i]         =0;
00027       OccupancyThreshByDepth[i]   =0;
00028       EnergyByDepth[i]            =0;
00029       EnergyThreshByDepth[i]      =0;
00030       TimeByDepth[i]              =0;
00031       TimeThreshByDepth[i]        =0;
00032     }  
00033 
00034   if (rechitclient_makeDiagnostics_)
00035     {
00036       d_HBEnergy                  =0;
00037       d_HBTotalEnergy             =0;
00038       d_HBTime                    =0;
00039       d_HBOccupancy               =0;
00040       d_HBThreshEnergy            =0;
00041       d_HBThreshTotalEnergy       =0;
00042       d_HBThreshTime              =0;
00043       d_HBThreshOccupancy         =0;
00044       
00045       d_HEEnergy                  =0;
00046       d_HETotalEnergy             =0;
00047       d_HETime                    =0;
00048       d_HEOccupancy               =0;
00049       d_HEThreshEnergy            =0;
00050       d_HEThreshTotalEnergy       =0;
00051       d_HEThreshTime              =0;
00052       d_HEThreshOccupancy         =0;
00053       
00054       d_HOEnergy                  =0;
00055       d_HOTotalEnergy             =0;
00056       d_HOTime                    =0;
00057       d_HOOccupancy               =0;
00058       d_HOThreshEnergy            =0;
00059       d_HOThreshTotalEnergy       =0;
00060       d_HOThreshTime              =0;
00061       d_HOThreshOccupancy         =0;
00062       
00063       d_HFEnergy                  =0;
00064       d_HFTotalEnergy             =0;
00065       d_HFTime                    =0;
00066       d_HFOccupancy               =0;
00067       d_HFThreshEnergy            =0;
00068       d_HFThreshTotalEnergy       =0;
00069       d_HFThreshTime              =0;
00070       d_HFThreshOccupancy         =0;
00071     } // if (rechitclient_makeDiagnostics_)
00072 
00073   subdets_.push_back("HB HF Depth 1 ");
00074   subdets_.push_back("HB HF Depth 2 ");
00075   subdets_.push_back("HE Depth 3 ");
00076   subdets_.push_back("HO ZDC ");
00077   subdets_.push_back("HE Depth 1 ");
00078   subdets_.push_back("HE Depth 2 ");
00079 
00080   return;
00081 } // void HcalRecHitClient::init(...)
00082 
00083 
00084 HcalRecHitClient::~HcalRecHitClient()
00085 {
00086   this->cleanup();
00087 } // destructor
00088 
00089 
00090 void HcalRecHitClient::beginJob(){
00091 
00092   if ( debug_>1 ) cout << "HcalRecHitClient: beginJob" << endl;
00093 
00094   ievt_ = 0;
00095   jevt_ = 0;
00096   this->setup();
00097   return;
00098 } // void HcalRecHitClient::beginJob(const EventSetup& eventSetup);
00099 
00100 
00101 void HcalRecHitClient::beginRun(void)
00102 {
00103   if ( debug_>1 ) cout << "HcalRecHitClient: beginRun" << endl;
00104 
00105   jevt_ = 0;
00106   this->setup();
00107   this->resetAllME();
00108   return;
00109 } // void HcalRecHitClient::beginRun(void)
00110 
00111 
00112 void HcalRecHitClient::endJob(void) 
00113 {
00114   if ( debug_>1 ) cout << "HcalRecHitClient: endJob, ievt = " << ievt_ << endl;
00115 
00116   this->cleanup();
00117   return;
00118 } // void HcalRecHitClient::endJob(void)
00119 
00120 
00121 void HcalRecHitClient::endRun(void) 
00122 {
00123   if ( debug_>1 ) cout << "HcalRecHitClient: endRun, jevt = " << jevt_ << endl;
00124 
00125   this->cleanup();
00126   return;
00127 } // void HcalRecHitClient::endRun(void)
00128 
00129 
00130 void HcalRecHitClient::setup(void) 
00131 {
00132   return;
00133 } // void HcalRecHitClient::setup(void)
00134 
00135 
00136 void HcalRecHitClient::cleanup(void) 
00137 {
00138   if(cloneME_)
00139     {
00140       // delete individual histogram pointers
00141       if (ProblemRecHits) delete ProblemRecHits;
00142       
00143       for (int i=0;i<6;++i)
00144         {
00145           // delete pointers within arrays of histograms
00146           if (ProblemRecHitsByDepth[i])           delete ProblemRecHitsByDepth[i];
00147           if (OccupancyByDepth[i])                delete OccupancyByDepth[i];
00148           if (OccupancyThreshByDepth[i])          delete OccupancyThreshByDepth[i];
00149           if (EnergyByDepth[i])                   delete EnergyByDepth[i];
00150           if (EnergyThreshByDepth[i])             delete EnergyThreshByDepth[i];
00151           if (TimeByDepth[i])                     delete TimeByDepth[i];
00152           if (TimeThreshByDepth[i])               delete TimeThreshByDepth[i];
00153         }
00154       
00155       if (rechitclient_makeDiagnostics_)
00156         {
00157           if (d_HBEnergy)                        delete d_HBEnergy;
00158           if (d_HBTotalEnergy)                   delete d_HBTotalEnergy;
00159           if (d_HBTime)                          delete d_HBTime;
00160           if (d_HBOccupancy)                     delete d_HBOccupancy;
00161           if (d_HBThreshEnergy)                  delete d_HBThreshEnergy;
00162           if (d_HBThreshTotalEnergy)             delete d_HBThreshTotalEnergy;
00163           if (d_HBThreshTime)                    delete d_HBThreshTime;
00164           if (d_HBThreshOccupancy)               delete d_HBThreshOccupancy;
00165 
00166           if (d_HEEnergy)                        delete d_HEEnergy;
00167           if (d_HETotalEnergy)                   delete d_HETotalEnergy;
00168           if (d_HETime)                          delete d_HETime;
00169           if (d_HEOccupancy)                     delete d_HEOccupancy;
00170           if (d_HEThreshEnergy)                  delete d_HEThreshEnergy;
00171           if (d_HEThreshTotalEnergy)             delete d_HEThreshTotalEnergy;
00172           if (d_HEThreshTime)                    delete d_HEThreshTime;
00173           if (d_HEThreshOccupancy)               delete d_HEThreshOccupancy;
00174 
00175           if (d_HOEnergy)                        delete d_HOEnergy;
00176           if (d_HOTotalEnergy)                   delete d_HOTotalEnergy;
00177           if (d_HOTime)                          delete d_HOTime;
00178           if (d_HOOccupancy)                     delete d_HOOccupancy;
00179           if (d_HOThreshEnergy)                  delete d_HOThreshEnergy;
00180           if (d_HOThreshTotalEnergy)             delete d_HOThreshTotalEnergy;
00181           if (d_HOThreshTime)                    delete d_HOThreshTime;
00182           if (d_HOThreshOccupancy)               delete d_HOThreshOccupancy;
00183 
00184           if (d_HFEnergy)                        delete d_HFEnergy;
00185           if (d_HFTotalEnergy)                   delete d_HFTotalEnergy;
00186           if (d_HFTime)                          delete d_HFTime;
00187           if (d_HFOccupancy)                     delete d_HFOccupancy;
00188           if (d_HFThreshEnergy)                  delete d_HFThreshEnergy;
00189           if (d_HFThreshTotalEnergy)             delete d_HFThreshTotalEnergy;
00190           if (d_HFThreshTime)                    delete d_HFThreshTime;
00191           if (d_HFThreshOccupancy)               delete d_HFThreshOccupancy;
00192 
00193         } // if (rechitclient_makeDiagnostics_)
00194       
00195     } // if (cloneME_)
00196 
00197   // Set individual pointers to NULL
00198   ProblemRecHits = 0;
00199 
00200   for (int i=0;i<6;++i)
00201     {
00202       ProblemRecHitsByDepth[i]    =0;
00203       OccupancyByDepth[i]          =0;
00204       OccupancyThreshByDepth[i]   =0;
00205       EnergyByDepth[i]            =0;
00206       EnergyThreshByDepth[i]      =0;
00207       TimeByDepth[i]              =0;
00208       TimeThreshByDepth[i]        =0;
00209     }
00210   
00211   if (rechitclient_makeDiagnostics_)
00212     {
00213       d_HBEnergy                  =0;
00214       d_HBTotalEnergy             =0;
00215       d_HBTime                    =0;
00216       d_HBOccupancy               =0;
00217       d_HBThreshEnergy            =0;
00218       d_HBThreshTotalEnergy       =0;
00219       d_HBThreshTime              =0;
00220       d_HBThreshOccupancy         =0;
00221       
00222       d_HEEnergy                  =0;
00223       d_HETotalEnergy             =0;
00224       d_HETime                    =0;
00225       d_HEOccupancy               =0;
00226       d_HEThreshEnergy            =0;
00227       d_HEThreshTotalEnergy       =0;
00228       d_HEThreshTime              =0;
00229       d_HEThreshOccupancy         =0;
00230       
00231       d_HOEnergy                  =0;
00232       d_HOTotalEnergy             =0;
00233       d_HOTime                    =0;
00234       d_HOOccupancy               =0;
00235       d_HOThreshEnergy            =0;
00236       d_HOThreshTotalEnergy       =0;
00237       d_HOThreshTime              =0;
00238       d_HOThreshOccupancy         =0;
00239       
00240       d_HFEnergy                  =0;
00241       d_HFTotalEnergy             =0;
00242       d_HFTime                    =0;
00243       d_HFOccupancy               =0;
00244       d_HFThreshEnergy            =0;
00245       d_HFThreshTotalEnergy       =0;
00246       d_HFThreshTime              =0;
00247       d_HFThreshOccupancy         =0;
00248     } // if (rechitclient_makeDiagnostics_)
00249 
00250   dqmReportMapErr_.clear(); 
00251   dqmReportMapWarn_.clear(); 
00252   dqmReportMapOther_.clear();
00253   dqmQtests_.clear();
00254   
00255   return;
00256 } // void HcalRecHitClient::cleanup(void)
00257 
00258 
00259 void HcalRecHitClient::report()
00260 {
00261   if(!dbe_) return;
00262   if ( debug_>1 ) cout << "HcalRecHitClient: report" << endl;
00263   this->setup();
00264 
00265   ostringstream name;
00266   name<<process_.c_str()<<"Hcal/RecHitMonitor_Hcal/RecHit Event Number";
00267   MonitorElement* me = dbe_->get(name.str().c_str());
00268   if ( me ) 
00269     {
00270       string s = me->valueString();
00271       ievt_ = -1;
00272       sscanf((s.substr(2,s.length()-2)).c_str(), "%d", &ievt_);
00273       if ( debug_>1 ) cout << "Found '" << name.str().c_str() << "'" << endl;
00274     }
00275   getHistograms();
00276 
00277   return;
00278 } // HcalRecHitClient::report()
00279 
00280 
00281 void HcalRecHitClient::getHistograms()
00282 {
00283   if(!dbe_) return;
00284 
00285   ostringstream name;
00286   // dummy histograms
00287   TH2F* dummy2D = new TH2F();
00288   TH1F* dummy1D = new TH1F();
00289 
00290   // Grab individual histograms
00291   name<<process_.c_str()<<"RecHitMonitor_Hcal/ ProblemRecHits";
00292   ProblemRecHits = getAnyHisto(dummy2D, name.str(), process_, dbe_, debug_, cloneME_);
00293   name.str("");
00294 
00295   getSJ6histos("RecHitMonitor_Hcal/problem_rechits/", " Problem RecHit Rate", ProblemRecHitsByDepth);
00296   getSJ6histos("RecHitMonitor_Hcal/rechit_occupancy/","Rec Hit Average Occupancy", OccupancyByDepth);
00297   getSJ6histos("RecHitMonitor_Hcal/rechit_occupancy/","Rec Hit Average Occupancy Above Threshold", OccupancyThreshByDepth);
00298   getSJ6histos("RecHitMonitor_Hcal/rechit_energy/","Rec Hit Average Energy", EnergyByDepth);
00299   getSJ6histos("RecHitMonitor_Hcal/rechit_energy/","Rec Hit Average Energy Above Threshold", EnergyThreshByDepth);
00300   getSJ6histos("RecHitMonitor_Hcal/rechit_time/","Rec Hit Average Time", TimeByDepth);
00301   getSJ6histos("RecHitMonitor_Hcal/rechit_time/","Rec Hit Average Time Above Threshold", TimeThreshByDepth);
00302 
00303   if (rechitclient_makeDiagnostics_)
00304     {
00305       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/hb/HB_energy";
00306       d_HBEnergy=getAnyHisto(dummy1D, name.str(),process_,dbe_,debug_,cloneME_);
00307       name.str("");
00308       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/hb/HB_total_energy";
00309       d_HBTotalEnergy=getAnyHisto(dummy1D, name.str(),process_,dbe_,debug_,cloneME_);
00310       name.str("");
00311       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/hb/HB_time";
00312       d_HBTime=getAnyHisto(dummy1D, name.str(),process_,dbe_,debug_,cloneME_);
00313       name.str("");
00314       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/hb/HB_occupancy";
00315       d_HBOccupancy=getAnyHisto(dummy1D, name.str(),process_,dbe_,debug_,cloneME_);
00316       name.str("");
00317       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/hb/HB_energy_thresh";
00318       d_HBThreshEnergy=getAnyHisto(dummy1D, name.str(),process_,dbe_,debug_,cloneME_);
00319       name.str("");
00320       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/hb/HB_total_energy_thresh";
00321       d_HBThreshTotalEnergy=getAnyHisto(dummy1D, name.str(),process_,dbe_,debug_,cloneME_);
00322       name.str("");
00323       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/hb/HB_time_thresh";
00324       d_HBThreshTime=getAnyHisto(dummy1D, name.str(),process_,dbe_,debug_,cloneME_);
00325       name.str("");
00326       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/hb/HB_occupancy_thresh";
00327       d_HBThreshOccupancy=getAnyHisto(dummy1D, name.str(),process_,dbe_,debug_,cloneME_);
00328       name.str("");
00329 
00330       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/he/HE_energy";
00331       d_HEEnergy=getAnyHisto(dummy1D, name.str(),process_,dbe_,debug_,cloneME_);
00332       name.str("");
00333       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/he/HE_total_energy";
00334       d_HETotalEnergy=getAnyHisto(dummy1D, name.str(),process_,dbe_,debug_,cloneME_);
00335       name.str("");
00336       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/he/HE_time";
00337       d_HETime=getAnyHisto(dummy1D, name.str(),process_,dbe_,debug_,cloneME_);
00338       name.str("");
00339       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/he/HE_occupancy";
00340       d_HEOccupancy=getAnyHisto(dummy1D, name.str(),process_,dbe_,debug_,cloneME_);
00341       name.str("");
00342       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/he/HE_energy_thresh";
00343       d_HEThreshEnergy=getAnyHisto(dummy1D, name.str(),process_,dbe_,debug_,cloneME_);
00344       name.str("");
00345       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/he/HE_total_energy_thresh";
00346       d_HEThreshTotalEnergy=getAnyHisto(dummy1D, name.str(),process_,dbe_,debug_,cloneME_);
00347       name.str("");
00348       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/he/HE_time_thresh";
00349       d_HEThreshTime=getAnyHisto(dummy1D, name.str(),process_,dbe_,debug_,cloneME_);
00350       name.str("");
00351       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/he/HE_occupancy_thresh";
00352       d_HEThreshOccupancy=getAnyHisto(dummy1D, name.str(),process_,dbe_,debug_,cloneME_);
00353       name.str("");
00354 
00355       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/ho/HO_energy";
00356       d_HOEnergy=getAnyHisto(dummy1D, name.str(),process_,dbe_,debug_,cloneME_);
00357       name.str("");
00358       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/ho/HO_total_energy";
00359       d_HOTotalEnergy=getAnyHisto(dummy1D, name.str(),process_,dbe_,debug_,cloneME_);
00360       name.str("");
00361       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/ho/HO_time";
00362       d_HOTime=getAnyHisto(dummy1D, name.str(),process_,dbe_,debug_,cloneME_);
00363       name.str("");
00364       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/ho/HO_occupancy";
00365       d_HOOccupancy=getAnyHisto(dummy1D, name.str(),process_,dbe_,debug_,cloneME_);
00366       name.str("");
00367       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/ho/HO_energy_thresh";
00368       d_HOThreshEnergy=getAnyHisto(dummy1D, name.str(),process_,dbe_,debug_,cloneME_);
00369       name.str("");
00370       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/ho/HO_total_energy_thresh";
00371       d_HOThreshTotalEnergy=getAnyHisto(dummy1D, name.str(),process_,dbe_,debug_,cloneME_);
00372       name.str("");
00373       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/ho/HO_time_thresh";
00374       d_HOThreshTime=getAnyHisto(dummy1D, name.str(),process_,dbe_,debug_,cloneME_);
00375       name.str("");
00376       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/ho/HO_occupancy_thresh";
00377       d_HOThreshOccupancy=getAnyHisto(dummy1D, name.str(),process_,dbe_,debug_,cloneME_);
00378       name.str("");
00379 
00380       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/hf/HF_energy";
00381       d_HFEnergy=getAnyHisto(dummy1D, name.str(),process_,dbe_,debug_,cloneME_);
00382       name.str("");
00383       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/hf/HF_total_energy";
00384       d_HFTotalEnergy=getAnyHisto(dummy1D, name.str(),process_,dbe_,debug_,cloneME_);
00385       name.str("");
00386       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/hf/HF_time";
00387       d_HFTime=getAnyHisto(dummy1D, name.str(),process_,dbe_,debug_,cloneME_);
00388       name.str("");
00389       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/hf/HF_occupancy";
00390       d_HFOccupancy=getAnyHisto(dummy1D, name.str(),process_,dbe_,debug_,cloneME_);
00391       name.str("");
00392       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/hf/HF_energy_thresh";
00393       d_HFThreshEnergy=getAnyHisto(dummy1D, name.str(),process_,dbe_,debug_,cloneME_);
00394       name.str("");
00395       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/hf/HF_total_energy_thresh";
00396       d_HFThreshTotalEnergy=getAnyHisto(dummy1D, name.str(),process_,dbe_,debug_,cloneME_);
00397       name.str("");
00398       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/hf/HF_time_thresh";
00399       d_HFThreshTime=getAnyHisto(dummy1D, name.str(),process_,dbe_,debug_,cloneME_);
00400       name.str("");
00401       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/hf/HF_occupancy_thresh";
00402       d_HFThreshOccupancy=getAnyHisto(dummy1D, name.str(),process_,dbe_,debug_,cloneME_);
00403       name.str("");
00404     } // if (rechitclient_makeDiagnostics_)
00405 
00406 
00407   // Force min/max on problemcells
00408   for (int i=0;i<6;++i)
00409     {
00410       if (ProblemRecHitsByDepth[i])
00411         {
00412           ProblemRecHitsByDepth[i]->SetMaximum(1);
00413           ProblemRecHitsByDepth[i]->SetMinimum(0);
00414         }
00415       name.str("");
00416 
00417     } // for (int i=0;i<6;++i)
00418 
00419   return;
00420 } //void HcalRecHitClient::getHistograms()
00421 
00422 
00423 void HcalRecHitClient::analyze(void)
00424 {
00425   jevt_++;
00426   if ( jevt_ % 10 == 0 ) 
00427     {
00428       if ( debug_>1 ) cout << "<HcalRecHitClient::analyze>  Running analyze "<<endl;
00429     }
00430   getHistograms();
00431   return;
00432 } // void HcalRecHitClient::analyze(void)
00433 
00434 
00435 void HcalRecHitClient::createTests()
00436 {
00437   // Removed a bunch of code that was in older versions of HcalRecHitClient
00438   // tests should now be handled from outside
00439   if(!dbe_) return;
00440   return;
00441 } // void HcalRecHitClient::createTests()
00442 
00443 
00444 void HcalRecHitClient::resetAllME()
00445 {
00446   if(!dbe_) return;
00447   
00448   ostringstream name;
00449 
00450   // Reset individual histograms
00451   name<<process_.c_str()<<"RecHitMonitor_Hcal/ ProblemRecHits";
00452   resetME(name.str().c_str(),dbe_);
00453   name.str("");
00454 
00455   for (int i=0;i<6;++i)
00456     {
00457       // Reset arrays of histograms
00458       name<<process_.c_str()<<"RecHitMonitor_Hcal/problem_rechits/"<<subdets_[i]<<" Problem RecHit Rate";
00459       resetME(name.str().c_str(),dbe_);
00460       name.str("");
00461       name<<process_.c_str()<<"RecHitMonitor_Hcal/rechit_occupancy/"<<subdets_[i]<<"Rec Hit Average Occupancy";
00462       resetME(name.str().c_str(),dbe_);
00463       name.str("");
00464       name<<process_.c_str()<<"RecHitMonitor_Hcal/rechit_occupancy/"<<subdets_[i]<<"Rec Hit Average Occupancy Above Threshold";
00465       resetME(name.str().c_str(),dbe_);
00466       name.str("");
00467       name<<process_.c_str()<<"RecHitMonitor_Hcal/rechit_energy/"<<subdets_[i]<<"Rec Hit Average Energy";
00468       resetME(name.str().c_str(),dbe_);
00469       name.str("");
00470       name<<process_.c_str()<<"RecHitMonitor_Hcal/rechit_energy/"<<subdets_[i]<<"Rec Hit Average Energy Above Threshold";
00471       resetME(name.str().c_str(),dbe_);
00472       name.str("");
00473       name<<process_.c_str()<<"RecHitMonitor_Hcal/rechit_time/"<<subdets_[i]<<"Rec Hit Average Time";
00474       resetME(name.str().c_str(),dbe_);
00475       name.str("");
00476       name<<process_.c_str()<<"RecHitMonitor_Hcal/rechit_time/"<<subdets_[i]<<"Rec Hit Average Time Above Threshold";
00477       resetME(name.str().c_str(),dbe_);
00478       name.str("");
00479     } // for (int i=0;i<6;++i)
00480 
00481  if (rechitclient_makeDiagnostics_)
00482     {
00483       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/hb/HB_energy";
00484       resetME(name.str().c_str(),dbe_);
00485       name.str("");
00486       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/hb/HB_total_energy";
00487       resetME(name.str().c_str(),dbe_);
00488       name.str("");
00489       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/hb/HB_time";
00490       resetME(name.str().c_str(),dbe_);
00491       name.str("");
00492       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/hb/HB_occupancy";
00493       resetME(name.str().c_str(),dbe_);
00494       name.str("");
00495       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/hb/HB_energy_thresh";
00496       resetME(name.str().c_str(),dbe_);
00497       name.str("");
00498       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/hb/HB_total_energy_thresh";
00499       resetME(name.str().c_str(),dbe_);
00500       name.str("");
00501       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/hb/HB_time_thresh";
00502       resetME(name.str().c_str(),dbe_);
00503       name.str("");
00504       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/hb/HB_occupancy_thresh";
00505       resetME(name.str().c_str(),dbe_);
00506       name.str("");
00507 
00508       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/he/HE_energy";
00509       resetME(name.str().c_str(),dbe_);
00510       name.str("");
00511       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/he/HE_total_energy";
00512       resetME(name.str().c_str(),dbe_);
00513       name.str("");
00514       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/he/HE_time";
00515       resetME(name.str().c_str(),dbe_);
00516       name.str("");
00517       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/he/HE_occupancy";
00518       resetME(name.str().c_str(),dbe_);
00519       name.str("");
00520       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/he/HE_energy_thresh";
00521       resetME(name.str().c_str(),dbe_);
00522       name.str("");
00523       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/he/HE_total_energy_thresh";
00524       resetME(name.str().c_str(),dbe_);
00525       name.str("");
00526       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/he/HE_time_thresh";
00527       resetME(name.str().c_str(),dbe_);
00528       name.str("");
00529       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/he/HE_occupancy_thresh";
00530       resetME(name.str().c_str(),dbe_);
00531       name.str("");
00532 
00533       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/ho/HO_energy";
00534       resetME(name.str().c_str(),dbe_);
00535       name.str("");
00536       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/ho/HO_total_energy";
00537       resetME(name.str().c_str(),dbe_);
00538       name.str("");
00539       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/ho/HO_time";
00540       resetME(name.str().c_str(),dbe_);
00541       name.str("");
00542       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/ho/HO_occupancy";
00543       resetME(name.str().c_str(),dbe_);
00544       name.str("");
00545       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/ho/HO_energy_thresh";
00546       resetME(name.str().c_str(),dbe_);
00547       name.str("");
00548       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/ho/HO_total_energy_thresh";
00549       resetME(name.str().c_str(),dbe_);
00550       name.str("");
00551       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/ho/HO_time_thresh";
00552       resetME(name.str().c_str(),dbe_);
00553       name.str("");
00554       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/ho/HO_occupancy_thresh";
00555       resetME(name.str().c_str(),dbe_);
00556       name.str("");
00557 
00558       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/hf/HF_energy";
00559       resetME(name.str().c_str(),dbe_);
00560       name.str("");
00561       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/hf/HF_total_energy";
00562       resetME(name.str().c_str(),dbe_);
00563       name.str("");
00564       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/hf/HF_time";
00565       resetME(name.str().c_str(),dbe_);
00566       name.str("");
00567       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/hf/HF_occupancy";
00568       resetME(name.str().c_str(),dbe_);
00569       name.str("");
00570       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/hf/HF_energy_thresh";
00571       resetME(name.str().c_str(),dbe_);
00572       name.str("");
00573       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/hf/HF_total_energy_thresh";
00574       resetME(name.str().c_str(),dbe_);
00575       name.str("");
00576       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/hf/HF_time_thresh";
00577       resetME(name.str().c_str(),dbe_);
00578       name.str("");
00579       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/hf/HF_occupancy_thresh";
00580       resetME(name.str().c_str(),dbe_);
00581       name.str("");
00582     } // if (rechitclient_makeDiagnostics_)
00583 
00584  return;
00585 } // void HcalRecHitClient::resetAllME()
00586 
00587 
00588 void HcalRecHitClient::htmlOutput(int runNo, string htmlDir, string htmlName)
00589 {
00590   if (showTiming_)
00591     {
00592       cpu_timer.reset(); cpu_timer.start();
00593     }
00594 
00595   if (debug_>1) cout << "Preparing HcalRecHitClient html output ..." << endl;
00596 
00597   string client = "RecHitMonitor";
00598 
00599   ofstream htmlFile;
00600   htmlFile.open((htmlDir + htmlName).c_str());
00601 
00602   // html page header
00603   htmlFile << "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">  " << endl;
00604   htmlFile << "<html>  " << endl;
00605   htmlFile << "<head>  " << endl;
00606   htmlFile << "  <meta content=\"text/html; charset=ISO-8859-1\"  " << endl;
00607   htmlFile << " https-equiv=\"content-type\">  " << endl;
00608   htmlFile << "  <title>Monitor: Hcal Rec Hit Task output</title> " << endl;
00609   htmlFile << "</head>  " << endl;
00610   htmlFile << "<style type=\"text/css\"> td { font-weight: bold } </style>" << endl;
00611   htmlFile << "<body>  " << endl;
00612   htmlFile << "<br>  " << endl;
00613   htmlFile << "<h2>Run:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" << endl;
00614   htmlFile << "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span " << endl;
00615   htmlFile << " style=\"color: rgb(0, 0, 153);\">" << runNo << "</span></h2>" << endl;
00616   htmlFile << "<h2>Monitoring task:&nbsp;&nbsp;&nbsp;&nbsp; <span " << endl;
00617   htmlFile << " style=\"color: rgb(0, 0, 153);\">Hcal Rec Hits</span></h2> " << endl;
00618 
00619   htmlFile << "<h2>Events processed:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" << endl;
00620   htmlFile << "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span " << endl;
00621   htmlFile << " style=\"color: rgb(0, 0, 153);\">" << ievt_ << "</span></h2>" << endl;
00622   htmlFile << "<hr>" << endl;
00623 
00624   htmlFile << "<h2><strong>Hcal Rec Hit Status</strong></h2>" << endl;
00625 
00626 
00627   htmlFile << "<table align=\"center\" border=\"0\" cellspacing=\"0\" " << endl;
00628   htmlFile << "cellpadding=\"10\"> " << endl;
00629   htmlFile << "<tr align=\"center\">" << endl;
00630   gStyle->SetPalette(20,pcol_error_); // set palette to standard error color scheme
00631   htmlAnyHisto(runNo,ProblemRecHits,"i#eta","i#phi", 92, htmlFile, htmlDir);
00632   htmlFile<<"</tr>"<<endl;
00633   htmlFile<<"<tr align=\"center\"><td> There are as yet no criteria for marking a rec hit as 'bad'.  The plots in the link below are for diagnostic purposes only."<<endl;
00634  
00635   htmlFile<<"</td>"<<endl;
00636   htmlFile<<"</tr></table>"<<endl;
00637   htmlFile<<"<hr><table align=\"center\" border=\"0\" cellspacing=\"0\" " << endl;
00638   htmlFile << "cellpadding=\"10\"> " << endl;
00639   htmlFile << "<tr align=\"center\">" << endl;
00640   htmlFile<<"<tr><td align=center><a href=\"Expert_"<< htmlName<<"\"><h2>Detailed Rec Hit Plots</h2> </a></br></td>"<<endl;
00641   htmlFile<<"</tr></table><br><hr>"<<endl;
00642   
00643   // Now print out problem cells
00644   htmlFile <<"<br>"<<endl;
00645   htmlFile << "<h2><strong>Hcal Problem Rec Hits</strong></h2>" << endl;
00646   htmlFile << "(A problem cell is listed below if its failure rate exceeds "<<(100.*minErrorFlag_)<<"%).<br><br>"<<endl;
00647   htmlFile << "<table align=\"center\" border=\"1\" cellspacing=\"0\" " << endl;
00648   htmlFile << "cellpadding=\"10\"> " << endl;
00649   htmlFile << "<tr align=\"center\">" << endl;
00650   htmlFile <<"<td> Problem Rec Hits<br>(ieta, iphi, depth)</td><td align=\"center\"> Fraction of Events <br>in which cells are bad (%)</td></tr>"<<endl;
00651 
00652   if (ProblemRecHits==0)
00653     {
00654       if (debug_) cout <<"<HcalRecHitClient::htmlOutput>  ERROR: can't find Problem Rec Hit plot!"<<endl;
00655       return;
00656     }
00657   int etabins  = ProblemRecHits->GetNbinsX();
00658   int phibins  = ProblemRecHits->GetNbinsY();
00659   float etaMin = ProblemRecHits->GetXaxis()->GetXmin();
00660   float phiMin = ProblemRecHits->GetYaxis()->GetXmin();
00661 
00662   int eta,phi;
00663 
00664   ostringstream name;
00665   for (int depth=0;depth<6; ++depth)
00666     {
00667       for (int ieta=1;ieta<=etabins;++ieta)
00668         {
00669           for (int iphi=1; iphi<=phibins;++iphi)
00670             {
00671               eta=ieta+int(etaMin)-1;
00672               phi=iphi+int(phiMin)-1;
00673               if (abs(eta)>20 && phi%2!=1) continue;
00674               if (abs(eta)>39 && phi%4!=3) continue;
00675               int mydepth=depth+1;
00676               if (mydepth>4) mydepth-=4; // last two depth values are for HE depth 1,2
00677               if (ProblemRecHitsByDepth[depth]==0)
00678                 {
00679                   continue;
00680                 }
00681               if (ProblemRecHitsByDepth[depth]->GetBinContent(ieta,iphi)>minErrorFlag_)
00682                 {
00683                   if (depth<2)
00684                     (fabs(eta)<29) ? name<<"HB" : name<<"HF";
00685                   else if (depth==3)
00686                     (fabs(eta)<42) ? name<<"HO" : name<<"ZDC";
00687                   else name <<"HE";
00688                   htmlFile<<"<td>"<<name.str().c_str()<<" ("<<eta<<", "<<phi<<", "<<mydepth<<")</td><td align=\"center\">"<<ProblemRecHitsByDepth[depth]->GetBinContent(ieta,iphi)*100.<<"</td></tr>"<<endl;
00689 
00690                   name.str("");
00691                 }
00692             } // for (int iphi=1;...)
00693         } // for (int ieta=1;...)
00694     } // for (int depth=0;...)
00695   
00696   
00697   // html page footer
00698   htmlFile <<"</table> " << endl;
00699   htmlFile << "</body> " << endl;
00700   htmlFile << "</html> " << endl;
00701 
00702   htmlFile.close();
00703   htmlExpertOutput(runNo, htmlDir, htmlName);
00704 
00705   if (showTiming_)
00706     {
00707       cpu_timer.stop();  cout <<"TIMER:: HcalRecHitClient HTMLOUTPUT  -> "<<cpu_timer.cpuTime()<<endl;
00708     }
00709 
00710   return;
00711 } //void HcalRecHitClient::htmlOutput(int runNo, ...) 
00712 
00713 
00714 void HcalRecHitClient::htmlExpertOutput(int runNo, string htmlDir, string htmlName)
00715 {
00716 
00717   if (showTiming_)
00718     {
00719       cpu_timer.reset(); cpu_timer.start();
00720     }
00721 
00722   if (debug_>1) 
00723     cout <<" <HcalRecHitClient::htmlExpertOutput>  Preparing Expert html output ..." <<endl;
00724   
00725   string client = "RecHitMonitor";
00726   htmlErrors(runNo,htmlDir,client,process_,dbe_,dqmReportMapErr_,dqmReportMapWarn_,dqmReportMapOther_); // does this do anything?
00727 
00728   ofstream htmlFile;
00729   htmlFile.open((htmlDir +"Expert_"+ htmlName).c_str());
00730 
00731   // html page header
00732   htmlFile << "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">  " << endl;
00733   htmlFile << "<html>  " << endl;
00734   htmlFile << "<head>  " << endl;
00735   htmlFile << "  <meta content=\"text/html; charset=ISO-8859-1\"  " << endl;
00736   htmlFile << " https-equiv=\"content-type\">  " << endl;
00737   htmlFile << "  <title>Monitor: Hcal Rec Hit Task output</title> " << endl;
00738   htmlFile << "</head>  " << endl;
00739   htmlFile << "<style type=\"text/css\"> td { font-weight: bold } </style>" << endl;
00740   htmlFile << "<body>  " << endl;
00741   htmlFile <<"<a name=\"EXPERT_RECHIT_TOP\" href = \".\"> Back to Main HCAL DQM Page </a><br>"<<endl;
00742   htmlFile <<"<a href= \""<<htmlName.c_str()<<"\" > Back to Rec Hit Status Page </a><br>"<<endl;
00743   htmlFile << "<br>  " << endl;
00744   htmlFile << "<h2>Run:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" << endl;
00745   htmlFile << "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span " << endl;
00746   htmlFile << " style=\"color: rgb(0, 0, 153);\">" << runNo << "</span></h2>" << endl;
00747   htmlFile << "<h2>Monitoring task:&nbsp;&nbsp;&nbsp;&nbsp; <span " << endl;
00748   htmlFile << " style=\"color: rgb(0, 0, 153);\">Hcal Rec Hits</span></h2> " << endl;
00749   htmlFile << "<h2>Events processed:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" << endl;
00750   htmlFile << "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span " << endl;
00751   htmlFile << " style=\"color: rgb(0, 0, 153);\">" << ievt_ << "</span></h2>" << endl;
00752   htmlFile << "<hr>" << endl;
00753 
00754   htmlFile << "<table width=100%  border = 1>"<<endl;
00755   htmlFile << "<tr><td align=\"center\" colspan=1><a href=\"#OVERALL_PROBLEMS\">PROBLEM CELLS BY DEPTH </a></td></tr>"<<endl;
00756   htmlFile << "<tr><td align=\"center\">"<<endl;
00757   htmlFile<<"<br><a href=\"#OCC_PLOTS\">RecHit Occupancy Plots </a>"<<endl;
00758   htmlFile<<"<br><a href=\"#ENERGY_PLOTS\">RecHit Energy Plots</a>"<<endl;
00759   htmlFile<<"<br><a href=\"#TIME_PLOTS\">RecHit Time Plots </a>"<<endl;
00760 
00761   htmlFile << "</td></tr>"<<endl;
00762   htmlFile <<"</table>"<<endl;
00763   htmlFile <<"<br><br>"<<endl;
00764 
00765 
00766   // Plot overall errors
00767   htmlFile << "<h2><strong><a name=\"OVERALL_PROBLEMS\">Eta-Phi Maps of Problem Cells By Depth</strong></h2>"<<endl;
00768   htmlFile <<" These plots of problem cells combine results from all rec hit tests<br>"<<endl;
00769   htmlFile <<"<a href= \"#EXPERT_RECHIT_TOP\" > Back to Top</a><br>"<<endl;
00770   htmlFile << "<table border=\"0\" cellspacing=\"0\" " << endl;
00771   htmlFile << "cellpadding=\"10\"> " << endl;
00772   gStyle->SetPalette(20,pcol_error_); // set palette to standard error color scheme
00773   
00774   // Depths are stored as:  0:  HB/HF depth 1, 1:  HB/HF 2, 2:  HE 3, 3:  HO/ZDC, 4: HE 1, 5:  HE2
00775   // remap so that HE depths are plotted consecutively
00776   int mydepth[6]={0,1,4,5,2,3};
00777   for (int i=0;i<3;++i)
00778     {
00779       htmlFile << "<tr align=\"left\">" << endl;
00780       htmlAnyHisto(runNo,ProblemRecHitsByDepth[mydepth[2*i]],"i#eta","i#phi", 92, htmlFile, htmlDir);
00781       htmlAnyHisto(runNo,ProblemRecHitsByDepth[mydepth[2*i]+1],"i#eta","i#phi", 92, htmlFile, htmlDir);
00782       htmlFile <<"</tr>"<<endl;
00783     }
00784 
00785   htmlFile <<"</table>"<<endl;
00786   htmlFile <<"<br><hr><br>"<<endl;
00787   
00788   // Occupancy Plots
00789   htmlFile << "<h2><strong><a name=\"OCC_PLOTS\">Occupancy Plots</strong></h2>"<<endl;
00790   htmlFile <<"This shows average rechit occupancy of each cell per event<br>"<<endl;
00791   htmlFile <<"<a href= \"#EXPERT_RECHIT_TOP\" > Back to Top</a><br>"<<endl;
00792   htmlFile << "<table border=\"0\" cellspacing=\"0\" " << endl;
00793   htmlFile << "cellpadding=\"10\"> " << endl;
00794   gStyle->SetPalette(1);
00795   for (int i=0;i<6;++i)
00796     {
00797       htmlFile << "<tr align=\"left\">" << endl;
00798       htmlAnyHisto(runNo,OccupancyByDepth[mydepth[i]],"i#eta","i#phi", 92, htmlFile, htmlDir);
00799       htmlAnyHisto(runNo,OccupancyThreshByDepth[mydepth[i]],"i#eta","i#phi", 92, htmlFile, htmlDir);
00800       htmlFile <<"</tr>"<<endl;
00801     }
00802   htmlFile <<"</table>"<<endl;
00803   if (rechitclient_makeDiagnostics_)
00804     {
00805       htmlFile << "<table border=\"0\" cellspacing=\"0\" " << endl;
00806       htmlFile << "cellpadding=\"10\"> " << endl;
00807       htmlFile<<"<tr align=\"left\">"<<endl;
00808       htmlAnyHisto(runNo,d_HBOccupancy,"HB Occupancy","", 92, htmlFile, htmlDir);
00809       htmlAnyHisto(runNo,d_HBThreshOccupancy,"HB Occupancy","", 92, htmlFile, htmlDir);
00810       htmlFile <<"</tr>"<<endl;
00811       htmlFile<<"<tr align=\"left\">"<<endl;
00812       htmlAnyHisto(runNo,d_HEOccupancy,"HE Occupancy","", 92, htmlFile, htmlDir);
00813       htmlAnyHisto(runNo,d_HEThreshOccupancy,"HE Occupancy","", 92, htmlFile, htmlDir);
00814       htmlFile <<"</tr>"<<endl;
00815       htmlFile<<"<tr align=\"left\">"<<endl;
00816       htmlAnyHisto(runNo,d_HOOccupancy,"HO Occupancy","", 92, htmlFile, htmlDir);
00817       htmlAnyHisto(runNo,d_HOThreshOccupancy,"HO Occupancy","", 92, htmlFile, htmlDir);
00818       htmlFile <<"</tr>"<<endl;
00819       htmlFile<<"<tr align=\"left\">"<<endl;
00820       htmlAnyHisto(runNo,d_HFOccupancy,"HF Occupancy","", 92, htmlFile, htmlDir);
00821       htmlAnyHisto(runNo,d_HFThreshOccupancy,"HF Occupancy","", 92, htmlFile, htmlDir);
00822       htmlFile <<"</tr>"<<endl;
00823       htmlFile <<"</table>"<<endl;
00824     }
00825 
00826   htmlFile <<"<br><hr><br>"<<endl;
00827 
00828   // energy Plots
00829   htmlFile << "<h2><strong><a name=\"ENERGY_PLOTS\">Energy Plots</strong></h2>"<<endl;
00830   htmlFile <<"This shows average rechit energy of each cell per event<br>"<<endl;
00831   htmlFile <<"<a href= \"#EXPERT_RECHIT_TOP\" > Back to Top</a><br>"<<endl;
00832   htmlFile << "<table border=\"0\" cellspacing=\"0\" " << endl;
00833   htmlFile << "cellpadding=\"10\"> " << endl;
00834   gStyle->SetPalette(1);
00835   for (int i=0;i<6;++i)
00836     {
00837       htmlFile << "<tr align=\"left\">" << endl;
00838       htmlAnyHisto(runNo,EnergyByDepth[mydepth[i]],"i#eta","i#phi", 92, htmlFile, htmlDir);
00839       htmlAnyHisto(runNo,EnergyThreshByDepth[mydepth[i]],"i#eta","i#phi", 92, htmlFile, htmlDir);
00840       htmlFile <<"</tr>"<<endl;
00841     }
00842   htmlFile <<"</table>"<<endl;
00843   if (rechitclient_makeDiagnostics_)
00844     {
00845       htmlFile << "<table border=\"0\" cellspacing=\"0\" " << endl;
00846       htmlFile << "cellpadding=\"10\"> " << endl;
00847       htmlFile<<"<tr align=\"left\">"<<endl;
00848       htmlAnyHisto(runNo,d_HBEnergy,"HB Energy","", 92, htmlFile, htmlDir);
00849       htmlAnyHisto(runNo,d_HBThreshEnergy,"HB Energy","", 92, htmlFile, htmlDir);
00850       htmlFile <<"</tr>"<<endl;
00851       htmlFile<<"<tr align=\"left\">"<<endl;
00852       htmlAnyHisto(runNo,d_HEEnergy,"HE Energy","", 92, htmlFile, htmlDir);
00853       htmlAnyHisto(runNo,d_HEThreshEnergy,"HE Energy","", 92, htmlFile, htmlDir);
00854       htmlFile <<"</tr>"<<endl;
00855       htmlFile<<"<tr align=\"left\">"<<endl;
00856       htmlAnyHisto(runNo,d_HOEnergy,"HO Energy","", 92, htmlFile, htmlDir);
00857       htmlAnyHisto(runNo,d_HOThreshEnergy,"HO Energy","", 92, htmlFile, htmlDir);
00858       htmlFile <<"</tr>"<<endl;
00859       htmlFile<<"<tr align=\"left\">"<<endl;
00860       htmlAnyHisto(runNo,d_HFEnergy,"HF Energy","", 92, htmlFile, htmlDir);
00861       htmlAnyHisto(runNo,d_HFThreshEnergy,"HF Energy","", 92, htmlFile, htmlDir);
00862       htmlFile <<"</tr>"<<endl;
00863       htmlFile <<"</table>"<<endl;
00864     }
00865 
00866   htmlFile <<"<br><hr><br>"<<endl;
00867 
00868   htmlFile << "<h2><strong><a name=\"TIME_PLOTS\">Time Plots</strong></h2>"<<endl;
00869   htmlFile <<"This shows average rechit time of each cell per event<br>"<<endl;
00870   htmlFile <<"<a href= \"#EXPERT_RECHIT_TOP\" > Back to Top</a><br>"<<endl;
00871   htmlFile << "<table border=\"0\" cellspacing=\"0\" " << endl;
00872   htmlFile << "cellpadding=\"10\"> " << endl;
00873   gStyle->SetPalette(1);
00874   for (int i=0;i<6;++i)
00875     {
00876       htmlFile << "<tr align=\"left\">" << endl;
00877       htmlAnyHisto(runNo,TimeByDepth[mydepth[i]],"i#eta","i#phi", 92, htmlFile, htmlDir);
00878       htmlAnyHisto(runNo,TimeThreshByDepth[mydepth[i]],"i#eta","i#phi", 92, htmlFile, htmlDir);
00879       htmlFile <<"</tr>"<<endl;
00880     }
00881   htmlFile <<"</table>"<<endl;
00882   if (rechitclient_makeDiagnostics_)
00883     {
00884       htmlFile << "<table border=\"0\" cellspacing=\"0\" " << endl;
00885       htmlFile << "cellpadding=\"10\"> " << endl;
00886       htmlFile<<"<tr align=\"left\">"<<endl;
00887       htmlAnyHisto(runNo,d_HBTime,"HB Time","", 92, htmlFile, htmlDir);
00888       htmlAnyHisto(runNo,d_HBThreshTime,"HB Time","", 92, htmlFile, htmlDir);
00889       htmlFile <<"</tr>"<<endl;
00890       htmlFile<<"<tr align=\"left\">"<<endl;
00891       htmlAnyHisto(runNo,d_HETime,"HE Time","", 92, htmlFile, htmlDir);
00892       htmlAnyHisto(runNo,d_HEThreshTime,"HE Time","", 92, htmlFile, htmlDir);
00893       htmlFile <<"</tr>"<<endl;
00894       htmlFile<<"<tr align=\"left\">"<<endl;
00895       htmlAnyHisto(runNo,d_HOTime,"HO Time","", 92, htmlFile, htmlDir);
00896       htmlAnyHisto(runNo,d_HOThreshTime,"HO Time","", 92, htmlFile, htmlDir);
00897       htmlFile <<"</tr>"<<endl;
00898       htmlFile<<"<tr align=\"left\">"<<endl;
00899       htmlAnyHisto(runNo,d_HFTime,"HF Time","", 92, htmlFile, htmlDir);
00900       htmlAnyHisto(runNo,d_HFThreshTime,"HF Time","", 92, htmlFile, htmlDir);
00901       htmlFile <<"</tr>"<<endl;
00902       htmlFile <<"</table>"<<endl;
00903     }
00904 
00905   htmlFile <<"<br><hr><br>"<<endl;
00906 
00907 
00908 
00909   htmlFile <<"<br><hr><br><a href= \"#EXPERT_RECHIT_TOP\" > Back to Top of Page </a><br>"<<endl;
00910   htmlFile <<"<a href = \".\"> Back to Main HCAL DQM Page </a><br>"<<endl;
00911   htmlFile <<"<a href= \""<<htmlName.c_str()<<"\" > Back to Rec Hit Status Page </a><br>"<<endl;
00912 
00913   htmlFile << "</body> " << endl;
00914   htmlFile << "</html> " << endl;
00915   
00916   htmlFile.close();
00917 
00918   if (showTiming_)
00919     {
00920       cpu_timer.stop();  cout <<"TIMER:: HcalRecHitClient  HTMLEXPERTOUTPUT ->"<<cpu_timer.cpuTime()<<endl;
00921     }
00922   return;
00923 } // void HcalRecHitClient::htmlExpertOutput(...)
00924 
00925 
00926 
00927 void HcalRecHitClient::loadHistograms(TFile* infile)
00928 {
00929   TNamed* tnd = (TNamed*)infile->Get("DQMData/Hcal/RecHitMonitor_Hcal/Rec Hit Task Event Number");
00930   if(tnd)
00931     {
00932       string s =tnd->GetTitle();
00933       ievt_ = -1;
00934       sscanf((s.substr(2,s.length()-2)).c_str(), "%d", &ievt_);
00935     }
00936 
00937   ostringstream name;
00938   // Grab individual histograms
00939   name<<process_.c_str()<<"RecHitMonitor_Hcal/ ProblemRecHits";
00940   ProblemRecHits = (TH2F*)infile->Get(name.str().c_str());
00941   name.str("");
00942   
00943   for (int i=0;i<6;++i)
00944     {
00945       // Grab arrays of histograms
00946       name<<process_.c_str()<<"RecHitMonitor_Hcal/problem_rechits/"<<subdets_[i]<<" Problem RecHit Rate";
00947       ProblemRecHitsByDepth[i] = (TH2F*)infile->Get(name.str().c_str());
00948       name.str("");
00949       OccupancyByDepth[i] = (TH2F*)infile->Get(name.str().c_str());
00950       name<<process_.c_str()<<"RecHitMonitor_Hcal/rechit_occupancy/"<<subdets_[i]<<"Rec Hit Average Occupancy";
00951       name.str("");
00952       name<<process_.c_str()<<"RecHitMonitor_Hcal/rechit_occupancy/"<<subdets_[i]<<"Rec Hit Average Occupancy Above Threshold";
00953       OccupancyThreshByDepth[i] = (TH2F*)infile->Get(name.str().c_str());
00954       name.str("");
00955       
00956       name<<process_.c_str()<<"RecHitMonitor_Hcal/rechit_energy/"<<subdets_[i]<<"Rec Hit Average Energy";
00957       EnergyByDepth[i] = (TH2F*)infile->Get(name.str().c_str());
00958       name.str("");
00959       name<<process_.c_str()<<"RecHitMonitor_Hcal/rechit_energy/"<<subdets_[i]<<"Rec Hit Average Energy Above Threshold";
00960       EnergyThreshByDepth[i] = (TH2F*)infile->Get(name.str().c_str());
00961       name.str("");
00962       
00963       name<<process_.c_str()<<"RecHitMonitor_Hcal/rechit_time/"<<subdets_[i]<<"Rec Hit Average Time";
00964       TimeByDepth[i] = (TH2F*)infile->Get(name.str().c_str());
00965       name.str("");
00966       name<<process_.c_str()<<"RecHitMonitor_Hcal/rechit_time/"<<subdets_[i]<<"Rec Hit Average Time Above Threshold";
00967       TimeThreshByDepth[i] = (TH2F*)infile->Get(name.str().c_str());
00968       name.str("");
00969     } //for (int i=0;i<6;++i)
00970 
00971   if (rechitclient_makeDiagnostics_)
00972     {
00973       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/hb/HB_energy";
00974       d_HBEnergy=(TH1F*)infile->Get(name.str().c_str());
00975       name.str("");
00976       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/hb/HB_total_energy";
00977       d_HBTotalEnergy=(TH1F*)infile->Get(name.str().c_str());
00978       name.str("");
00979       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/hb/HB_time";
00980       d_HBTime=(TH1F*)infile->Get(name.str().c_str());
00981       name.str("");
00982       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/hb/HB_occupancy";
00983       d_HBOccupancy=(TH1F*)infile->Get(name.str().c_str());
00984       name.str("");
00985       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/hb/HB_energy_thresh";
00986       d_HBThreshEnergy=(TH1F*)infile->Get(name.str().c_str());
00987       name.str("");
00988       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/hb/HB_total_energy_thresh";
00989       d_HBThreshTotalEnergy=(TH1F*)infile->Get(name.str().c_str());
00990       name.str("");
00991       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/hb/HB_time_thresh";
00992       d_HBThreshTime=(TH1F*)infile->Get(name.str().c_str());
00993       name.str("");
00994       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/hb/HB_occupancy_thresh";
00995       d_HBThreshOccupancy=(TH1F*)infile->Get(name.str().c_str());
00996       name.str("");
00997 
00998       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/he/HE_energy";
00999       d_HEEnergy=(TH1F*)infile->Get(name.str().c_str());
01000       name.str("");
01001       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/he/HE_total_energy";
01002       d_HETotalEnergy=(TH1F*)infile->Get(name.str().c_str());
01003       name.str("");
01004       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/he/HE_time";
01005       d_HETime=(TH1F*)infile->Get(name.str().c_str());
01006       name.str("");
01007       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/he/HE_occupancy";
01008       d_HEOccupancy=(TH1F*)infile->Get(name.str().c_str());
01009       name.str("");
01010       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/he/HE_energy_thresh";
01011       d_HEThreshEnergy=(TH1F*)infile->Get(name.str().c_str());
01012       name.str("");
01013       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/he/HE_total_energy_thresh";
01014       d_HEThreshTotalEnergy=(TH1F*)infile->Get(name.str().c_str());
01015       name.str("");
01016       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/he/HE_time_thresh";
01017       d_HEThreshTime=(TH1F*)infile->Get(name.str().c_str());
01018       name.str("");
01019       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/he/HE_occupancy_thresh";
01020       d_HEThreshOccupancy=(TH1F*)infile->Get(name.str().c_str());
01021       name.str("");
01022       
01023       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/ho/HO_energy";
01024       d_HOEnergy=(TH1F*)infile->Get(name.str().c_str());
01025       name.str("");
01026       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/ho/HO_total_energy";
01027       d_HOTotalEnergy=(TH1F*)infile->Get(name.str().c_str());
01028       name.str("");
01029       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/ho/HO_time";
01030       d_HOTime=(TH1F*)infile->Get(name.str().c_str());
01031       name.str("");
01032       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/ho/HO_occupancy";
01033       d_HOOccupancy=(TH1F*)infile->Get(name.str().c_str());
01034       name.str("");
01035       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/ho/HO_energy_thresh";
01036       d_HOThreshEnergy=(TH1F*)infile->Get(name.str().c_str());
01037       name.str("");
01038       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/ho/HO_total_energy_thresh";
01039       d_HOThreshTotalEnergy=(TH1F*)infile->Get(name.str().c_str());
01040       name.str("");
01041       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/ho/HO_time_thresh";
01042       d_HOThreshTime=(TH1F*)infile->Get(name.str().c_str());
01043       name.str("");
01044       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/ho/HO_occupancy_thresh";
01045       d_HOThreshOccupancy=(TH1F*)infile->Get(name.str().c_str());
01046       name.str("");
01047 
01048       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/hf/HF_energy";
01049       d_HFEnergy=(TH1F*)infile->Get(name.str().c_str());
01050       name.str("");
01051       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/hf/HF_total_energy";
01052       d_HFTotalEnergy=(TH1F*)infile->Get(name.str().c_str());
01053       name.str("");
01054       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/hf/HF_time";
01055       d_HFTime=(TH1F*)infile->Get(name.str().c_str());
01056       name.str("");
01057       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/hf/HF_occupancy";
01058       d_HFOccupancy=(TH1F*)infile->Get(name.str().c_str());
01059       name.str("");
01060       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/hf/HF_energy_thresh";
01061       d_HFThreshEnergy=(TH1F*)infile->Get(name.str().c_str());
01062       name.str("");
01063       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/hf/HF_total_energy_thresh";
01064       d_HFThreshTotalEnergy=(TH1F*)infile->Get(name.str().c_str());
01065       name.str("");
01066       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/hf/HF_time_thresh";
01067       d_HFThreshTime=(TH1F*)infile->Get(name.str().c_str());
01068       name.str("");
01069       name<<process_.c_str()<<"RecHitMonitor_Hcal/diagnostics/hf/HF_occupancy_thresh";
01070       d_HFThreshOccupancy=(TH1F*)infile->Get(name.str().c_str());
01071       name.str("");
01072     }
01073   return;
01074 
01075 } // void HcalRecHitClient::loadHistograms(...)
01076 
01077 

Generated on Tue Jun 9 17:32:56 2009 for CMSSW by  doxygen 1.5.4