379 if (
debug_>0)
std::cout <<
"<HcalDetDiagLaserClient::htmlOutput> dqmStore object does not exist!"<<std::endl;
382 if(
debug_>2)
std::cout <<
"\t<HcalDetDiagLaserClient::htmlOutput> Preparing html for task: "<<
name_<<std::endl;
392 TH1F *hbheEnergyRMS=0;
393 TH1F *hbheTimingRMS=0;
406 TH2F *Time2Dhbhehf=0;
408 TH2F *Energy2Dhbhehf=0;
410 TH2F *refTime2Dhbhehf=0;
412 TH2F *refEnergy2Dhbhehf=0;
413 TH2F *refEnergy2Dho=0;
414 int HBpresent_=0,HEpresent_=0,HOpresent_=0,HFpresent_=0;
427 if(me!=0) hbheEnergy=HcalUtilsClient::getHisto<TH1F*>(me,
cloneME_, hbheEnergy,
debug_);
else return;
429 if(me!=0) hbheTiming=HcalUtilsClient::getHisto<TH1F*>(me,
cloneME_, hbheTiming,
debug_);
else return;
430 s=
subdir_+
"Summary Plots/HBHE Laser Energy RMS_div_Energy Distribution"; me=
dqmStore_->
get(s.c_str());
431 if(me!=0) hbheEnergyRMS= HcalUtilsClient::getHisto<TH1F*>(me,
cloneME_, hbheEnergyRMS,
debug_);
else return;
432 s=
subdir_+
"Summary Plots/HBHE Laser Timing RMS Distribution"; me=
dqmStore_->
get(s.c_str());
433 if(me!=0) hbheTimingRMS= HcalUtilsClient::getHisto<TH1F*>(me,
cloneME_, hbheTimingRMS,
debug_);
else return;
435 if(me!=0) hoEnergy = HcalUtilsClient::getHisto<TH1F*>(me,
cloneME_, hoEnergy,
debug_);
else return;
437 if(me!=0) hoTiming = HcalUtilsClient::getHisto<TH1F*>(me,
cloneME_, hoTiming,
debug_);
else return;
438 s=
subdir_+
"Summary Plots/HO Laser Energy RMS_div_Energy Distribution"; me=
dqmStore_->
get(s.c_str());
439 if(me!=0) hoEnergyRMS = HcalUtilsClient::getHisto<TH1F*>(me,
cloneME_, hoEnergyRMS,
debug_);
else return;
441 if(me!=0) hoTimingRMS = HcalUtilsClient::getHisto<TH1F*>(me,
cloneME_, hoTimingRMS,
debug_);
else return;
443 if(me!=0) hfEnergy = HcalUtilsClient::getHisto<TH1F*>(me,
cloneME_, hfEnergy,
debug_);
else return;
445 if(me!=0) hfTiming = HcalUtilsClient::getHisto<TH1F*>(me,
cloneME_, hfTiming,
debug_);
else return;
446 s=
subdir_+
"Summary Plots/HF Laser Energy RMS_div_Energy Distribution"; me=
dqmStore_->
get(s.c_str());
447 if(me!=0) hfEnergyRMS = HcalUtilsClient::getHisto<TH1F*>(me,
cloneME_, hfEnergyRMS,
debug_);
else return;
449 if(me!=0) hfTimingRMS = HcalUtilsClient::getHisto<TH1F*>(me,
cloneME_, hfTimingRMS,
debug_);
else return;
452 if(me!=0) hb = HcalUtilsClient::getHisto<TH1F*>(me,
cloneME_, hb,
debug_);
else return;
454 if(me!=0) he = HcalUtilsClient::getHisto<TH1F*>(me,
cloneME_, he,
debug_);
else return;
456 if(me!=0) ho = HcalUtilsClient::getHisto<TH1F*>(me,
cloneME_, ho,
debug_);
else return;
458 if(me!=0) hf = HcalUtilsClient::getHisto<TH1F*>(me,
cloneME_, hf,
debug_);
else return;
461 if(me!=0) Time2Dhbhehf = HcalUtilsClient::getHisto<TH2F*>(me,
cloneME_, Time2Dhbhehf,
debug_);
else return;
463 if(me!=0) Time2Dho = HcalUtilsClient::getHisto<TH2F*>(me,
cloneME_, Time2Dho,
debug_);
else return;
465 if(me!=0) Energy2Dhbhehf= HcalUtilsClient::getHisto<TH2F*>(me,
cloneME_, Energy2Dhbhehf,
debug_);
else return;
467 if(me!=0) Energy2Dho = HcalUtilsClient::getHisto<TH2F*>(me,
cloneME_, Energy2Dho,
debug_);
else return;
469 if(me!=0) refTime2Dhbhehf = HcalUtilsClient::getHisto<TH2F*>(me,
cloneME_, refTime2Dhbhehf,
debug_);
else return;
471 if(me!=0) refTime2Dho = HcalUtilsClient::getHisto<TH2F*>(me,
cloneME_, refTime2Dho,
debug_);
else return;
473 if(me!=0) refEnergy2Dhbhehf= HcalUtilsClient::getHisto<TH2F*>(me,
cloneME_, refEnergy2Dhbhehf,
debug_);
else return;
475 if(me!=0) refEnergy2Dho = HcalUtilsClient::getHisto<TH2F*>(me,
cloneME_, refEnergy2Dho,
debug_);
else return;
479 for(
int i=0;
i<56;
i++){
482 if(me!=0) Raddam[
i] = HcalUtilsClient::getHisto<TH1F*>(me,
cloneME_, Raddam[
i],
debug_);
483 Raddam[
i]->SetXTitle(
"TS");
484 Raddam[
i]->SetTitle(str);
487 int ievt_ = -1,runNo=-1;
488 s=
subdir_+
"HcalDetDiagLaserMonitor Event Number";
492 sscanf((s.substr(2,s.length()-2)).c_str(),
"%d", &ievt_);
494 s=
subdir_+
"HcalDetDiagLaserMonitor Run Number";
498 sscanf((s.substr(2,s.length()-2)).c_str(),
"%d", &runNo);
500 s=
subdir_+
"HcalDetDiagLaserMonitor Reference Run";
505 sscanf((s.substr(2,s.length()-2)).c_str(),
"%s", str);
526 TH2F* BadTiming_val[4];
527 TH2F* BadEnergy_val[4];
529 for(
int i=0;
i<4;++
i){
532 string s=
subdir_+
"Plots for client/"+name[
i]+
" Laser Timing difference";
534 if (me!=0) BadTiming_val[
i]=HcalUtilsClient::getHisto<TH2F*>(me,
cloneME_, BadTiming_val[
i],
debug_);
else return;
535 s=
subdir_+
"Plots for client/"+name[
i]+
" Laser Energy difference";
537 if (me!=0) BadEnergy_val[
i]=HcalUtilsClient::getHisto<TH2F*>(me,
cloneME_, BadEnergy_val[
i],
debug_);
else return;
541 std::ofstream badTiming;
542 badTiming.open((htmlDir+
"bad_timing_table.html").c_str());
544 std::ofstream badEnergy;
545 badEnergy.open((htmlDir+
"bad_energy_table.html").c_str());
548 for(
int d=0;d<4;++d){
549 int etabins=BadTiming_val[d]->GetNbinsX();
550 int phibins=BadTiming_val[d]->GetNbinsY();
553 if(ieta==-9999)
continue;
560 float val=BadTiming_val[d]->GetBinContent(
eta+1,
phi+1);
563 if(ieta>0){ HBP[0]++;}
else{ HBM[0]++;} badT++;
567 if(ieta>0){ HEP[0]++;}
else{ HEM[0]++;} badT++;
571 if(ieta>0){ HFP[0]++;}
else{ HFM[0]++;} badT++;
579 val=BadEnergy_val[d]->GetBinContent(
eta+1,
phi+1);
582 if(ieta>0){ HBP[1]++;}
else{ HBM[1]++;} badE++;
586 if(ieta>0){ HEP[1]++;}
else{ HEM[1]++;} badE++;
590 if(ieta>0){ HFP[1]++;}
else{ HFM[1]++;} badE++;
603 if((HBP[0]+HBM[0])>0){
604 badTiming <<
"<tr><td align=\"center\"><h3>"<<
"HB" <<
"</h3></td></tr>" << endl;
605 for(
int d=0;d<4;++d){
606 int etabins=BadTiming_val[d]->GetNbinsX();
607 int phibins=BadTiming_val[d]->GetNbinsY();
610 if(ieta==-9999)
continue;
612 float val=BadTiming_val[d]->GetBinContent(
eta+1,
phi+1);
617 sprintf(str,
"Time-Ref=%.2f",val);
623 if((HEP[0]+HEM[0])>0){
624 badTiming <<
"<tr><td align=\"center\"><h3>"<<
"HE" <<
"</h3></td></tr>" << endl;
625 for(
int d=0;d<4;++d){
626 int etabins=BadTiming_val[d]->GetNbinsX();
627 int phibins=BadTiming_val[d]->GetNbinsY();
630 if(ieta==-9999)
continue;
632 float val=BadTiming_val[d]->GetBinContent(
eta+1,
phi+1);
637 sprintf(str,
"Time-Ref=%.2f",val);
644 badTiming <<
"<tr><td align=\"center\"><h3>"<<
"HO" <<
"</h3></td></tr>" << endl;
645 for(
int d=0;d<4;++d){
646 int etabins=BadTiming_val[d]->GetNbinsX();
647 int phibins=BadTiming_val[d]->GetNbinsY();
650 if(ieta==-9999)
continue;
652 float val=BadTiming_val[d]->GetBinContent(
eta+1,
phi+1);
657 sprintf(str,
"Time-Ref=%.2f",val);
663 if((HFP[0]+HFM[0])>0){
664 badTiming <<
"<tr><td align=\"center\"><h3>"<<
"HF" <<
"</h3></td></tr>" << endl;
665 for(
int d=0;d<4;++d){
666 int etabins=BadTiming_val[d]->GetNbinsX();
667 int phibins=BadTiming_val[d]->GetNbinsY();
670 if(ieta==-9999)
continue;
672 float val=BadTiming_val[d]->GetBinContent(
eta+1,
phi+1);
677 sprintf(str,
"Time-Ref=%.2f",val);
684 if((HBP[1]+HBM[1])>0){
685 badEnergy <<
"<tr><td align=\"center\"><h3>"<<
"HB" <<
"</h3></td></tr>" << endl;
686 for(
int d=0;d<4;++d){
687 int etabins=BadEnergy_val[d]->GetNbinsX();
688 int phibins=BadEnergy_val[d]->GetNbinsY();
691 if(ieta==-9999)
continue;
693 float val=BadEnergy_val[d]->GetBinContent(
eta+1,
phi+1);
698 sprintf(str,
"Energy/Ref=%.2f",val);
704 if((HEP[1]+HEM[1])>0){
705 badEnergy <<
"<tr><td align=\"center\"><h3>"<<
"HE" <<
"</h3></td></tr>" << endl;
706 for(
int d=0;d<4;++d){
707 int etabins=BadEnergy_val[d]->GetNbinsX();
708 int phibins=BadEnergy_val[d]->GetNbinsY();
711 if(ieta==-9999)
continue;
713 float val=BadEnergy_val[d]->GetBinContent(
eta+1,
phi+1);
718 sprintf(str,
"Energy/Ref=%.2f",val);
725 badEnergy <<
"<tr><td align=\"center\"><h3>"<<
"HO" <<
"</h3></td></tr>" << endl;
726 for(
int d=0;d<4;++d){
727 int etabins=BadEnergy_val[d]->GetNbinsX();
728 int phibins=BadEnergy_val[d]->GetNbinsY();
731 if(ieta==-9999)
continue;
733 float val=BadEnergy_val[d]->GetBinContent(
eta+1,
phi+1);
738 sprintf(str,
"Energy/Ref=%.2f",val);
744 if((HFP[1]+HFM[1])>0){
745 badEnergy <<
"<tr><td align=\"center\"><h3>"<<
"HF" <<
"</h3></td></tr>" << endl;
746 for(
int d=0;d<4;++d){
747 int etabins=BadEnergy_val[d]->GetNbinsX();
748 int phibins=BadEnergy_val[d]->GetNbinsY();
751 if(ieta==-9999)
continue;
753 float val=BadEnergy_val[d]->GetBinContent(
eta+1,
phi+1);
758 sprintf(str,
"Energy/Ref=%.2f",val);
770 std::ofstream htmlFile;
772 htmlFile.open(outfile.c_str());
774 gROOT->SetBatch(
true);
775 gStyle->SetCanvasColor(0);
776 gStyle->SetPadColor(0);
777 gStyle->SetOptStat(111110);
778 gStyle->SetPalette(1);
779 TCanvas *
can=
new TCanvas(
"HcalDetDiagLaserClient",
"HcalDetDiagLaserClient",0,0,500,350);
782 if(Raddam[0]->GetEntries()>0){
783 std::ofstream RADDAM;
784 RADDAM.open((htmlDir +
"RADDAM_"+name_).c_str());
785 RADDAM <<
"</html><html xmlns=\"http://www.w3.org/1999/xhtml\">"<< endl;
786 RADDAM <<
"<head>"<< endl;
787 RADDAM <<
"<meta http-equiv=\"Content-Type\" content=\"text/html\"/>"<< endl;
788 RADDAM <<
"<title>"<<
"RADDAM channels" <<
"</title>"<< endl;
789 RADDAM <<
"<style type=\"text/css\">"<< endl;
790 RADDAM <<
" body,td{ background-color: #FFFFCC; font-family: arial, arial ce, helvetica; font-size: 12px; }"<< endl;
791 RADDAM <<
" td.s0 { font-family: arial, arial ce, helvetica; }"<< endl;
792 RADDAM <<
" td.s1 { font-family: arial, arial ce, helvetica; font-weight: bold; background-color: #FFC169; text-align: center;}"<< endl;
793 RADDAM <<
" td.s2 { font-family: arial, arial ce, helvetica; background-color: #eeeeee; }"<< endl;
794 RADDAM <<
" td.s3 { font-family: arial, arial ce, helvetica; background-color: #d0d0d0; }"<< endl;
795 RADDAM <<
" td.s4 { font-family: arial, arial ce, helvetica; background-color: #FFC169; }"<< endl;
796 RADDAM <<
"</style>"<< endl;
797 RADDAM <<
"<body>"<< endl;
798 RADDAM <<
"<h2>Run "<< runNo<<
": RADDAM channels event shape </h2>" << endl;
799 RADDAM <<
"<table>"<< endl;
802 for(
int i=0;
i<28;
i++){
803 RADDAM <<
"<tr align=\"left\">" << endl;
806 Raddam[2*
i]->Draw(); sprintf(str,
"%02d",2*
i); can->SaveAs((htmlDir +
"raddam_ch"+str+
".gif").c_str());
807 Raddam[2*
i+1]->Draw(); sprintf(str,
"%02d",2*
i+1); can->SaveAs((htmlDir +
"raddam_ch"+str+
".gif").c_str());
808 sprintf(str,
"raddam_ch%02d.gif",2*
i);
809 RADDAM <<
"<td align=\"center\"><img src=\""<<str<<
"\" alt=\"raddam channel\"> </td>" << endl;
810 sprintf(str,
"raddam_ch%02d.gif",2*
i+1);
811 RADDAM <<
"<td align=\"center\"><img src=\""<<str<<
"\" alt=\"raddam channel\"> </td>" << endl;
812 RADDAM <<
"</tr>" << endl;
815 RADDAM <<
"</table>"<< endl;
816 RADDAM <<
"</body>"<< endl;
817 RADDAM <<
"</html>"<< endl;
821 Time2Dhbhehf->SetXTitle(
"i#eta");
822 Time2Dhbhehf->SetYTitle(
"i#phi");
823 Time2Dho->SetXTitle(
"i#eta");
824 Time2Dho->SetYTitle(
"i#phi");
825 Energy2Dhbhehf->SetXTitle(
"i#eta");
826 Energy2Dhbhehf->SetYTitle(
"i#phi");
827 Energy2Dho->SetXTitle(
"i#eta");
828 Energy2Dho->SetYTitle(
"i#phi");
829 refTime2Dhbhehf->SetXTitle(
"i#eta");
830 refTime2Dhbhehf->SetYTitle(
"i#phi");
831 refTime2Dho->SetXTitle(
"i#eta");
832 refTime2Dho->SetYTitle(
"i#phi");
833 refEnergy2Dhbhehf->SetXTitle(
"i#eta");
834 refEnergy2Dhbhehf->SetYTitle(
"i#phi");
835 refEnergy2Dho->SetXTitle(
"i#eta");
836 refEnergy2Dho->SetYTitle(
"i#phi");
837 refTime2Dhbhehf->SetMinimum(0);
838 refTime2Dhbhehf->SetMaximum(2);
839 refTime2Dho->SetMinimum(0);
840 refTime2Dho->SetMaximum(2);
841 refEnergy2Dhbhehf->SetMinimum(0.5);
842 refEnergy2Dhbhehf->SetMaximum(1.5);
843 refEnergy2Dho->SetMinimum(0.5);
844 refEnergy2Dho->SetMaximum(1.5);
846 Time2Dhbhehf->SetNdivisions(36,
"Y");
847 Time2Dho->SetNdivisions(36,
"Y");
848 Energy2Dhbhehf->SetNdivisions(36,
"Y");
849 Energy2Dho->SetNdivisions(36,
"Y");
850 refTime2Dhbhehf->SetNdivisions(36,
"Y");
851 refTime2Dho->SetNdivisions(36,
"Y");
852 refEnergy2Dhbhehf->SetNdivisions(36,
"Y");
853 refEnergy2Dho->SetNdivisions(36,
"Y");
856 htmlFile <<
"<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\"> " << endl;
857 htmlFile <<
"<html> " << endl;
858 htmlFile <<
"<head> " << endl;
859 htmlFile <<
" <meta content=\"text/html; charset=ISO-8859-1\" " << endl;
860 htmlFile <<
" http-equiv=\"content-type\"> " << endl;
861 htmlFile <<
" <title>Detector Diagnostics Laser Monitor</title> " << endl;
862 htmlFile <<
"</head> " << endl;
863 htmlFile <<
"<style type=\"text/css\"> td { font-weight: bold } </style>" << endl;
865 htmlFile <<
"<style type=\"text/css\">"<< endl;
866 htmlFile <<
" td.s0 { font-family: arial, arial ce, helvetica; font-weight: bold; background-color: #FF7700; text-align: center;}"<< endl;
867 htmlFile <<
" td.s1 { font-family: arial, arial ce, helvetica; font-weight: bold; background-color: #FFC169; text-align: center;}"<< endl;
868 htmlFile <<
" td.s2 { font-family: arial, arial ce, helvetica; background-color: red; }"<< endl;
869 htmlFile <<
" td.s3 { font-family: arial, arial ce, helvetica; background-color: yellow; }"<< endl;
870 htmlFile <<
" td.s4 { font-family: arial, arial ce, helvetica; background-color: green; }"<< endl;
871 htmlFile <<
" td.s5 { font-family: arial, arial ce, helvetica; background-color: silver; }"<< endl;
872 std::string state[4]={
"<td class=\"s2\" align=\"center\">",
873 "<td class=\"s3\" align=\"center\">",
874 "<td class=\"s4\" align=\"center\">",
875 "<td class=\"s5\" align=\"center\">"};
876 htmlFile <<
"</style>"<< endl;
878 htmlFile <<
"<body> " << endl;
879 htmlFile <<
"<br> " << endl;
880 htmlFile <<
"<h2>Run: " << endl;
881 htmlFile <<
" <span " << endl;
882 htmlFile <<
" style=\"color: rgb(0, 0, 153);\">" << runNo <<
"</span></h2>" << endl;
883 htmlFile <<
"<h2>Monitoring task: <span " << endl;
884 htmlFile <<
" style=\"color: rgb(0, 0, 153);\">Detector Diagnostics Laser Monitor</span></h2> " << endl;
885 htmlFile <<
"<h2>Events processed: <span " << endl;
886 htmlFile <<
" style=\"color: rgb(0, 0, 153);\">" << ievt_ <<
"</span></h2>" << endl;
887 htmlFile <<
"<hr>" << endl;
889 htmlFile <<
"<table width=100% border=1>" << endl;
890 htmlFile <<
"<tr>" << endl;
891 htmlFile <<
"<td class=\"s0\" width=20% align=\"center\">SebDet</td>" << endl;
892 htmlFile <<
"<td class=\"s0\" width=20% align=\"center\">Bad Timing</td>" << endl;
893 htmlFile <<
"<td class=\"s0\" width=20% align=\"center\">Bad Energy</td>" << endl;
894 htmlFile <<
"</tr><tr>" << endl;
896 htmlFile <<
"<td class=\"s1\" align=\"center\">HB+</td>" << endl;
897 if(HBP[0]==0) ind1=2;
if(HBP[0]>0 && HBP[0]<=12) ind1=1;
if(HBP[0]>12) ind1=0;
898 if(HBP[1]==0) ind2=2;
if(HBP[1]>0 && HBP[1]<=12) ind2=1;
if(HBP[1]>12) ind2=0;
899 if(!HBpresent_) ind1=ind2=3;
900 htmlFile << state[ind1] << HBP[0] <<
"</td>" << endl;
901 htmlFile << state[ind2] << HBP[1] <<
"</td>" << endl;
902 htmlFile <<
"</tr><tr>" << endl;
903 htmlFile <<
"<td class=\"s1\" align=\"center\">HB-</td>" << endl;
904 if(HBM[0]==0) ind1=2;
if(HBM[0]>0 && HBP[0]<=12) ind1=1;
if(HBM[0]>12) ind1=0;
905 if(HBM[1]==0) ind2=2;
if(HBM[1]>0 && HBP[1]<=12) ind2=1;
if(HBM[1]>12) ind2=0;
906 if(!HBpresent_) ind1=ind2=3;
907 htmlFile << state[ind1] << HBM[0] <<
"</td>" << endl;
908 htmlFile << state[ind2] << HBM[1] <<
"</td>" << endl;
909 htmlFile <<
"</tr><tr>" << endl;
910 htmlFile <<
"<td class=\"s1\" align=\"center\">HE+</td>" << endl;
911 if(HEP[0]==0) ind1=2;
if(HEP[0]>0 && HEP[0]<=12) ind1=1;
if(HEP[0]>12) ind1=0;
912 if(HEP[1]==0) ind2=2;
if(HEP[1]>0 && HEP[1]<=12) ind2=1;
if(HEP[1]>12) ind2=0;
913 if(!HEpresent_) ind1=ind2=3;
914 if(ind1==0 || ind2==0)
status|=2;
else if(ind1==1 || ind2==1)
status|=1;
915 htmlFile << state[ind1] << HEP[0] <<
"</td>" << endl;
916 htmlFile << state[ind2] << HEP[1] <<
"</td>" << endl;
917 htmlFile <<
"</tr><tr>" << endl;
918 htmlFile <<
"<td class=\"s1\" align=\"center\">HE-</td>" << endl;
919 if(HEM[0]==0) ind1=2;
if(HEM[0]>0 && HEM[0]<=12) ind1=1;
if(HEM[0]>12) ind1=0;
920 if(HEM[1]==0) ind2=2;
if(HEM[1]>0 && HEM[1]<=12) ind2=1;
if(HEM[1]>12) ind2=0;
921 if(!HEpresent_) ind1=ind2=3;
922 if(ind1==0 || ind2==0)
status|=2;
else if(ind1==1 || ind2==1)
status|=1;
923 htmlFile << state[ind1] << HEM[0] <<
"</td>" << endl;
924 htmlFile << state[ind2] << HEM[1] <<
"</td>" << endl;
925 htmlFile <<
"</tr><tr>" << endl;
926 htmlFile <<
"<td class=\"s1\" align=\"center\">HF+</td>" << endl;
927 if(HFP[0]==0) ind1=2;
if(HFP[0]>0 && HFP[0]<=12) ind1=1;
if(HFP[0]>12) ind1=0;
928 if(HFP[1]==0) ind2=2;
if(HFP[1]>0 && HFP[1]<=12) ind2=1;
if(HFP[1]>12) ind2=0;
929 if(!HOpresent_) ind1=ind2=3;
930 if(ind1==0 || ind2==0)
status|=2;
else if(ind1==1 || ind2==1)
status|=1;
931 htmlFile << state[ind1] << HFP[0] <<
"</td>" << endl;
932 htmlFile << state[ind2] << HFP[1] <<
"</td>" << endl;
933 htmlFile <<
"</tr><tr>" << endl;
934 htmlFile <<
"<td class=\"s1\" align=\"center\">HF-</td>" << endl;
935 if(HFM[0]==0) ind1=2;
if(HFM[0]>0 && HFM[0]<=12) ind1=1;
if(HFM[0]>12) ind1=0;
936 if(HFM[1]==0) ind2=2;
if(HFM[1]>0 && HFM[1]<=12) ind2=1;
if(HFM[1]>12) ind2=0;
937 if(!HFpresent_) ind1=ind2=3;
938 if(ind1==0 || ind2==0)
status|=2;
else if(ind1==1 || ind2==1)
status|=1;
939 htmlFile << state[ind1] << HFM[0] <<
"</td>" << endl;
940 htmlFile << state[ind2] << HFM[1] <<
"</td>" << endl;
941 htmlFile <<
"</tr><tr>" << endl;
942 htmlFile <<
"<td class=\"s1\" align=\"center\">HO</td>" << endl;
943 if(HO[0]==0) ind1=2;
if(HO[0]>0 && HO[0]<=12) ind1=1;
if(HO[0]>12) ind1=0;
944 if(HO[1]==0) ind2=2;
if(HO[1]>0 && HO[1]<=12) ind2=1;
if(HO[1]>12) ind2=0;
945 if(!HFpresent_) ind1=ind2=3;
946 if(ind1==0 || ind2==0)
status|=2;
else if(ind1==1 || ind2==1)
status|=1;
947 htmlFile << state[ind1] << HO[0] <<
"</td>" << endl;
948 htmlFile << state[ind2] << HO[1] <<
"</td>" << endl;
950 htmlFile <<
"</tr></table>" << endl;
951 htmlFile <<
"<hr>" << endl;
954 htmlFile <<
"<table width=100% border=1><tr>" << endl;
955 if(badT>0) htmlFile <<
"<td><a href=\"" <<
"bad_timing_table.html" <<
"\">list of bad timing channels</a></td>";
956 if(badE>0) htmlFile <<
"<td><a href=\"" <<
"bad_energy_table.html" <<
"\">list of bad energy channels</a></td>";
957 htmlFile <<
"</tr></table>" << endl;
962 if(Raddam[0]->GetEntries()>0){
963 htmlFile <<
"<h2 align=\"center\"><a href=\"" << (
"RADDAM_"+
name_).c_str() <<
"\">RADDAM channels</a><h2>";
964 htmlFile <<
"<hr>" << endl;
967 htmlFile <<
"<h2 align=\"center\">Stability Laser plots (Reference run "<<ref_run<<
")</h2>" << endl;
968 htmlFile <<
"<table width=100% border=0><tr>" << endl;
973 htmlFile <<
"<tr align=\"left\">" << endl;
974 refTime2Dhbhehf->SetStats(0);
975 refTime2Dho->SetStats(0);
976 refTime2Dhbhehf->Draw(
"COLZ"); can->SaveAs((htmlDir +
"ref_laser_timing_hbhehf.gif").c_str());
977 refTime2Dho->Draw(
"COLZ"); can->SaveAs((htmlDir +
"ref_laser_timing_ho.gif").c_str());
978 htmlFile <<
"<td align=\"center\"><img src=\"ref_laser_timing_hbhehf.gif\" alt=\"ref laser timing distribution\"> </td>" << endl;
979 htmlFile <<
"<td align=\"center\"><img src=\"ref_laser_timing_ho.gif\" alt=\"ref laser timing distribution\"> </td>" << endl;
980 htmlFile <<
"</tr>" << endl;
983 if(hb!=0 && he!=0 && ho!=0 && hf!=0){
984 hb->SetMarkerStyle(22);
985 hb->SetMarkerColor(kRed);
986 hb->GetYaxis()->SetRangeUser(hb->GetMinimum()-1,hb->GetMaximum()+1);
987 hb->GetXaxis()->SetNdivisions(520);
989 he->SetMarkerStyle(22);
990 he->SetMarkerColor(kRed);
991 he->GetYaxis()->SetRangeUser(he->GetMinimum()-1,he->GetMaximum()+1);
992 he->GetXaxis()->SetNdivisions(520);
994 ho->SetMarkerStyle(22);
995 ho->SetMarkerColor(kRed);
996 ho->GetYaxis()->SetRangeUser(ho->GetMinimum()-1,ho->GetMaximum()+1);
997 ho->GetXaxis()->SetNdivisions(520);
999 hf->SetMarkerStyle(22);
1000 hf->SetMarkerColor(kRed);
1001 hf->GetYaxis()->SetRangeUser(hf->GetMinimum()-1,hf->GetMaximum()+1);
1002 hf->GetXaxis()->SetNdivisions(520);
1009 hb->GetXaxis()->SetBit(TAxis::kLabelsVert);
1010 he->GetXaxis()->SetBit(TAxis::kLabelsVert);
1011 ho->GetXaxis()->SetBit(TAxis::kLabelsVert);
1012 hf->GetXaxis()->SetBit(TAxis::kLabelsVert);
1013 hb->GetXaxis()->SetLabelSize(0.05);
1014 he->GetXaxis()->SetLabelSize(0.05);
1015 ho->GetXaxis()->SetLabelSize(0.05);
1016 hf->GetXaxis()->SetLabelSize(0.05);
1019 htmlFile <<
"<tr align=\"left\">" << endl;
1020 htmlFile <<
"<td align=\"center\"><img src=\"hb_rbx_timing1D.gif\" alt=\"rbx timing\"> </td>" << endl;
1021 htmlFile <<
"<td align=\"center\"><img src=\"he_rbx_timing1D.gif\" alt=\"rbx timing\"> </td>" << endl;
1022 htmlFile <<
"</tr>" << endl;
1023 htmlFile <<
"<tr align=\"left\">" << endl;
1024 htmlFile <<
"<td align=\"center\"><img src=\"ho_rbx_timing1D.gif\" alt=\"rbx timing\"> </td>" << endl;
1025 htmlFile <<
"<td align=\"center\"><img src=\"hf_rbx_timing1D.gif\" alt=\"rbx timing\"> </td>" << endl;
1026 htmlFile <<
"</tr>" << endl;
1027 }
else printf(
"Error\n");
1031 htmlFile <<
"<tr align=\"left\">" << endl;
1032 refEnergy2Dhbhehf->SetStats(0);
1033 refEnergy2Dho->SetStats(0);
1034 refEnergy2Dhbhehf->Draw(
"COLZ"); can->SaveAs((htmlDir +
"ref_laser_energy_hbhehf.gif").c_str());
1035 refEnergy2Dho->Draw(
"COLZ"); can->SaveAs((htmlDir +
"ref_laser_energy_ho.gif").c_str());
1036 htmlFile <<
"<td align=\"center\"><img src=\"ref_laser_energy_hbhehf.gif\" alt=\"ref laser energy distribution\"> </td>" << endl;
1037 htmlFile <<
"<td align=\"center\"><img src=\"ref_laser_energy_ho.gif\" alt=\"ref laser energy distribution\"> </td>" << endl;
1038 htmlFile <<
"</tr>" << endl;
1040 htmlFile <<
"</table>" << endl;
1043 htmlFile <<
"<h2 align=\"center\">Summary Laser plots</h2>" << endl;
1044 htmlFile <<
"<table width=100% border=0><tr>" << endl;
1045 htmlFile <<
"<tr align=\"left\">" << endl;
1046 Time2Dhbhehf->SetStats(0);
1047 Time2Dho->SetStats(0);
1048 Time2Dhbhehf->Draw(
"COLZ"); can->SaveAs((htmlDir +
"laser_timing_hbhehf.gif").c_str());
1049 Time2Dho->Draw(
"COLZ"); can->SaveAs((htmlDir +
"laser_timing_ho.gif").c_str());
1050 htmlFile <<
"<td align=\"center\"><img src=\"laser_timing_hbhehf.gif\" alt=\"laser timing distribution\"> </td>" << endl;
1051 htmlFile <<
"<td align=\"center\"><img src=\"laser_timing_ho.gif\" alt=\"laser timing distribution\"> </td>" << endl;
1052 htmlFile <<
"</tr>" << endl;
1054 htmlFile <<
"<tr align=\"left\">" << endl;
1055 Energy2Dhbhehf->SetStats(0);
1056 Energy2Dho->SetStats(0);
1057 Energy2Dhbhehf->Draw(
"COLZ"); can->SaveAs((htmlDir +
"laser_energy_hbhehf.gif").c_str());
1058 Energy2Dho->Draw(
"COLZ"); can->SaveAs((htmlDir +
"laser_energy_ho.gif").c_str());
1059 htmlFile <<
"<td align=\"center\"><img src=\"laser_energy_hbhehf.gif\" alt=\"laser energy distribution\"> </td>" << endl;
1060 htmlFile <<
"<td align=\"center\"><img src=\"laser_energy_ho.gif\" alt=\"laser energy distribution\"> </td>" << endl;
1061 htmlFile <<
"</tr>" << endl;
1064 htmlFile <<
"<tr align=\"left\">" << endl;
1065 hbheEnergy->Draw(); can->SaveAs((htmlDir +
"hbhe_laser_energy_distribution.gif").c_str());
1066 hbheEnergyRMS->Draw(); can->SaveAs((htmlDir +
"hbhe_laser_energy_rms_distribution.gif").c_str());
1067 htmlFile <<
"<td align=\"center\"><img src=\"hbhe_laser_energy_distribution.gif\" alt=\"hbhe laser energy distribution\"> </td>" << endl;
1068 htmlFile <<
"<td align=\"center\"><img src=\"hbhe_laser_energy_rms_distribution.gif\" alt=\"hbhelaser energy rms distribution\"> </td>" << endl;
1069 htmlFile <<
"</tr>" << endl;
1070 htmlFile <<
"<tr align=\"left\">" << endl;
1071 hbheTiming->Draw(); can->SaveAs((htmlDir +
"hbhe_laser_timing_distribution.gif").c_str());
1072 hbheTimingRMS->Draw(); can->SaveAs((htmlDir +
"hbhe_laser_timing_rms_distribution.gif").c_str());
1073 htmlFile <<
"<td align=\"center\"><img src=\"hbhe_laser_timing_distribution.gif\" alt=\"hbhe laser timing distribution\"> </td>" << endl;
1074 htmlFile <<
"<td align=\"center\"><img src=\"hbhe_laser_timing_rms_distribution.gif\" alt=\"hbhe laser timing rms distribution\"> </td>" << endl;
1075 htmlFile <<
"</tr>" << endl;
1077 htmlFile <<
"<tr align=\"left\">" << endl;
1078 hoEnergy->Draw(); can->SaveAs((htmlDir +
"ho_laser_energy_distribution.gif").c_str());
1079 hoEnergyRMS->Draw(); can->SaveAs((htmlDir +
"ho_laser_energy_rms_distribution.gif").c_str());
1080 htmlFile <<
"<td align=\"center\"><img src=\"ho_laser_energy_distribution.gif\" alt=\"ho laser energy distribution\"> </td>" << endl;
1081 htmlFile <<
"<td align=\"center\"><img src=\"ho_laser_energy_rms_distribution.gif\" alt=\"ho laser energy rms distribution\"> </td>" << endl;
1082 htmlFile <<
"</tr>" << endl;
1083 htmlFile <<
"<tr align=\"left\">" << endl;
1084 hoTiming->Draw(); can->SaveAs((htmlDir +
"ho_laser_timing_distribution.gif").c_str());
1085 hoTimingRMS->Draw(); can->SaveAs((htmlDir +
"ho_laser_timing_rms_distribution.gif").c_str());
1086 htmlFile <<
"<td align=\"center\"><img src=\"ho_laser_timing_distribution.gif\" alt=\"ho laser timing distribution\"> </td>" << endl;
1087 htmlFile <<
"<td align=\"center\"><img src=\"ho_laser_timing_rms_distribution.gif\" alt=\"ho laser timing rms distribution\"> </td>" << endl;
1089 htmlFile <<
"</tr>" << endl;
1090 htmlFile <<
"<tr align=\"left\">" << endl;
1091 hfEnergy->Draw(); can->SaveAs((htmlDir +
"hf_laser_energy_distribution.gif").c_str());
1092 hfEnergyRMS->Draw(); can->SaveAs((htmlDir +
"hf_laser_energy_rms_distribution.gif").c_str());
1093 htmlFile <<
"<td align=\"center\"><img src=\"hf_laser_energy_distribution.gif\" alt=\"hf laser energy distribution\"> </td>" << endl;
1094 htmlFile <<
"<td align=\"center\"><img src=\"hf_laser_energy_rms_distribution.gif\" alt=\"hf laser energy rms distribution\"> </td>" << endl;
1095 htmlFile <<
"</tr>" << endl;
1096 htmlFile <<
"<tr align=\"left\">" << endl;
1097 hfTiming->Draw(); can->SaveAs((htmlDir +
"hf_laser_timing_distribution.gif").c_str());
1098 hfTimingRMS->Draw(); can->SaveAs((htmlDir +
"hf_laser_timing_rms_distribution.gif").c_str());
1099 htmlFile <<
"<td align=\"center\"><img src=\"hf_laser_timing_distribution.gif\" alt=\"hf laser timing distribution\"> </td>" << endl;
1100 htmlFile <<
"<td align=\"center\"><img src=\"hf_laser_timing_rms_distribution.gif\" alt=\"hf laser timing rms distribution\"> </td>" << endl;
1101 htmlFile <<
"</tr>" << endl;
1103 can->SetBottomMargin(0.2);
1104 if(hb->GetEntries()>0)hb->Draw(
"P");
else hb->Draw(); can->SaveAs((htmlDir +
"hb_rbx_timing1D.gif").c_str());
1105 if(he->GetEntries()>0)he->Draw(
"P");
else he->Draw(); can->SaveAs((htmlDir +
"he_rbx_timing1D.gif").c_str());
1106 if(ho->GetEntries()>0)ho->Draw(
"P");
else ho->Draw(); can->SaveAs((htmlDir +
"ho_rbx_timing1D.gif").c_str());
1107 if(hf->GetEntries()>0)hf->Draw(
"P");
else hf->Draw(); can->SaveAs((htmlDir +
"hf_rbx_timing1D.gif").c_str());
1109 htmlFile <<
"</table>" << endl;
1111 htmlFile <<
"</body> " << endl;
1112 htmlFile <<
"</html> " << endl;
bool isHO(int etabin, int depth)
std::vector< std::string > HcalEtaPhiHistNames()
bool isHE(int etabin, int depth)
HcalElectronicsMap generateHcalElectronicsMap()
int CalcIeta(int subdet, int eta, int depth)
static void printTableHeader(std::ofstream &file, std::string header)
MonitorElement * get(const std::string &path) const
get ME from full pathname (e.g. "my/long/dir/my_histo")
bool isHB(int etabin, int depth)
std::string valueString(void) const
const HcalFrontEndId getHcalFrontEndId(const DetId &)
bool isHF(int etabin, int depth)
int64_t getIntValue(void) const
std::map< HcalDetId, unsigned int > badstatusmap
HcalLogicalMap * logicalMap_
static void printTableTail(std::ofstream &file)
Readout chain identification for Hcal [31:26] Unused (so far) [25] Trigger-chain id flag [24:20] Read...
static void printTableLine(std::ofstream &file, int ind, HcalDetId &detid, HcalFrontEndId &lmap_entry, HcalElectronicsId &emap_entry, std::string comment="")
const DetId lookup(HcalElectronicsId fId) const
lookup the logical detid associated with the given electronics id