00001 #include "DQM/HcalMonitorClient/interface/ZDCMonitorClient.h"
00002 #include "FWCore/ServiceRegistry/interface/Service.h"
00003 #include "FWCore/Framework/interface/MakerMacros.h"
00004 #include "DQMServices/Core/interface/MonitorElement.h"
00005 #include "DataFormats/DetId/interface/DetId.h"
00006
00007 #include "TROOT.h"
00008 #include "TTree.h"
00009 #include "TGaxis.h"
00010 #include "TH1F.h"
00011 #include "TH2F.h"
00012 #include "TFile.h"
00013
00014 #include <memory>
00015 #include <iostream>
00016 #include <fstream>
00017 #include <vector>
00018 #include <string>
00019 #include <sys/time.h>
00020
00021 #include "CalibFormats/HcalObjects/interface/HcalDbService.h"
00022 #include "CalibFormats/HcalObjects/interface/HcalDbRecord.h"
00023
00024 #include "DQM/HcalMonitorClient/interface/HcalDQMDbInterface.h"
00025
00026 #include "CondFormats/HcalObjects/interface/HcalChannelQuality.h"
00027 #include "CondFormats/HcalObjects/interface/HcalCondObjectContainer.h"
00028 #include "CalibCalorimetry/HcalAlgos/interface/HcalDbASCIIIO.h"
00029 #include "CondFormats/HcalObjects/interface/HcalChannelStatus.h"
00030
00031 #include "DQM/HcalMonitorClient/interface/HcalClientUtils.h"
00032 #include "DQM/HcalMonitorClient/interface/HcalHistoUtils.h"
00033 #include "DQM/HcalMonitorTasks/interface/HcalEtaPhiHists.h"
00034
00035 #include "FWCore/Framework/interface/Run.h"
00036 #include "FWCore/Framework/interface/LuminosityBlock.h"
00037 #include "FWCore/Framework/interface/Event.h"
00038 #include "FWCore/Framework/interface/MakerMacros.h"
00039 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00040 #include "FWCore/ServiceRegistry/interface/Service.h"
00041 #include "FWCore/Framework/interface/ESHandle.h"
00042
00043 #include "DQMServices/Core/interface/MonitorElement.h"
00044 #include "DQMServices/Core/interface/DQMStore.h"
00045
00046
00047
00048 ZDCMonitorClient::ZDCMonitorClient(std::string myname, const edm::ParameterSet& ps){
00049 name_=myname;
00050
00051 inputFile_ = ps.getUntrackedParameter<std::string>("inputFile","");
00052 mergeRuns_ = ps.getUntrackedParameter<bool>("mergeRuns", false);
00053 cloneME_ = ps.getUntrackedParameter<bool>("cloneME", true);
00054 prescaleFactor_ = ps.getUntrackedParameter<int>("prescaleFactor", -1);
00055 prefixME_ = ps.getUntrackedParameter<std::string>("subSystemFolder","Hcal/");
00056 if (prefixME_.substr(prefixME_.size()-1,prefixME_.size())!="/")
00057 prefixME_.append("/");
00058 enableCleanup_ = ps.getUntrackedParameter<bool>("enableCleanup", false);
00059
00060 updateTime_ = ps.getUntrackedParameter<int>("UpdateTime",0);
00061 baseHtmlDir_ = ps.getUntrackedParameter<std::string>("baseHtmlDir", "");
00062 htmlUpdateTime_ = ps.getUntrackedParameter<int>("htmlUpdateTime", 0);
00063 htmlFirstUpdate_ = ps.getUntrackedParameter<int>("htmlFirstUpdate",20);
00064 databasedir_ = ps.getUntrackedParameter<std::string>("databaseDir","");
00065 databaseUpdateTime_ = ps.getUntrackedParameter<int>("databaseUpdateTime",0);
00066 databaseFirstUpdate_ = ps.getUntrackedParameter<int>("databaseFirstUpdate",10);
00067
00068 saveByLumiSection_ = ps.getUntrackedParameter<bool>("saveByLumiSection",false);
00069 Online_ = ps.getUntrackedParameter<bool>("online",false);
00070
00071 subdir_ = ps.getUntrackedParameter<std::string>("ZDCFolder","ZDCMonitor_Hcal/");
00072 if (subdir_.size()>0 && subdir_.substr(subdir_.size()-1,subdir_.size())!="/")
00073 subdir_.append("/");
00074 subdir_=prefixME_+subdir_;
00075
00076 debug_ = ps.getUntrackedParameter<int>("debug",0);
00077 ZDCGoodLumi_ = ps.getUntrackedParameter<std::vector<double> > ("ZDC_QIValueForGoodLS");
00078
00079 }
00080
00081
00082
00083 ZDCMonitorClient::~ZDCMonitorClient(){
00084
00085 if (debug_>0) std::cout << "ZDCMonitorClient: Exit ..." << std::endl;
00086 }
00087
00088
00089
00090 void ZDCMonitorClient::beginJob()
00091 {
00092 dqmStore_ = edm::Service<DQMStore>().operator->();
00093 if (debug_>0)
00094 {
00095 std::cout <<"<ZDCMonitorClient::beginJob()> Displaying dqmStore directory structure:"<<std::endl;
00096 dqmStore_->showDirStructure();
00097 }
00098 }
00099
00100
00101 void ZDCMonitorClient::beginRun(void) {
00102
00103 begin_run_ = true;
00104 end_run_ = false;
00105
00106 evt_=0;
00107 jevt_=0;
00108 htmlcounter_=0;
00109
00110
00111
00112
00113
00114
00115 dqmStore_->setCurrentFolder(subdir_);
00116
00117
00118
00119
00120 ZDCChannelSummary_=dqmStore_->get(subdir_ + "ZDC_Channel_Summary");
00121 if (ZDCChannelSummary_) dqmStore_->removeElement(ZDCChannelSummary_->getName());
00122 ZDCChannelSummary_= dqmStore_->book2D("ZDC_Channel_Summary", "Fraction of Events where ZDC Channels had no Errors" , 2, 0, 2, 9, 0, 9);
00123 for (int i=0;i<18;++i)
00124 {
00125 ZDCChannelSummary_->setBinContent(i/9,i%9,-1);
00126 }
00127 (ZDCChannelSummary_->getTH2F())->GetXaxis()->SetBinLabel(1,"ZDC+");
00128 (ZDCChannelSummary_->getTH2F())->GetXaxis()->SetBinLabel(2,"ZDC-");
00129 (ZDCChannelSummary_->getTH2F())->GetYaxis()->SetBinLabel(1,"EM1");
00130 (ZDCChannelSummary_->getTH2F())->GetYaxis()->SetBinLabel(2,"EM2");
00131 (ZDCChannelSummary_->getTH2F())->GetYaxis()->SetBinLabel(3,"EM3");
00132 (ZDCChannelSummary_->getTH2F())->GetYaxis()->SetBinLabel(4,"EM4");
00133 (ZDCChannelSummary_->getTH2F())->GetYaxis()->SetBinLabel(5,"EM5");
00134 (ZDCChannelSummary_->getTH2F())->GetYaxis()->SetBinLabel(6,"HAD1");
00135 (ZDCChannelSummary_->getTH2F())->GetYaxis()->SetBinLabel(7,"HAD2");
00136 (ZDCChannelSummary_->getTH2F())->GetYaxis()->SetBinLabel(8,"HAD3");
00137 (ZDCChannelSummary_->getTH2F())->GetYaxis()->SetBinLabel(9,"HAD4");
00138 (ZDCChannelSummary_->getTH2F())->SetOption("textcolz");
00139 (ZDCChannelSummary_->getTH2F())->SetMinimum(-1);
00140 (ZDCChannelSummary_->getTH2F())->SetMaximum(1);
00141
00142
00143
00144 ZDCReportSummary_ = dqmStore_->get(subdir_ + "ZDC_ReportSummary");
00145 if (ZDCReportSummary_) dqmStore_->removeElement(ZDCReportSummary_->getName());
00146 ZDCReportSummary_= dqmStore_->book2D("ZDC_ReportSummary","Fraction of Good Lumis for either ZDC",2,0,2,1,0,1);
00147 for (int i=0;i<3;++i)
00148 {
00149 ZDCReportSummary_->setBinContent(i,1,-1);
00150 }
00151 (ZDCReportSummary_->getTH2F())->GetXaxis()->SetBinLabel(1,"ZDC+");
00152 (ZDCReportSummary_->getTH2F())->GetXaxis()->SetBinLabel(2,"ZDC-");
00153 (ZDCReportSummary_->getTH2F())->SetOption("textcolz");
00154 (ZDCReportSummary_->getTH2F())->SetMinimum(-1);
00155 (ZDCReportSummary_->getTH2F())->SetMaximum(1);
00156
00157 ZDCHotChannelFraction_ = dqmStore_->get(subdir_+"Errors/HotChannel/ZDC_Hot_Channel_Fraction");
00158 if (ZDCHotChannelFraction_) dqmStore_->removeElement(ZDCHotChannelFraction_->getName());
00159 dqmStore_->setCurrentFolder(subdir_ + "Errors/HotChannel");
00160 ZDCHotChannelFraction_ = dqmStore_->book2D("ZDC_Hot_Channel_Fraction", "Hot Channel Rates in the ZDC Channels", 2, 0, 2, 9, 0, 9);
00161 for (int i=0;i<18;++i)
00162 {
00163 ZDCHotChannelFraction_->setBinContent(i/9,i%9,-1);
00164 }
00165 (ZDCHotChannelFraction_->getTH2F())->GetXaxis()->SetBinLabel(1,"ZDC+");
00166 (ZDCHotChannelFraction_->getTH2F())->GetXaxis()->SetBinLabel(2,"ZDC-");
00167 (ZDCHotChannelFraction_->getTH2F())->GetYaxis()->SetBinLabel(1,"EM1");
00168 (ZDCHotChannelFraction_->getTH2F())->GetYaxis()->SetBinLabel(2,"EM2");
00169 (ZDCHotChannelFraction_->getTH2F())->GetYaxis()->SetBinLabel(3,"EM3");
00170 (ZDCHotChannelFraction_->getTH2F())->GetYaxis()->SetBinLabel(4,"EM4");
00171 (ZDCHotChannelFraction_->getTH2F())->GetYaxis()->SetBinLabel(5,"EM5");
00172 (ZDCHotChannelFraction_->getTH2F())->GetYaxis()->SetBinLabel(6,"HAD1");
00173 (ZDCHotChannelFraction_->getTH2F())->GetYaxis()->SetBinLabel(7,"HAD2");
00174 (ZDCHotChannelFraction_->getTH2F())->GetYaxis()->SetBinLabel(8,"HAD3");
00175 (ZDCHotChannelFraction_->getTH2F())->GetYaxis()->SetBinLabel(9,"HAD4");
00176 (ZDCHotChannelFraction_->getTH2F())->SetOption("textcolz");
00177 (ZDCHotChannelFraction_->getTH2F())->SetMinimum(-1);
00178 (ZDCHotChannelFraction_->getTH2F())->SetMaximum(1);
00179
00180 ZDCColdChannelFraction_ = dqmStore_->get(subdir_ + "Errors/ColdChannel/ZDC_Cold_Channel_Fraction");
00181 if (ZDCColdChannelFraction_) dqmStore_->removeElement(ZDCColdChannelFraction_->getName());
00182 dqmStore_->setCurrentFolder(subdir_ + "Errors/ColdChannel");
00183 ZDCColdChannelFraction_=dqmStore_->book2D("ZDC_Cold_Channel_Fraction", "Cold Channel Rates in the ZDC Channels", 2, 0, 2,9, 0, 9);
00184 for (int i=0;i<18;++i)
00185 {
00186 ZDCColdChannelFraction_->setBinContent(i/9,i%9,-1);
00187 }
00188 (ZDCColdChannelFraction_->getTH2F())->GetXaxis()->SetBinLabel(1,"ZDC+");
00189 (ZDCColdChannelFraction_->getTH2F())->GetXaxis()->SetBinLabel(2,"ZDC-");
00190 (ZDCColdChannelFraction_->getTH2F())->GetYaxis()->SetBinLabel(1,"EM1");
00191 (ZDCColdChannelFraction_->getTH2F())->GetYaxis()->SetBinLabel(2,"EM2");
00192 (ZDCColdChannelFraction_->getTH2F())->GetYaxis()->SetBinLabel(3,"EM3");
00193 (ZDCColdChannelFraction_->getTH2F())->GetYaxis()->SetBinLabel(4,"EM4");
00194 (ZDCColdChannelFraction_->getTH2F())->GetYaxis()->SetBinLabel(5,"EM5");
00195 (ZDCColdChannelFraction_->getTH2F())->GetYaxis()->SetBinLabel(6,"HAD1");
00196 (ZDCColdChannelFraction_->getTH2F())->GetYaxis()->SetBinLabel(7,"HAD2");
00197 (ZDCColdChannelFraction_->getTH2F())->GetYaxis()->SetBinLabel(8,"HAD3");
00198 (ZDCColdChannelFraction_->getTH2F())->GetYaxis()->SetBinLabel(9,"HAD4");
00199 (ZDCColdChannelFraction_->getTH2F())->SetOption("textcolz");
00200 (ZDCColdChannelFraction_->getTH2F())->SetMinimum(-1);
00201 (ZDCColdChannelFraction_->getTH2F())->SetMaximum(1);
00202
00203
00204 ZDCDeadChannelFraction_ = dqmStore_->get(subdir_ + "Errors/DeadChannel/ZDC_Dead_Channel_Fraction");
00205 if ( ZDCDeadChannelFraction_) dqmStore_->removeElement(ZDCDeadChannelFraction_->getName());
00206 dqmStore_->setCurrentFolder(subdir_+ "Errors/DeadChannel");
00207 ZDCDeadChannelFraction_=dqmStore_->book2D("ZDC_Dead_Channel_Fraction","Dead Channel Rates in the ZDC Channels",2,0,2,9,0,9);
00208 for (int i=0;i<18;++i)
00209 {
00210 ZDCDeadChannelFraction_->setBinContent(i/9,i%9,-1);
00211 }
00212 (ZDCDeadChannelFraction_->getTH2F())->GetXaxis()->SetBinLabel(1,"ZDC+");
00213 (ZDCDeadChannelFraction_->getTH2F())->GetXaxis()->SetBinLabel(2,"ZDC-");
00214 (ZDCDeadChannelFraction_->getTH2F())->GetYaxis()->SetBinLabel(1,"EM1");
00215 (ZDCDeadChannelFraction_->getTH2F())->GetYaxis()->SetBinLabel(2,"EM2");
00216 (ZDCDeadChannelFraction_->getTH2F())->GetYaxis()->SetBinLabel(3,"EM3");
00217 (ZDCDeadChannelFraction_->getTH2F())->GetYaxis()->SetBinLabel(4,"EM4");
00218 (ZDCDeadChannelFraction_->getTH2F())->GetYaxis()->SetBinLabel(5,"EM5");
00219 (ZDCDeadChannelFraction_->getTH2F())->GetYaxis()->SetBinLabel(6,"HAD1");
00220 (ZDCDeadChannelFraction_->getTH2F())->GetYaxis()->SetBinLabel(7,"HAD2");
00221 (ZDCDeadChannelFraction_->getTH2F())->GetYaxis()->SetBinLabel(8,"HAD3");
00222 (ZDCDeadChannelFraction_->getTH2F())->GetYaxis()->SetBinLabel(9,"HAD4");
00223 (ZDCDeadChannelFraction_->getTH2F())->SetOption("textcolz");
00224 (ZDCDeadChannelFraction_->getTH2F())->SetMinimum(-1);
00225 (ZDCDeadChannelFraction_->getTH2F())->SetMaximum(1);
00226
00227 ZDCDigiErrorFraction_ = dqmStore_->get(subdir_ + "Errors/Digis/ZDC_Digi_Error_Fraction");
00228 if (ZDCDigiErrorFraction_) dqmStore_->removeElement(ZDCDigiErrorFraction_->getName());
00229 dqmStore_->setCurrentFolder(subdir_ + "Errors/Digis");
00230 ZDCDigiErrorFraction_=dqmStore_->book2D("ZDC_Digi_Error_Fraction", "Digi Error Rates in the ZDC Channels", 2, 0, 2,9, 0, 9);
00231 for (int i=0;i<18;++i)
00232 {
00233 ZDCDigiErrorFraction_->setBinContent(i/9,i%9,-1);
00234 }
00235 (ZDCDigiErrorFraction_->getTH2F())->GetXaxis()->SetBinLabel(2,"ZDC-");
00236 (ZDCDigiErrorFraction_->getTH2F())->GetXaxis()->SetBinLabel(1,"EM1");
00237 (ZDCDigiErrorFraction_->getTH2F())->GetYaxis()->SetBinLabel(2,"EM2");
00238 (ZDCDigiErrorFraction_->getTH2F())->GetYaxis()->SetBinLabel(3,"EM3");
00239 (ZDCDigiErrorFraction_->getTH2F())->GetYaxis()->SetBinLabel(4,"EM4");
00240 (ZDCDigiErrorFraction_->getTH2F())->GetYaxis()->SetBinLabel(5,"EM5");
00241 (ZDCDigiErrorFraction_->getTH2F())->GetYaxis()->SetBinLabel(6,"HAD1");
00242 (ZDCDigiErrorFraction_->getTH2F())->GetYaxis()->SetBinLabel(7,"HAD2");
00243 (ZDCDigiErrorFraction_->getTH2F())->GetYaxis()->SetBinLabel(8,"HAD3");
00244 (ZDCDigiErrorFraction_->getTH2F())->GetYaxis()->SetBinLabel(9,"HAD4");
00245 (ZDCDigiErrorFraction_->getTH2F())->SetOption("textcolz");
00246 (ZDCDigiErrorFraction_->getTH2F())->SetMinimum(-1);
00247 (ZDCDigiErrorFraction_->getTH2F())->SetMaximum(1);
00248 }
00249
00250
00251
00252 void ZDCMonitorClient::endJob(void) {
00253
00254 if( debug_>0 )
00255 std::cout << "ZDCMonitorClient: endJob, ievt = " << ievt_ << std::endl;
00256
00257 return;
00258 }
00259
00260
00261 void ZDCMonitorClient::endRun(void){analyze();}
00262
00263 void ZDCMonitorClient::setup(void){}
00264 void ZDCMonitorClient::cleanup(void){}
00265
00266 void ZDCMonitorClient::analyze()
00267 {
00268 if (debug_>0)
00269 std::cout <<"<ZDCMonitorClient> Entered ZDCMonitorClient::analyze()"<<std::endl;
00270 if(debug_>1) std::cout<<"\nZDC Monitor Client heartbeat...."<<std::endl;
00271
00272 float ChannelRatio[18]={0};
00273
00274
00275
00276 MonitorElement* me;
00277 std::string s;
00278
00282
00283 s=subdir_+"Errors/Digis/ZDC_Digi_Errors";
00284 me=dqmStore_->get(s.c_str());
00285
00286 TH2F* ZdcDigiErrors=0;
00287 if (me!=0)
00288 {
00289 ZdcDigiErrors=HcalUtilsClient::getHisto<TH2F*>(me,false,0,0);
00290 if (ZdcDigiErrors!=0)
00291 {
00292 int num_events_digis = ZdcDigiErrors->GetBinContent(-1,-1);
00293 if(num_events_digis != 0)
00294 {
00295 for (int i=0;i<18;++i)
00296 {
00297 ZDCDigiErrorFraction_->setBinContent((i/9)+1,(i%9)+1,(ZdcDigiErrors->GetBinContent((i/9)+1,(i%9)+1)*1./num_events_digis));
00298 }
00299 }
00300 }
00301 }
00302
00306
00307
00308 s=subdir_+"Errors/HotChannel/ZDC_Hot_Channel_Errors";
00309 me=dqmStore_->get(s.c_str());
00310 TH2F* ZdcHotChannel=0;
00311 if (me!=0)
00312 {
00313 ZdcHotChannel=HcalUtilsClient::getHisto<TH2F*>(me,false,0,0);
00314 if (ZdcHotChannel!=0)
00315 {
00316 int num_events_hot = ZdcHotChannel->GetBinContent(-1,-1);
00317 if(num_events_hot!=0)
00318 {
00319 for (int i=0;i<18;++i)
00320 {
00321 ZDCHotChannelFraction_->setBinContent((i/9)+1,(i%9)+1,((ZdcHotChannel->GetBinContent((i/9)+1,(i%9)+1))*1./num_events_hot));
00322 }
00323 }
00324 }
00325 }
00326
00330
00331
00332 s=subdir_+"Errors/ColdChannel/ZDC_Cold_Channel_Errors";
00333 me=dqmStore_->get(s.c_str());
00334 TH2F* ZdcColdChannel=0;
00335 if (me!=0)
00336 {
00337 ZdcColdChannel=HcalUtilsClient::getHisto<TH2F*>(me,false,0,0);
00338 if ((ZdcColdChannel)!=0)
00339 {
00340 int num_events_cold = ZdcColdChannel->GetBinContent(-1,-1);
00341 if(num_events_cold!=0)
00342 {
00343 for (int i=0;i<18;++i)
00344 {
00345 ZDCColdChannelFraction_->setBinContent((i/9)+1,(i%9)+1,((ZdcColdChannel->GetBinContent((i/9)+1,(i%9)+1))*1./num_events_cold));
00346 }
00347 }
00348 }
00349 }
00350
00354
00355
00356 s=subdir_+"Errors/DeadChannel/ZDC_Dead_Channel_Errors";
00357 me=dqmStore_->get(s.c_str());
00358 TH2F* ZdcDeadChannel=0;
00359 if (me!=0)
00360 {
00361 ZdcDeadChannel=HcalUtilsClient::getHisto<TH2F*>(me,false,0,0);
00362 if ((ZdcDeadChannel)!=0)
00363 {
00364 int num_events_dead = ZdcDeadChannel->GetBinContent(-1,-1);
00365 if(num_events_dead!=0)
00366 {
00367 for (int i=0;i<18;++i)
00368 {
00369 ZDCDeadChannelFraction_->setBinContent((i/9)+1,(i%9)+1,(ZdcDeadChannel->GetBinContent((i/9)+1,(i%9)+1))*1./num_events_dead);
00370 }
00371 }
00372 }
00373 }
00374
00375
00376
00377
00378
00381
00382
00385
00386
00388 s=subdir_+"Errors/ZDC_TotalChannelErrors";
00389 me=dqmStore_->get(s.c_str());
00390 TH2F* ZdcTotalErrors=0;
00391 if (me!=0)
00392 {
00393 ZdcTotalErrors=HcalUtilsClient::getHisto<TH2F*>(me,false,0,0);
00394 int num_events_errors = ZdcTotalErrors->GetBinContent(-1,-1);
00395 if(num_events_errors!=0)
00396 {
00397 for (int i=0;i<18;++i)
00398 {
00399 ChannelRatio[i]=(ZdcTotalErrors->GetBinContent((i/9)+1,(i%9)+1))*1./num_events_errors;
00400 ZDCChannelSummary_->setBinContent((i/9)+1,(i%9)+1,1-ChannelRatio[i]);
00401 }
00402 }
00403 }
00404
00405
00408
00411
00412 LumiCounter=0;
00413 PZDC_GoodLumiCounter=0;
00414 PZDC_LumiRatio=0.;
00415 NZDC_GoodLumiCounter=0;
00416 NZDC_LumiRatio=0.;
00417 s=subdir_+"EventsVsLS";
00418 me=dqmStore_->get(s.c_str());
00419 TH1F* EventsvsLs=0;
00420 if (me!=0)
00421 EventsvsLs=HcalUtilsClient::getHisto<TH1F*>(me,false,0,0);
00422 s=subdir_+"PZDC_QualityIndexVSLB";
00423 me=dqmStore_->get(s.c_str());
00424 TH1F* Pzdc_QI=0;
00425 if (me!=0)
00426 Pzdc_QI=HcalUtilsClient::getHisto<TH1F*>(me,false,0,0);
00427 s=subdir_+"NZDC_QualityIndexVSLB";
00428 me=dqmStore_->get(s.c_str());
00429 TH1F* Nzdc_QI=0;
00430 if (me!=0)
00431 Nzdc_QI=HcalUtilsClient::getHisto<TH1F*>(me,false,0,0);
00432
00433 if(EventsvsLs!=0 && Pzdc_QI!=0 && Nzdc_QI!=0)
00434 {
00435 for (int i=1;i<=EventsvsLs->GetNbinsX();++i)
00436 {
00437 if (EventsvsLs->GetBinContent(i)==0)
00438 continue;
00439 LumiCounter+=1;
00440
00441 if(Pzdc_QI!=0)
00442 if(Pzdc_QI->GetBinContent(i)>ZDCGoodLumi_[0])
00443 PZDC_GoodLumiCounter+=1;
00444
00445 if(Nzdc_QI!=0)
00446 if(Nzdc_QI->GetBinContent(i)>ZDCGoodLumi_[1])
00447 NZDC_GoodLumiCounter+=1;
00448
00449 PZDC_LumiRatio=PZDC_GoodLumiCounter*(1./LumiCounter);
00450 NZDC_LumiRatio=NZDC_GoodLumiCounter*(1./LumiCounter);
00451 }
00452 }
00453
00454 ZDCReportSummary_->setBinContent(1,1,PZDC_LumiRatio);
00455 ZDCReportSummary_->setBinContent(2,1,NZDC_LumiRatio);
00456
00457 return;
00458 }