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(){}
00007
00008 void HcalRecHitClient::init(const ParameterSet& ps, DQMStore* dbe,string clientName){
00009
00010 HcalBaseClient::init(ps,dbe,clientName);
00011
00012
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
00021 ProblemRecHits=0;
00022 for (int i=0;i<6;++i)
00023 {
00024
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 }
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 }
00082
00083
00084 HcalRecHitClient::~HcalRecHitClient()
00085 {
00086 this->cleanup();
00087 }
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 }
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 }
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 }
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 }
00128
00129
00130 void HcalRecHitClient::setup(void)
00131 {
00132 return;
00133 }
00134
00135
00136 void HcalRecHitClient::cleanup(void)
00137 {
00138 if(cloneME_)
00139 {
00140
00141 if (ProblemRecHits) delete ProblemRecHits;
00142
00143 for (int i=0;i<6;++i)
00144 {
00145
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 }
00194
00195 }
00196
00197
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 }
00249
00250 dqmReportMapErr_.clear();
00251 dqmReportMapWarn_.clear();
00252 dqmReportMapOther_.clear();
00253 dqmQtests_.clear();
00254
00255 return;
00256 }
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 }
00279
00280
00281 void HcalRecHitClient::getHistograms()
00282 {
00283 if(!dbe_) return;
00284
00285 ostringstream name;
00286
00287 TH2F* dummy2D = new TH2F();
00288 TH1F* dummy1D = new TH1F();
00289
00290
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 }
00405
00406
00407
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 }
00418
00419 return;
00420 }
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 }
00433
00434
00435 void HcalRecHitClient::createTests()
00436 {
00437
00438
00439 if(!dbe_) return;
00440 return;
00441 }
00442
00443
00444 void HcalRecHitClient::resetAllME()
00445 {
00446 if(!dbe_) return;
00447
00448 ostringstream name;
00449
00450
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
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 }
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 }
00583
00584 return;
00585 }
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
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: " << endl;
00614 htmlFile << " <span " << endl;
00615 htmlFile << " style=\"color: rgb(0, 0, 153);\">" << runNo << "</span></h2>" << endl;
00616 htmlFile << "<h2>Monitoring task: <span " << endl;
00617 htmlFile << " style=\"color: rgb(0, 0, 153);\">Hcal Rec Hits</span></h2> " << endl;
00618
00619 htmlFile << "<h2>Events processed: " << endl;
00620 htmlFile << " <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_);
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
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;
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 }
00693 }
00694 }
00695
00696
00697
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 }
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_);
00727
00728 ofstream htmlFile;
00729 htmlFile.open((htmlDir +"Expert_"+ htmlName).c_str());
00730
00731
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: " << endl;
00745 htmlFile << " <span " << endl;
00746 htmlFile << " style=\"color: rgb(0, 0, 153);\">" << runNo << "</span></h2>" << endl;
00747 htmlFile << "<h2>Monitoring task: <span " << endl;
00748 htmlFile << " style=\"color: rgb(0, 0, 153);\">Hcal Rec Hits</span></h2> " << endl;
00749 htmlFile << "<h2>Events processed: " << endl;
00750 htmlFile << " <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
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_);
00773
00774
00775
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
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
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 }
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
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
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 }
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 }
01076
01077