00001 #include <DQM/HcalMonitorClient/interface/HcalPedestalClient.h>
00002 #include <DQM/HcalMonitorClient/interface/HcalClientUtils.h>
00003 #include "DQMServices/Core/interface/DQMStore.h"
00004 #include "DQMServices/Core/interface/MonitorElement.h"
00005 #include <math.h>
00006 #include <iostream>
00007
00008 HcalPedestalClient::HcalPedestalClient(){}
00009
00010 void HcalPedestalClient::init(const ParameterSet& ps, DQMStore* dbe,string clientName){
00011
00012 HcalBaseClient::init(ps,dbe,clientName);
00013
00014
00015 nominalPedMeanInADC_ = ps.getUntrackedParameter<double>("PedestalClient_nominalPedMeanInADC",3);
00016 nominalPedWidthInADC_ = ps.getUntrackedParameter<double>("PedestalClient_nominalPedWidthInADC",1);
00017 maxPedMeanDiffADC_ = ps.getUntrackedParameter<double>("PedestalClient_maxPedMeanDiffADC",1);
00018 maxPedWidthDiffADC_ = ps.getUntrackedParameter<double>("PedestalClient_maxPedWidthDiffADC",1);
00019 doFCpeds_ = ps.getUntrackedParameter<bool>("PedestalClient_pedestalsInFC",1);
00020 startingTimeSlice_ = ps.getUntrackedParameter<int>("PedestalClient_startingTimeSlice",0);
00021 endingTimeSlice_ = ps.getUntrackedParameter<int>("PedestalClient_endingTimgSlice",1);
00022 minErrorFlag_ = ps.getUntrackedParameter<double>("PedestalClient_minErrorFlag",0.05);
00023
00024
00025 ProblemPedestals=0;
00026
00027 for (int i=0;i<6;++i)
00028 {
00029
00030 ProblemPedestalsByDepth[i]=0;
00031 MeanMapByDepth[i]=0;
00032 RMSMapByDepth[i]=0;
00033
00034
00035 ADC_PedestalFromDBByDepth[i]=0;
00036 ADC_WidthFromDBByDepth[i]=0;
00037 fC_PedestalFromDBByDepth[i]=0;
00038 fC_WidthFromDBByDepth[i]=0;
00039
00040
00041 ADC_PedestalFromDBByDepth[i]=0;
00042 ADC_WidthFromDBByDepth[i]=0;
00043 fC_PedestalFromDBByDepth[i]=0;
00044 fC_WidthFromDBByDepth[i]=0;
00045
00046
00047 rawADCPedestalMean[i]=0;
00048 rawADCPedestalRMS[i]=0;
00049 rawADCPedestalMean_1D[i]=0;
00050 rawADCPedestalRMS_1D[i]=0;
00051
00052
00053 subADCPedestalMean[i]=0;
00054 subADCPedestalRMS[i]=0;
00055 subADCPedestalMean_1D[i]=0;
00056 subADCPedestalRMS_1D[i]=0;
00057
00058
00059 rawFCPedestalMean[i]=0;
00060 rawFCPedestalRMS[i]=0;
00061 rawFCPedestalMean_1D[i]=0;
00062 rawFCPedestalRMS_1D[i]=0;
00063
00064
00065 subFCPedestalMean[i]=0;
00066 subFCPedestalRMS[i]=0;
00067 subFCPedestalMean_1D[i]=0;
00068 subFCPedestalRMS_1D[i]=0;
00069 }
00070
00071 subdets_.push_back("HB HF Depth 1 ");
00072 subdets_.push_back("HB HF Depth 2 ");
00073 subdets_.push_back("HE Depth 3 ");
00074 subdets_.push_back("HO ZDC ");
00075 subdets_.push_back("HE Depth 1 ");
00076 subdets_.push_back("HE Depth 2 ");
00077
00078
00079 return;
00080 }
00081
00082
00083 HcalPedestalClient::~HcalPedestalClient()
00084 {
00085 this->cleanup();
00086 }
00087
00088
00089 void HcalPedestalClient::beginJob(const EventSetup& eventSetup){
00090
00091 if ( debug_ ) cout << "HcalPedestalClient: beginJob" << endl;
00092
00093 ievt_ = 0;
00094 jevt_ = 0;
00095 this->setup();
00096 return;
00097 }
00098
00099
00100 void HcalPedestalClient::beginRun(void)
00101 {
00102 if ( debug_ ) cout << "HcalPedestalClient: beginRun" << endl;
00103
00104 jevt_ = 0;
00105 this->setup();
00106 this->resetAllME();
00107 return;
00108 }
00109
00110
00111 void HcalPedestalClient::endJob(void)
00112 {
00113 if ( debug_ ) cout << "HcalPedestalClient: endJob, ievt = " << ievt_ << endl;
00114
00115 this->cleanup();
00116 return;
00117 }
00118
00119
00120 void HcalPedestalClient::endRun(void)
00121 {
00122 if ( debug_ ) cout << "HcalPedestalClient: endRun, jevt = " << jevt_ << endl;
00123
00124 this->cleanup();
00125 return;
00126 }
00127
00128
00129 void HcalPedestalClient::setup(void)
00130 {
00131 return;
00132 }
00133
00134
00135 void HcalPedestalClient::cleanup(void)
00136 {
00137 if(cloneME_)
00138 {
00139
00140 if (ProblemPedestals) delete ProblemPedestals;
00141
00142 for (int i=0;i<6;++i)
00143 {
00144
00145 if (ProblemPedestalsByDepth[i]) delete ProblemPedestalsByDepth[i];
00146 if (MeanMapByDepth[i]) delete MeanMapByDepth[i];
00147 if (RMSMapByDepth[i]) delete RMSMapByDepth[i];
00148
00149
00150 if (ADC_PedestalFromDBByDepth[i]) delete ADC_PedestalFromDBByDepth[i];
00151 if (ADC_WidthFromDBByDepth[i]) delete ADC_WidthFromDBByDepth[i];
00152 if (fC_PedestalFromDBByDepth[i]) delete fC_PedestalFromDBByDepth[i];
00153 if (fC_WidthFromDBByDepth[i]) delete fC_WidthFromDBByDepth[i];
00154
00155
00156 if (rawADCPedestalMean[i]) delete rawADCPedestalMean[i];
00157 if (rawADCPedestalRMS[i]) delete rawADCPedestalRMS[i];
00158 if (rawADCPedestalMean_1D[i]) delete rawADCPedestalMean_1D[i];
00159 if (rawADCPedestalRMS_1D[i]) delete rawADCPedestalRMS_1D[i];
00160
00161
00162 if (subADCPedestalMean[i]) delete subADCPedestalMean[i];
00163 if (subADCPedestalRMS[i]) delete subADCPedestalRMS[i];
00164 if (subADCPedestalMean_1D[i]) delete subADCPedestalMean_1D[i];
00165 if (subADCPedestalRMS_1D[i]) delete subADCPedestalRMS_1D[i];
00166
00167
00168 if (rawFCPedestalMean[i]) delete rawFCPedestalMean[i];
00169 if (rawFCPedestalRMS[i]) delete rawFCPedestalRMS[i];
00170 if (rawFCPedestalMean_1D[i]) delete rawFCPedestalMean_1D[i];
00171 if (rawFCPedestalRMS_1D[i]) delete rawFCPedestalRMS_1D[i];
00172
00173
00174 if (subFCPedestalMean[i]) delete subFCPedestalMean[i];
00175 if (subFCPedestalRMS[i]) delete subFCPedestalRMS[i];
00176 if (subFCPedestalMean_1D[i]) delete subFCPedestalMean_1D[i];
00177 if (subFCPedestalRMS_1D[i]) delete subFCPedestalRMS_1D[i];
00178 }
00179 }
00180
00181
00182 ProblemPedestals = 0;
00183
00184 for (int i=0;i<6;++i)
00185 {
00186
00187 ProblemPedestalsByDepth[i]=0;
00188 MeanMapByDepth[i]=0;
00189 RMSMapByDepth[i]=0;
00190 ADC_PedestalFromDBByDepth[i]=0;
00191 ADC_WidthFromDBByDepth[i]=0;
00192 fC_PedestalFromDBByDepth[i]=0;
00193 fC_WidthFromDBByDepth[i]=0;
00194
00195 rawADCPedestalMean[i]=0;
00196 rawADCPedestalRMS[i]=0;
00197 rawADCPedestalMean_1D[i]=0;
00198 rawADCPedestalRMS_1D[i]=0;
00199
00200
00201 subADCPedestalMean[i]=0;
00202 subADCPedestalRMS[i]=0;
00203 subADCPedestalMean_1D[i]=0;
00204 subADCPedestalRMS_1D[i]=0;
00205
00206
00207 rawFCPedestalMean[i]=0;
00208 rawFCPedestalRMS[i]=0;
00209 rawFCPedestalMean_1D[i]=0;
00210 rawFCPedestalRMS_1D[i]=0;
00211
00212
00213 subFCPedestalMean[i]=0;
00214 subFCPedestalRMS[i]=0;
00215 subFCPedestalMean_1D[i]=0;
00216 subFCPedestalRMS_1D[i]=0;
00217 }
00218
00219 dqmReportMapErr_.clear();
00220 dqmReportMapWarn_.clear();
00221 dqmReportMapOther_.clear();
00222 dqmQtests_.clear();
00223
00224 return;
00225 }
00226
00227
00228 void HcalPedestalClient::report()
00229 {
00230 if(!dbe_) return;
00231 if ( debug_ ) cout << "HcalPedestalClient: report" << endl;
00232 this->setup();
00233
00234 ostringstream name;
00235 name<<process_.c_str()<<"Hcal/PedestalMonitor_Hcal/Pedestal Task Event Number";
00236 MonitorElement* me = dbe_->get(name.str().c_str());
00237 if ( me ) {
00238 string s = me->valueString();
00239 ievt_ = -1;
00240 sscanf((s.substr(2,s.length()-2)).c_str(), "%d", &ievt_);
00241 if ( debug_ ) cout << "Found '" << name.str().c_str() << "'" << endl;
00242 }
00243 getHistograms();
00244
00245 return;
00246 }
00247
00248
00249 void HcalPedestalClient::getHistograms()
00250 {
00251 if(!dbe_) return;
00252
00253
00254 ostringstream name;
00255 TH2F* dummy2D = new TH2F();
00256 name<<process_.c_str()<<"PedestalMonitor_Hcal/ ProblemPedestals";
00257 ProblemPedestals = getAnyHisto(dummy2D, name.str(), process_, dbe_, debug_, cloneME_);
00258 name.str("");
00259
00260 for (int i=0;i<6;++i)
00261 {
00262
00263 getSJ6histos("PedestalMonitor_Hcal/problem_pedestals/"," Problem Pedestal Rate", ProblemPedestalsByDepth);
00264
00265 if (ProblemPedestalsByDepth[i])
00266 {
00267 ProblemPedestalsByDepth[i]->SetMaximum(1);
00268 ProblemPedestalsByDepth[i]->SetMinimum(0);
00269 }
00270
00271
00272
00273 getSJ6histos("PedestalMonitor_Hcal/","Pedestal Mean Map ADC",MeanMapByDepth);
00274 if (MeanMapByDepth[i])
00275 {
00276
00277
00278
00279 MeanMapByDepth[i]->SetMaximum(2*nominalPedMeanInADC_);
00280 MeanMapByDepth[i]->SetMinimum(0);
00281 }
00282 getSJ6histos("PedestalMonitor_Hcal/","Pedestal RMS Map ADC",RMSMapByDepth);
00283 if (RMSMapByDepth[i])
00284 {
00285 RMSMapByDepth[i]->SetMaximum(2*nominalPedWidthInADC_ );
00286 RMSMapByDepth[i]->SetMinimum(0);
00287 }
00288
00289
00290 getSJ6histos("PedestalMonitor_Hcal/reference_pedestals/adc/","Pedestal Values from DataBase ADC",ADC_PedestalFromDBByDepth);
00291 getSJ6histos("PedestalMonitor_Hcal/reference_pedestals/adc/","Pedestal Widths from DataBase ADC",ADC_WidthFromDBByDepth);
00292 getSJ6histos("PedestalMonitor_Hcal/reference_pedestals/fc/","Pedestal Values from DataBase fC",fC_PedestalFromDBByDepth);
00293 getSJ6histos("PedestalMonitor_Hcal/reference_pedestals/fc/","Pedestal Widths from DataBase fC",fC_WidthFromDBByDepth);
00294
00295
00296
00297 getSJ6histos("PedestalMonitor_Hcal/adc/raw/","Pedestal Values Map ADC", rawADCPedestalMean);
00298 getSJ6histos("PedestalMonitor_Hcal/adc/raw/","Pedestal Widths Map ADC", rawADCPedestalRMS);
00299 getSJ6histos("PedestalMonitor_Hcal/adc/subtracted__beta_testing/","Subtracted Pedestal Values Map ADC", subADCPedestalMean);
00300 getSJ6histos("PedestalMonitor_Hcal/adc/subtracted__beta_testing/","Subtracted Pedestal Widths Map ADC", subADCPedestalRMS);
00301 getSJ6histos("PedestalMonitor_Hcal/adc/raw/","1D Pedestal Values ADC",rawADCPedestalMean_1D);
00302 getSJ6histos("PedestalMonitor_Hcal/adc/raw/","1D Pedestal Widths ADC",rawADCPedestalRMS_1D);
00303 getSJ6histos("PedestalMonitor_Hcal/adc/subtracted__beta_testing/","1D Subtracted Pedestal Values ADC", subADCPedestalMean_1D);
00304 getSJ6histos("PedestalMonitor_Hcal/adc/subtracted__beta_testing/","1D Subtracted Pedestal Widths ADC", subADCPedestalRMS_1D);
00305
00306
00307 getSJ6histos("PedestalMonitor_Hcal/fc/raw/","Pedestal Values Map fC", rawFCPedestalMean);
00308 getSJ6histos("PedestalMonitor_Hcal/fc/raw/","Pedestal Widths Map fC", rawFCPedestalRMS);
00309 getSJ6histos("PedestalMonitor_Hcal/fc/subtracted__beta_testing/","Subtracted Pedestal Values Map fC", subFCPedestalMean);
00310 getSJ6histos("PedestalMonitor_Hcal/fc/subtracted__beta_testing/","Subtracted Pedestal Widths Map fC", subFCPedestalRMS);
00311 getSJ6histos("PedestalMonitor_Hcal/fc/raw/","1D Pedestal Values fC",rawFCPedestalMean_1D);
00312 getSJ6histos("PedestalMonitor_Hcal/fc/raw/","1D Pedestal Widths fC",rawFCPedestalRMS_1D);
00313 getSJ6histos("PedestalMonitor_Hcal/fc/subtracted__beta_testing/","1D Subtracted Pedestal Values fC", subFCPedestalMean_1D);
00314 getSJ6histos("PedestalMonitor_Hcal/fc/subtracted__beta_testing/","1D Subtracted Pedestal Widths fC", subFCPedestalRMS_1D);
00315
00316 }
00317
00318 return;
00319 }
00320
00321
00322 void HcalPedestalClient::analyze(void)
00323 {
00324 jevt_++;
00325 if ( jevt_ % 10 == 0 )
00326 {
00327 if ( debug_ ) cout << "<HcalPedestalClient::analyze> Running analyze "<<endl;
00328 }
00329 getHistograms();
00330 return;
00331 }
00332
00333
00334 void HcalPedestalClient::createTests()
00335 {
00336
00337
00338 if(!dbe_) return;
00339 return;
00340 }
00341
00342
00343 void HcalPedestalClient::resetAllME()
00344 {
00345 if(!dbe_) return;
00346
00347 ostringstream name;
00348
00349
00350 name<<process_.c_str()<<"PedestalMonitor_Hcal/ ProblemPedestals";
00351 resetME(name.str().c_str(),dbe_);
00352 name.str("");
00353
00354 for (int i=0;i<6;++i)
00355 {
00356
00357
00358
00359 name<<process_.c_str()<<"PedestalMonitor_Hcal/problem_pedestals/"<<subdets_[i]<<" Problem Pedestal Rate";
00360 resetME(name.str().c_str(),dbe_);
00361 name.str("");
00362
00363
00364 name<<process_.c_str()<<"PedestalMonitor_Hcal/"<<subdets_[i]<<"Pedestal Mean Map ADC";
00365 resetME(name.str().c_str(),dbe_);
00366 name.str("");
00367
00368
00369 name<<process_.c_str()<<"PedestalMonitor_Hcal/"<<subdets_[i]<<"Pedestal RMS Map ADC";
00370 resetME(name.str().c_str(),dbe_);
00371 name.str("");
00372
00373
00374
00375 name<<process_.c_str()<<"PedestalMonitor_Hcal/reference_pedestals/adc/"<<subdets_[i]<<"Pedestal Values from DataBase ADC";
00376 resetME(name.str().c_str(),dbe_);
00377 name.str("");
00378
00379 name<<process_.c_str()<<"PedestalMonitor_Hcal/reference_pedestals/adc/"<<subdets_[i]<<"Pedestal Widths from DataBase ADC";
00380 resetME(name.str().c_str(),dbe_);
00381 name.str("");
00382
00383 name<<process_.c_str()<<"PedestalMonitor_Hcal/reference_pedestals/fc/"<<subdets_[i]<<"Pedestal Values from DataBase fC";
00384 resetME(name.str().c_str(),dbe_);
00385 name.str("");
00386
00387 name<<process_.c_str()<<"PedestalMonitor_Hcal/reference_pedestals/fc/"<<subdets_[i]<<"Pedestal Widths from DataBase fC";
00388 resetME(name.str().c_str(),dbe_);
00389 name.str("");
00390
00391
00392 name<<process_.c_str()<<"PedestalMonitor_Hcal/adc/raw/"<<subdets_[i]<<"Pedestal Values Map ADC";
00393 resetME(name.str().c_str(),dbe_);
00394 name.str("");
00395 name<<process_.c_str()<<"PedestalMonitor_Hcal/adc/raw/"<<subdets_[i]<<"Pedestal Widths Map ADC";
00396 resetME(name.str().c_str(),dbe_);
00397 name.str("");
00398 name<<process_.c_str()<<"PedestalMonitor_Hcal/adc/subtracted__beta_testing/"<<subdets_[i]<<"Subtracted Pedestal Values Map ADC";
00399 resetME(name.str().c_str(),dbe_);
00400 name.str("");
00401 name<<process_.c_str()<<"PedestalMonitor_Hcal/adc/subtracted__beta_testing/"<<subdets_[i]<<"Subtracted Pedestal Widths Map ADC";
00402
00403 name.str("");
00404 name<<process_.c_str()<<"PedestalMonitor_Hcal/adc/raw/"<<subdets_[i]<<"1D Pedestal Values ADC";
00405 resetME(name.str().c_str(),dbe_);
00406 name.str("");
00407 name<<process_.c_str()<<"PedestalMonitor_Hcal/adc/raw/"<<subdets_[i]<<"1D Pedestal Widths ADC";
00408 resetME(name.str().c_str(),dbe_);
00409 name.str("");
00410 name<<process_.c_str()<<"PedestalMonitor_Hcal/adc/subtracted__beta_testing/"<<subdets_[i]<<"1D Subtracted Pedestal Values ADC";
00411 resetME(name.str().c_str(),dbe_);
00412 name.str("");
00413 name<<process_.c_str()<<"PedestalMonitor_Hcal/adc/subtracted__beta_testing/"<<subdets_[i]<<"1D Subtracted Pedestal Widths ADC";
00414 resetME(name.str().c_str(),dbe_);
00415 name.str("");
00416
00417
00418 name<<process_.c_str()<<"PedestalMonitor_Hcal/fc/raw/"<<subdets_[i]<<"Pedestal Values Map fC";
00419 resetME(name.str().c_str(),dbe_);
00420 name.str("");
00421 name<<process_.c_str()<<"PedestalMonitor_Hcal/fc/raw/"<<subdets_[i]<<"Pedestal Widths Map fC";
00422 resetME(name.str().c_str(),dbe_);
00423 name.str("");
00424 name<<process_.c_str()<<"PedestalMonitor_Hcal/fc/subtracted__beta_testing/"<<subdets_[i]<<"Subtracted Pedestal Values Map fC";
00425 resetME(name.str().c_str(),dbe_);
00426 name.str("");
00427 name<<process_.c_str()<<"PedestalMonitor_Hcal/fc/subtracted__beta_testing/"<<subdets_[i]<<"Subtracted Pedestal Widths Map fC";
00428 resetME(name.str().c_str(),dbe_);
00429 name.str("");
00430 name<<process_.c_str()<<"PedestalMonitor_Hcal/fc/raw/"<<subdets_[i]<<"1D Pedestal Values fC";
00431 resetME(name.str().c_str(),dbe_);
00432 name.str("");
00433 name<<process_.c_str()<<"PedestalMonitor_Hcal/fc/raw/"<<subdets_[i]<<"1D Pedestal Widths fC";
00434 resetME(name.str().c_str(),dbe_);
00435 name.str("");
00436 name<<process_.c_str()<<"PedestalMonitor_Hcal/fc/subtracted__beta_testing/"<<subdets_[i]<<"1D Subtracted Pedestal Values fC";
00437 resetME(name.str().c_str(),dbe_);
00438 name.str("");
00439 name<<process_.c_str()<<"PedestalMonitor_Hcal/fc/subtracted__beta_testing/"<<subdets_[i]<<"1D Subtracted Pedestal Widths fC";
00440 resetME(name.str().c_str(),dbe_);
00441 name.str("");
00442
00443 }
00444 return;
00445 }
00446
00447
00448 void HcalPedestalClient::htmlOutput(int runNo, string htmlDir, string htmlName)
00449 {
00450 if (showTiming_)
00451 {
00452 cpu_timer.reset(); cpu_timer.start();
00453 }
00454
00455 if (debug_) cout << "Preparing HcalPedestalClient html output ..." << endl;
00456
00457 string client = "PedestalMonitor";
00458
00459 ofstream htmlFile;
00460 htmlFile.open((htmlDir + htmlName).c_str());
00461
00462
00463 htmlFile << "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\"> " << endl;
00464 htmlFile << "<html> " << endl;
00465 htmlFile << "<head> " << endl;
00466 htmlFile << " <meta content=\"text/html; charset=ISO-8859-1\" " << endl;
00467 htmlFile << " https-equiv=\"content-type\"> " << endl;
00468 htmlFile << " <title>Monitor: Hcal Pedestal Task output</title> " << endl;
00469 htmlFile << "</head> " << endl;
00470 htmlFile << "<style type=\"text/css\"> td { font-weight: bold } </style>" << endl;
00471 htmlFile << "<body> " << endl;
00472 htmlFile << "<br> " << endl;
00473 htmlFile << "<h2>Run: " << endl;
00474 htmlFile << " <span " << endl;
00475 htmlFile << " style=\"color: rgb(0, 0, 153);\">" << runNo << "</span></h2>" << endl;
00476 htmlFile << "<h2>Monitoring task: <span " << endl;
00477 htmlFile << " style=\"color: rgb(0, 0, 153);\">Hcal Pedestals</span></h2> " << endl;
00478
00479 htmlFile << "<h2>Events processed: " << endl;
00480 htmlFile << " <span " << endl;
00481 htmlFile << " style=\"color: rgb(0, 0, 153);\">" << ievt_ << "</span></h2>" << endl;
00482 htmlFile << "<hr>" << endl;
00483
00484 htmlFile << "<h2><strong>Hcal Pedestal Status</strong></h2>" << endl;
00485 htmlFile << "<h3>" << endl;
00486 htmlFile << "</h3>" << endl;
00487
00488 htmlFile << "<table align=\"center\" border=\"0\" cellspacing=\"0\" " << endl;
00489 htmlFile << "cellpadding=\"10\"> " << endl;
00490 htmlFile << "<tr align=\"center\">" << endl;
00491 gStyle->SetPalette(20,pcol_error_);
00492 htmlAnyHisto(runNo,ProblemPedestals,"i#eta","i#phi", 92, htmlFile, htmlDir);
00493 htmlFile<<"</tr>"<<endl;
00494 htmlFile<<"<tr align=\"center\"><td> A pedestal is considered problematic if its mean differs from the nominal mean value of "<<nominalPedMeanInADC_<<" by more than "<<maxPedMeanDiffADC_<<" ADC counts.<br>";
00495 htmlFile<<"It is also considered problematic if its RMS differs from the nominal RMS of "<<nominalPedWidthInADC_<<" by more than "<<maxPedWidthDiffADC_<<" ADC counts.<br>"<<endl;
00496 htmlFile<<"</tr></table>"<<endl;
00497 htmlFile<<"<hr><table align=\"center\" border=\"0\" cellspacing=\"0\" " << endl;
00498 htmlFile << "cellpadding=\"10\"> " << endl;
00499 htmlFile << "<tr align=\"center\">" << endl;
00500 htmlFile<<"<tr><td align=center><a href=\"Expert_"<< htmlName<<"\"><h2>Detailed Pedestal Plots</h2> </a></br></td>"<<endl;
00501 htmlFile<<"</tr></table><br><hr>"<<endl;
00502
00503
00504 htmlFile <<"<br>"<<endl;
00505 htmlFile << "<h2><strong>Hcal Problem Cells</strong></h2>" << endl;
00506 htmlFile << "(A problem cell is listed below if its failure rate exceeds "<<(100.*minErrorFlag_)<<"%).<br><br>"<<endl;
00507 htmlFile << "<table align=\"center\" border=\"1\" cellspacing=\"0\" " << endl;
00508 htmlFile << "cellpadding=\"10\"> " << endl;
00509 htmlFile << "<tr align=\"center\">" << endl;
00510 htmlFile <<"<td> Problem Cells<br>(ieta, iphi, depth)</td><td align=\"center\"> Fraction of Events <br>in which cells are bad (%)</td><td align=\"center\"> Mean (ADC)</td><td align=\"center\"> RMS (ADC)</td></tr>"<<endl;
00511
00512 if (ProblemPedestals==0)
00513 {
00514 cout <<"<HcalPedestalClient::htmlOutput> ERROR: can't find ProblemPedestal plot!"<<endl;
00515 return;
00516 }
00517 int etabins = ProblemPedestals->GetNbinsX();
00518 int phibins = ProblemPedestals->GetNbinsY();
00519 float etaMin = ProblemPedestals->GetXaxis()->GetXmin();
00520 float phiMin = ProblemPedestals->GetYaxis()->GetXmin();
00521
00522 int eta,phi;
00523
00524 ostringstream name;
00525 for (int depth=0;depth<6; ++depth)
00526 {
00527 for (int ieta=1;ieta<=etabins;++ieta)
00528 {
00529 for (int iphi=1; iphi<=phibins;++iphi)
00530 {
00531 eta=ieta+int(etaMin)-1;
00532 phi=iphi+int(phiMin)-1;
00533 int mydepth=depth+1;
00534 if (mydepth>4) mydepth-=4;
00535 if (ProblemPedestalsByDepth[depth]==0)
00536 {
00537 continue;
00538 }
00539 if (ProblemPedestalsByDepth[depth]->GetBinContent(ieta,iphi)>minErrorFlag_)
00540 {
00541 if (depth<2)
00542 (fabs(eta)<29) ? name<<"HB" : name<<"HF";
00543 else if (depth==3)
00544 (fabs(eta)<42) ? name<<"HO" : name<<"ZDC";
00545 else name <<"HE";
00546 if (MeanMapByDepth[depth]!=0 && RMSMapByDepth[depth]!=0)
00547 htmlFile<<"<td>"<<name.str().c_str()<<" ("<<eta<<", "<<phi<<", "<<mydepth<<")</td><td align=\"center\">"<<ProblemPedestalsByDepth[depth]->GetBinContent(ieta,iphi)*100.<<"</td><td align=\"center\"> "<<MeanMapByDepth[depth]->GetBinContent(ieta,iphi)<<" </td> <td align=\"center\">"<<RMSMapByDepth[depth]->GetBinContent(ieta,iphi)<<"</td></tr>"<<endl;
00548 name.str("");
00549 }
00550 }
00551 }
00552 }
00553
00554
00555
00556 htmlFile <<"</table> " << endl;
00557 htmlFile << "</body> " << endl;
00558 htmlFile << "</html> " << endl;
00559
00560 htmlFile.close();
00561 htmlExpertOutput(runNo, htmlDir, htmlName);
00562
00563 if (showTiming_)
00564 {
00565 cpu_timer.stop(); cout <<"TIMER:: HcalPedestalClient HTMLOUTPUT -> "<<cpu_timer.cpuTime()<<endl;
00566 }
00567
00568 return;
00569 }
00570
00571
00572 void HcalPedestalClient::htmlExpertOutput(int runNo, string htmlDir, string htmlName)
00573 {
00574 if (showTiming_)
00575 {
00576 cpu_timer.reset(); cpu_timer.start();
00577 }
00578
00579 if (debug_)
00580 cout <<" <HcalPedestalClient::htmlExpertOutput> Preparing Expert html output ..." <<endl;
00581
00582 string client = "PedestalMonitor";
00583 htmlErrors(runNo,htmlDir,client,process_,dbe_,dqmReportMapErr_,dqmReportMapWarn_,dqmReportMapOther_);
00584
00585 ofstream htmlFile;
00586 htmlFile.open((htmlDir +"Expert_"+ htmlName).c_str());
00587
00588
00589 htmlFile << "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\"> " << endl;
00590 htmlFile << "<html> " << endl;
00591 htmlFile << "<head> " << endl;
00592 htmlFile << " <meta content=\"text/html; charset=ISO-8859-1\" " << endl;
00593 htmlFile << " https-equiv=\"content-type\"> " << endl;
00594 htmlFile << " <title>Monitor: Hcal Pedestal Task output</title> " << endl;
00595 htmlFile << "</head> " << endl;
00596 htmlFile << "<style type=\"text/css\"> td { font-weight: bold } </style>" << endl;
00597 htmlFile << "<body> " << endl;
00598 htmlFile <<"<a name=\"EXPERT_PEDESTAL_TOP\" href = \".\"> Back to Main HCAL DQM Page </a><br>"<<endl;
00599 htmlFile <<"<a href= \""<<htmlName.c_str()<<"\" > Back to Pedestal Status Page </a><br>"<<endl;
00600 htmlFile << "<br> " << endl;
00601 htmlFile << "<h2>Run: " << endl;
00602 htmlFile << " <span " << endl;
00603 htmlFile << " style=\"color: rgb(0, 0, 153);\">" << runNo << "</span></h2>" << endl;
00604 htmlFile << "<h2>Monitoring task: <span " << endl;
00605 htmlFile << " style=\"color: rgb(0, 0, 153);\">Hcal Pedestals</span></h2> " << endl;
00606 htmlFile << "<h2>Events processed: " << endl;
00607 htmlFile << " <span " << endl;
00608 htmlFile << " style=\"color: rgb(0, 0, 153);\">" << ievt_ << "</span></h2>" << endl;
00609 htmlFile << "<hr>" << endl;
00610
00611 htmlFile << "<table width=100% border = 1>"<<endl;
00612 htmlFile << "<tr><td align=\"center\" colspan=2><a href=\"#OVERALL_PEDS\">Pedestal Mean and RMS Maps </a></td></tr>"<<endl;
00613 htmlFile << "<tr><td align=\"center\">Pedestals in ADC counts<br><a href=\"#RAW_ADC\">Raw Pedestals</a><br><a href=\"#SUB_ADC\">Subtracted Pedestals</a><br></td>"<<endl;
00614 htmlFile << "<td align=\"center\">Pedestals in femtoCoulombs<br><a href=\"#RAW_fC\">Raw Pedestals</a><br><a href=\"#SUB_fC\">Subtracted Pedestals</a><br></td></tr>"<<endl;
00615 htmlFile << "<tr><td align=\"center\" colspan=2><a href=\"#PROBLEM_PEDS\">Problem Pedestals</a></td></tr>"<<endl;
00616 htmlFile << "<td align=\"center\"><a href=\"#REF_ADC\">Reference Pedestals <br>from database (ADC)</a><br></td><td align=\"center\"><a href=\"#REF_fC\"> Reference Pedestals <br>from database (fC)</a><br></td></tr>"<<endl;
00617 htmlFile <<"</table>"<<endl;
00618 htmlFile <<"<br><br>"<<endl;
00619
00620
00621
00622 htmlFile << "<h2><strong><a name=\"OVERALL_PEDS\">2D Maps of Pedestal Means and RMS Values</strong></h2>"<<endl;
00623 htmlFile <<"<a href= \"#EXPERT_PEDESTAL_TOP\" > Back to Top</a><br>"<<endl;
00624 htmlFile << "<table border=\"0\" cellspacing=\"0\" " << endl;
00625 htmlFile << "cellpadding=\"10\"> " << endl;
00626 gStyle->SetPalette(1);
00627
00628
00629
00630
00631 int mydepth[6]={0,1,4,5,2,3};
00632 for (int i=0;i<6;++i)
00633 {
00634 htmlFile << "<tr align=\"left\">" << endl;
00635 htmlAnyHisto(runNo,MeanMapByDepth[mydepth[i]],"i#eta","i#phi", 92, htmlFile, htmlDir);
00636 htmlAnyHisto(runNo,RMSMapByDepth[mydepth[i]],"i#eta","i#phi", 92, htmlFile, htmlDir);
00637 htmlFile <<"</tr>"<<endl;
00638 }
00639 htmlFile <<"</table>"<<endl;
00640 htmlFile <<"<br><hr><br>"<<endl;
00641
00642
00643 htmlFile << "<h2><strong><a name=\"RAW_ADC\">Raw Pedestals from database (ADC)</strong></h2>"<<endl;
00644 htmlFile <<"<a href= \"#EXPERT_PEDESTAL_TOP\" > Back to Top</a><br>"<<endl;
00645 htmlFile << "<table border=\"0\" cellspacing=\"0\" " << endl;
00646 htmlFile << "cellpadding=\"10\"> " << endl;
00647 gStyle->SetPalette(1);
00648 for (int i=0;i<6;++i)
00649 {
00650 htmlFile << "<tr align=\"left\">" << endl;
00651 htmlAnyHisto(runNo,rawADCPedestalMean[mydepth[i]],"i#eta","i#phi", 92, htmlFile, htmlDir);
00652 htmlAnyHisto(runNo,rawADCPedestalRMS[mydepth[i]],"i#eta","i#phi", 92, htmlFile, htmlDir);
00653 htmlFile <<"</tr>"<<endl;
00654 }
00655 for (int i=0;i<6;++i)
00656 {
00657 htmlFile << "<tr align=\"left\">" << endl;
00658 htmlAnyHisto(runNo,rawADCPedestalMean_1D[mydepth[i]],"i#eta","i#phi", 92, htmlFile, htmlDir);
00659 htmlAnyHisto(runNo,rawADCPedestalRMS_1D[mydepth[i]],"i#eta","i#phi", 92, htmlFile, htmlDir);
00660 htmlFile <<"</tr>"<<endl;
00661 }
00662 htmlFile <<"</table>"<<endl;
00663 htmlFile <<"<br><hr><br>"<<endl;
00664
00665
00666 htmlFile << "<h2><strong><a name=\"SUB_ADC\">Subtracted Pedestals from database (ADC)</strong></h2>"<<endl;
00667 htmlFile <<"<a href= \"#EXPERT_PEDESTAL_TOP\" > Back to Top</a><br>"<<endl;
00668 htmlFile <<"Plots of (computed pedestal values) - (reference pedestal values).<br>"<<endl;
00669 htmlFile <<"(If the database stores values in fC, the subtracted pedestal widths in ADC may not be plotted correctly here.)<br>"<<endl;
00670 htmlFile << "<table border=\"0\" cellspacing=\"0\" " << endl;
00671 htmlFile << "cellpadding=\"10\"> " << endl;
00672 gStyle->SetPalette(1);
00673 for (int i=0;i<6;++i)
00674 {
00675 htmlFile << "<tr align=\"left\">" << endl;
00676 htmlAnyHisto(runNo,subADCPedestalMean[mydepth[i]],"i#eta","i#phi", 92, htmlFile, htmlDir);
00677 htmlAnyHisto(runNo,subADCPedestalRMS[mydepth[i]],"i#eta","i#phi", 92, htmlFile, htmlDir);
00678 htmlFile <<"</tr>"<<endl;
00679 }
00680 for (int i=0;i<6;++i)
00681 {
00682 htmlFile << "<tr align=\"left\">" << endl;
00683 htmlAnyHisto(runNo,subADCPedestalMean_1D[mydepth[i]],"i#eta","i#phi", 92, htmlFile, htmlDir);
00684 htmlAnyHisto(runNo,subADCPedestalRMS_1D[mydepth[i]],"i#eta","i#phi", 92, htmlFile, htmlDir);
00685 htmlFile <<"</tr>"<<endl;
00686 }
00687 htmlFile <<"</table>"<<endl;
00688
00689
00690 htmlFile << "<h2><strong><a name=\"RAW_fC\">Raw Pedestals from database (fC)</strong></h2>"<<endl;
00691 htmlFile <<"<a href= \"#EXPERT_PEDESTAL_TOP\" > Back to Top</a><br>"<<endl;
00692 htmlFile << "<table border=\"0\" cellspacing=\"0\" " << endl;
00693 htmlFile << "cellpadding=\"10\"> " << endl;
00694 gStyle->SetPalette(1);
00695 for (int i=0;i<6;++i)
00696 {
00697 htmlFile << "<tr align=\"left\">" << endl;
00698 htmlAnyHisto(runNo,rawFCPedestalMean[mydepth[i]],"i#eta","i#phi", 92, htmlFile, htmlDir);
00699 htmlAnyHisto(runNo,rawFCPedestalRMS[mydepth[i]],"i#eta","i#phi", 92, htmlFile, htmlDir);
00700 htmlFile <<"</tr>"<<endl;
00701 }
00702 for (int i=0;i<6;++i)
00703 {
00704 htmlFile << "<tr align=\"left\">" << endl;
00705 htmlAnyHisto(runNo,rawFCPedestalMean_1D[mydepth[i]],"i#eta","i#phi", 92, htmlFile, htmlDir);
00706 htmlAnyHisto(runNo,rawFCPedestalRMS_1D[mydepth[i]],"i#eta","i#phi", 92, htmlFile, htmlDir);
00707 htmlFile <<"</tr>"<<endl;
00708 }
00709 htmlFile <<"</table>"<<endl;
00710 htmlFile <<"<br><hr><br>"<<endl;
00711
00712
00713 htmlFile << "<h2><strong><a name=\"SUB_fC\">Subtracted Pedestals from database (fC)</strong></h2>"<<endl;
00714 htmlFile <<"<a href= \"#EXPERT_PEDESTAL_TOP\" > Back to Top</a><br>"<<endl;
00715 htmlFile <<"Plots of (computed pedestal values) - (reference pedestal values).<br>"<<endl;
00716 htmlFile <<"(If the database stores values in ADC, the subtracted pedestal widths in fC may not be plotted correctly here.)<br>"<<endl;
00717 htmlFile << "<table border=\"0\" cellspacing=\"0\" " << endl;
00718 htmlFile << "cellpadding=\"10\"> " << endl;
00719 gStyle->SetPalette(1);
00720 for (int i=0;i<6;++i)
00721 {
00722 htmlFile << "<tr align=\"left\">" << endl;
00723 htmlAnyHisto(runNo,subFCPedestalMean[mydepth[i]],"i#eta","i#phi", 92, htmlFile, htmlDir);
00724 htmlAnyHisto(runNo,subFCPedestalRMS[mydepth[i]],"i#eta","i#phi", 92, htmlFile, htmlDir);
00725 htmlFile <<"</tr>"<<endl;
00726 }
00727 for (int i=0;i<6;++i)
00728 {
00729 htmlFile << "<tr align=\"left\">" << endl;
00730 htmlAnyHisto(runNo,subFCPedestalMean_1D[mydepth[i]],"i#eta","i#phi", 92, htmlFile, htmlDir);
00731 htmlAnyHisto(runNo,subFCPedestalRMS_1D[mydepth[i]],"i#eta","i#phi", 92, htmlFile, htmlDir);
00732 htmlFile <<"</tr>"<<endl;
00733 }
00734 htmlFile <<"</table>"<<endl;
00735
00736
00737
00738 htmlFile << "<h2><strong><a name=\"PROBLEM_PEDS\">Problem Pedestals</strong></h2>"<<endl;
00739 htmlFile <<"<a href= \"#EXPERT_PEDESTAL_TOP\" > Back to Top</a><br>"<<endl;
00740 htmlFile << "<table border=\"0\" cellspacing=\"0\" " << endl;
00741 htmlFile << "cellpadding=\"10\"> " << endl;
00742 gStyle->SetPalette(20,pcol_error_);
00743 for (int i=0;i<3;++i)
00744 {
00745 htmlFile << "<tr align=\"left\">" << endl;
00746 htmlAnyHisto(runNo,ProblemPedestalsByDepth[2*i],"i#eta","i#phi", 92, htmlFile, htmlDir);
00747 htmlAnyHisto(runNo,ProblemPedestalsByDepth[2*i+1],"i#eta","i#phi", 92, htmlFile, htmlDir);
00748 htmlFile <<"</tr>"<<endl;
00749 }
00750 htmlFile <<"</table>"<<endl;
00751 htmlFile <<"<br><hr><br>"<<endl;
00752
00753
00754
00755 htmlFile << "<h2><strong><a name=\"REF_ADC\">Reference Pedestals from database (ADC)</strong></h2>"<<endl;
00756 htmlFile <<"<a href= \"#EXPERT_PEDESTAL_TOP\" > Back to Top</a><br>"<<endl;
00757 htmlFile <<"(If the database stores values in fC, the pedestal widths in ADC may not be plotted correctly here.)<br>"<<endl;
00758 htmlFile << "<table border=\"0\" cellspacing=\"0\" " << endl;
00759 htmlFile << "cellpadding=\"10\"> " << endl;
00760 gStyle->SetPalette(1);
00761 for (int i=0;i<6;++i)
00762 {
00763 htmlFile << "<tr align=\"left\">" << endl;
00764 htmlAnyHisto(runNo,ADC_PedestalFromDBByDepth[mydepth[i]],"i#eta","i#phi", 92, htmlFile, htmlDir);
00765 htmlAnyHisto(runNo,ADC_WidthFromDBByDepth[mydepth[i]],"i#eta","i#phi", 92, htmlFile, htmlDir);
00766 htmlFile <<"</tr>"<<endl;
00767 }
00768 htmlFile <<"</table>"<<endl;
00769
00770 htmlFile <<"<br><hr><br>"<<endl;
00771
00772
00773 htmlFile << "<h2><strong><a name=\"REF_fC\">Reference Pedestals from database (fC)</strong></h2>"<<endl;
00774 htmlFile <<"<a href= \"#EXPERT_PEDESTAL_TOP\" > Back to Top</a><br>"<<endl;
00775 htmlFile <<"(If the database stores values in ADC, the pedestal widths in fC may not be plotted correctly here.)<br>"<<endl;
00776 htmlFile << "<table border=\"0\" cellspacing=\"0\" " << endl;
00777 htmlFile << "cellpadding=\"10\"> " << endl;
00778 gStyle->SetPalette(1);
00779 for (int i=0;i<6;++i)
00780 {
00781 htmlFile << "<tr align=\"left\">" << endl;
00782 htmlAnyHisto(runNo,fC_PedestalFromDBByDepth[mydepth[i]],"i#eta","i#phi", 92, htmlFile, htmlDir);
00783 htmlAnyHisto(runNo,fC_WidthFromDBByDepth[mydepth[i]],"i#eta","i#phi", 92, htmlFile, htmlDir);
00784 htmlFile <<"</tr>"<<endl;
00785 }
00786 htmlFile <<"</table>"<<endl;
00787
00788 htmlFile <<"<br><hr><br><a href= \"#EXPERT_PEDESTAL_TOP\" > Back to Top of Page </a><br>"<<endl;
00789 htmlFile <<"<a href = \".\"> Back to Main HCAL DQM Page </a><br>"<<endl;
00790 htmlFile <<"<a href= \""<<htmlName.c_str()<<"\" > Back to Pedestal Status Page </a><br>"<<endl;
00791
00792 htmlFile << "</body> " << endl;
00793 htmlFile << "</html> " << endl;
00794
00795 htmlFile.close();
00796
00797 if (showTiming_)
00798 {
00799 cpu_timer.stop(); cout <<"TIMER:: HcalPedestalClient HTMLEXPERTOUTPUT ->"<<cpu_timer.cpuTime()<<endl;
00800 }
00801 return;
00802 }
00803
00804
00805
00806 void HcalPedestalClient::loadHistograms(TFile* infile)
00807 {
00808 TNamed* tnd = (TNamed*)infile->Get("DQMData/Hcal/PedestalMonitor_Hcal/Pedestal Task Event Number");
00809 if(tnd)
00810 {
00811 string s =tnd->GetTitle();
00812 ievt_ = -1;
00813 sscanf((s.substr(2,s.length()-2)).c_str(), "%d", &ievt_);
00814 }
00815
00816 ostringstream name;
00817
00818 name<<process_.c_str()<<"PedestalMonitor_Hcal/ ProblemPedestals";
00819 ProblemPedestals = (TH2F*)infile->Get(name.str().c_str());
00820 name.str("");
00821
00822 for (int i=0;i<6;++i)
00823 {
00824
00825 name<<process_.c_str()<<"PedestalMonitor_Hcal/problem_pedestals/"<<subdets_[i]<<" Problem Pedestal Rate";
00826 ProblemPedestalsByDepth[i] = (TH2F*)infile->Get(name.str().c_str());
00827 name.str("");
00828
00829
00830 name<<process_.c_str()<<"PedestalMonitor_Hcal/"<<subdets_[i]<<"Pedestal Mean Map ADC";
00831 MeanMapByDepth[i] = (TH2F*)infile->Get(name.str().c_str());
00832 name.str("");
00833
00834 name<<process_.c_str()<<"PedestalMonitor_Hcal/"<<subdets_[i]<<"Pedestal RMS Map ADC";
00835 RMSMapByDepth[i] = (TH2F*)infile->Get(name.str().c_str());
00836 name.str("");
00837
00838
00839 name<<process_.c_str()<<"PedestalMonitor_Hcal/reference_pedestals/adc/"<<subdets_[i]<<"Pedestal Values from DataBase ADC";
00840 ADC_PedestalFromDBByDepth[i] = (TH2F*)infile->Get(name.str().c_str());
00841 name.str("");
00842
00843 name<<process_.c_str()<<"PedestalMonitor_Hcal/reference_pedestals/adc/"<<subdets_[i]<<"Pedestal Widths from DataBase ADC";
00844 ADC_WidthFromDBByDepth[i] = (TH2F*)infile->Get(name.str().c_str());
00845 name.str("");
00846
00847 name<<process_.c_str()<<"PedestalMonitor_Hcal/reference_pedestals/fc/"<<subdets_[i]<<"Pedestal Values from DataBase fC";
00848 fC_PedestalFromDBByDepth[i] = (TH2F*)infile->Get(name.str().c_str());
00849 name.str("");
00850
00851 name<<process_.c_str()<<"PedestalMonitor_Hcal/reference_pedestals/fc/"<<subdets_[i]<<"Pedestal Widths from DataBase fC";
00852 fC_WidthFromDBByDepth[i] = (TH2F*)infile->Get(name.str().c_str());
00853 name.str("");
00854
00855
00856 name<<process_.c_str()<<"PedestalMonitor_Hcal/adc/raw/"<<subdets_[i]<<"Pedestal Values Map ADC";
00857 rawADCPedestalMean[i] = (TH2F*)infile->Get(name.str().c_str());
00858 name.str("");
00859 name<<process_.c_str()<<"PedestalMonitor_Hcal/adc/raw/"<<subdets_[i]<<"Pedestal Widths Map ADC";
00860 rawADCPedestalRMS[i] = (TH2F*)infile->Get(name.str().c_str());
00861 name.str("");
00862 name<<process_.c_str()<<"PedestalMonitor_Hcal/adc/subtracted__beta_testing/"<<subdets_[i]<<"Subtracted Pedestal Values Map ADC";
00863 subADCPedestalMean[i] = (TH2F*)infile->Get(name.str().c_str());
00864 name.str("");
00865 name<<process_.c_str()<<"PedestalMonitor_Hcal/adc/subtracted__beta_testing/"<<subdets_[i]<<"Subtracted Pedestal Widths Map ADC";
00866 subADCPedestalRMS[i] = (TH2F*)infile->Get(name.str().c_str());
00867 name.str("");
00868 name<<process_.c_str()<<"PedestalMonitor_Hcal/adc/raw/"<<subdets_[i]<<"1D Pedestal Values ADC";
00869 rawADCPedestalMean_1D[i] =(TH1F*)infile->Get(name.str().c_str());
00870 name.str("");
00871 name<<process_.c_str()<<"PedestalMonitor_Hcal/adc/raw/"<<subdets_[i]<<"1D Pedestal Widths ADC";
00872 rawADCPedestalRMS_1D[i] =(TH1F*)infile->Get(name.str().c_str());
00873 name.str("");
00874 name<<process_.c_str()<<"PedestalMonitor_Hcal/adc/subtracted__beta_testing/"<<subdets_[i]<<"1D Subtracted Pedestal Values ADC";
00875 subADCPedestalMean_1D[i] =(TH1F*)infile->Get(name.str().c_str());
00876 name.str("");
00877 name<<process_.c_str()<<"PedestalMonitor_Hcal/adc/subtracted__beta_testing/"<<subdets_[i]<<"1D Subtracted Pedestal Widths ADC";
00878 subADCPedestalRMS_1D[i] =(TH1F*)infile->Get(name.str().c_str());
00879 name.str("");
00880
00881
00882 name<<process_.c_str()<<"PedestalMonitor_Hcal/fc/raw/"<<subdets_[i]<<"Pedestal Values Map fC";
00883 rawFCPedestalMean[i] = (TH2F*)infile->Get(name.str().c_str());
00884 name.str("");
00885 name<<process_.c_str()<<"PedestalMonitor_Hcal/fc/raw/"<<subdets_[i]<<"Pedestal Widths Map fC";
00886 rawFCPedestalRMS[i] = (TH2F*)infile->Get(name.str().c_str());
00887 name.str("");
00888 name<<process_.c_str()<<"PedestalMonitor_Hcal/fc/subtracted__beta_testing/"<<subdets_[i]<<"Subtracted Pedestal Values Map fC";
00889 subFCPedestalMean[i] = (TH2F*)infile->Get(name.str().c_str());
00890 name.str("");
00891 name<<process_.c_str()<<"PedestalMonitor_Hcal/fc/subtracted__beta_testing/"<<subdets_[i]<<"Subtracted Pedestal Widths Map fC";
00892 subFCPedestalRMS[i] = (TH2F*)infile->Get(name.str().c_str());
00893 name.str("");
00894 name<<process_.c_str()<<"PedestalMonitor_Hcal/fc/raw/"<<subdets_[i]<<"1D Pedestal Values fC";
00895 rawFCPedestalMean_1D[i] =(TH1F*)infile->Get(name.str().c_str());
00896 name.str("");
00897 name<<process_.c_str()<<"PedestalMonitor_Hcal/fc/raw/"<<subdets_[i]<<"1D Pedestal Widths fC";
00898 rawFCPedestalRMS_1D[i] =(TH1F*)infile->Get(name.str().c_str());
00899 name.str("");
00900 name<<process_.c_str()<<"PedestalMonitor_Hcal/fc/subtracted__beta_testing/"<<subdets_[i]<<"1D Subtracted Pedestal Values fC";
00901 subFCPedestalMean_1D[i] =(TH1F*)infile->Get(name.str().c_str());
00902 name.str("");
00903 name<<process_.c_str()<<"PedestalMonitor_Hcal/fc/subtracted__beta_testing/"<<subdets_[i]<<"1D Subtracted Pedestal Widths fC";
00904 subFCPedestalRMS_1D[i] =(TH1F*)infile->Get(name.str().c_str());
00905 name.str("");
00906 }
00907 return;
00908 }
00909