#include <ZDCMonitorClient.h>
Public Member Functions | |
void | analyze (void) |
Analyze. | |
void | analyze (const edm::Event &evt, const edm::EventSetup &es) |
void | beginJob () |
BeginJob. | |
void | beginLuminosityBlock (const edm::LuminosityBlock &l, const edm::EventSetup &c) |
BeginLumiBlock. | |
void | beginRun (const edm::Run &r, const edm::EventSetup &c) |
BeginRun. | |
void | createTests (void) |
Create tests. | |
void | dumpHistograms (int &runNum, std::vector< TH1F * > &hist1d, std::vector< TH2F * > &hist2d) |
void | endJob (void) |
EndJob. | |
void | endLuminosityBlock (const edm::LuminosityBlock &l, const edm::EventSetup &c) |
EndLumiBlock. | |
void | endRun (const edm::Run &r, const edm::EventSetup &c) |
EndRun. | |
void | errorSummary () |
Generate error summary. | |
void | htmlOutput (void) |
HtmlOutput. | |
void | initialize (const edm::ParameterSet &ps) |
void | loadHistograms (TFile *infile, const char *fname) |
void | offlineSetup () |
bool | prescale () |
Boolean prescale test for this event. | |
void | report (bool update) |
Create reports. | |
void | resetAllME (void) |
reset all monitor elements | |
ZDCMonitorClient (const edm::ParameterSet &ps) | |
ZDCMonitorClient () | |
Constructors. | |
~ZDCMonitorClient () | |
Destructor. | |
Private Member Functions | |
void | removeAllME (void) |
void | writeDBfile () |
Private Attributes | |
std::string | baseHtmlDir_ |
edm::CPUTimer | cpu_timer |
DQMStore * | dbe_ |
Connection to the DQM backend. | |
int | debug_ |
Verbosity switch used for debugging or informational output. | |
bool | enableMonitorDaemon_ |
int | ievent_ |
int | ievt_ |
int | ilumisec_ |
std::string | inputFile_ |
int | irun_ |
int | itime_ |
int | maxlumisec_ |
int | minlumisec_ |
std::string | monitorName_ |
units of "updates", TBD | |
time_t | mytime_ |
int | nlumisecs_ |
counters and flags | |
bool | Online_ |
int | prescaleEvt_ |
int | prescaleLS_ |
units of events | |
int | prescaleTime_ |
units of lumi sections | |
int | prescaleUpdate_ |
units of minutes | |
struct { | |
double elapsedTime | |
double startTime | |
timeval startTV | |
double updateTime | |
timeval updateTV | |
} | psTime_ |
int | resetEvents_ |
int | resetLS_ |
std::string | rootFolder_ |
bool | runningStandalone_ |
bool | saved_ |
bool | showTiming_ |
Definition at line 18 of file ZDCMonitorClient.h.
ZDCMonitorClient::ZDCMonitorClient | ( | ) |
ZDCMonitorClient::ZDCMonitorClient | ( | const edm::ParameterSet & | ps | ) |
ZDCMonitorClient::~ZDCMonitorClient | ( | ) |
Destructor.
Definition at line 44 of file ZDCMonitorClient.cc.
References gather_cfg::cout, and debug_.
void ZDCMonitorClient::analyze | ( | void | ) |
Analyze.
Definition at line 399 of file ZDCMonitorClient.cc.
References gather_cfg::cout, createTests(), dbe_, debug_, errorSummary(), and DQMStore::runQTests().
Referenced by analyze(), endLuminosityBlock(), and endRun().
{ if (debug_>0) std::cout <<"<ZDCMonitorClient> Entered ZDCMonitorClient::analyze()"<<std::endl; if(debug_>1) std::cout<<"\nZDC Monitor Client heartbeat...."<<std::endl; createTests(); //mui_->doMonitoring(); dbe_->runQTests(); errorSummary(); return; }
void ZDCMonitorClient::analyze | ( | const edm::Event & | evt, |
const edm::EventSetup & | es | ||
) | [virtual] |
Implements edm::EDAnalyzer.
Definition at line 362 of file ZDCMonitorClient.cc.
References analyze(), gather_cfg::cout, debug_, edm::EventID::event(), edm::EventBase::id(), ievent_, ievt_, ilumisec_, irun_, itime_, edm::EventBase::luminosityBlock(), max(), maxlumisec_, min, minlumisec_, mytime_, prescale(), prescaleEvt_, resetAllME(), resetEvents_, resetLS_, edm::EventID::run(), runningStandalone_, edm::EventBase::time(), and edm::Timestamp::value().
{ if (debug_>1) std::cout <<"Entered ZDCMonitorClient::analyze(const Evt...)"<<std::endl; if(resetEvents_>0 && (ievt_%resetEvents_)==0) resetAllME(); // use ievt_ here, not ievent_, since ievent is the event #, not the # of events processed if(resetLS_>0 && (ilumisec_%resetLS_)==0) resetAllME(); // environment datamembers // Don't process out-of-order lumi block information in online running //if (Online_ && (int)e.luminosityBlock()<ilumisec_) return; irun_ = e.id().run(); ilumisec_ = e.luminosityBlock(); ievent_ = e.id().event(); itime_ = e.time().value(); mytime_ = (e.time().value())>>32; if (minlumisec_==0) minlumisec_=ilumisec_; minlumisec_=std::min(minlumisec_,ilumisec_); maxlumisec_=std::max(maxlumisec_,ilumisec_); if (debug_>1) std::cout << "ZDCMonitorClient: evts: "<< ievt_ << ", run: " << irun_ << ", LS: " << ilumisec_ << ", evt: " << ievent_ << ", time: " << itime_ << std::endl; ievt_++; if ( runningStandalone_) return; // run if we want to check individual events, and if this event isn't prescaled if (prescaleEvt_>0 && !prescale()) analyze(); }
void ZDCMonitorClient::beginJob | ( | void | ) | [virtual] |
BeginJob.
Reimplemented from edm::EDAnalyzer.
Definition at line 154 of file ZDCMonitorClient.cc.
References gather_cfg::cout, debug_, and ievt_.
void ZDCMonitorClient::beginLuminosityBlock | ( | const edm::LuminosityBlock & | l, |
const edm::EventSetup & | c | ||
) | [virtual] |
BeginLumiBlock.
Reimplemented from edm::EDAnalyzer.
Definition at line 336 of file ZDCMonitorClient.cc.
References gather_cfg::cout, debug_, ilumisec_, and edm::LuminosityBlockBase::luminosityBlock().
{ // don't allow 'backsliding' across lumi blocks in online running // This still won't prevent some lumi blocks from being evaluated multiple times. Need to think about this. //if (Online_ && (int)l.luminosityBlock()<ilumisec_) return; if (debug_>0) std::cout <<"Entered Monitor Client beginLuminosityBlock for LS = "<<l.luminosityBlock()<<std::endl; ilumisec_ = l.luminosityBlock(); if( debug_>0 ) std::cout << "ZDCMonitorClient: beginLuminosityBlock" << std::endl; }
void ZDCMonitorClient::beginRun | ( | const edm::Run & | r, |
const edm::EventSetup & | c | ||
) | [virtual] |
BeginRun.
Reimplemented from edm::EDAnalyzer.
Definition at line 164 of file ZDCMonitorClient.cc.
References DQMStore::book2D(), DQMStore::bookFloat(), gather_cfg::cout, dbe_, debug_, MonitorElement::Fill(), DQMStore::get(), MonitorElement::getName(), MonitorElement::getTH2F(), edm::RunBase::id(), DQMStore::removeElement(), rootFolder_, and DQMStore::setCurrentFolder().
{ if (debug_>0) std::cout << std::endl<<"ZDCMonitorClient: Standard beginRun() for run " << r.id().run() << std::endl<<std::endl; // Get current channel quality /* edm::ESHandle<HcalChannelQuality> p; c.get<HcalChannelQualityRcd>().get(p); chanquality_= new HcalChannelQuality(*p.product()); */ std::string eventinfo="EventInfo"; if (rootFolder_!="ZDC") eventinfo+="DUMMY"; // Setup histograms -- this is all we will do for ZDC Monitor at the moment! MonitorElement* me; //JEFF dbe_->setCurrentFolder(rootFolder_+eventinfo.c_str()+"/"); me=dbe_->get(rootFolder_+eventinfo.c_str()+"/reportSummary"); if (me) dbe_->removeElement(me->getName()); me = dbe_->bookFloat("reportSummary"); me->Fill(-1); // set status to unknown at startup me=dbe_->get(rootFolder_+eventinfo.c_str()+"/reportSummaryMap"); if (me) dbe_->removeElement(me->getName()); me = dbe_->book2D("reportSummaryMap","ZDC Report Summary Map",4,0,4,1,0,1); TH2F* myhist=me->getTH2F(); myhist->GetXaxis()->SetBinLabel(1,"HAD-"); myhist->GetXaxis()->SetBinLabel(2,"EM-"); myhist->GetXaxis()->SetBinLabel(3,"EM+"); myhist->GetXaxis()->SetBinLabel(4,"HAD+"); // Set all values to -1 myhist->SetBinContent(1,1,-1); myhist->SetBinContent(2,1,-1); myhist->SetBinContent(3,1,-1); myhist->SetBinContent(4,1,-1); dbe_->setCurrentFolder(rootFolder_+eventinfo.c_str()+"/reportSummaryContents/"); me=dbe_->get(rootFolder_+eventinfo.c_str()+"/reportSummary/reportSummaryContents/ZDC_HADMinus"); if (me) dbe_->removeElement(me->getName()); me = dbe_->bookFloat("ZDC_HADMinus"); me->Fill(-1); // set status to unknown at startup me=dbe_->get(rootFolder_+eventinfo.c_str()+"/reportSummary/reportSummaryContents/ZDC_EMMinus"); if (me) dbe_->removeElement(me->getName()); me = dbe_->bookFloat("ZDC_EMMinus"); me->Fill(-1); // set status to unknown at startup me=dbe_->get(rootFolder_+eventinfo.c_str()+"/reportSummary/reportSummaryContents/ZDC_EMPlus"); if (me) dbe_->removeElement(me->getName()); me = dbe_->bookFloat("ZDC_EMPlus"); me->Fill(-1); // set status to unknown at startup me=dbe_->get(rootFolder_+eventinfo.c_str()+"/reportSummary/reportSummaryContents/ZDC_HADPlus"); if (me) dbe_->removeElement(me->getName()); me = dbe_->bookFloat("ZDC_HADPlus"); me->Fill(-1); // set status to unknown at startup // Add dummy DAQ Summary, DCS Summary dbe_->setCurrentFolder(rootFolder_+eventinfo.c_str()); me=dbe_->get(rootFolder_+eventinfo.c_str()+"/DAQSummary"); if (me) dbe_->removeElement(me->getName()); me = dbe_->bookFloat("DAQSummary"); me->Fill(-1); // set status to unknown at startup dbe_->setCurrentFolder(rootFolder_+eventinfo.c_str()+"/DAQContents"); me=dbe_->get(rootFolder_+eventinfo.c_str()+"/DAQSummary/DAQContents/ZDC_HADPlus"); if (me) dbe_->removeElement(me->getName()); me = dbe_->bookFloat("ZDC_HADPlus"); me->Fill(-1); // set status to unknown at startup me=dbe_->get(rootFolder_+eventinfo.c_str()+"/DAQSummary/DAQContents/ZDC_HADMinus"); if (me) dbe_->removeElement(me->getName()); me = dbe_->bookFloat("ZDC_HADMinus"); me->Fill(-1); // set status to unknown at startup me=dbe_->get(rootFolder_+eventinfo.c_str()+"/DAQSummary/DAQContents/ZDC_EMPlus"); if (me) dbe_->removeElement(me->getName()); me = dbe_->bookFloat("ZDC_EMPlus"); me->Fill(-1); // set status to unknown at startup me=dbe_->get(rootFolder_+eventinfo.c_str()+"/DAQSummary/DAQContents/ZDC_EMMinus"); if (me) dbe_->removeElement(me->getName()); me = dbe_->bookFloat("ZDC_EMMinus"); me->Fill(-1); // set status to unknown at startup // DCS Summary dbe_->setCurrentFolder(rootFolder_+eventinfo.c_str()); me=dbe_->get(rootFolder_+eventinfo.c_str()+"/DCSSummary"); if (me) dbe_->removeElement(me->getName()); me = dbe_->bookFloat("DCSSummary"); me->Fill(-1); // set status to unknown at startup dbe_->setCurrentFolder(rootFolder_+eventinfo.c_str()+"/DCSContents"); me=dbe_->get(rootFolder_+eventinfo.c_str()+"/DCSSummary/DCSContents/ZDC_HADPlus"); if (me) dbe_->removeElement(me->getName()); me = dbe_->bookFloat("ZDC_HADPlus"); me->Fill(-1); // set status to unknown at startup me=dbe_->get(rootFolder_+eventinfo.c_str()+"/DCSSummary/DCSContents/ZDC_HADMinus"); if (me) dbe_->removeElement(me->getName()); me = dbe_->bookFloat("ZDC_HADMinus"); me->Fill(-1); // set status to unknown at startup me=dbe_->get(rootFolder_+eventinfo.c_str()+"/DCSSummary/DCSContents/ZDC_EMPlus"); if (me) dbe_->removeElement(me->getName()); me = dbe_->bookFloat("ZDC_EMPlus"); me->Fill(-1); // set status to unknown at startup me=dbe_->get(rootFolder_+eventinfo.c_str()+"/DCSSummary/DCSContents/ZDC_EMMinus"); if (me) dbe_->removeElement(me->getName()); me = dbe_->bookFloat("ZDC_EMMinus"); me->Fill(-1); // set status to unknown at startup }
void ZDCMonitorClient::createTests | ( | void | ) |
Create tests.
Definition at line 414 of file ZDCMonitorClient.cc.
References gather_cfg::cout, and debug_.
void ZDCMonitorClient::dumpHistograms | ( | int & | runNum, |
std::vector< TH1F * > & | hist1d, | ||
std::vector< TH2F * > & | hist2d | ||
) |
Definition at line 474 of file ZDCMonitorClient.cc.
{
hist1d.clear();
hist2d.clear();
return;
}
void ZDCMonitorClient::endJob | ( | void | ) | [virtual] |
EndJob.
Reimplemented from edm::EDAnalyzer.
Definition at line 296 of file ZDCMonitorClient.cc.
References gather_cfg::cout, debug_, and ievt_.
void ZDCMonitorClient::endLuminosityBlock | ( | const edm::LuminosityBlock & | l, |
const edm::EventSetup & | c | ||
) | [virtual] |
EndLumiBlock.
Reimplemented from edm::EDAnalyzer.
Definition at line 347 of file ZDCMonitorClient.cc.
References analyze(), gather_cfg::cout, debug_, Online_, prescale(), and prescaleLS_.
void ZDCMonitorClient::endRun | ( | const edm::Run & | r, |
const edm::EventSetup & | c | ||
) | [virtual] |
EndRun.
Reimplemented from edm::EDAnalyzer.
Definition at line 305 of file ZDCMonitorClient.cc.
References analyze(), gather_cfg::cout, debug_, edm::RunBase::id(), ievt_, inputFile_, irun_, Online_, and report().
{ if (debug_>0) std::cout << std::endl<<"<ZDCMonitorClient> Standard endRun() for run " << r.id().run() << std::endl<<std::endl; if (!Online_) analyze(); if( debug_ >0) std::cout <<"ZDCMonitorClient: processed events: "<<ievt_<<std::endl; if (debug_>0) std::cout <<"==>Creating report after run end condition"<<std::endl; if(irun_>1){ if(inputFile_.size()!=0) report(true); else report(false); } // dumping to database // need to add separate function to do this!!! return; }
void ZDCMonitorClient::errorSummary | ( | ) |
Generate error summary.
Definition at line 438 of file ZDCMonitorClient.cc.
References dbe_, MonitorElement::Fill(), DQMStore::get(), and rootFolder_.
Referenced by analyze(), and report().
{ float errorSummary = 1.0; char meTitle[256]; sprintf(meTitle,"%sEventInfo/errorSummary",rootFolder_.c_str() ); MonitorElement* me = dbe_->get(meTitle); if(me) me->Fill(errorSummary); return; }
void ZDCMonitorClient::htmlOutput | ( | void | ) |
HtmlOutput.
Definition at line 378 of file HcalDetDiagLaserClient.cc.
References HcalObjRepresent::CalcIeta(), timingPdfMaker::can, gather_cfg::cout, HcalLogicalMapGenerator::createMap(), eta(), relval_steps::gen(), MonitorElement::getIntValue(), HcalBarrel, HcalEmpty, HcalEndcap, HcalEtaPhiHistNames(), HcalForward, HcalOuter, i, isHB(), isHE(), isHF(), isHO(), mergeVDriftHistosByStation::name, EdgesToViz::outfile, phi, printTableHeader(), printTableLine(), printTableTail(), alignCSCRings::s, and ntuplemaker::status.
Referenced by report().
{ if(dqmStore_==0){ if (debug_>0) std::cout <<"<HcalDetDiagLaserClient::htmlOutput> dqmStore object does not exist!"<<std::endl; return; } if(debug_>2) std::cout <<"\t<HcalDetDiagLaserClient::htmlOutput> Preparing html for task: "<<name_<<std::endl; HcalLogicalMapGenerator gen; HcalLogicalMap lmap(gen.createMap()); HcalElectronicsMap emap=lmap.generateHcalElectronicsMap(); string ref_run,s; MonitorElement* me; TH1F *hbheEnergy=0; TH1F *hbheTiming=0; TH1F *hbheEnergyRMS=0; TH1F *hbheTimingRMS=0; TH1F *hoEnergy=0; TH1F *hoTiming=0; TH1F *hoEnergyRMS=0; TH1F *hoTimingRMS=0; TH1F *hfEnergy=0; TH1F *hfTiming=0; TH1F *hfEnergyRMS=0; TH1F *hfTimingRMS=0; TH1F *hb=0; TH1F *he=0; TH1F *ho=0; TH1F *hf=0; TH2F *Time2Dhbhehf=0; TH2F *Time2Dho=0; TH2F *Energy2Dhbhehf=0; TH2F *Energy2Dho=0; TH2F *refTime2Dhbhehf=0; TH2F *refTime2Dho=0; TH2F *refEnergy2Dhbhehf=0; TH2F *refEnergy2Dho=0; int HBpresent_=0,HEpresent_=0,HOpresent_=0,HFpresent_=0; me=dqmStore_->get(prefixME_+"HcalInfo/HBpresent"); if(me!=0) HBpresent_=me->getIntValue(); me=dqmStore_->get(prefixME_+"HcalInfo/HEpresent"); if(me!=0) HEpresent_=me->getIntValue(); me=dqmStore_->get(prefixME_+"HcalInfo/HOpresent"); if(me!=0) HOpresent_=me->getIntValue(); me=dqmStore_->get(prefixME_+"HcalInfo/HFpresent"); if(me!=0) HFpresent_=me->getIntValue(); s=subdir_+"Summary Plots/HBHE Laser Energy Distribution"; me=dqmStore_->get(s.c_str()); if(me!=0) hbheEnergy=HcalUtilsClient::getHisto<TH1F*>(me, cloneME_, hbheEnergy, debug_); else return; s=subdir_+"Summary Plots/HBHE Laser Timing Distribution"; me=dqmStore_->get(s.c_str()); if(me!=0) hbheTiming=HcalUtilsClient::getHisto<TH1F*>(me, cloneME_, hbheTiming, debug_); else return; s=subdir_+"Summary Plots/HBHE Laser Energy RMS_div_Energy Distribution"; me=dqmStore_->get(s.c_str()); if(me!=0) hbheEnergyRMS= HcalUtilsClient::getHisto<TH1F*>(me, cloneME_, hbheEnergyRMS, debug_); else return; s=subdir_+"Summary Plots/HBHE Laser Timing RMS Distribution"; me=dqmStore_->get(s.c_str()); if(me!=0) hbheTimingRMS= HcalUtilsClient::getHisto<TH1F*>(me, cloneME_, hbheTimingRMS, debug_); else return; s=subdir_+"Summary Plots/HO Laser Energy Distribution"; me=dqmStore_->get(s.c_str()); if(me!=0) hoEnergy = HcalUtilsClient::getHisto<TH1F*>(me, cloneME_, hoEnergy, debug_); else return; s=subdir_+"Summary Plots/HO Laser Timing Distribution"; me=dqmStore_->get(s.c_str()); if(me!=0) hoTiming = HcalUtilsClient::getHisto<TH1F*>(me, cloneME_, hoTiming, debug_); else return; s=subdir_+"Summary Plots/HO Laser Energy RMS_div_Energy Distribution"; me=dqmStore_->get(s.c_str()); if(me!=0) hoEnergyRMS = HcalUtilsClient::getHisto<TH1F*>(me, cloneME_, hoEnergyRMS, debug_); else return; s=subdir_+"Summary Plots/HO Laser Timing RMS Distribution"; me=dqmStore_->get(s.c_str()); if(me!=0) hoTimingRMS = HcalUtilsClient::getHisto<TH1F*>(me, cloneME_, hoTimingRMS, debug_); else return; s=subdir_+"Summary Plots/HF Laser Energy Distribution"; me=dqmStore_->get(s.c_str()); if(me!=0) hfEnergy = HcalUtilsClient::getHisto<TH1F*>(me, cloneME_, hfEnergy, debug_); else return; s=subdir_+"Summary Plots/HF Laser Timing Distribution"; me=dqmStore_->get(s.c_str()); if(me!=0) hfTiming = HcalUtilsClient::getHisto<TH1F*>(me, cloneME_, hfTiming, debug_); else return; s=subdir_+"Summary Plots/HF Laser Energy RMS_div_Energy Distribution"; me=dqmStore_->get(s.c_str()); if(me!=0) hfEnergyRMS = HcalUtilsClient::getHisto<TH1F*>(me, cloneME_, hfEnergyRMS, debug_); else return; s=subdir_+"Summary Plots/HF Laser Timing RMS Distribution"; me=dqmStore_->get(s.c_str()); if(me!=0) hfTimingRMS = HcalUtilsClient::getHisto<TH1F*>(me, cloneME_, hfTimingRMS, debug_); else return; s=subdir_+"Summary Plots/HB RBX average Time-Ref"; me=dqmStore_->get(s.c_str()); if(me!=0) hb = HcalUtilsClient::getHisto<TH1F*>(me, cloneME_, hb, debug_); else return; s=subdir_+"Summary Plots/HE RBX average Time-Ref"; me=dqmStore_->get(s.c_str()); if(me!=0) he = HcalUtilsClient::getHisto<TH1F*>(me, cloneME_, he, debug_); else return; s=subdir_+"Summary Plots/HO RBX average Time-Ref"; me=dqmStore_->get(s.c_str()); if(me!=0) ho = HcalUtilsClient::getHisto<TH1F*>(me, cloneME_, ho, debug_); else return; s=subdir_+"Summary Plots/HF RoBox average Time-Ref"; me=dqmStore_->get(s.c_str()); if(me!=0) hf = HcalUtilsClient::getHisto<TH1F*>(me, cloneME_, hf, debug_); else return; s=subdir_+"Summary Plots/Laser Timing HBHEHF"; me=dqmStore_->get(s.c_str()); if(me!=0) Time2Dhbhehf = HcalUtilsClient::getHisto<TH2F*>(me, cloneME_, Time2Dhbhehf, debug_); else return; s=subdir_+"Summary Plots/Laser Timing HO"; me=dqmStore_->get(s.c_str()); if(me!=0) Time2Dho = HcalUtilsClient::getHisto<TH2F*>(me, cloneME_, Time2Dho, debug_); else return; s=subdir_+"Summary Plots/Laser Energy HBHEHF"; me=dqmStore_->get(s.c_str()); if(me!=0) Energy2Dhbhehf= HcalUtilsClient::getHisto<TH2F*>(me, cloneME_, Energy2Dhbhehf, debug_); else return; s=subdir_+"Summary Plots/Laser Energy HO"; me=dqmStore_->get(s.c_str()); if(me!=0) Energy2Dho = HcalUtilsClient::getHisto<TH2F*>(me, cloneME_, Energy2Dho, debug_); else return; s=subdir_+"Summary Plots/HBHEHF Laser (Timing-Ref)+1"; me=dqmStore_->get(s.c_str()); if(me!=0) refTime2Dhbhehf = HcalUtilsClient::getHisto<TH2F*>(me, cloneME_, refTime2Dhbhehf, debug_); else return; s=subdir_+"Summary Plots/HO Laser (Timing-Ref)+1"; me=dqmStore_->get(s.c_str()); if(me!=0) refTime2Dho = HcalUtilsClient::getHisto<TH2F*>(me, cloneME_, refTime2Dho, debug_); else return; s=subdir_+"Summary Plots/HBHEHF Laser Energy_div_Ref"; me=dqmStore_->get(s.c_str()); if(me!=0) refEnergy2Dhbhehf= HcalUtilsClient::getHisto<TH2F*>(me, cloneME_, refEnergy2Dhbhehf, debug_); else return; s=subdir_+"Summary Plots/HO Laser Energy_div_Ref"; me=dqmStore_->get(s.c_str()); if(me!=0) refEnergy2Dho = HcalUtilsClient::getHisto<TH2F*>(me, cloneME_, refEnergy2Dho, debug_); else return; TH1F *Raddam[56]; char str[100]; for(int i=0;i<56;i++){ sprintf(str,"RADDAM (%i %i)",RADDAM_CH[i].eta,RADDAM_CH[i].phi); s=subdir_+"Raddam Plots/"+str; me=dqmStore_->get(s.c_str()); if(me!=0) Raddam[i] = HcalUtilsClient::getHisto<TH1F*>(me, cloneME_, Raddam[i], debug_); Raddam[i]->SetXTitle("TS"); Raddam[i]->SetTitle(str); } int ievt_ = -1,runNo=-1; s=subdir_+"HcalDetDiagLaserMonitor Event Number"; me = dqmStore_->get(s.c_str()); if ( me ) { s = me->valueString(); sscanf((s.substr(2,s.length()-2)).c_str(), "%d", &ievt_); } s=subdir_+"HcalDetDiagLaserMonitor Run Number"; me = dqmStore_->get(s.c_str()); if ( me ) { s = me->valueString(); sscanf((s.substr(2,s.length()-2)).c_str(), "%d", &runNo); } s=subdir_+"HcalDetDiagLaserMonitor Reference Run"; me = dqmStore_->get(s.c_str()); if(me) { string s=me->valueString(); char str[200]; sscanf((s.substr(2,s.length()-2)).c_str(), "%s", str); ref_run=str; } int badT=0; int badE=0; int HBP[2]={0,0}; int HBM[2]={0,0}; int HEP[2]={0,0}; int HEM[2]={0,0}; int HFP[2]={0,0}; int HFM[2]={0,0}; int HO[2] ={0,0}; int newHBP[2]={0,0}; int newHBM[2]={0,0}; int newHEP[2]={0,0}; int newHEM[2]={0,0}; int newHFP[2]={0,0}; int newHFM[2]={0,0}; int newHO[2] ={0,0}; TH2F* BadTiming_val[4]; TH2F* BadEnergy_val[4]; std::vector<std::string> name = HcalEtaPhiHistNames(); for(int i=0;i<4;++i){ BadTiming_val[i]=0; BadEnergy_val[i]=0; string s=subdir_+"Plots for client/"+name[i]+" Laser Timing difference"; me=dqmStore_->get(s.c_str()); if (me!=0) BadTiming_val[i]=HcalUtilsClient::getHisto<TH2F*>(me, cloneME_, BadTiming_val[i], debug_); else return; s=subdir_+"Plots for client/"+name[i]+" Laser Energy difference"; me=dqmStore_->get(s.c_str()); if (me!=0) BadEnergy_val[i]=HcalUtilsClient::getHisto<TH2F*>(me, cloneME_, BadEnergy_val[i], debug_); else return; } ofstream badTiming; badTiming.open((htmlDir+"bad_timing_table.html").c_str()); printTableHeader(badTiming,"Bad Timing Channels list"); ofstream badEnergy; badEnergy.open((htmlDir+"bad_energy_table.html").c_str()); printTableHeader(badEnergy,"Bad Energy Channels list"); for(int d=0;d<4;++d){ int etabins=BadTiming_val[d]->GetNbinsX(); int phibins=BadTiming_val[d]->GetNbinsY(); for(int phi=0;phi<phibins;++phi)for(int eta=0;eta<etabins;++eta){ int ieta=CalcIeta(eta,d+1); if(ieta==-9999) continue; HcalSubdetector subdet=HcalEmpty; if(isHB(eta,d+1))subdet=HcalBarrel; else if (isHE(eta,d+1)) subdet=HcalEndcap; else if (isHF(eta,d+1)) subdet=HcalForward; else if (isHO(eta,d+1)) subdet=HcalOuter; HcalDetId hcalid(subdet, ieta, phi+1, (int)(d+1)); float val=BadTiming_val[d]->GetBinContent(eta+1,phi+1); if(val!=0){ if(subdet==HcalBarrel){ if(ieta>0){ HBP[0]++;}else{ HBM[0]++;} badT++; if(badstatusmap.find(hcalid)==badstatusmap.end()){if(ieta>0){ newHBP[0]++;}else{ newHBM[0]++;}} } if(subdet==HcalEndcap){ if(ieta>0){ HEP[0]++;}else{ HEM[0]++;} badT++; if(badstatusmap.find(hcalid)==badstatusmap.end()){if(ieta>0){ newHEP[0]++;}else{ newHEM[0]++;}} } if(subdet==HcalForward){ if(ieta>0){ HFP[0]++;}else{ HFM[0]++;} badT++; if(badstatusmap.find(hcalid)==badstatusmap.end()){if(ieta>0){ newHFP[0]++;}else{ newHFM[0]++;}} } if(subdet==HcalOuter){ HO[0]++;badT++; if(badstatusmap.find(hcalid)==badstatusmap.end()){newHO[0]++;} } } val=BadEnergy_val[d]->GetBinContent(eta+1,phi+1); if(val!=0){ if(subdet==HcalBarrel){ if(ieta>0){ HBP[1]++;}else{ HBM[1]++;} badE++; if(badstatusmap.find(hcalid)==badstatusmap.end()){if(ieta>0){ newHBP[1]++;}else{ newHBM[1]++;}} } if(subdet==HcalEndcap){ if(ieta>0){ HEP[1]++;}else{ HEM[1]++;} badE++; if(badstatusmap.find(hcalid)==badstatusmap.end()){if(ieta>0){ newHEP[1]++;}else{ newHEM[1]++;}} } if(subdet==HcalForward){ if(ieta>0){ HFP[1]++;}else{ HFM[1]++;} badE++; if(badstatusmap.find(hcalid)==badstatusmap.end()){if(ieta>0){ newHFP[1]++;}else{ newHFM[1]++;}} } if(subdet==HcalOuter){ HO[1]++;badT++; if(badstatusmap.find(hcalid)==badstatusmap.end()){newHO[1]++;} } } } } int cnt=0; if((HBP[0]+HBM[0])>0){ badTiming << "<tr><td align=\"center\"><h3>"<< "HB" <<"</h3></td></tr>" << endl; for(int d=0;d<4;++d){ int etabins=BadTiming_val[d]->GetNbinsX(); int phibins=BadTiming_val[d]->GetNbinsY(); for(int phi=0;phi<phibins;++phi)for(int eta=0;eta<etabins;++eta){ int ieta=CalcIeta(eta,d+1); if(ieta==-9999) continue; if(!isHB(eta,d+1)) continue; float val=BadTiming_val[d]->GetBinContent(eta+1,phi+1); if(val==0) continue; HcalDetId hcalid(HcalBarrel,ieta,phi+1,d+1); HcalFrontEndId lmap_entry=lmap.getHcalFrontEndId(hcalid); HcalElectronicsId emap_entry=emap.lookup(hcalid); sprintf(str,"Time-Ref=%.2f",val); printTableLine(badTiming,cnt++,hcalid,lmap_entry,emap_entry,str); } } } cnt=0; if((HEP[0]+HEM[0])>0){ badTiming << "<tr><td align=\"center\"><h3>"<< "HE" <<"</h3></td></tr>" << endl; for(int d=0;d<4;++d){ int etabins=BadTiming_val[d]->GetNbinsX(); int phibins=BadTiming_val[d]->GetNbinsY(); for(int phi=0;phi<phibins;++phi)for(int eta=0;eta<etabins;++eta){ int ieta=CalcIeta(eta,d+1); if(ieta==-9999) continue; if(!isHE(eta,d+1)) continue; float val=BadTiming_val[d]->GetBinContent(eta+1,phi+1); if(val==0) continue; HcalDetId hcalid(HcalEndcap,ieta,phi+1,d+1); HcalFrontEndId lmap_entry=lmap.getHcalFrontEndId(hcalid); HcalElectronicsId emap_entry=emap.lookup(hcalid); sprintf(str,"Time-Ref=%.2f",val); printTableLine(badTiming,cnt++,hcalid,lmap_entry,emap_entry,str); } } } cnt=0; if(HO[0]>0){ badTiming << "<tr><td align=\"center\"><h3>"<< "HO" <<"</h3></td></tr>" << endl; for(int d=0;d<4;++d){ int etabins=BadTiming_val[d]->GetNbinsX(); int phibins=BadTiming_val[d]->GetNbinsY(); for(int phi=0;phi<phibins;++phi)for(int eta=0;eta<etabins;++eta){ int ieta=CalcIeta(eta,d+1); if(ieta==-9999) continue; if(!isHO(eta,d+1)) continue; float val=BadTiming_val[d]->GetBinContent(eta+1,phi+1); if(val==0) continue; HcalDetId hcalid(HcalOuter,ieta,phi+1,d+1); HcalFrontEndId lmap_entry=lmap.getHcalFrontEndId(hcalid); HcalElectronicsId emap_entry=emap.lookup(hcalid); sprintf(str,"Time-Ref=%.2f",val); printTableLine(badTiming,cnt++,hcalid,lmap_entry,emap_entry,str); } } } cnt=0; if((HFP[0]+HFM[0])>0){ badTiming << "<tr><td align=\"center\"><h3>"<< "HF" <<"</h3></td></tr>" << endl; for(int d=0;d<4;++d){ int etabins=BadTiming_val[d]->GetNbinsX(); int phibins=BadTiming_val[d]->GetNbinsY(); for(int phi=0;phi<phibins;++phi)for(int eta=0;eta<etabins;++eta){ int ieta=CalcIeta(eta,d+1); if(ieta==-9999) continue; if(!isHF(eta,d+1)) continue; float val=BadTiming_val[d]->GetBinContent(eta+1,phi+1); if(val==0) continue; HcalDetId hcalid(HcalForward,ieta,phi+1,d+1); HcalFrontEndId lmap_entry=lmap.getHcalFrontEndId(hcalid); HcalElectronicsId emap_entry=emap.lookup(hcalid); sprintf(str,"Time-Ref=%.2f",val); printTableLine(badTiming,cnt++,hcalid,lmap_entry,emap_entry,str); } } } cnt=0; if((HBP[1]+HBM[1])>0){ badEnergy << "<tr><td align=\"center\"><h3>"<< "HB" <<"</h3></td></tr>" << endl; for(int d=0;d<4;++d){ int etabins=BadEnergy_val[d]->GetNbinsX(); int phibins=BadEnergy_val[d]->GetNbinsY(); for(int phi=0;phi<phibins;++phi)for(int eta=0;eta<etabins;++eta){ int ieta=CalcIeta(eta,d+1); if(ieta==-9999) continue; if(!isHB(eta,d+1)) continue; float val=BadEnergy_val[d]->GetBinContent(eta+1,phi+1); if(val==0) continue; HcalDetId hcalid(HcalBarrel,ieta,phi+1,d+1); HcalFrontEndId lmap_entry=lmap.getHcalFrontEndId(hcalid); HcalElectronicsId emap_entry=emap.lookup(hcalid); sprintf(str,"Energy/Ref=%.2f",val); printTableLine(badEnergy,cnt++,hcalid,lmap_entry,emap_entry,str); } } } cnt=0; if((HEP[1]+HEM[1])>0){ badEnergy << "<tr><td align=\"center\"><h3>"<< "HE" <<"</h3></td></tr>" << endl; for(int d=0;d<4;++d){ int etabins=BadEnergy_val[d]->GetNbinsX(); int phibins=BadEnergy_val[d]->GetNbinsY(); for(int phi=0;phi<phibins;++phi)for(int eta=0;eta<etabins;++eta){ int ieta=CalcIeta(eta,d+1); if(ieta==-9999) continue; if(!isHE(eta,d+1)) continue; float val=BadEnergy_val[d]->GetBinContent(eta+1,phi+1); if(val==0) continue; HcalDetId hcalid(HcalEndcap,ieta,phi+1,d+1); HcalFrontEndId lmap_entry=lmap.getHcalFrontEndId(hcalid); HcalElectronicsId emap_entry=emap.lookup(hcalid); sprintf(str,"Energy/Ref=%.2f",val); printTableLine(badEnergy,cnt++,hcalid,lmap_entry,emap_entry,str); } } } cnt=0; if(HO[1]>0){ badEnergy << "<tr><td align=\"center\"><h3>"<< "HO" <<"</h3></td></tr>" << endl; for(int d=0;d<4;++d){ int etabins=BadEnergy_val[d]->GetNbinsX(); int phibins=BadEnergy_val[d]->GetNbinsY(); for(int phi=0;phi<phibins;++phi)for(int eta=0;eta<etabins;++eta){ int ieta=CalcIeta(eta,d+1); if(ieta==-9999) continue; if(!isHO(eta,d+1)) continue; float val=BadEnergy_val[d]->GetBinContent(eta+1,phi+1); if(val==0) continue; HcalDetId hcalid(HcalOuter,ieta,phi+1,d+1); HcalFrontEndId lmap_entry=lmap.getHcalFrontEndId(hcalid); HcalElectronicsId emap_entry=emap.lookup(hcalid); sprintf(str,"Energy/Ref=%.2f",val); printTableLine(badEnergy,cnt++,hcalid,lmap_entry,emap_entry,str); } } } cnt=0; if((HFP[1]+HFM[1])>0){ badEnergy << "<tr><td align=\"center\"><h3>"<< "HF" <<"</h3></td></tr>" << endl; for(int d=0;d<4;++d){ int etabins=BadEnergy_val[d]->GetNbinsX(); int phibins=BadEnergy_val[d]->GetNbinsY(); for(int phi=0;phi<phibins;++phi)for(int eta=0;eta<etabins;++eta){ int ieta=CalcIeta(eta,d+1); if(ieta==-9999) continue; if(!isHF(eta,d+1)) continue; float val=BadEnergy_val[d]->GetBinContent(eta+1,phi+1); if(val==0) continue; HcalDetId hcalid(HcalForward,ieta,phi+1,d+1); HcalFrontEndId lmap_entry=lmap.getHcalFrontEndId(hcalid); HcalElectronicsId emap_entry=emap.lookup(hcalid); sprintf(str,"Energy/Ref=%.2f",val); printTableLine(badEnergy,cnt++,hcalid,lmap_entry,emap_entry,str); } } } printTableTail(badTiming); badTiming.close(); printTableTail(badEnergy); badEnergy.close(); ofstream htmlFile; string outfile=htmlDir+name_+".html"; htmlFile.open(outfile.c_str()); gROOT->SetBatch(true); gStyle->SetCanvasColor(0); gStyle->SetPadColor(0); gStyle->SetOptStat(111110); gStyle->SetPalette(1); TCanvas *can=new TCanvas("HcalDetDiagLaserClient","HcalDetDiagLaserClient",0,0,500,350); can->cd(); if(Raddam[0]->GetEntries()>0){ ofstream RADDAM; RADDAM.open((htmlDir + "RADDAM_"+name_).c_str()); RADDAM << "</html><html xmlns=\"https://www.w3.org/1999/xhtml\">"<< endl; RADDAM << "<head>"<< endl; RADDAM << "<meta https-equiv=\"Content-Type\" content=\"text/html\"/>"<< endl; RADDAM << "<title>"<< "RADDAM channels" <<"</title>"<< endl; RADDAM << "<style type=\"text/css\">"<< endl; RADDAM << " body,td{ background-color: #FFFFCC; font-family: arial, arial ce, helvetica; font-size: 12px; }"<< endl; RADDAM << " td.s0 { font-family: arial, arial ce, helvetica; }"<< endl; RADDAM << " td.s1 { font-family: arial, arial ce, helvetica; font-weight: bold; background-color: #FFC169; text-align: center;}"<< endl; RADDAM << " td.s2 { font-family: arial, arial ce, helvetica; background-color: #eeeeee; }"<< endl; RADDAM << " td.s3 { font-family: arial, arial ce, helvetica; background-color: #d0d0d0; }"<< endl; RADDAM << " td.s4 { font-family: arial, arial ce, helvetica; background-color: #FFC169; }"<< endl; RADDAM << "</style>"<< endl; RADDAM << "<body>"<< endl; RADDAM << "<h2>Run "<< runNo<<": RADDAM channels event shape </h2>" << endl; RADDAM << "<table>"<< endl; char str[100]; for(int i=0;i<28;i++){ RADDAM << "<tr align=\"left\">" << endl; //Raddam[2*i]->SetStats(0); //Raddam[2*i+1]->SetStats(0); Raddam[2*i]->Draw(); sprintf(str,"%02d",2*i); can->SaveAs((htmlDir + "raddam_ch"+str+".gif").c_str()); Raddam[2*i+1]->Draw(); sprintf(str,"%02d",2*i+1); can->SaveAs((htmlDir + "raddam_ch"+str+".gif").c_str()); sprintf(str,"raddam_ch%02d.gif",2*i); RADDAM << "<td align=\"center\"><img src=\""<<str<<"\" alt=\"raddam channel\"> </td>" << endl; sprintf(str,"raddam_ch%02d.gif",2*i+1); RADDAM << "<td align=\"center\"><img src=\""<<str<<"\" alt=\"raddam channel\"> </td>" << endl; RADDAM << "</tr>" << endl; } RADDAM << "</table>"<< endl; RADDAM << "</body>"<< endl; RADDAM << "</html>"<< endl; RADDAM.close(); } Time2Dhbhehf->SetXTitle("i#eta"); Time2Dhbhehf->SetYTitle("i#phi"); Time2Dho->SetXTitle("i#eta"); Time2Dho->SetYTitle("i#phi"); Energy2Dhbhehf->SetXTitle("i#eta"); Energy2Dhbhehf->SetYTitle("i#phi"); Energy2Dho->SetXTitle("i#eta"); Energy2Dho->SetYTitle("i#phi"); refTime2Dhbhehf->SetXTitle("i#eta"); refTime2Dhbhehf->SetYTitle("i#phi"); refTime2Dho->SetXTitle("i#eta"); refTime2Dho->SetYTitle("i#phi"); refEnergy2Dhbhehf->SetXTitle("i#eta"); refEnergy2Dhbhehf->SetYTitle("i#phi"); refEnergy2Dho->SetXTitle("i#eta"); refEnergy2Dho->SetYTitle("i#phi"); refTime2Dhbhehf->SetMinimum(0); refTime2Dhbhehf->SetMaximum(2); refTime2Dho->SetMinimum(0); refTime2Dho->SetMaximum(2); refEnergy2Dhbhehf->SetMinimum(0.5); refEnergy2Dhbhehf->SetMaximum(1.5); refEnergy2Dho->SetMinimum(0.5); refEnergy2Dho->SetMaximum(1.5); Time2Dhbhehf->SetNdivisions(36,"Y"); Time2Dho->SetNdivisions(36,"Y"); Energy2Dhbhehf->SetNdivisions(36,"Y"); Energy2Dho->SetNdivisions(36,"Y"); refTime2Dhbhehf->SetNdivisions(36,"Y"); refTime2Dho->SetNdivisions(36,"Y"); refEnergy2Dhbhehf->SetNdivisions(36,"Y"); refEnergy2Dho->SetNdivisions(36,"Y"); // html page header htmlFile << "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\"> " << endl; htmlFile << "<html> " << endl; htmlFile << "<head> " << endl; htmlFile << " <meta content=\"text/html; charset=ISO-8859-1\" " << endl; htmlFile << " https-equiv=\"content-type\"> " << endl; htmlFile << " <title>Detector Diagnostics Laser Monitor</title> " << endl; htmlFile << "</head> " << endl; htmlFile << "<style type=\"text/css\"> td { font-weight: bold } </style>" << endl; htmlFile << "<style type=\"text/css\">"<< endl; htmlFile << " td.s0 { font-family: arial, arial ce, helvetica; font-weight: bold; background-color: #FF7700; text-align: center;}"<< endl; htmlFile << " td.s1 { font-family: arial, arial ce, helvetica; font-weight: bold; background-color: #FFC169; text-align: center;}"<< endl; htmlFile << " td.s2 { font-family: arial, arial ce, helvetica; background-color: red; }"<< endl; htmlFile << " td.s3 { font-family: arial, arial ce, helvetica; background-color: yellow; }"<< endl; htmlFile << " td.s4 { font-family: arial, arial ce, helvetica; background-color: green; }"<< endl; htmlFile << " td.s5 { font-family: arial, arial ce, helvetica; background-color: silver; }"<< endl; std::string state[4]={"<td class=\"s2\" align=\"center\">", "<td class=\"s3\" align=\"center\">", "<td class=\"s4\" align=\"center\">", "<td class=\"s5\" align=\"center\">"}; htmlFile << "</style>"<< endl; htmlFile << "<body> " << endl; htmlFile << "<br> " << endl; htmlFile << "<h2>Run: " << endl; htmlFile << " <span " << endl; htmlFile << " style=\"color: rgb(0, 0, 153);\">" << runNo << "</span></h2>" << endl; htmlFile << "<h2>Monitoring task: <span " << endl; htmlFile << " style=\"color: rgb(0, 0, 153);\">Detector Diagnostics Laser Monitor</span></h2> " << endl; htmlFile << "<h2>Events processed: <span " << endl; htmlFile << " style=\"color: rgb(0, 0, 153);\">" << ievt_ << "</span></h2>" << endl; htmlFile << "<hr>" << endl; htmlFile << "<table width=100% border=1>" << endl; htmlFile << "<tr>" << endl; htmlFile << "<td class=\"s0\" width=20% align=\"center\">SebDet</td>" << endl; htmlFile << "<td class=\"s0\" width=20% align=\"center\">Bad Timing</td>" << endl; htmlFile << "<td class=\"s0\" width=20% align=\"center\">Bad Energy</td>" << endl; htmlFile << "</tr><tr>" << endl; int ind1=0,ind2=0; htmlFile << "<td class=\"s1\" align=\"center\">HB+</td>" << endl; if(HBP[0]==0) ind1=2; if(HBP[0]>0 && HBP[0]<=12) ind1=1; if(HBP[0]>12) ind1=0; if(HBP[1]==0) ind2=2; if(HBP[1]>0 && HBP[1]<=12) ind2=1; if(HBP[1]>12) ind2=0; if(!HBpresent_) ind1=ind2=3; htmlFile << state[ind1] << HBP[0] <<"</td>" << endl; htmlFile << state[ind2] << HBP[1] <<"</td>" << endl; htmlFile << "</tr><tr>" << endl; htmlFile << "<td class=\"s1\" align=\"center\">HB-</td>" << endl; if(HBM[0]==0) ind1=2; if(HBM[0]>0 && HBP[0]<=12) ind1=1; if(HBM[0]>12) ind1=0; if(HBM[1]==0) ind2=2; if(HBM[1]>0 && HBP[1]<=12) ind2=1; if(HBM[1]>12) ind2=0; if(!HBpresent_) ind1=ind2=3; htmlFile << state[ind1] << HBM[0] <<"</td>" << endl; htmlFile << state[ind2] << HBM[1] <<"</td>" << endl; htmlFile << "</tr><tr>" << endl; htmlFile << "<td class=\"s1\" align=\"center\">HE+</td>" << endl; if(HEP[0]==0) ind1=2; if(HEP[0]>0 && HEP[0]<=12) ind1=1; if(HEP[0]>12) ind1=0; if(HEP[1]==0) ind2=2; if(HEP[1]>0 && HEP[1]<=12) ind2=1; if(HEP[1]>12) ind2=0; if(!HEpresent_) ind1=ind2=3; if(ind1==0 || ind2==0) status|=2; else if(ind1==1 || ind2==1) status|=1; htmlFile << state[ind1] << HEP[0] <<"</td>" << endl; htmlFile << state[ind2] << HEP[1] <<"</td>" << endl; htmlFile << "</tr><tr>" << endl; htmlFile << "<td class=\"s1\" align=\"center\">HE-</td>" << endl; if(HEM[0]==0) ind1=2; if(HEM[0]>0 && HEM[0]<=12) ind1=1; if(HEM[0]>12) ind1=0; if(HEM[1]==0) ind2=2; if(HEM[1]>0 && HEM[1]<=12) ind2=1; if(HEM[1]>12) ind2=0; if(!HEpresent_) ind1=ind2=3; if(ind1==0 || ind2==0) status|=2; else if(ind1==1 || ind2==1) status|=1; htmlFile << state[ind1] << HEM[0] <<"</td>" << endl; htmlFile << state[ind2] << HEM[1] <<"</td>" << endl; htmlFile << "</tr><tr>" << endl; htmlFile << "<td class=\"s1\" align=\"center\">HF+</td>" << endl; if(HFP[0]==0) ind1=2; if(HFP[0]>0 && HFP[0]<=12) ind1=1; if(HFP[0]>12) ind1=0; if(HFP[1]==0) ind2=2; if(HFP[1]>0 && HFP[1]<=12) ind2=1; if(HFP[1]>12) ind2=0; if(!HOpresent_) ind1=ind2=3; if(ind1==0 || ind2==0) status|=2; else if(ind1==1 || ind2==1) status|=1; htmlFile << state[ind1] << HFP[0] <<"</td>" << endl; htmlFile << state[ind2] << HFP[1] <<"</td>" << endl; htmlFile << "</tr><tr>" << endl; htmlFile << "<td class=\"s1\" align=\"center\">HF-</td>" << endl; if(HFM[0]==0) ind1=2; if(HFM[0]>0 && HFM[0]<=12) ind1=1; if(HFM[0]>12) ind1=0; if(HFM[1]==0) ind2=2; if(HFM[1]>0 && HFM[1]<=12) ind2=1; if(HFM[1]>12) ind2=0; if(!HFpresent_) ind1=ind2=3; if(ind1==0 || ind2==0) status|=2; else if(ind1==1 || ind2==1) status|=1; htmlFile << state[ind1] << HFM[0] <<"</td>" << endl; htmlFile << state[ind2] << HFM[1] <<"</td>" << endl; htmlFile << "</tr><tr>" << endl; htmlFile << "<td class=\"s1\" align=\"center\">HO</td>" << endl; if(HO[0]==0) ind1=2; if(HO[0]>0 && HO[0]<=12) ind1=1; if(HO[0]>12) ind1=0; if(HO[1]==0) ind2=2; if(HO[1]>0 && HO[1]<=12) ind2=1; if(HO[1]>12) ind2=0; if(!HFpresent_) ind1=ind2=3; if(ind1==0 || ind2==0) status|=2; else if(ind1==1 || ind2==1) status|=1; htmlFile << state[ind1] << HO[0] <<"</td>" << endl; htmlFile << state[ind2] << HO[1] <<"</td>" << endl; htmlFile << "</tr></table>" << endl; htmlFile << "<hr>" << endl; if((badT+badE)>0){ htmlFile << "<table width=100% border=1><tr>" << endl; if(badT>0) htmlFile << "<td><a href=\"" << "bad_timing_table.html" <<"\">list of bad timing channels</a></td>"; if(badE>0) htmlFile << "<td><a href=\"" << "bad_energy_table.html" <<"\">list of bad energy channels</a></td>"; htmlFile << "</tr></table>" << endl; } if(Raddam[0]->GetEntries()>0){ htmlFile << "<h2 align=\"center\"><a href=\"" << ("RADDAM_"+name_).c_str() <<"\">RADDAM channels</a><h2>"; htmlFile << "<hr>" << endl; } htmlFile << "<h2 align=\"center\">Stability Laser plots (Reference run "<<ref_run<<")</h2>" << endl; htmlFile << "<table width=100% border=0><tr>" << endl; can->SetGridy(); can->SetGridx(); htmlFile << "<tr align=\"left\">" << endl; refTime2Dhbhehf->SetStats(0); refTime2Dho->SetStats(0); refTime2Dhbhehf->Draw("COLZ"); can->SaveAs((htmlDir + "ref_laser_timing_hbhehf.gif").c_str()); refTime2Dho->Draw("COLZ"); can->SaveAs((htmlDir + "ref_laser_timing_ho.gif").c_str()); htmlFile << "<td align=\"center\"><img src=\"ref_laser_timing_hbhehf.gif\" alt=\"ref laser timing distribution\"> </td>" << endl; htmlFile << "<td align=\"center\"><img src=\"ref_laser_timing_ho.gif\" alt=\"ref laser timing distribution\"> </td>" << endl; htmlFile << "</tr>" << endl; if(hb!=0 && he!=0 && ho!=0 && hf!=0){ hb->SetMarkerStyle(22); hb->SetMarkerColor(kRed); hb->GetYaxis()->SetRangeUser(hb->GetMinimum()-1,hb->GetMaximum()+1); hb->GetXaxis()->SetNdivisions(520); he->SetMarkerStyle(22); he->SetMarkerColor(kRed); he->GetYaxis()->SetRangeUser(he->GetMinimum()-1,he->GetMaximum()+1); he->GetXaxis()->SetNdivisions(520); ho->SetMarkerStyle(22); ho->SetMarkerColor(kRed); ho->GetYaxis()->SetRangeUser(ho->GetMinimum()-1,ho->GetMaximum()+1); ho->GetXaxis()->SetNdivisions(520); hf->SetMarkerStyle(22); hf->SetMarkerColor(kRed); hf->GetYaxis()->SetRangeUser(hf->GetMinimum()-1,hf->GetMaximum()+1); hf->GetXaxis()->SetNdivisions(520); hb->SetStats(0); he->SetStats(0); ho->SetStats(0); hf->SetStats(0); hb->GetXaxis()->SetBit(TAxis::kLabelsVert); he->GetXaxis()->SetBit(TAxis::kLabelsVert); ho->GetXaxis()->SetBit(TAxis::kLabelsVert); hf->GetXaxis()->SetBit(TAxis::kLabelsVert); hb->GetXaxis()->SetLabelSize(0.05); he->GetXaxis()->SetLabelSize(0.05); ho->GetXaxis()->SetLabelSize(0.05); hf->GetXaxis()->SetLabelSize(0.05); htmlFile << "<tr align=\"left\">" << endl; htmlFile << "<td align=\"center\"><img src=\"hb_rbx_timing1D.gif\" alt=\"rbx timing\"> </td>" << endl; htmlFile << "<td align=\"center\"><img src=\"he_rbx_timing1D.gif\" alt=\"rbx timing\"> </td>" << endl; htmlFile << "</tr>" << endl; htmlFile << "<tr align=\"left\">" << endl; htmlFile << "<td align=\"center\"><img src=\"ho_rbx_timing1D.gif\" alt=\"rbx timing\"> </td>" << endl; htmlFile << "<td align=\"center\"><img src=\"hf_rbx_timing1D.gif\" alt=\"rbx timing\"> </td>" << endl; htmlFile << "</tr>" << endl; }else printf("Error\n"); htmlFile << "<tr align=\"left\">" << endl; refEnergy2Dhbhehf->SetStats(0); refEnergy2Dho->SetStats(0); refEnergy2Dhbhehf->Draw("COLZ"); can->SaveAs((htmlDir + "ref_laser_energy_hbhehf.gif").c_str()); refEnergy2Dho->Draw("COLZ"); can->SaveAs((htmlDir + "ref_laser_energy_ho.gif").c_str()); htmlFile << "<td align=\"center\"><img src=\"ref_laser_energy_hbhehf.gif\" alt=\"ref laser energy distribution\"> </td>" << endl; htmlFile << "<td align=\"center\"><img src=\"ref_laser_energy_ho.gif\" alt=\"ref laser energy distribution\"> </td>" << endl; htmlFile << "</tr>" << endl; htmlFile << "</table>" << endl; htmlFile << "<h2 align=\"center\">Summary Laser plots</h2>" << endl; htmlFile << "<table width=100% border=0><tr>" << endl; htmlFile << "<tr align=\"left\">" << endl; Time2Dhbhehf->SetStats(0); Time2Dho->SetStats(0); Time2Dhbhehf->Draw("COLZ"); can->SaveAs((htmlDir + "laser_timing_hbhehf.gif").c_str()); Time2Dho->Draw("COLZ"); can->SaveAs((htmlDir + "laser_timing_ho.gif").c_str()); htmlFile << "<td align=\"center\"><img src=\"laser_timing_hbhehf.gif\" alt=\"laser timing distribution\"> </td>" << endl; htmlFile << "<td align=\"center\"><img src=\"laser_timing_ho.gif\" alt=\"laser timing distribution\"> </td>" << endl; htmlFile << "</tr>" << endl; htmlFile << "<tr align=\"left\">" << endl; Energy2Dhbhehf->SetStats(0); Energy2Dho->SetStats(0); Energy2Dhbhehf->Draw("COLZ"); can->SaveAs((htmlDir + "laser_energy_hbhehf.gif").c_str()); Energy2Dho->Draw("COLZ"); can->SaveAs((htmlDir + "laser_energy_ho.gif").c_str()); htmlFile << "<td align=\"center\"><img src=\"laser_energy_hbhehf.gif\" alt=\"laser energy distribution\"> </td>" << endl; htmlFile << "<td align=\"center\"><img src=\"laser_energy_ho.gif\" alt=\"laser energy distribution\"> </td>" << endl; htmlFile << "</tr>" << endl; htmlFile << "<tr align=\"left\">" << endl; hbheEnergy->Draw(); can->SaveAs((htmlDir + "hbhe_laser_energy_distribution.gif").c_str()); hbheEnergyRMS->Draw(); can->SaveAs((htmlDir + "hbhe_laser_energy_rms_distribution.gif").c_str()); htmlFile << "<td align=\"center\"><img src=\"hbhe_laser_energy_distribution.gif\" alt=\"hbhe laser energy distribution\"> </td>" << endl; htmlFile << "<td align=\"center\"><img src=\"hbhe_laser_energy_rms_distribution.gif\" alt=\"hbhelaser energy rms distribution\"> </td>" << endl; htmlFile << "</tr>" << endl; htmlFile << "<tr align=\"left\">" << endl; hbheTiming->Draw(); can->SaveAs((htmlDir + "hbhe_laser_timing_distribution.gif").c_str()); hbheTimingRMS->Draw(); can->SaveAs((htmlDir + "hbhe_laser_timing_rms_distribution.gif").c_str()); htmlFile << "<td align=\"center\"><img src=\"hbhe_laser_timing_distribution.gif\" alt=\"hbhe laser timing distribution\"> </td>" << endl; htmlFile << "<td align=\"center\"><img src=\"hbhe_laser_timing_rms_distribution.gif\" alt=\"hbhe laser timing rms distribution\"> </td>" << endl; htmlFile << "</tr>" << endl; htmlFile << "<tr align=\"left\">" << endl; hoEnergy->Draw(); can->SaveAs((htmlDir + "ho_laser_energy_distribution.gif").c_str()); hoEnergyRMS->Draw(); can->SaveAs((htmlDir + "ho_laser_energy_rms_distribution.gif").c_str()); htmlFile << "<td align=\"center\"><img src=\"ho_laser_energy_distribution.gif\" alt=\"ho laser energy distribution\"> </td>" << endl; htmlFile << "<td align=\"center\"><img src=\"ho_laser_energy_rms_distribution.gif\" alt=\"ho laser energy rms distribution\"> </td>" << endl; htmlFile << "</tr>" << endl; htmlFile << "<tr align=\"left\">" << endl; hoTiming->Draw(); can->SaveAs((htmlDir + "ho_laser_timing_distribution.gif").c_str()); hoTimingRMS->Draw(); can->SaveAs((htmlDir + "ho_laser_timing_rms_distribution.gif").c_str()); htmlFile << "<td align=\"center\"><img src=\"ho_laser_timing_distribution.gif\" alt=\"ho laser timing distribution\"> </td>" << endl; htmlFile << "<td align=\"center\"><img src=\"ho_laser_timing_rms_distribution.gif\" alt=\"ho laser timing rms distribution\"> </td>" << endl; htmlFile << "</tr>" << endl; htmlFile << "<tr align=\"left\">" << endl; hfEnergy->Draw(); can->SaveAs((htmlDir + "hf_laser_energy_distribution.gif").c_str()); hfEnergyRMS->Draw(); can->SaveAs((htmlDir + "hf_laser_energy_rms_distribution.gif").c_str()); htmlFile << "<td align=\"center\"><img src=\"hf_laser_energy_distribution.gif\" alt=\"hf laser energy distribution\"> </td>" << endl; htmlFile << "<td align=\"center\"><img src=\"hf_laser_energy_rms_distribution.gif\" alt=\"hf laser energy rms distribution\"> </td>" << endl; htmlFile << "</tr>" << endl; htmlFile << "<tr align=\"left\">" << endl; hfTiming->Draw(); can->SaveAs((htmlDir + "hf_laser_timing_distribution.gif").c_str()); hfTimingRMS->Draw(); can->SaveAs((htmlDir + "hf_laser_timing_rms_distribution.gif").c_str()); htmlFile << "<td align=\"center\"><img src=\"hf_laser_timing_distribution.gif\" alt=\"hf laser timing distribution\"> </td>" << endl; htmlFile << "<td align=\"center\"><img src=\"hf_laser_timing_rms_distribution.gif\" alt=\"hf laser timing rms distribution\"> </td>" << endl; htmlFile << "</tr>" << endl; can->SetBottomMargin(0.2); if(hb->GetEntries()>0)hb->Draw("P");else hb->Draw(); can->SaveAs((htmlDir + "hb_rbx_timing1D.gif").c_str()); if(he->GetEntries()>0)he->Draw("P");else he->Draw(); can->SaveAs((htmlDir + "he_rbx_timing1D.gif").c_str()); if(ho->GetEntries()>0)ho->Draw("P");else ho->Draw(); can->SaveAs((htmlDir + "ho_rbx_timing1D.gif").c_str()); if(hf->GetEntries()>0)hf->Draw("P");else hf->Draw(); can->SaveAs((htmlDir + "hf_rbx_timing1D.gif").c_str()); htmlFile << "</table>" << endl; htmlFile << "</body> " << endl; htmlFile << "</html> " << endl; can->Close(); htmlFile.close(); return; }
void ZDCMonitorClient::initialize | ( | const edm::ParameterSet & | ps | ) |
Definition at line 50 of file ZDCMonitorClient.cc.
References baseHtmlDir_, gather_cfg::cout, dbe_, debug_, enableMonitorDaemon_, edm::ParameterSet::getUntrackedParameter(), ievent_, ilumisec_, inputFile_, irun_, itime_, maxlumisec_, minlumisec_, NULL, Online_, DQMStore::open(), cmsCodeRules::cppFunctionSkipper::operator, prescaleEvt_, prescaleLS_, resetEvents_, resetLS_, rootFolder_, runningStandalone_, DQMStore::showDirStructure(), and showTiming_.
Referenced by ZDCMonitorClient().
{ irun_=0; ilumisec_=0; ievent_=0; itime_=0; maxlumisec_=0; minlumisec_=0; debug_ = ps.getUntrackedParameter<int>("debug", 0); if (debug_>0) std::cout << std::endl<<" *** ZDC Monitor Client ***" << std::endl<<std::endl; if(debug_>1) std::cout << "ZDCMonitorClient: constructor...." << std::endl; Online_ = ps.getUntrackedParameter<bool>("Online",false); // timing switch showTiming_ = ps.getUntrackedParameter<bool>("showTiming",false); // MonitorDaemon switch enableMonitorDaemon_ = ps.getUntrackedParameter<bool>("enableMonitorDaemon", true); if (debug_>0) { if ( enableMonitorDaemon_ ) std::cout << "-->enableMonitorDaemon switch is ON" << std::endl; else std::cout << "-->enableMonitorDaemon switch is OFF" << std::endl; } // get hold of back-end interface dbe_ = edm::Service<DQMStore>().operator->(); if (debug_>1) dbe_->showDirStructure(); // DQM ROOT input inputFile_ = ps.getUntrackedParameter<std::string>("inputFile", ""); if(inputFile_.size()!=0 && debug_>0) std::cout << "-->reading DQM input from " << inputFile_ << std::endl; if( ! enableMonitorDaemon_ ) { if( inputFile_.size() != 0 && dbe_!=NULL){ dbe_->open(inputFile_); dbe_->showDirStructure(); } } //histogram reset freqency, update frequency, timeout resetEvents_ = ps.getUntrackedParameter<int>("resetFreqEvents",-1); //number of real events if(resetEvents_!=-1 && debug_>0) std::cout << "-->Will reset histograms every " << resetEvents_ <<" events." << std::endl; resetLS_ = ps.getUntrackedParameter<int>("resetFreqLS",-1); //number of lumisections if(resetLS_!=-1 && debug_>0) std::cout << "-->Will reset histograms every " << resetLS_ <<" lumi sections." << std::endl; // base Html output directory baseHtmlDir_ = ps.getUntrackedParameter<std::string>("baseHtmlDir", ""); if (debug_>0) { if( baseHtmlDir_.size() != 0) std::cout << "-->HTML output will go to baseHtmlDir = '" << baseHtmlDir_ << "'" << std::endl; else std::cout << "-->HTML output is disabled" << std::endl; } runningStandalone_ = ps.getUntrackedParameter<bool>("runningStandalone", false); // unnecessary? Or use for offline client processing? if (debug_>1) { if( runningStandalone_ ) std::cout << "-->standAlone switch is ON" << std::endl; else std::cout << "-->standAlone switch is OFF" << std::endl; } // set parameters prescaleEvt_ = ps.getUntrackedParameter<int>("diagnosticPrescaleEvt", -1); if (debug_>0) std::cout << "===>DQM event prescale = " << prescaleEvt_ << " event(s)"<< std::endl; prescaleLS_ = ps.getUntrackedParameter<int>("diagnosticPrescaleLS", -1); if (debug_>0) std::cout << "===>DQM lumi section prescale = " << prescaleLS_ << " lumi section(s)"<< std::endl; // Base folder for the contents of this job std::string subsystemname = ps.getUntrackedParameter<std::string>("subSystemFolder", "ZDC") ; if (debug_>0) std::cout << "===>ZDCMonitor name = " << subsystemname << std::endl; rootFolder_ = subsystemname + "/"; return; }
void ZDCMonitorClient::loadHistograms | ( | TFile * | infile, |
const char * | fname | ||
) |
Definition at line 463 of file ZDCMonitorClient.cc.
References Exception.
{ if(!infile){ throw cms::Exception("Incomplete configuration") << "ZDCMonitorClient: this histogram file is bad! " <<std::endl; return; } return; }
void ZDCMonitorClient::offlineSetup | ( | ) |
Definition at line 456 of file ZDCMonitorClient.cc.
{ // std::cout << std::endl; // std::cout << " *** Hcal Generic Monitor Client, for offline operation***" << std::endl; // std::cout << std::endl; return; }
bool ZDCMonitorClient::prescale | ( | ) |
Boolean prescale test for this event.
Return true if this event should be skipped according to the prescale condition...
Accommodate a logical "OR" of the possible tests
Definition at line 482 of file ZDCMonitorClient.cc.
References gather_cfg::cout, debug_, ievt_, ilumisec_, prescaleEvt_, and prescaleLS_.
Referenced by analyze(), and endLuminosityBlock().
{ if (debug_>1) std::cout <<"ZDCMonitorClient::prescale"<<std::endl; // If no prescales are set, return 'false'. (This means that we should process the event.) if(prescaleEvt_<=0 && prescaleLS_<=0) return false; // Now check whether event should be kept. Assume that it should not by default bool keepEvent=false; // Keep event if prescaleLS test is met or if prescaleEvt test is met if(prescaleLS_>0 && (ilumisec_%prescaleLS_)==0) keepEvent = true; // check on ls prescale; if (prescaleEvt_>0 && (ievt_%prescaleEvt_)==0) keepEvent = true; // // if any criteria wants to keep the event, do so if (keepEvent) return false; // event should be kept; don't apply prescale return true; // apply prescale by default }
void ZDCMonitorClient::removeAllME | ( | void | ) | [private] |
Definition at line 130 of file ZDCMonitorClient.cc.
References DQMStore::cd(), gather_cfg::cout, dbe_, debug_, DQMStore::dirExists(), NULL, DQMStore::removeContents(), and DQMStore::rmdir().
{ if (debug_>0) std::cout <<"<ZDCMonitorClient>removeAllME()"<<std::endl; if(dbe_==NULL) return; // go to top directory dbe_->cd(); // remove MEs at top directory dbe_->removeContents(); // remove directory (including subdirectories recursively) if(dbe_->dirExists("Collector")) dbe_->rmdir("Collector"); if(dbe_->dirExists("Summary")) dbe_->rmdir("Summary"); return; }
void ZDCMonitorClient::report | ( | bool | update | ) |
Create reports.
Definition at line 421 of file ZDCMonitorClient.cc.
References baseHtmlDir_, gather_cfg::cout, createTests(), dbe_, debug_, errorSummary(), htmlOutput(), ievt_, and DQMStore::runQTests().
Referenced by endRun().
{ if( debug_>0 ) std::cout << "ZDCMonitorClient: creating report, ievt = " << ievt_ << std::endl; if(doUpdate){ createTests(); dbe_->runQTests(); } errorSummary(); //create html output if specified... if( baseHtmlDir_.size() != 0 && ievt_>0) htmlOutput(); return; }
void ZDCMonitorClient::resetAllME | ( | void | ) |
reset all monitor elements
do a reset of all monitor elements...
Definition at line 148 of file ZDCMonitorClient.cc.
References gather_cfg::cout, and debug_.
Referenced by analyze().
void ZDCMonitorClient::writeDBfile | ( | ) | [private] |
Definition at line 328 of file ZDCMonitorClient.cc.
{ return; // not used for ZDC } // ZDCMonitorClient::writeDBfile()
std::string ZDCMonitorClient::baseHtmlDir_ [private] |
Definition at line 133 of file ZDCMonitorClient.h.
Referenced by initialize(), and report().
edm::CPUTimer ZDCMonitorClient::cpu_timer [private] |
Definition at line 98 of file ZDCMonitorClient.h.
DQMStore* ZDCMonitorClient::dbe_ [private] |
Connection to the DQM backend.
Definition at line 114 of file ZDCMonitorClient.h.
Referenced by analyze(), beginRun(), errorSummary(), initialize(), removeAllME(), and report().
int ZDCMonitorClient::debug_ [private] |
Verbosity switch used for debugging or informational output.
Definition at line 94 of file ZDCMonitorClient.h.
Referenced by analyze(), beginJob(), beginLuminosityBlock(), beginRun(), createTests(), endJob(), endLuminosityBlock(), endRun(), initialize(), prescale(), removeAllME(), report(), resetAllME(), and ~ZDCMonitorClient().
Definition at line 109 of file ZDCMonitorClient.h.
bool ZDCMonitorClient::enableMonitorDaemon_ [private] |
Definition at line 130 of file ZDCMonitorClient.h.
Referenced by initialize().
int ZDCMonitorClient::ievent_ [private] |
Definition at line 117 of file ZDCMonitorClient.h.
Referenced by analyze(), and initialize().
int ZDCMonitorClient::ievt_ [private] |
Definition at line 125 of file ZDCMonitorClient.h.
Referenced by analyze(), beginJob(), endJob(), endRun(), prescale(), and report().
int ZDCMonitorClient::ilumisec_ [private] |
Definition at line 118 of file ZDCMonitorClient.h.
Referenced by analyze(), beginLuminosityBlock(), initialize(), and prescale().
std::string ZDCMonitorClient::inputFile_ [private] |
Definition at line 132 of file ZDCMonitorClient.h.
Referenced by endRun(), and initialize().
int ZDCMonitorClient::irun_ [private] |
Definition at line 117 of file ZDCMonitorClient.h.
Referenced by analyze(), endRun(), and initialize().
int ZDCMonitorClient::itime_ [private] |
Definition at line 117 of file ZDCMonitorClient.h.
Referenced by analyze(), and initialize().
int ZDCMonitorClient::maxlumisec_ [private] |
Definition at line 119 of file ZDCMonitorClient.h.
Referenced by analyze(), and initialize().
int ZDCMonitorClient::minlumisec_ [private] |
Definition at line 119 of file ZDCMonitorClient.h.
Referenced by analyze(), and initialize().
std::string ZDCMonitorClient::monitorName_ [private] |
units of "updates", TBD
The name of the monitoring process which derives from this class, used to standardize filename and file structure
Definition at line 91 of file ZDCMonitorClient.h.
time_t ZDCMonitorClient::mytime_ [private] |
Definition at line 121 of file ZDCMonitorClient.h.
Referenced by analyze().
int ZDCMonitorClient::nlumisecs_ [private] |
counters and flags
Definition at line 102 of file ZDCMonitorClient.h.
bool ZDCMonitorClient::Online_ [private] |
Definition at line 104 of file ZDCMonitorClient.h.
Referenced by endLuminosityBlock(), endRun(), and initialize().
int ZDCMonitorClient::prescaleEvt_ [private] |
Prescale variables for restricting the frequency of analyzer behavior. The base class does not implement prescales. Set to -1 to be ignored.
Definition at line 84 of file ZDCMonitorClient.h.
Referenced by analyze(), initialize(), and prescale().
int ZDCMonitorClient::prescaleLS_ [private] |
units of events
Definition at line 85 of file ZDCMonitorClient.h.
Referenced by endLuminosityBlock(), initialize(), and prescale().
int ZDCMonitorClient::prescaleTime_ [private] |
units of lumi sections
Definition at line 86 of file ZDCMonitorClient.h.
int ZDCMonitorClient::prescaleUpdate_ [private] |
units of minutes
Definition at line 87 of file ZDCMonitorClient.h.
struct { ... } ZDCMonitorClient::psTime_ [private] |
int ZDCMonitorClient::resetEvents_ [private] |
Definition at line 126 of file ZDCMonitorClient.h.
Referenced by analyze(), and initialize().
int ZDCMonitorClient::resetLS_ [private] |
Definition at line 127 of file ZDCMonitorClient.h.
Referenced by analyze(), and initialize().
std::string ZDCMonitorClient::rootFolder_ [private] |
Definition at line 123 of file ZDCMonitorClient.h.
Referenced by beginRun(), errorSummary(), and initialize().
bool ZDCMonitorClient::runningStandalone_ [private] |
Definition at line 129 of file ZDCMonitorClient.h.
Referenced by analyze(), and initialize().
bool ZDCMonitorClient::saved_ [private] |
Definition at line 103 of file ZDCMonitorClient.h.
bool ZDCMonitorClient::showTiming_ [private] |
Definition at line 97 of file ZDCMonitorClient.h.
Referenced by initialize().
double ZDCMonitorClient::startTime |
Definition at line 108 of file ZDCMonitorClient.h.
timeval ZDCMonitorClient::startTV |
Definition at line 107 of file ZDCMonitorClient.h.
double ZDCMonitorClient::updateTime |
Definition at line 110 of file ZDCMonitorClient.h.
timeval ZDCMonitorClient::updateTV |
Definition at line 107 of file ZDCMonitorClient.h.