00001 #include <DQM/HcalMonitorClient/interface/HcalBeamClient.h>
00002 #include <DQM/HcalMonitorClient/interface/HcalClientUtils.h>
00003 #include "DQMServices/Core/interface/DQMStore.h"
00004 #include "DQMServices/Core/interface/MonitorElement.h"
00005 #include <math.h>
00006 #include <iostream>
00007
00008 HcalBeamClient::HcalBeamClient(){}
00009
00010 void HcalBeamClient::init(const ParameterSet& ps, DQMStore* dbe,string clientName)
00011 {
00012
00013 HcalBaseClient::init(ps,dbe,clientName);
00014
00015 beamclient_checkNevents_ = ps.getUntrackedParameter<int>("BeamClient_checkNevents",100);
00016
00017 minErrorFlag_ = ps.getUntrackedParameter<double>("BeamClient_minErrorFlag",0.0);
00018
00019 beamclient_makeDiagnostics_ = ps.getUntrackedParameter<bool>("BeamClient_makeDiagnosticPlots",false);
00020
00021
00022 ProblemBeamCells=0;
00023 CenterOfEnergyRadius=0;
00024 CenterOfEnergy=0;
00025 COEradiusVSeta=0;
00026 HBCenterOfEnergyRadius=0;
00027 HBCenterOfEnergy=0;
00028 HECenterOfEnergyRadius=0;
00029 HECenterOfEnergy=0;
00030 HOCenterOfEnergyRadius=0;
00031 HOCenterOfEnergy=0;
00032 HFCenterOfEnergyRadius=0;
00033 HFCenterOfEnergy=0;
00034
00035 for (int i=0;i<6;++i)
00036 ProblemBeamCellsByDepth[i]=0;
00037
00038 Etsum_eta_L=0;
00039 Etsum_eta_S=0;
00040 Etsum_phi_L=0;
00041 Etsum_phi_S=0;
00042 Etsum_ratio_p=0;
00043 Etsum_ratio_m=0;
00044 Etsum_map_L=0;
00045 Etsum_map_S=0;
00046 Etsum_ratio_map=0;
00047 Etsum_rphi_L=0;
00048 Etsum_rphi_S=0;
00049 Energy_Occ=0;
00050
00051 Occ_rphi_L=0;
00052 Occ_rphi_S=0;
00053 Occ_eta_L=0;
00054 Occ_eta_S=0;
00055 Occ_phi_L=0;
00056 Occ_phi_S=0;
00057 Occ_map_L=0;
00058 Occ_map_S=0;
00059
00060 HFlumi_ETsum_perwedge=0;
00061 HFlumi_Occupancy_above_thr_r1=0;
00062 HFlumi_Occupancy_between_thrs_r1=0;
00063 HFlumi_Occupancy_below_thr_r1=0;
00064 HFlumi_Occupancy_above_thr_r2=0;
00065 HFlumi_Occupancy_between_thrs_r2=0;
00066 HFlumi_Occupancy_below_thr_r2=0;
00067
00068 if (beamclient_makeDiagnostics_)
00069 {
00070 for (int i=0;i<83;++i)
00071 {
00072 HB_CenterOfEnergyRadius[i]=0;
00073 HE_CenterOfEnergyRadius[i]=0;
00074 HO_CenterOfEnergyRadius[i]=0;
00075 HF_CenterOfEnergyRadius[i]=0;
00076 }
00077 }
00078 subdets_.push_back("HB HF Depth 1 ");
00079 subdets_.push_back("HB HF Depth 2 ");
00080 subdets_.push_back("HE Depth 3 ");
00081 subdets_.push_back("HO ZDC ");
00082 subdets_.push_back("HE Depth 1 ");
00083 subdets_.push_back("HE Depth 2 ");
00084 return;
00085 }
00086
00087 HcalBeamClient::~HcalBeamClient()
00088 {
00089 this->cleanup();
00090 }
00091
00092
00093 void HcalBeamClient::beginJob(){
00094
00095 if ( debug_>1 ) cout << "HcalBeamClient: beginJob" << endl;
00096
00097 ievt_ = 0;
00098 jevt_ = 0;
00099 this->setup();
00100 return;
00101 }
00102
00103
00104 void HcalBeamClient::beginRun(void)
00105 {
00106 if ( debug_>1 ) cout << "HcalBeamClient: beginRun" << endl;
00107
00108 jevt_ = 0;
00109 this->setup();
00110 this->resetAllME();
00111 return;
00112 }
00113
00114
00115 void HcalBeamClient::endJob(void)
00116 {
00117 if ( debug_>1 ) cout << "HcalBeamClient: endJob, ievt = " << ievt_ << endl;
00118
00119 this->cleanup();
00120 return;
00121 }
00122
00123
00124 void HcalBeamClient::endRun(void)
00125 {
00126 if ( debug_>1 ) cout << "HcalBeamClient: endRun, jevt = " << jevt_ << endl;
00127
00128 this->cleanup();
00129 return;
00130 }
00131
00132
00133 void HcalBeamClient::setup(void)
00134 {
00135 return;
00136 }
00137
00138 void HcalBeamClient::cleanup(void)
00139 {
00140 if(cloneME_)
00141 {
00142
00143 if (ProblemBeamCells) delete ProblemBeamCells;
00144
00145 for (int i=0;i<6;++i)
00146 {
00147
00148 if (ProblemBeamCellsByDepth[i]) delete ProblemBeamCellsByDepth[i];
00149 }
00150 if (beamclient_makeDiagnostics_)
00151 {
00152 for (int i=0;i<83;++i)
00153 {
00154 if (HB_CenterOfEnergyRadius[i]) delete HB_CenterOfEnergyRadius[i];
00155 if (HE_CenterOfEnergyRadius[i]) delete HE_CenterOfEnergyRadius[i];
00156 if (HO_CenterOfEnergyRadius[i]) delete HO_CenterOfEnergyRadius[i];
00157 if (HF_CenterOfEnergyRadius[i]) delete HF_CenterOfEnergyRadius[i];
00158
00159 }
00160 }
00161 if (CenterOfEnergyRadius) delete CenterOfEnergyRadius;
00162 if (CenterOfEnergy) delete CenterOfEnergy;
00163 if (COEradiusVSeta) delete COEradiusVSeta;
00164 if (HBCenterOfEnergyRadius) delete HBCenterOfEnergyRadius;
00165 if (HBCenterOfEnergy) delete HBCenterOfEnergy;
00166 if (HECenterOfEnergyRadius) delete HECenterOfEnergyRadius;
00167 if (HECenterOfEnergy) delete HECenterOfEnergy;
00168 if (HOCenterOfEnergyRadius) delete HOCenterOfEnergyRadius;
00169 if (HOCenterOfEnergy) delete HOCenterOfEnergy;
00170 if (HFCenterOfEnergyRadius) delete HFCenterOfEnergyRadius;
00171 if (HFCenterOfEnergy) delete HFCenterOfEnergy;
00172
00173 if (Etsum_eta_L) delete Etsum_eta_L;
00174 if (Etsum_eta_S) delete Etsum_eta_S;
00175 if (Etsum_phi_L) delete Etsum_phi_L;
00176 if (Etsum_phi_S) delete Etsum_phi_S;
00177 if (Etsum_ratio_p) delete Etsum_ratio_p;
00178 if (Etsum_ratio_m) delete Etsum_ratio_m;
00179 if (Etsum_map_L) delete Etsum_map_L;
00180 if (Etsum_map_S) delete Etsum_map_S;
00181 if (Etsum_ratio_map) delete Etsum_ratio_map;
00182 if (Etsum_rphi_L) delete Etsum_rphi_L;
00183 if (Etsum_rphi_S) delete Etsum_rphi_S;
00184 if (Energy_Occ) delete Energy_Occ;
00185
00186 if (Occ_rphi_L) delete Occ_rphi_L;
00187 if (Occ_rphi_S) delete Occ_rphi_S;
00188 if (Occ_eta_L) delete Occ_eta_L;
00189 if (Occ_eta_S) delete Occ_eta_S;
00190 if (Occ_phi_L) delete Occ_phi_L;
00191 if (Occ_phi_S) delete Occ_phi_S;
00192 if (Occ_map_L) delete Occ_map_L;
00193 if (Occ_map_S) delete Occ_map_S;
00194
00195 if (HFlumi_ETsum_perwedge) delete HFlumi_ETsum_perwedge;
00196 if (HFlumi_Occupancy_above_thr_r1) delete HFlumi_Occupancy_above_thr_r1;
00197 if (HFlumi_Occupancy_between_thrs_r1) delete HFlumi_Occupancy_between_thrs_r1;
00198 if (HFlumi_Occupancy_below_thr_r1) delete HFlumi_Occupancy_below_thr_r1;
00199 if (HFlumi_Occupancy_above_thr_r2) delete HFlumi_Occupancy_above_thr_r2;
00200 if (HFlumi_Occupancy_between_thrs_r2) delete HFlumi_Occupancy_between_thrs_r2;
00201 if (HFlumi_Occupancy_below_thr_r2) delete HFlumi_Occupancy_below_thr_r2;
00202
00203 }
00204
00205
00206 ProblemBeamCells=0;
00207 CenterOfEnergyRadius=0;
00208 CenterOfEnergy=0;
00209 COEradiusVSeta=0;
00210 HBCenterOfEnergyRadius=0;
00211 HBCenterOfEnergy=0;
00212 HECenterOfEnergyRadius=0;
00213 HECenterOfEnergy=0;
00214 HOCenterOfEnergyRadius=0;
00215 HOCenterOfEnergy=0;
00216 HFCenterOfEnergyRadius=0;
00217 HFCenterOfEnergy=0;
00218
00219 for (int i=0;i<6;++i)
00220 ProblemBeamCellsByDepth[i]=0;
00221
00222 Etsum_eta_L=0;
00223 Etsum_eta_S=0;
00224 Etsum_phi_L=0;
00225 Etsum_phi_S=0;
00226 Etsum_ratio_p=0;
00227 Etsum_ratio_m=0;
00228 Etsum_map_L=0;
00229 Etsum_map_S=0;
00230 Etsum_ratio_map=0;
00231 Etsum_rphi_L=0;
00232 Etsum_rphi_S=0;
00233 Energy_Occ=0;
00234
00235 Occ_rphi_L=0;
00236 Occ_rphi_S=0;
00237 Occ_eta_L=0;
00238 Occ_eta_S=0;
00239 Occ_phi_L=0;
00240 Occ_phi_S=0;
00241 Occ_map_L=0;
00242 Occ_map_S=0;
00243
00244 HFlumi_ETsum_perwedge=0;
00245 HFlumi_Occupancy_above_thr_r1=0;
00246 HFlumi_Occupancy_between_thrs_r1=0;
00247 HFlumi_Occupancy_below_thr_r1=0;
00248 HFlumi_Occupancy_above_thr_r2=0;
00249 HFlumi_Occupancy_between_thrs_r2=0;
00250 HFlumi_Occupancy_below_thr_r2=0;
00251
00252 if (beamclient_makeDiagnostics_)
00253 {
00254 for (int i=0;i<83;++i)
00255 {
00256 HB_CenterOfEnergyRadius[i]=0;
00257 HE_CenterOfEnergyRadius[i]=0;
00258 HO_CenterOfEnergyRadius[i]=0;
00259 HF_CenterOfEnergyRadius[i]=0;
00260 }
00261 }
00262 dqmReportMapErr_.clear();
00263 dqmReportMapWarn_.clear();
00264 dqmReportMapOther_.clear();
00265 dqmQtests_.clear();
00266
00267 return;
00268 }
00269
00270
00271 void HcalBeamClient::report()
00272 {
00273 if(!dbe_) return;
00274 if ( debug_>1 ) cout << "HcalBeamClient: report" << endl;
00275 this->setup();
00276
00277 ostringstream name;
00278 name<<process_.c_str()<<"Hcal/BeamMonitor_Hcal/BeamMonitor Event Number";
00279 MonitorElement* me = dbe_->get(name.str().c_str());
00280 if ( me )
00281 {
00282 string s = me->valueString();
00283 ievt_ = -1;
00284 sscanf((s.substr(2,s.length()-2)).c_str(), "%d", &ievt_);
00285 if ( debug_>1 ) cout << "Found '" << name.str().c_str() << "'" << endl;
00286 }
00287 getHistograms();
00288
00289 return;
00290 }
00291
00292
00293 void HcalBeamClient::getHistograms()
00294 {
00295 if(!dbe_) return;
00296
00297 ostringstream name;
00298
00299 TH2F* dummy2D = new TH2F();
00300 TH1F* dummy1D = new TH1F();
00301 TProfile* dummyProf = new TProfile();
00302
00303 name<<process_.c_str()<<"BeamMonitor_Hcal/ ProblemBeamCells";
00304
00305 ProblemBeamCells = getAnyHisto(dummy2D, name.str(), process_, dbe_, debug_, cloneME_);
00306 name.str("");
00307
00308 getSJ6histos("BeamMonitor_Hcal/problem_beammonitor/", " Problem BeamMonitor Rate", ProblemBeamCellsByDepth);
00309
00310 name<<process_.c_str()<<"BeamMonitor_Hcal/CenterOfEnergyRadius";
00311 CenterOfEnergyRadius = getAnyHisto(dummy1D, name.str(), process_, dbe_, debug_, cloneME_);
00312 name.str("");
00313 name<<process_.c_str()<<"BeamMonitor_Hcal/CenterOfEnergy";
00314 CenterOfEnergy = getAnyHisto(dummy2D, name.str(), process_, dbe_, debug_, cloneME_);
00315 name.str("");
00316 name<<process_.c_str()<<"BeamMonitor_Hcal/COEradiusVSeta";
00317 COEradiusVSeta = getAnyHisto(dummyProf, name.str(), process_, dbe_, debug_, cloneME_);
00318 name.str("");
00319
00320 name<<process_.c_str()<<"BeamMonitor_Hcal/HB/HBCenterOfEnergyRadius";
00321 HBCenterOfEnergyRadius = getAnyHisto(dummy1D, name.str(), process_, dbe_, debug_, cloneME_);
00322 name.str("");
00323 name<<process_.c_str()<<"BeamMonitor_Hcal/HB/HBCenterOfEnergy";
00324 HBCenterOfEnergy = getAnyHisto(dummy2D, name.str(), process_, dbe_, debug_, cloneME_);
00325 name.str("");
00326
00327 if (beamclient_makeDiagnostics_)
00328 {
00329 for (int i=-16;i<=16;++i)
00330 {
00331 if (i==0) continue;
00332 name<<process_.c_str()<<"BeamMonitor_Hcal/HB/HB_CenterOfEnergyRadius_ieta"<<i;
00333 HB_CenterOfEnergyRadius[i+16]= getAnyHisto(dummy1D, name.str(), process_, dbe_, debug_, cloneME_);
00334 name.str("");
00335 }
00336 }
00337 name<<process_.c_str()<<"BeamMonitor_Hcal/HE/HECenterOfEnergyRadius";
00338 HECenterOfEnergyRadius = getAnyHisto(dummy1D, name.str(), process_, dbe_, debug_, cloneME_);
00339 name.str("");
00340 name<<process_.c_str()<<"BeamMonitor_Hcal/HE/HECenterOfEnergy";
00341 HECenterOfEnergy = getAnyHisto(dummy2D, name.str(), process_, dbe_, debug_, cloneME_);
00342 name.str("");
00343
00344 if (beamclient_makeDiagnostics_)
00345 {
00346 for (int i=-29;i<=29;++i)
00347 {
00348 if (abs(i)<17) continue;
00349 name<<process_.c_str()<<"BeamMonitor_Hcal/HE/HE_CenterOfEnergyRadius_ieta"<<i;
00350 HE_CenterOfEnergyRadius[i+29]= getAnyHisto(dummy1D, name.str(), process_, dbe_, debug_, cloneME_);
00351 name.str("");
00352 }
00353 }
00354 name<<process_.c_str()<<"BeamMonitor_Hcal/HO/HOCenterOfEnergyRadius";
00355 HOCenterOfEnergyRadius = getAnyHisto(dummy1D, name.str(), process_, dbe_, debug_, cloneME_);
00356 name.str("");
00357 name<<process_.c_str()<<"BeamMonitor_Hcal/HO/HOCenterOfEnergy";
00358 HOCenterOfEnergy = getAnyHisto(dummy2D, name.str(), process_, dbe_, debug_, cloneME_);
00359 name.str("");
00360
00361 if (beamclient_makeDiagnostics_)
00362 {
00363 for (int i=-15;i<=15;++i)
00364 {
00365 if (i==0) continue;
00366 name<<process_.c_str()<<"BeamMonitor_Hcal/HO/HO_CenterOfEnergyRadius_ieta"<<i;
00367 HO_CenterOfEnergyRadius[i+15]= getAnyHisto(dummy1D, name.str(), process_, dbe_, debug_, cloneME_);
00368 name.str("");
00369 }
00370 }
00371 name<<process_.c_str()<<"BeamMonitor_Hcal/HF/HFCenterOfEnergyRadius";
00372 HFCenterOfEnergyRadius = getAnyHisto(dummy1D, name.str(), process_, dbe_, debug_, cloneME_);
00373 name.str("");
00374 name<<process_.c_str()<<"BeamMonitor_Hcal/HF/HFCenterOfEnergy";
00375 HFCenterOfEnergy = getAnyHisto(dummy2D, name.str(), process_, dbe_, debug_, cloneME_);
00376 name.str("");
00377
00378 if (beamclient_makeDiagnostics_)
00379 {
00380 for (int i=-41;i<=41;++i)
00381 {
00382 if (abs(i)<29) continue;
00383 name<<process_.c_str()<<"BeamMonitor_Hcal/HF/HF_CenterOfEnergyRadius_ieta"<<i;
00384 HF_CenterOfEnergyRadius[i+41]= getAnyHisto(dummy1D, name.str(), process_, dbe_, debug_, cloneME_);
00385 name.str("");
00386 }
00387 }
00388 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/Et Sum vs Eta Long Fiber";
00389 Etsum_eta_L=getAnyHisto(dummyProf, name.str(), process_, dbe_, debug_, cloneME_);
00390 name.str("");
00391 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/Et Sum vs Eta Short Fiber";
00392 Etsum_eta_S=getAnyHisto(dummyProf, name.str(), process_, dbe_, debug_, cloneME_);
00393 name.str("");
00394 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/Et Sum vs Phi Long Fiber";
00395 Etsum_phi_L=getAnyHisto(dummyProf, name.str(), process_, dbe_, debug_, cloneME_);
00396 name.str("");
00397 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/Et Sum vs Phi Short Fiber";
00398 Etsum_phi_S=getAnyHisto(dummyProf, name.str(), process_, dbe_, debug_, cloneME_);
00399 name.str("");
00400 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/Occ vs fm HF+";
00401 Etsum_ratio_p=getAnyHisto(dummy1D, name.str(), process_, dbe_, debug_, cloneME_);
00402 name.str("");
00403 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/Occ vs Energy";
00404 Energy_Occ=getAnyHisto(dummy1D, name.str(), process_, dbe_, debug_, cloneME_);
00405 name.str("");
00406 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/Occ vs fm HF-";
00407 Etsum_ratio_m=getAnyHisto(dummy1D, name.str(), process_, dbe_, debug_, cloneME_);
00408 name.str("");
00409 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/EtSum 2D phi and eta Long Fiber";
00410 Etsum_map_L=getAnyHisto(dummy2D, name.str(), process_, dbe_, debug_, cloneME_);
00411 name.str("");
00412 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/EtSum 2D phi and eta Short Fiber";
00413 Etsum_map_S=getAnyHisto(dummy2D, name.str(), process_, dbe_, debug_, cloneME_);
00414 name.str("");
00415 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/EtSum 2D phi and radius Long Fiber";
00416 Etsum_rphi_L=getAnyHisto(dummy2D, name.str(), process_, dbe_, debug_, cloneME_);
00417 name.str("");
00418 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/EtSum 2D phi and radius Short Fiber";
00419 Etsum_rphi_S=getAnyHisto(dummy2D, name.str(), process_, dbe_, debug_, cloneME_);
00420 name.str("");
00421 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/Abnormal fm";
00422 Etsum_ratio_map=getAnyHisto(dummy2D, name.str(), process_, dbe_, debug_, cloneME_);
00423 name.str("");
00424 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/Occ 2D phi and radius Short Fiber";
00425 Occ_rphi_S=getAnyHisto(dummy2D, name.str(), process_, dbe_, debug_, cloneME_);
00426 name.str("");
00427 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/Occ 2D phi and radius Long Fiber";
00428 Occ_rphi_L=getAnyHisto(dummy2D, name.str(), process_, dbe_, debug_, cloneME_);
00429 name.str("");
00430 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/Occ vs Eta Short Fiber";
00431 Occ_eta_S=getAnyHisto(dummyProf, name.str(), process_, dbe_, debug_, cloneME_);
00432 name.str("");
00433 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/Occ vs Eta Long Fiber";
00434 Occ_eta_L=getAnyHisto(dummyProf, name.str(), process_, dbe_, debug_, cloneME_);
00435 name.str("");
00436 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/Occ vs Phi Short Fiber";
00437 Occ_phi_S=getAnyHisto(dummyProf, name.str(), process_, dbe_, debug_, cloneME_);
00438 name.str("");
00439 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/Occ vs Phi Long Fiber";
00440 Occ_phi_L=getAnyHisto(dummyProf, name.str(), process_, dbe_, debug_, cloneME_);
00441 name.str("");
00442 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/Occ_map Long Fiber";
00443 Occ_map_L=getAnyHisto(dummy2D, name.str(), process_, dbe_, debug_, cloneME_);
00444 name.str("");
00445 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/Occ_map Short Fiber";
00446 Occ_map_S=getAnyHisto(dummy2D, name.str(), process_, dbe_, debug_, cloneME_);
00447 name.str("");
00448
00449 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/HF lumi ET-sum per wedge";
00450 HFlumi_ETsum_perwedge=getAnyHisto(dummy1D, name.str(), process_, dbe_, debug_, cloneME_);
00451 name.str("");
00452 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/HF lumi Occupancy above threshold ring1";
00453 HFlumi_Occupancy_above_thr_r1=getAnyHisto(dummy1D, name.str(), process_, dbe_, debug_, cloneME_);
00454 name.str("");
00455 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/HF lumi Occupancy between thresholds ring1";
00456 HFlumi_Occupancy_between_thrs_r1=getAnyHisto(dummy1D, name.str(), process_, dbe_, debug_, cloneME_);
00457 name.str("");
00458 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/HF lumi Occupancy below threshold ring1";
00459 HFlumi_Occupancy_below_thr_r1=getAnyHisto(dummy1D, name.str(), process_, dbe_, debug_, cloneME_);
00460 name.str("");
00461 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/HF lumi Occupancy above threshold ring2";
00462 HFlumi_Occupancy_above_thr_r2=getAnyHisto(dummy1D, name.str(), process_, dbe_, debug_, cloneME_);
00463 name.str("");
00464 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/HF lumi Occupancy between thresholds ring2";
00465 HFlumi_Occupancy_between_thrs_r2=getAnyHisto(dummy1D, name.str(), process_, dbe_, debug_, cloneME_);
00466 name.str("");
00467 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/HF lumi Occupancy below threshold ring2";
00468 HFlumi_Occupancy_below_thr_r2=getAnyHisto(dummy1D, name.str(), process_, dbe_, debug_, cloneME_);
00469 name.str("");
00470
00471 return;
00472 }
00473
00474
00475 void HcalBeamClient::analyze(void)
00476 {
00477 ++jevt_;
00478 if ( jevt_ % 10 == 0 )
00479 {
00480 if ( debug_>1 ) cout << "<HcalBeamClient::analyze> Running analyze "<<endl;
00481 }
00482 getHistograms();
00483 return;
00484 }
00485
00486 void HcalBeamClient::createTests()
00487 {
00488
00489
00490 if(!dbe_) return;
00491 return;
00492 }
00493
00494 void HcalBeamClient::resetAllME()
00495 {
00496 if(!dbe_) return;
00497
00498 ostringstream name;
00499
00500
00501 name<<process_.c_str()<<"BeamMonitor_Hcal/ ProblemBeamCells";
00502 resetME(name.str().c_str(),dbe_);
00503 name.str("");
00504
00505 for (int i=0;i<6;++i)
00506 {
00507
00508 name<<process_.c_str()<<"BeamMonitor_Hcal/problem_beammonitor/"<<subdets_[i]<<" Problem BeamMonitor Rate";
00509 resetME(name.str().c_str(),dbe_);
00510 name.str("");
00511 }
00512
00513 name<<process_.c_str()<<"BeamMonitor_Hcal/CenterOfEnergyRadius";
00514 resetME(name.str().c_str(),dbe_);
00515 name.str("");
00516 name<<process_.c_str()<<"BeamMonitor_Hcal/CenterOfEnergy";
00517 resetME(name.str().c_str(),dbe_);
00518 name.str("");
00519 name<<process_.c_str()<<"BeamMonitor_Hcal/COEradiusVSeta";
00520 resetME(name.str().c_str(),dbe_);
00521 name.str("");
00522 name<<process_.c_str()<<"BeamMonitor_Hcal/HB/CenterOfEnergyRadius";
00523 resetME(name.str().c_str(),dbe_);
00524 name.str("");
00525 name<<process_.c_str()<<"BeamMonitor_Hcal/HB/CenterOfEnergy";
00526 resetME(name.str().c_str(),dbe_);
00527 name.str("");
00528
00529 if (beamclient_makeDiagnostics_)
00530 {
00531 for (int i=-16;i<=16;++i)
00532 {
00533 if (i==0) continue;
00534 name<<process_.c_str()<<"BeamMonitor_Hcal/HB/HB_CenterOfEnergyRadius_ieta"<<i;
00535 resetME(name.str().c_str(),dbe_);
00536 name.str("");
00537 }
00538 }
00539 name<<process_.c_str()<<"BeamMonitor_Hcal/HE/CenterOfEnergyRadius";
00540 resetME(name.str().c_str(),dbe_);
00541 name.str("");
00542 name<<process_.c_str()<<"BeamMonitor_Hcal/HE/CenterOfEnergy";
00543 resetME(name.str().c_str(),dbe_);
00544 name.str("");
00545 if (beamclient_makeDiagnostics_)
00546 {
00547 for (int i=-29;i<=29;++i)
00548 {
00549 if (abs(i)<17) continue;
00550 name<<process_.c_str()<<"BeamMonitor_Hcal/HE/HE_CenterOfEnergyRadius_ieta"<<i;
00551 resetME(name.str().c_str(),dbe_);
00552 name.str("");
00553 }
00554 }
00555 name<<process_.c_str()<<"BeamMonitor_Hcal/HO/CenterOfEnergyRadius";
00556 resetME(name.str().c_str(),dbe_);
00557 name.str("");
00558 name<<process_.c_str()<<"BeamMonitor_Hcal/HO/CenterOfEnergy";
00559 resetME(name.str().c_str(),dbe_);
00560 name.str("");
00561
00562 if (beamclient_makeDiagnostics_)
00563 {
00564 for (int i=-15;i<=15;++i)
00565 {
00566 if (i==0) continue;
00567 name<<process_.c_str()<<"BeamMonitor_Hcal/HO/HO_CenterOfEnergyRadius_ieta"<<i;
00568 resetME(name.str().c_str(),dbe_);
00569 name.str("");
00570 }
00571 }
00572 name<<process_.c_str()<<"BeamMonitor_Hcal/HF/CenterOfEnergyRadius";
00573 resetME(name.str().c_str(),dbe_);
00574 name.str("");
00575 name<<process_.c_str()<<"BeamMonitor_Hcal/HF/CenterOfEnergy";
00576 resetME(name.str().c_str(),dbe_);
00577 name.str("");
00578
00579 if (beamclient_makeDiagnostics_)
00580 {
00581 for (int i=-41;i<=41;++i)
00582 {
00583 if (i==0) continue;
00584 name<<process_.c_str()<<"BeamMonitor_Hcal/HF/HF_CenterOfEnergyRadius_ieta"<<i;
00585 resetME(name.str().c_str(),dbe_);
00586 name.str("");
00587 }
00588 }
00589 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/Et Sum vs Eta Long Fiber";
00590 resetME(name.str().c_str(),dbe_);
00591 name.str("");
00592 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/Et Sum vs Eta Short Fiber";
00593 resetME(name.str().c_str(),dbe_);
00594 name.str("");
00595 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/Et Sum vs Phi Long Fiber";
00596 resetME(name.str().c_str(),dbe_);
00597 name.str("");
00598 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/Et Sum vs Phi Short Fiber";
00599 resetME(name.str().c_str(),dbe_);
00600 name.str("");
00601 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/Occ vs fm HF+";
00602 resetME(name.str().c_str(),dbe_);
00603 name.str("");
00604 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/Occ vs Energy";
00605 resetME(name.str().c_str(),dbe_);
00606 name.str("");
00607 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/Occ vs fm HF-";
00608 resetME(name.str().c_str(),dbe_);
00609 name.str("");
00610 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/EtSum 2D phi and eta Long Fiber";
00611 resetME(name.str().c_str(),dbe_);
00612 name.str("");
00613 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/EtSum 2D phi and eta Short Fiber";
00614 resetME(name.str().c_str(),dbe_);
00615 name.str("");
00616 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/EtSum 2D phi and radius Long Fiber";
00617 resetME(name.str().c_str(),dbe_);
00618 name.str("");
00619 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/EtSum 2D phi and radius Short Fiber";
00620 resetME(name.str().c_str(),dbe_);
00621 name.str("");
00622 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/Abnormal fm";
00623 resetME(name.str().c_str(),dbe_);
00624 name.str("");
00625 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/Occ 2D phi and radius Short Fiber";
00626 resetME(name.str().c_str(),dbe_);
00627 name.str("");
00628 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/Occ 2D phi and radius Long Fiber";
00629 resetME(name.str().c_str(),dbe_);
00630 name.str("");
00631 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/Occ vs Eta Short Fiber";
00632 resetME(name.str().c_str(),dbe_);
00633 name.str("");
00634 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/Occ vs Eta Long Fiber";
00635 resetME(name.str().c_str(),dbe_);
00636 name.str("");
00637 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/Occ vs Phi Short Fiber";
00638 resetME(name.str().c_str(),dbe_);
00639 name.str("");
00640 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/Occ vs Phi Long Fiber";
00641 resetME(name.str().c_str(),dbe_);
00642 name.str("");
00643 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/Occ_map Long Fiber";
00644 resetME(name.str().c_str(),dbe_);
00645 name.str("");
00646 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/Occ_map Short Fiber";
00647 resetME(name.str().c_str(),dbe_);
00648 name.str("");
00649
00650 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/HF lumi ET-sum per wedge";
00651 resetME(name.str().c_str(),dbe_);
00652 name.str("");
00653 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/HF lumi Occupancy above threshold ring1";
00654 resetME(name.str().c_str(),dbe_);
00655 name.str("");
00656 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/HF lumi Occupancy between thresholds ring1";
00657 resetME(name.str().c_str(),dbe_);
00658 name.str("");
00659 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/HF lumi Occupancy below threshold ring1";
00660 resetME(name.str().c_str(),dbe_);
00661 name.str("");
00662 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/HF lumi Occupancy above threshold ring2";
00663 resetME(name.str().c_str(),dbe_);
00664 name.str("");
00665 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/HF lumi Occupancy between thresholds ring2";
00666 resetME(name.str().c_str(),dbe_);
00667 name.str("");
00668 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/HF lumi Occupancy below threshold ring2";
00669 resetME(name.str().c_str(),dbe_);
00670 name.str("");
00671 return;
00672 }
00673
00674
00675
00676 void HcalBeamClient::htmlOutput(int runNo, string htmlDir, string htmlName)
00677 {
00678 if (showTiming_)
00679 {
00680 cpu_timer.reset(); cpu_timer.start();
00681 }
00682
00683 if (debug_>1) cout << "Preparing HcalBeamClient html output ..." << endl;
00684
00685 string client = "BeamMonitor";
00686
00687 ofstream htmlFile;
00688 htmlFile.open((htmlDir + htmlName).c_str());
00689
00690
00691 htmlFile << "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\"> " << endl;
00692 htmlFile << "<html> " << endl;
00693 htmlFile << "<head> " << endl;
00694 htmlFile << " <meta content=\"text/html; charset=ISO-8859-1\" " << endl;
00695 htmlFile << " https-equiv=\"content-type\"> " << endl;
00696 htmlFile << " <title>Monitor: Hcal Beam Monitor Task output</title> " << endl;
00697 htmlFile << "</head> " << endl;
00698 htmlFile << "<style type=\"text/css\"> td { font-weight: bold } </style>" << endl;
00699 htmlFile << "<body> " << endl;
00700 htmlFile << "<br> " << endl;
00701 htmlFile << "<h2>Run: " << endl;
00702 htmlFile << " <span " << endl;
00703 htmlFile << " style=\"color: rgb(0, 0, 153);\">" << runNo << "</span></h2>" << endl;
00704 htmlFile << "<h2>Monitoring task: <span " << endl;
00705 htmlFile << " style=\"color: rgb(0, 0, 153);\">Hcal Beam Monitor</span></h2> " << endl;
00706
00707 htmlFile << "<h2>Events processed: " << endl;
00708 htmlFile << " <span " << endl;
00709 htmlFile << " style=\"color: rgb(0, 0, 153);\">" << ievt_ << "</span></h2>" << endl;
00710 htmlFile << "<hr>" << endl;
00711
00712 htmlFile << "<h2><strong>Hcal Beam Monitor Status</strong></h2>" << endl;
00713 htmlFile << "<h3>" << endl;
00714 htmlFile << "</h3>" << endl;
00715
00716 htmlFile << "<table align=\"center\" border=\"0\" cellspacing=\"0\" " << endl;
00717 htmlFile << "cellpadding=\"10\"> " << endl;
00718 htmlFile << "<tr align=\"center\">" << endl;
00719 gStyle->SetPalette(20,pcol_error_);
00720 htmlAnyHisto(runNo,ProblemBeamCells,"i#eta","i#phi", 92, htmlFile, htmlDir);
00721 gStyle->SetPalette(1);
00722 htmlFile<<"</tr><tr align=\"center\" border=\"0\" cellspacing=\"0\" cellpadding=\"10\" >"<<endl;
00723 htmlAnyHisto(runNo,CenterOfEnergy,"normalized x coordinate","normalized y coordinate", 92, htmlFile, htmlDir);
00724 htmlFile<<"</tr>"<<endl;
00725 htmlFile<<"<tr align=\"center\"><td> There are as yet no criteria for marking beam monitor plots. The plots in the link below are for diagnostic purposes only."<<endl;
00726
00727 htmlFile<<"</td>"<<endl;
00728 htmlFile<<"</tr></table>"<<endl;
00729 htmlFile<<"<hr><table align=\"center\" border=\"0\" cellspacing=\"0\" " << endl;
00730 htmlFile << "cellpadding=\"10\"> " << endl;
00731 htmlFile << "<tr align=\"center\">" << endl;
00732 htmlFile<<"<tr><td align=center><a href=\"Expert_"<< htmlName<<"\"><h2>Detailed Beam Monitor Plots</h2> </a></br></td>"<<endl;
00733 htmlFile<<"</tr></table><br><hr>"<<endl;
00734
00735
00736 htmlFile <<"<br>"<<endl;
00737 htmlFile << "<h2><strong>Hcal Problem Cells</strong></h2>" << endl;
00738 htmlFile << "(A problem cell is listed below if its failure rate exceeds "<<(100.*minErrorFlag_)<<"%).<br><br>"<<endl;
00739 htmlFile << "<table align=\"center\" border=\"1\" cellspacing=\"0\" " << endl;
00740 htmlFile << "cellpadding=\"10\"> " << endl;
00741 htmlFile << "<tr align=\"center\">" << endl;
00742 htmlFile <<"<td> Problem Beam Monitor Cells<br>(ieta, iphi, depth)</td><td align=\"center\"> Fraction of Events <br>in which cells are bad (%)</td></tr>"<<endl;
00743
00744 if (ProblemBeamCells==0)
00745 {
00746 if (debug_) cout <<"<HcalBeamClient::htmlOutput> ERROR: can't find Problem Beam Monitor plot!"<<endl;
00747 return;
00748 }
00749 int etabins = ProblemBeamCells->GetNbinsX();
00750 int phibins = ProblemBeamCells->GetNbinsY();
00751 float etaMin = ProblemBeamCells->GetXaxis()->GetXmin();
00752 float phiMin = ProblemBeamCells->GetYaxis()->GetXmin();
00753
00754 int eta,phi;
00755
00756 ostringstream name;
00757 for (int depth=0;depth<6; ++depth)
00758 {
00759 for (int ieta=1;ieta<=etabins;++ieta)
00760 {
00761 for (int iphi=1; iphi<=phibins;++iphi)
00762 {
00763 eta=ieta+int(etaMin)-1;
00764 phi=iphi+int(phiMin)-1;
00765 int mydepth=depth+1;
00766 if (mydepth>4) mydepth-=4;
00767 if (ProblemBeamCellsByDepth[depth]==0)
00768 {
00769 continue;
00770 }
00771 if (ProblemBeamCellsByDepth[depth]->GetBinContent(ieta,iphi)>minErrorFlag_)
00772 {
00773 if (depth<2)
00774 (fabs(eta)<29) ? name<<"HB" : name<<"HF";
00775 else if (depth==3)
00776 (fabs(eta)<42) ? name<<"HO" : name<<"ZDC";
00777 else name <<"HE";
00778 htmlFile<<"<td>"<<name.str().c_str()<<" ("<<eta<<", "<<phi<<", "<<mydepth<<")</td><td align=\"center\">"<<ProblemBeamCellsByDepth[depth]->GetBinContent(ieta,iphi)*100.<<"</td></tr>"<<endl;
00779
00780 name.str("");
00781 }
00782 }
00783 }
00784 }
00785
00786
00787
00788 htmlFile <<"</table> " << endl;
00789 htmlFile << "</body> " << endl;
00790 htmlFile << "</html> " << endl;
00791
00792 htmlFile.close();
00793 htmlExpertOutput(runNo, htmlDir, htmlName);
00794
00795 if (showTiming_)
00796 {
00797 cpu_timer.stop(); cout <<"TIMER:: HcalBeamClient HTMLOUTPUT -> "<<cpu_timer.cpuTime()<<endl;
00798 }
00799
00800 return;
00801 }
00802
00803
00804 void HcalBeamClient::htmlExpertOutput(int runNo, string htmlDir, string htmlName)
00805 {
00806
00807 if (showTiming_)
00808 {
00809 cpu_timer.reset(); cpu_timer.start();
00810 }
00811
00812 if (debug_>1)
00813 cout <<" <HcalBeamClient::htmlExpertOutput> Preparing Expert html output ..." <<endl;
00814
00815 string client = "BeamMonitor";
00816 htmlErrors(runNo,htmlDir,client,process_,dbe_,dqmReportMapErr_,dqmReportMapWarn_,dqmReportMapOther_);
00817
00818 ofstream htmlFile;
00819 htmlFile.open((htmlDir +"Expert_"+ htmlName).c_str());
00820
00821
00822 htmlFile << "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\"> " << endl;
00823 htmlFile << "<html> " << endl;
00824 htmlFile << "<head> " << endl;
00825 htmlFile << " <meta content=\"text/html; charset=ISO-8859-1\" " << endl;
00826 htmlFile << " https-equiv=\"content-type\"> " << endl;
00827 htmlFile << " <title>Monitor: Hcal Beam Monitor Task output</title> " << endl;
00828 htmlFile << "</head> " << endl;
00829 htmlFile << "<style type=\"text/css\"> td { font-weight: bold } </style>" << endl;
00830 htmlFile << "<body> " << endl;
00831 htmlFile <<"<a name=\"EXPERT_BEAM_TOP\" href = \".\"> Back to Main HCAL DQM Page </a><br>"<<endl;
00832 htmlFile <<"<a href= \""<<htmlName.c_str()<<"\" > Back to Beam Monitor Status Page </a><br>"<<endl;
00833 htmlFile << "<br> " << endl;
00834 htmlFile << "<h2>Run: " << endl;
00835 htmlFile << " <span " << endl;
00836 htmlFile << " style=\"color: rgb(0, 0, 153);\">" << runNo << "</span></h2>" << endl;
00837 htmlFile << "<h2>Monitoring task: <span " << endl;
00838 htmlFile << " style=\"color: rgb(0, 0, 153);\">Hcal Beam Monitor</span></h2> " << endl;
00839 htmlFile << "<h2>Events processed: " << endl;
00840 htmlFile << " <span " << endl;
00841 htmlFile << " style=\"color: rgb(0, 0, 153);\">" << ievt_ << "</span></h2>" << endl;
00842 htmlFile << "<hr>" << endl;
00843
00844 htmlFile << "<table width=100% border = 1>"<<endl;
00845 htmlFile << "<tr><td align=\"center\" colspan=\"2\"><a href=\"#OVERALL_PROBLEMS\">PROBLEM CELLS BY DEPTH </a></td></tr>"<<endl;
00846 htmlFile << "<tr><td align=\"center\" colspan=\"2\">"<<endl;
00847 htmlFile<<"<br><a href=\"#CENTEROFENERGY\">Center-of-Energy Plots </a>"<<endl;
00848 htmlFile<<"<br><a href=\"#LONGSHORT\">Long/Short Fiber Plots </a>"<<endl;
00849 htmlFile<<"<br><a href=\"#LUMI\">Other HF Lumi Plots </a>"<<endl;
00850 htmlFile<<"</td></tr>"<<endl;
00851 if (beamclient_makeDiagnostics_)
00852 {
00853 htmlFile<<"<tr><td align=\"center\">"<<endl;
00854 htmlFile<<"<br><a href=\"#HB\">HB Individual Eta Plots </a>"<<endl;
00855 htmlFile<<"</td><td align=\"center\">"<<endl;
00856 htmlFile<<"<br><a href=\"#HE\">HE Individual Eta Plots </a>"<<endl;
00857 htmlFile<<"</td></tr><tr><td align=\"center\">"<<endl;
00858 htmlFile<<"<br><a href=\"#HO\">HO Individual Eta Plots </a>"<<endl;
00859 htmlFile<<"</td><td align=\"center\">"<<endl;
00860 htmlFile<<"<br><a href=\"#HF\">HF Individual Eta Plots </a>"<<endl;
00861 }
00862 htmlFile << "</td></tr>"<<endl;
00863 htmlFile <<"</table>"<<endl;
00864 htmlFile <<"<br><br>"<<endl;
00865
00866
00867
00868 htmlFile << "<h2><strong><a name=\"OVERALL_PROBLEMS\">Eta-Phi Maps of Problem Cells By Depth</strong></h2>"<<endl;
00869 htmlFile <<" These plots of problem cells should be empty, until specific beam-monitor tests are devised<br>"<<endl;
00870 htmlFile <<"<a href= \"#EXPERT_BEAM_TOP\" > Back to Top</a><br>"<<endl;
00871 htmlFile << "<table border=\"0\" cellspacing=\"0\" " << endl;
00872 htmlFile << "cellpadding=\"10\"> " << endl;
00873 gStyle->SetPalette(20,pcol_error_);
00874
00875
00876
00877 int mydepth[6]={0,1,4,5,2,3};
00878 for (int i=0;i<3;++i)
00879 {
00880 htmlFile << "<tr align=\"left\">" << endl;
00881 htmlAnyHisto(runNo,ProblemBeamCellsByDepth[mydepth[2*i]],"i#eta","i#phi", 92, htmlFile, htmlDir);
00882 htmlAnyHisto(runNo,ProblemBeamCellsByDepth[mydepth[2*i]+1],"i#eta","i#phi", 92, htmlFile, htmlDir);
00883 htmlFile <<"</tr>"<<endl;
00884 }
00885 htmlFile <<"</table>"<<endl;
00886 htmlFile <<"<br><hr><br>"<<endl;
00887
00888
00889
00890 htmlFile << "<h2><strong><a name=\"CENTEROFENERGY\">Center-of-Energy plots for all subdetectors</strong></h2>"<<endl;
00891 htmlFile <<"<a href= \"#EXPERT_BEAM_TOP\" > Back to Top</a><br>"<<endl;
00892 htmlFile << "<table border=\"0\" cellspacing=\"0\" " << endl;
00893 htmlFile << "cellpadding=\"10\"> " << endl;
00894 gStyle->SetPalette(1);
00895
00896 htmlFile << "<tr>" << endl;
00897 htmlAnyHisto(runNo,COEradiusVSeta,"i#eta","normalized radius", 92, htmlFile, htmlDir);
00898 htmlFile <<"</tr></table>"<<endl;
00899 htmlFile <<"<table border=\"0\" cellspacing=\"0\" cellpadding=\"10\"> "<<endl;
00900 htmlFile << "<tr align=\"center\">" << endl;
00901 htmlAnyHisto(runNo,CenterOfEnergy,"normalized x coordinate","normalized y coordinate", 92, htmlFile, htmlDir);
00902 htmlAnyHisto(runNo,CenterOfEnergyRadius,"normalized radius","", 92, htmlFile, htmlDir);
00903 htmlFile << "</tr><tr align=\"left\">" << endl;
00904 htmlAnyHisto(runNo,HBCenterOfEnergy,"normalized x coordinate","normalized y coordinate", 92, htmlFile, htmlDir);
00905 htmlAnyHisto(runNo,HBCenterOfEnergyRadius,"normalized radius","", 92, htmlFile, htmlDir);
00906 htmlFile << "</tr><tr align=\"left\">" << endl;
00907 htmlAnyHisto(runNo,HECenterOfEnergy,"normalized x coordinate","normalized y coordinate", 92, htmlFile, htmlDir);
00908 htmlAnyHisto(runNo,HECenterOfEnergyRadius,"normalized radius","", 92, htmlFile, htmlDir);
00909 htmlFile << "</tr><tr align=\"left\">" << endl;
00910 htmlAnyHisto(runNo,HOCenterOfEnergy,"normalized x coordinate","normalized y coordinate", 92, htmlFile, htmlDir);
00911 htmlAnyHisto(runNo,HOCenterOfEnergyRadius,"normalized radius","", 92, htmlFile, htmlDir);
00912 htmlFile << "</tr><tr align=\"left\">" << endl;
00913 htmlAnyHisto(runNo,HFCenterOfEnergy,"normalized x coordinate","normalized y coordinate", 92, htmlFile, htmlDir);
00914 htmlAnyHisto(runNo,HFCenterOfEnergyRadius,"normalized radius","", 92, htmlFile, htmlDir);
00915 htmlFile <<"</tr>"<<endl;
00916 htmlFile <<"</table>"<<endl;
00917 htmlFile <<"<br><hr><br>"<<endl;
00918
00919
00920 htmlFile << "<h2><strong><a name=\"LONGSHORT\">HF long/short Fiber plots</strong></h2>"<<endl;
00921 htmlFile <<"<a href= \"#EXPERT_BEAM_TOP\" > Back to Top</a><br>"<<endl;
00922 htmlFile << "<table border=\"0\" cellspacing=\"0\" " << endl;
00923 htmlFile << "cellpadding=\"10\"> " << endl;
00924 gStyle->SetPalette(1);
00925
00926 htmlFile << "<tr align=\"left\">" << endl;
00927 htmlAnyHisto(runNo,Occ_eta_L,"","",92, htmlFile, htmlDir);
00928 htmlAnyHisto(runNo,Occ_eta_S,"","",92, htmlFile, htmlDir);
00929 htmlFile << "</tr><tr align=\"left\">" << endl;
00930 htmlAnyHisto(runNo,Occ_phi_L,"","",92, htmlFile, htmlDir);
00931 htmlAnyHisto(runNo,Occ_phi_S,"","",92, htmlFile, htmlDir);
00932 htmlFile << "</tr><tr align=\"left\">" << endl;
00933 htmlAnyHisto(runNo,Occ_map_L,"","",92, htmlFile, htmlDir);
00934 htmlAnyHisto(runNo,Occ_map_S,"","",92, htmlFile, htmlDir);
00935 htmlFile << "</tr><tr align=\"left\">" << endl;
00936 htmlAnyHisto(runNo,Occ_rphi_L,"","",92, htmlFile, htmlDir);
00937 htmlAnyHisto(runNo,Occ_rphi_S,"","",92, htmlFile, htmlDir);
00938 htmlFile << "</tr><tr align=\"left\">" << endl;
00939 htmlAnyHisto(runNo,Etsum_eta_L,"","",92, htmlFile, htmlDir);
00940 htmlAnyHisto(runNo,Etsum_eta_S,"","",92, htmlFile, htmlDir);
00941 htmlFile << "</tr><tr align=\"left\">" << endl;
00942 htmlAnyHisto(runNo,Etsum_phi_L,"","",92, htmlFile, htmlDir);
00943 htmlAnyHisto(runNo,Etsum_phi_S,"","",92, htmlFile, htmlDir);
00944 htmlFile << "</tr><tr align=\"left\">" << endl;
00945 htmlAnyHisto(runNo,Etsum_map_L,"","",92, htmlFile, htmlDir);
00946 htmlAnyHisto(runNo,Etsum_map_S,"","",92, htmlFile, htmlDir);
00947 htmlFile << "</tr><tr align=\"left\">" << endl;
00948 htmlAnyHisto(runNo,Etsum_rphi_L,"","",92, htmlFile, htmlDir);
00949 htmlAnyHisto(runNo,Etsum_rphi_S,"","",92, htmlFile, htmlDir);
00950
00951 htmlFile <<"</tr>"<<endl;
00952 htmlFile <<"</table>"<<endl;
00953 htmlFile <<"<br><hr><br>"<<endl;
00954
00955
00956 htmlFile << "<h2><strong><a name=\"LUMI\">Other HF Lumi plots</strong></h2>"<<endl;
00957 htmlFile <<"<a href= \"#EXPERT_BEAM_TOP\" > Back to Top</a><br>"<<endl;
00958 htmlFile << "<table border=\"0\" cellspacing=\"0\" " << endl;
00959 htmlFile << "cellpadding=\"10\"> " << endl;
00960 gStyle->SetPalette(1);
00961
00962 htmlFile << "<tr align=\"left\">" << endl;
00963 htmlAnyHisto(runNo,Energy_Occ,"","",92, htmlFile, htmlDir);
00964 htmlAnyHisto(runNo,Etsum_ratio_map,"","",92, htmlFile, htmlDir);
00965 htmlFile << "</tr><tr align=\"left\">" << endl;
00966 htmlAnyHisto(runNo,Etsum_ratio_m,"","",92, htmlFile, htmlDir);
00967 htmlAnyHisto(runNo,Etsum_ratio_p,"","",92, htmlFile, htmlDir);
00968 htmlFile<<"</tr></table>"<<endl;
00969 htmlFile<<"<table border=\"0\" cellspacing=\"0\" cellpadding=\"10\"><tr>"<<endl;
00970 htmlAnyHisto(runNo,HFlumi_ETsum_perwedge,"","",92, htmlFile, htmlDir);
00971 htmlFile << "</tr><tr align=\"left\">" << endl;
00972 htmlAnyHisto(runNo,HFlumi_Occupancy_above_thr_r1,"","",92, htmlFile, htmlDir);
00973 htmlAnyHisto(runNo,HFlumi_Occupancy_above_thr_r2,"","",92, htmlFile, htmlDir);
00974 htmlFile << "</tr><tr align=\"left\">" << endl;
00975 htmlAnyHisto(runNo,HFlumi_Occupancy_between_thrs_r1,"","",92, htmlFile, htmlDir);
00976 htmlAnyHisto(runNo,HFlumi_Occupancy_between_thrs_r2,"","",92, htmlFile, htmlDir);
00977 htmlFile << "</tr><tr align=\"left\">" << endl;
00978 htmlAnyHisto(runNo,HFlumi_Occupancy_below_thr_r1,"","",92, htmlFile, htmlDir);
00979 htmlAnyHisto(runNo,HFlumi_Occupancy_below_thr_r2,"","",92, htmlFile, htmlDir);
00980 htmlFile <<"</tr>"<<endl;
00981 htmlFile <<"</table>"<<endl;
00982 htmlFile <<"<br><hr><br>"<<endl;
00983
00984 if (beamclient_makeDiagnostics_)
00985 {
00986 htmlFile << "<h2><strong><a name=\"HB\">HB individual ieta plots</strong></h2>"<<endl;
00987 htmlFile <<"<a href= \"#EXPERT_BEAM_TOP\" > Back to Top</a><br>"<<endl;
00988 htmlFile << "<table border=\"0\" cellspacing=\"0\" " << endl;
00989 htmlFile << "cellpadding=\"10\"> " << endl;
00990 gStyle->SetPalette(1);
00991
00992 for (int i=0;i<16;++i)
00993 {
00994 htmlFile << "<tr align=\"left\">" << endl;
00995 htmlAnyHisto(runNo,HB_CenterOfEnergyRadius[i],"","",92, htmlFile, htmlDir);
00996 htmlAnyHisto(runNo,HB_CenterOfEnergyRadius[32-i],"","",92, htmlFile, htmlDir);
00997 }
00998 htmlFile <<"</tr>"<<endl;
00999 htmlFile <<"</table>"<<endl;
01000 htmlFile <<"<br><hr><br>"<<endl;
01001
01002 htmlFile << "<h2><strong><a name=\"HE\">HE individual ieta plots</strong></h2>"<<endl;
01003 htmlFile <<"<a href= \"#EXPERT_BEAM_TOP\" > Back to Top</a><br>"<<endl;
01004 htmlFile << "<table border=\"0\" cellspacing=\"0\" " << endl;
01005 htmlFile << "cellpadding=\"10\"> " << endl;
01006 gStyle->SetPalette(1);
01007
01008 for (int i=0;i<13;++i)
01009 {
01010 htmlFile << "<tr align=\"left\">" << endl;
01011 htmlAnyHisto(runNo,HE_CenterOfEnergyRadius[i],"","",92, htmlFile, htmlDir);
01012 htmlAnyHisto(runNo,HE_CenterOfEnergyRadius[58-i],"","",92, htmlFile, htmlDir);
01013 }
01014 htmlFile <<"</tr>"<<endl;
01015 htmlFile <<"</table>"<<endl;
01016 htmlFile <<"<br><hr><br>"<<endl;
01017
01018 htmlFile << "<h2><strong><a name=\"HO\">HO individual ieta plots</strong></h2>"<<endl;
01019 htmlFile <<"<a href= \"#EXPERT_BEAM_TOP\" > Back to Top</a><br>"<<endl;
01020 htmlFile << "<table border=\"0\" cellspacing=\"0\" " << endl;
01021 htmlFile << "cellpadding=\"10\"> " << endl;
01022 gStyle->SetPalette(1);
01023
01024 for (int i=0;i<15;++i)
01025 {
01026 htmlFile << "<tr align=\"left\">" << endl;
01027 htmlAnyHisto(runNo,HO_CenterOfEnergyRadius[i],"","",92, htmlFile, htmlDir);
01028 htmlAnyHisto(runNo,HO_CenterOfEnergyRadius[30-i],"","",92, htmlFile, htmlDir);
01029 }
01030 htmlFile <<"</tr>"<<endl;
01031 htmlFile <<"</table>"<<endl;
01032 htmlFile <<"<br><hr><br>"<<endl;
01033
01034 htmlFile << "<h2><strong><a name=\"HF\">HF individual ieta plots</strong></h2>"<<endl;
01035 htmlFile <<"<a href= \"#EXPERT_BEAM_TOP\" > Back to Top</a><br>"<<endl;
01036 htmlFile << "<table border=\"0\" cellspacing=\"0\" " << endl;
01037 htmlFile << "cellpadding=\"10\"> " << endl;
01038 gStyle->SetPalette(1);
01039
01040 for (int i=0;i<13;++i)
01041 {
01042 htmlFile << "<tr align=\"left\">" << endl;
01043 htmlAnyHisto(runNo,HF_CenterOfEnergyRadius[i],"","",92, htmlFile, htmlDir);
01044 htmlAnyHisto(runNo,HF_CenterOfEnergyRadius[82-i],"","",92, htmlFile, htmlDir);
01045 }
01046 htmlFile <<"</tr>"<<endl;
01047 htmlFile <<"</table>"<<endl;
01048 htmlFile <<"<br><hr><br>"<<endl;
01049
01050 }
01051
01052
01053 htmlFile <<"<br><hr><br><a href= \"#EXPERT_BEAM_TOP\" > Back to Top of Page </a><br>"<<endl;
01054 htmlFile <<"<a href = \".\"> Back to Main HCAL DQM Page </a><br>"<<endl;
01055 htmlFile <<"<a href= \""<<htmlName.c_str()<<"\" > Back to Beam Monitor Status Page </a><br>"<<endl;
01056
01057
01058
01059 htmlFile << "</body> " << endl;
01060 htmlFile << "</html> " << endl;
01061
01062 htmlFile.close();
01063
01064 if (showTiming_)
01065 {
01066 cpu_timer.stop(); cout <<"TIMER:: HcalBeamClient HTMLEXPERTOUTPUT ->"<<cpu_timer.cpuTime()<<endl;
01067 }
01068 return;
01069 }
01070
01071
01072 void HcalBeamClient::loadHistograms(TFile* infile)
01073 {
01074 TNamed* tnd = (TNamed*)infile->Get("DQMData/Hcal/BeamMonitor_Hcal/BeamMonitor Event Number");
01075 if(tnd)
01076 {
01077 string s =tnd->GetTitle();
01078 ievt_ = -1;
01079 sscanf((s.substr(2,s.length()-2)).c_str(), "%d", &ievt_);
01080 }
01081
01082 ostringstream name;
01083
01084 name<<process_.c_str()<<"BeamMonitor_Hcal/ ProblemBeamCells";
01085 ProblemBeamCells = (TH2F*)infile->Get(name.str().c_str());
01086 name.str("");
01087
01088 for (int i=0;i<6;++i)
01089 {
01090
01091 name<<process_.c_str()<<"BeamMonitor_Hcal/problem_beammonitor/"<<subdets_[i]<<" Problem BeamMonitor Rate";
01092 ProblemBeamCellsByDepth[i] = (TH2F*)infile->Get(name.str().c_str());
01093 name.str("");
01094 }
01095 name<<process_.c_str()<<"BeamMonitor_Hcal/CenterOfEnergyRadius";
01096 CenterOfEnergyRadius = (TH1F*)infile->Get(name.str().c_str());
01097 name.str("");
01098 name<<process_.c_str()<<"BeamMonitor_Hcal/CenterOfEnergy";
01099 CenterOfEnergy = (TH2F*)infile->Get(name.str().c_str());
01100 name.str("");
01101 name<<process_.c_str()<<"BeamMonitor_Hcal/COEradiusVSeta";
01102 COEradiusVSeta = (TProfile*)infile->Get(name.str().c_str());
01103 name.str("");
01104 name<<process_.c_str()<<"BeamMonitor_Hcal/HB/CenterOfEnergyRadius";
01105 HBCenterOfEnergyRadius = (TH1F*)infile->Get(name.str().c_str());
01106 name.str("");
01107 name<<process_.c_str()<<"BeamMonitor_Hcal/HB/CenterOfEnergy";
01108 HBCenterOfEnergy = (TH2F*)infile->Get(name.str().c_str());
01109 name.str("");
01110
01111 if (beamclient_makeDiagnostics_)
01112 {
01113 for (int i=-16;i<=16;++i)
01114 {
01115 if (i==0) continue;
01116 name<<process_.c_str()<<"BeamMonitor_Hcal/HB/HB_CenterOfEnergyRadius_ieta"<<i;
01117 HB_CenterOfEnergyRadius[i+16]= (TH1F*)infile->Get(name.str().c_str());
01118 name.str("");
01119 }
01120 }
01121 name<<process_.c_str()<<"BeamMonitor_Hcal/HE/CenterOfEnergyRadius";
01122 HECenterOfEnergyRadius = (TH1F*)infile->Get(name.str().c_str());
01123 name.str("");
01124 name<<process_.c_str()<<"BeamMonitor_Hcal/HE/CenterOfEnergy";
01125 HECenterOfEnergy = (TH2F*)infile->Get(name.str().c_str());
01126 name.str("");
01127
01128 if (beamclient_makeDiagnostics_)
01129 {
01130 for (int i=-29;i<=29;++i)
01131 {
01132 if (i==0) continue;
01133 name<<process_.c_str()<<"BeamMonitor_Hcal/HE/HE_CenterOfEnergyRadius_ieta"<<i;
01134 HE_CenterOfEnergyRadius[i+29]= (TH1F*)infile->Get(name.str().c_str());
01135 name.str("");
01136 }
01137 }
01138 name<<process_.c_str()<<"BeamMonitor_Hcal/HO/CenterOfEnergyRadius";
01139 HOCenterOfEnergyRadius = (TH1F*)infile->Get(name.str().c_str());
01140 name.str("");
01141 name<<process_.c_str()<<"BeamMonitor_Hcal/HO/CenterOfEnergy";
01142 HOCenterOfEnergy = (TH2F*)infile->Get(name.str().c_str());
01143 name.str("");
01144
01145 if (beamclient_makeDiagnostics_)
01146 {
01147 for (int i=-15;i<=15;++i)
01148 {
01149 if (i==0) continue;
01150 name<<process_.c_str()<<"BeamMonitor_Hcal/HO/HO_CenterOfEnergyRadius_ieta"<<i;
01151 HO_CenterOfEnergyRadius[i+15]= (TH1F*)infile->Get(name.str().c_str());
01152 name.str("");
01153 }
01154 }
01155 name<<process_.c_str()<<"BeamMonitor_Hcal/HF/CenterOfEnergyRadius";
01156 HFCenterOfEnergyRadius = (TH1F*)infile->Get(name.str().c_str());
01157 name.str("");
01158 name<<process_.c_str()<<"BeamMonitor_Hcal/HF/CenterOfEnergy";
01159 HFCenterOfEnergy = (TH2F*)infile->Get(name.str().c_str());
01160 name.str("");
01161
01162 if (beamclient_makeDiagnostics_)
01163 {
01164 for (int i=-41;i<=41;++i)
01165 {
01166 if (i==0) continue;
01167 name<<process_.c_str()<<"BeamMonitor_Hcal/HF/HF_CenterOfEnergyRadius_ieta"<<i;
01168 HF_CenterOfEnergyRadius[i+41]= (TH1F*)infile->Get(name.str().c_str());
01169 name.str("");
01170 }
01171 }
01172 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/Et Sum vs Eta Long Fiber";
01173 Etsum_eta_L= (TProfile*)infile->Get(name.str().c_str());
01174 name.str("");
01175 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/Et Sum vs Eta Short Fiber";
01176 Etsum_eta_S= (TProfile*)infile->Get(name.str().c_str());
01177 name.str("");
01178 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/Et Sum vs Phi Long Fiber";
01179 Etsum_phi_L= (TProfile*)infile->Get(name.str().c_str());
01180 name.str("");
01181 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/Et Sum vs Phi Short Fiber";
01182 Etsum_phi_S= (TProfile*)infile->Get(name.str().c_str());
01183 name.str("");
01184 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/Occ vs fm HF+";
01185 Etsum_ratio_p= (TH1F*)infile->Get(name.str().c_str());
01186 name.str("");
01187 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/Occ vs Energy";
01188 Energy_Occ= (TH1F*)infile->Get(name.str().c_str());
01189 name.str("");
01190 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/Occ vs fm HF-";
01191 Etsum_ratio_m= (TH1F*)infile->Get(name.str().c_str());
01192 name.str("");
01193 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/EtSum 2D phi and eta Long Fiber";
01194 Etsum_map_L= (TH2F*)infile->Get(name.str().c_str());
01195 name.str("");
01196 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/EtSum 2D phi and eta Short Fiber";
01197 Etsum_map_S= (TH2F*)infile->Get(name.str().c_str());
01198 name.str("");
01199 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/EtSum 2D phi and radius Long Fiber";
01200 Etsum_rphi_L= (TH2F*)infile->Get(name.str().c_str());
01201 name.str("");
01202 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/EtSum 2D phi and radius Short Fiber";
01203 Etsum_rphi_S= (TH2F*)infile->Get(name.str().c_str());
01204 name.str("");
01205 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/Abnormal fm";
01206 Etsum_ratio_map= (TH2F*)infile->Get(name.str().c_str());
01207 name.str("");
01208 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/Occ 2D phi and radius Short Fiber";
01209 Occ_rphi_S= (TH2F*)infile->Get(name.str().c_str());
01210 name.str("");
01211 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/Occ 2D phi and radius Long Fiber";
01212 Occ_rphi_L= (TH2F*)infile->Get(name.str().c_str());
01213 name.str("");
01214 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/Occ vs Eta Short Fiber";
01215 Occ_eta_S= (TProfile*)infile->Get(name.str().c_str());
01216 name.str("");
01217 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/Occ vs Eta Long Fiber";
01218 Occ_eta_L= (TProfile*)infile->Get(name.str().c_str());
01219 name.str("");
01220 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/Occ vs Phi Short Fiber";
01221 Occ_phi_S= (TProfile*)infile->Get(name.str().c_str());
01222 name.str("");
01223 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/Occ vs Phi Long Fiber";
01224 Occ_phi_L= (TProfile*)infile->Get(name.str().c_str());
01225 name.str("");
01226 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/Occ_map Long Fiber";
01227 Occ_map_L= (TH2F*)infile->Get(name.str().c_str());
01228 name.str("");
01229 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/Occ_map Short Fiber";
01230 Occ_map_S= (TH2F*)infile->Get(name.str().c_str());
01231 name.str("");
01232
01233 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/HF lumi ET-sum per wedge";
01234 HFlumi_ETsum_perwedge= (TH1F*)infile->Get(name.str().c_str());
01235 name.str("");
01236 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/HF lumi Occupancy above threshold ring1";
01237 HFlumi_Occupancy_above_thr_r1= (TH1F*)infile->Get(name.str().c_str());
01238 name.str("");
01239 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/HF lumi Occupancy between thresholds ring1";
01240 HFlumi_Occupancy_between_thrs_r1= (TH1F*)infile->Get(name.str().c_str());
01241 name.str("");
01242 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/HF lumi Occupancy below threshold ring1";
01243 HFlumi_Occupancy_below_thr_r1= (TH1F*)infile->Get(name.str().c_str());
01244 name.str("");
01245 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/HF lumi Occupancy above threshold ring2";
01246 HFlumi_Occupancy_above_thr_r2= (TH1F*)infile->Get(name.str().c_str());
01247 name.str("");
01248 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/HF lumi Occupancy between thresholds ring2";
01249 HFlumi_Occupancy_between_thrs_r2= (TH1F*)infile->Get(name.str().c_str());
01250 name.str("");
01251 name<<process_.c_str()<<"BeamMonitor_Hcal/Lumi/HF lumi Occupancy below threshold ring2";
01252 HFlumi_Occupancy_below_thr_r2= (TH1F*)infile->Get(name.str().c_str());
01253 name.str("");
01254
01255 return;
01256
01257 }