00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #include <memory>
00011 #include <iostream>
00012 #include <iomanip>
00013 #include <map>
00014 #include <math.h>
00015
00016 #include "TCanvas.h"
00017 #include "TStyle.h"
00018 #include "TGraph.h"
00019 #include "TLine.h"
00020
00021 #include "DQMServices/Core/interface/DQMStore.h"
00022
00023 #include "OnlineDB/EcalCondDB/interface/RunTag.h"
00024 #include "OnlineDB/EcalCondDB/interface/RunIOV.h"
00025
00026 #include <DQM/EcalCommon/interface/UtilsClient.h>
00027 #include <DQM/EcalCommon/interface/Numbers.h>
00028
00029 #include <DQM/EcalEndcapMonitorClient/interface/EECosmicClient.h>
00030 #include <DQM/EcalEndcapMonitorClient/interface/EEStatusFlagsClient.h>
00031 #include <DQM/EcalEndcapMonitorClient/interface/EEIntegrityClient.h>
00032 #include <DQM/EcalEndcapMonitorClient/interface/EELaserClient.h>
00033 #include <DQM/EcalEndcapMonitorClient/interface/EELedClient.h>
00034 #include <DQM/EcalEndcapMonitorClient/interface/EEPedestalClient.h>
00035 #include <DQM/EcalEndcapMonitorClient/interface/EEPedestalOnlineClient.h>
00036 #include <DQM/EcalEndcapMonitorClient/interface/EETestPulseClient.h>
00037 #include <DQM/EcalEndcapMonitorClient/interface/EEBeamCaloClient.h>
00038 #include <DQM/EcalEndcapMonitorClient/interface/EEBeamHodoClient.h>
00039 #include <DQM/EcalEndcapMonitorClient/interface/EETriggerTowerClient.h>
00040 #include <DQM/EcalEndcapMonitorClient/interface/EEClusterClient.h>
00041 #include <DQM/EcalEndcapMonitorClient/interface/EETimingClient.h>
00042
00043 #include <DQM/EcalEndcapMonitorClient/interface/EESummaryClient.h>
00044
00045 using namespace cms;
00046 using namespace edm;
00047 using namespace std;
00048
00049 EESummaryClient::EESummaryClient(const ParameterSet& ps) {
00050
00051
00052 cloneME_ = ps.getUntrackedParameter<bool>("cloneME", true);
00053
00054
00055 verbose_ = ps.getUntrackedParameter<bool>("verbose", true);
00056
00057
00058 debug_ = ps.getUntrackedParameter<bool>("debug", false);
00059
00060
00061 prefixME_ = ps.getUntrackedParameter<string>("prefixME", "");
00062
00063
00064 enableCleanup_ = ps.getUntrackedParameter<bool>("enableCleanup", false);
00065
00066
00067 superModules_.reserve(18);
00068 for ( unsigned int i = 1; i <= 18; i++ ) superModules_.push_back(i);
00069 superModules_ = ps.getUntrackedParameter<vector<int> >("superModules", superModules_);
00070
00071
00072 meIntegrity_[0] = 0;
00073 meIntegrity_[1] = 0;
00074 meOccupancy_[0] = 0;
00075 meOccupancy_[1] = 0;
00076 meStatusFlags_[0] = 0;
00077 meStatusFlags_[1] = 0;
00078 mePedestalOnline_[0] = 0;
00079 mePedestalOnline_[1] = 0;
00080 meLaserL1_[0] = 0;
00081 meLaserL1_[1] = 0;
00082 meLaserL1PN_[0] = 0;
00083 meLaserL1PN_[1] = 0;
00084 meLedL1_[0] = 0;
00085 meLedL1_[1] = 0;
00086 meLedL1PN_[0] = 0;
00087 meLedL1PN_[1] = 0;
00088 mePedestal_[0] = 0;
00089 mePedestal_[1] = 0;
00090 mePedestalPN_[0] = 0;
00091 mePedestalPN_[1] = 0;
00092 meTestPulse_[0] = 0;
00093 meTestPulse_[1] = 0;
00094 meTestPulsePN_[0] = 0;
00095 meTestPulsePN_[1] = 0;
00096 meGlobalSummary_[0] = 0;
00097 meGlobalSummary_[1] = 0;
00098
00099 meCosmic_[0] = 0;
00100 meCosmic_[1] = 0;
00101 meTiming_[0] = 0;
00102 meTiming_[1] = 0;
00103 meTriggerTowerEt_[0] = 0;
00104 meTriggerTowerEt_[1] = 0;
00105 meTriggerTowerEmulError_[0] = 0;
00106 meTriggerTowerEmulError_[1] = 0;
00107 meTriggerTowerTiming_[0] = 0;
00108 meTriggerTowerTiming_[1] = 0;
00109
00110
00111 meIntegrityErr_ = 0;
00112 meOccupancy1D_ = 0;
00113 meStatusFlagsErr_ = 0;
00114 mePedestalOnlineErr_ = 0;
00115 meLaserL1Err_ = 0;
00116 meLaserL1PNErr_ = 0;
00117 meLedL1Err_ = 0;
00118 meLedL1PNErr_ = 0;
00119 mePedestalErr_ = 0;
00120 mePedestalPNErr_ = 0;
00121 meTestPulseErr_ = 0;
00122 meTestPulsePNErr_ = 0;
00123
00124 }
00125
00126 EESummaryClient::~EESummaryClient() {
00127
00128 }
00129
00130 void EESummaryClient::beginJob(DQMStore* dqmStore) {
00131
00132 dqmStore_ = dqmStore;
00133
00134 if ( debug_ ) cout << "EESummaryClient: beginJob" << endl;
00135
00136 ievt_ = 0;
00137 jevt_ = 0;
00138
00139
00140
00141 char histo[200];
00142
00143 MonitorElement* me;
00144
00145 dqmStore_->setCurrentFolder( prefixME_ + "/EventInfo" );
00146
00147 sprintf(histo, "reportSummary");
00148 if ( me = dqmStore_->get(prefixME_ + "/EventInfo/" + histo) ) {
00149 dqmStore_->removeElement(me->getName());
00150 }
00151 me = dqmStore_->bookFloat(histo);
00152 me->Fill(-1.0);
00153
00154 dqmStore_->setCurrentFolder( prefixME_ + "/EventInfo/reportSummaryContents" );
00155
00156 for (int i = 0; i < 18; i++) {
00157 sprintf(histo, "EcalEndcap_%s", Numbers::sEE(i+1).c_str());
00158 if ( me = dqmStore_->get(prefixME_ + "/EventInfo/reportSummaryContents/" + histo) ) {
00159 dqmStore_->removeElement(me->getName());
00160 }
00161 me = dqmStore_->bookFloat(histo);
00162 me->Fill(-1.0);
00163 }
00164
00165 dqmStore_->setCurrentFolder( prefixME_ + "/EventInfo" );
00166
00167 sprintf(histo, "reportSummaryMap");
00168 if ( me = dqmStore_->get(prefixME_ + "/EventInfo/" + histo) ) {
00169 dqmStore_->removeElement(me->getName());
00170 }
00171 me = dqmStore_->book2D(histo, histo, 40, 0., 40., 20, 0., 20);
00172 for ( int jxdcc = 0; jxdcc < 20; jxdcc++ ) {
00173 for ( int jydcc = 0; jydcc < 20; jydcc++ ) {
00174 for ( int iside = 0; iside < 2; iside++ ) {
00175 me->setBinContent( 20*iside+jxdcc+1, jydcc+1, -1.0 );
00176 }
00177 }
00178 }
00179 me->setAxisTitle("jx", 1);
00180 me->setAxisTitle("jy", 2);
00181
00182 }
00183
00184 void EESummaryClient::beginRun(void) {
00185
00186 if ( debug_ ) cout << "EESummaryClient: beginRun" << endl;
00187
00188 jevt_ = 0;
00189
00190 this->setup();
00191
00192 }
00193
00194 void EESummaryClient::endJob(void) {
00195
00196 if ( debug_ ) cout << "EESummaryClient: endJob, ievt = " << ievt_ << endl;
00197
00198 this->cleanup();
00199
00200 }
00201
00202 void EESummaryClient::endRun(void) {
00203
00204 if ( debug_ ) cout << "EESummaryClient: endRun, jevt = " << jevt_ << endl;
00205
00206 this->cleanup();
00207
00208 }
00209
00210 void EESummaryClient::setup(void) {
00211
00212 char histo[200];
00213
00214 dqmStore_->setCurrentFolder( prefixME_ + "/EESummaryClient" );
00215
00216 if ( meIntegrity_[0] ) dqmStore_->removeElement( meIntegrity_[0]->getName() );
00217 sprintf(histo, "EEIT EE - integrity quality summary");
00218 meIntegrity_[0] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00219 meIntegrity_[0]->setAxisTitle("jx", 1);
00220 meIntegrity_[0]->setAxisTitle("jy", 2);
00221
00222 if ( meIntegrity_[1] ) dqmStore_->removeElement( meIntegrity_[0]->getName() );
00223 sprintf(histo, "EEIT EE + integrity quality summary");
00224 meIntegrity_[1] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00225 meIntegrity_[1]->setAxisTitle("jx", 1);
00226 meIntegrity_[1]->setAxisTitle("jy", 2);
00227
00228 if ( meIntegrityErr_ ) dqmStore_->removeElement( meIntegrityErr_->getName() );
00229 sprintf(histo, "EEIT integrity quality errors summary");
00230 meIntegrityErr_ = dqmStore_->book1D(histo, histo, 18, 1, 19);
00231 for (int i = 0; i < 18; i++) {
00232 meIntegrityErr_->setBinLabel(i+1, Numbers::sEE(i+1).c_str(), 1);
00233 }
00234
00235 if ( meOccupancy_[0] ) dqmStore_->removeElement( meOccupancy_[0]->getName() );
00236 sprintf(histo, "EEOT EE - digi occupancy summary");
00237 meOccupancy_[0] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00238 meOccupancy_[0]->setAxisTitle("jx", 1);
00239 meOccupancy_[0]->setAxisTitle("jy", 2);
00240
00241 if ( meOccupancy_[1] ) dqmStore_->removeElement( meOccupancy_[1]->getName() );
00242 sprintf(histo, "EEOT EE + digi occupancy summary");
00243 meOccupancy_[1] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00244 meOccupancy_[1]->setAxisTitle("jx", 1);
00245 meOccupancy_[1]->setAxisTitle("jy", 2);
00246
00247 if ( meOccupancy1D_ ) dqmStore_->removeElement( meOccupancy1D_->getName() );
00248 sprintf(histo, "EEIT digi occupancy summary 1D");
00249 meOccupancy1D_ = dqmStore_->book1D(histo, histo, 18, 1, 19);
00250 for (int i = 0; i < 18; i++) {
00251 meOccupancy1D_->setBinLabel(i+1, Numbers::sEE(i+1).c_str(), 1);
00252 }
00253
00254 if ( meStatusFlags_[0] ) dqmStore_->removeElement( meStatusFlags_[0]->getName() );
00255 sprintf(histo, "EESFT EE - front-end status summary");
00256 meStatusFlags_[0] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00257 meStatusFlags_[0]->setAxisTitle("jx", 1);
00258 meStatusFlags_[0]->setAxisTitle("jy", 2);
00259
00260 if ( meStatusFlags_[1] ) dqmStore_->removeElement( meStatusFlags_[1]->getName() );
00261 sprintf(histo, "EESFT EE + front-end status summary");
00262 meStatusFlags_[1] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00263 meStatusFlags_[1]->setAxisTitle("jx", 1);
00264 meStatusFlags_[1]->setAxisTitle("jy", 2);
00265
00266 if ( meStatusFlagsErr_ ) dqmStore_->removeElement( meStatusFlagsErr_->getName() );
00267 sprintf(histo, "EESFT front-end status errors summary");
00268 meStatusFlagsErr_ = dqmStore_->book1D(histo, histo, 18, 1, 19);
00269 for (int i = 0; i < 18; i++) {
00270 meStatusFlagsErr_->setBinLabel(i+1, Numbers::sEE(i+1).c_str(), 1);
00271 }
00272
00273 if ( mePedestalOnline_[0] ) dqmStore_->removeElement( mePedestalOnline_[0]->getName() );
00274 sprintf(histo, "EEPOT EE - pedestal quality summary G12");
00275 mePedestalOnline_[0] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00276 mePedestalOnline_[0]->setAxisTitle("jx", 1);
00277 mePedestalOnline_[0]->setAxisTitle("jy", 2);
00278
00279 if ( mePedestalOnline_[1] ) dqmStore_->removeElement( mePedestalOnline_[1]->getName() );
00280 sprintf(histo, "EEPOT EE + pedestal quality summary G12");
00281 mePedestalOnline_[1] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00282 mePedestalOnline_[1]->setAxisTitle("jx", 1);
00283 mePedestalOnline_[1]->setAxisTitle("jy", 2);
00284
00285 if ( mePedestalOnlineErr_ ) dqmStore_->removeElement( mePedestalOnlineErr_->getName() );
00286 sprintf(histo, "EEPOT pedestal quality errors summary G12");
00287 mePedestalOnlineErr_ = dqmStore_->book1D(histo, histo, 18, 1, 19);
00288 for (int i = 0; i < 18; i++) {
00289 mePedestalOnlineErr_->setBinLabel(i+1, Numbers::sEE(i+1).c_str(), 1);
00290 }
00291
00292 if ( meLaserL1_[0] ) dqmStore_->removeElement( meLaserL1_[0]->getName() );
00293 sprintf(histo, "EELT EE - laser quality summary L1");
00294 meLaserL1_[0] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00295 meLaserL1_[0]->setAxisTitle("jx", 1);
00296 meLaserL1_[0]->setAxisTitle("jy", 2);
00297
00298 if ( meLaserL1PN_[0] ) dqmStore_->removeElement( meLaserL1PN_[0]->getName() );
00299 sprintf(histo, "EELT EE - PN laser quality summary L1");
00300 meLaserL1PN_[0] = dqmStore_->book2D(histo, histo, 90, 0., 90., 20, -10., 10.);
00301 meLaserL1PN_[0]->setAxisTitle("jx", 1);
00302 meLaserL1PN_[0]->setAxisTitle("jy", 2);
00303
00304 if ( meLaserL1_[1] ) dqmStore_->removeElement( meLaserL1_[1]->getName() );
00305 sprintf(histo, "EELT EE + laser quality summary L1");
00306 meLaserL1_[1] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00307 meLaserL1_[1]->setAxisTitle("jx", 1);
00308 meLaserL1_[1]->setAxisTitle("jy", 2);
00309
00310 if ( meLaserL1PN_[1] ) dqmStore_->removeElement( meLaserL1PN_[1]->getName() );
00311 sprintf(histo, "EELT EE + PN laser quality summary L1");
00312 meLaserL1PN_[1] = dqmStore_->book2D(histo, histo, 90, 0., 90., 20, -10., 10.);
00313 meLaserL1PN_[1]->setAxisTitle("jx", 1);
00314 meLaserL1PN_[1]->setAxisTitle("jy", 2);
00315
00316 if ( meLaserL1Err_ ) dqmStore_->removeElement( meLaserL1Err_->getName() );
00317 sprintf(histo, "EELT laser quality errors summary L1");
00318 meLaserL1Err_ = dqmStore_->book1D(histo, histo, 18, 1, 19);
00319 for (int i = 0; i < 18; i++) {
00320 meLaserL1Err_->setBinLabel(i+1, Numbers::sEE(i+1).c_str(), 1);
00321 }
00322
00323 if ( meLaserL1PNErr_ ) dqmStore_->removeElement( meLaserL1PNErr_->getName() );
00324 sprintf(histo, "EELT PN laser quality errors summary L1");
00325 meLaserL1PNErr_ = dqmStore_->book1D(histo, histo, 18, 1, 19);
00326 for (int i = 0; i < 18; i++) {
00327 meLaserL1PNErr_->setBinLabel(i+1, Numbers::sEE(i+1).c_str(), 1);
00328 }
00329
00330 if ( meLedL1_[0] ) dqmStore_->removeElement( meLedL1_[0]->getName() );
00331 sprintf(histo, "EELDT EE - led quality summary L1");
00332 meLedL1_[0] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00333 meLedL1_[0]->setAxisTitle("jx", 1);
00334 meLedL1_[0]->setAxisTitle("jy", 2);
00335
00336 if ( meLedL1PN_[0] ) dqmStore_->removeElement( meLedL1PN_[0]->getName() );
00337 sprintf(histo, "EELDT EE - PN led quality summary L1");
00338 meLedL1PN_[0] = dqmStore_->book2D(histo, histo, 90, 0., 90., 20, -10., 10.);
00339 meLedL1PN_[0]->setAxisTitle("jx", 1);
00340 meLedL1PN_[0]->setAxisTitle("jy", 2);
00341
00342 if ( meLedL1_[1] ) dqmStore_->removeElement( meLedL1_[1]->getName() );
00343 sprintf(histo, "EELDT EE + led quality summary L1");
00344 meLedL1_[1] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00345 meLedL1_[1]->setAxisTitle("jx", 1);
00346 meLedL1_[1]->setAxisTitle("jy", 2);
00347
00348 if ( meLedL1PN_[1] ) dqmStore_->removeElement( meLedL1PN_[1]->getName() );
00349 sprintf(histo, "EELDT EE + PN led quality summary L1");
00350 meLedL1PN_[1] = dqmStore_->book2D(histo, histo, 90, 0., 90., 20, -10., 10.);
00351 meLedL1PN_[1]->setAxisTitle("jx", 1);
00352 meLedL1PN_[1]->setAxisTitle("jy", 2);
00353
00354 if ( meLedL1Err_ ) dqmStore_->removeElement( meLedL1Err_->getName() );
00355 sprintf(histo, "EELDT led quality errors summary L1");
00356 meLedL1Err_ = dqmStore_->book1D(histo, histo, 18, 1, 19);
00357 for (int i = 0; i < 18; i++) {
00358 meLedL1Err_->setBinLabel(i+1, Numbers::sEE(i+1).c_str(), 1);
00359 }
00360
00361 if ( meLedL1PNErr_ ) dqmStore_->removeElement( meLedL1PNErr_->getName() );
00362 sprintf(histo, "EELDT PN led quality errors summary L1");
00363 meLedL1PNErr_ = dqmStore_->book1D(histo, histo, 18, 1, 19);
00364 for (int i = 0; i < 18; i++) {
00365 meLedL1PNErr_->setBinLabel(i+1, Numbers::sEE(i+1).c_str(), 1);
00366 }
00367
00368 if( mePedestal_[0] ) dqmStore_->removeElement( mePedestal_[0]->getName() );
00369 sprintf(histo, "EEPT EE - pedestal quality summary");
00370 mePedestal_[0] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00371 mePedestal_[0]->setAxisTitle("jx", 1);
00372 mePedestal_[0]->setAxisTitle("jy", 2);
00373
00374 if( mePedestalPN_[0] ) dqmStore_->removeElement( mePedestalPN_[0]->getName() );
00375 sprintf(histo, "EEPT EE - PN pedestal quality summary");
00376 mePedestalPN_[0] = dqmStore_->book2D(histo, histo, 90, 0., 90., 20, -10, 10.);
00377 mePedestalPN_[0]->setAxisTitle("jx", 1);
00378 mePedestalPN_[0]->setAxisTitle("jy", 2);
00379
00380 if( mePedestal_[1] ) dqmStore_->removeElement( mePedestal_[1]->getName() );
00381 sprintf(histo, "EEPT EE + pedestal quality summary");
00382 mePedestal_[1] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00383 mePedestal_[1]->setAxisTitle("jx", 1);
00384 mePedestal_[1]->setAxisTitle("jy", 2);
00385
00386 if( mePedestalPN_[1] ) dqmStore_->removeElement( mePedestalPN_[1]->getName() );
00387 sprintf(histo, "EEPT EE + PN pedestal quality summary");
00388 mePedestalPN_[1] = dqmStore_->book2D(histo, histo, 90, 0., 90., 20, -10, 10.);
00389 mePedestalPN_[1]->setAxisTitle("jx", 1);
00390 mePedestalPN_[1]->setAxisTitle("jy", 2);
00391
00392 if ( mePedestalErr_ ) dqmStore_->removeElement( mePedestalErr_->getName() );
00393 sprintf(histo, "EEPT pedestal quality errors summary");
00394 mePedestalErr_ = dqmStore_->book1D(histo, histo, 18, 1, 19);
00395 for (int i = 0; i < 18; i++) {
00396 mePedestalErr_->setBinLabel(i+1, Numbers::sEE(i+1).c_str(), 1);
00397 }
00398
00399 if ( mePedestalPNErr_ ) dqmStore_->removeElement( mePedestalPNErr_->getName() );
00400 sprintf(histo, "EEPT PN pedestal quality errors summary");
00401 mePedestalPNErr_ = dqmStore_->book1D(histo, histo, 18, 1, 19);
00402 for (int i = 0; i < 18; i++) {
00403 mePedestalPNErr_->setBinLabel(i+1, Numbers::sEE(i+1).c_str(), 1);
00404 }
00405
00406 if( meTestPulse_[0] ) dqmStore_->removeElement( meTestPulse_[0]->getName() );
00407 sprintf(histo, "EETPT EE - test pulse quality summary");
00408 meTestPulse_[0] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00409 meTestPulse_[0]->setAxisTitle("jx", 1);
00410 meTestPulse_[0]->setAxisTitle("jy", 2);
00411
00412 if( meTestPulsePN_[0] ) dqmStore_->removeElement( meTestPulsePN_[0]->getName() );
00413 sprintf(histo, "EETPT EE - PN test pulse quality summary");
00414 meTestPulsePN_[0] = dqmStore_->book2D(histo, histo, 90, 0., 90., 20, -10., 10.);
00415 meTestPulsePN_[0]->setAxisTitle("jx", 1);
00416 meTestPulsePN_[0]->setAxisTitle("jy", 2);
00417
00418 if( meTestPulse_[1] ) dqmStore_->removeElement( meTestPulse_[1]->getName() );
00419 sprintf(histo, "EETPT EE + test pulse quality summary");
00420 meTestPulse_[1] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00421 meTestPulse_[1]->setAxisTitle("jx", 1);
00422 meTestPulse_[1]->setAxisTitle("jy", 2);
00423
00424 if( meTestPulsePN_[1] ) dqmStore_->removeElement( meTestPulsePN_[1]->getName() );
00425 sprintf(histo, "EETPT EE + PN test pulse quality summary");
00426 meTestPulsePN_[1] = dqmStore_->book2D(histo, histo, 90, 0., 90., 20, -10., 10.);
00427 meTestPulsePN_[1]->setAxisTitle("jx", 1);
00428 meTestPulsePN_[1]->setAxisTitle("jy", 2);
00429
00430 if ( meTestPulseErr_ ) dqmStore_->removeElement( meTestPulseErr_->getName() );
00431 sprintf(histo, "EETPT test pulse quality errors summary");
00432 meTestPulseErr_ = dqmStore_->book1D(histo, histo, 18, 1, 19);
00433 for (int i = 0; i < 18; i++) {
00434 meTestPulseErr_->setBinLabel(i+1, Numbers::sEE(i+1).c_str(), 1);
00435 }
00436
00437 if ( meTestPulsePNErr_ ) dqmStore_->removeElement( meTestPulsePNErr_->getName() );
00438 sprintf(histo, "EETPT PN test pulse quality errors summary");
00439 meTestPulsePNErr_ = dqmStore_->book1D(histo, histo, 18, 1, 19);
00440 for (int i = 0; i < 18; i++) {
00441 meTestPulsePNErr_->setBinLabel(i+1, Numbers::sEE(i+1).c_str(), 1);
00442 }
00443
00444 if( meCosmic_[0] ) dqmStore_->removeElement( meCosmic_[0]->getName() );
00445 sprintf(histo, "EECT EE - cosmic summary");
00446 meCosmic_[0] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00447 meCosmic_[0]->setAxisTitle("jx", 1);
00448 meCosmic_[0]->setAxisTitle("jy", 2);
00449
00450 if( meCosmic_[1] ) dqmStore_->removeElement( meCosmic_[1]->getName() );
00451 sprintf(histo, "EECT EE + cosmic summary");
00452 meCosmic_[1] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00453 meCosmic_[1]->setAxisTitle("jx", 1);
00454 meCosmic_[1]->setAxisTitle("jy", 2);
00455
00456 if( meTiming_[0] ) dqmStore_->removeElement( meTiming_[0]->getName() );
00457 sprintf(histo, "EETMT EE - timing quality summary");
00458 meTiming_[0] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00459 meTiming_[0]->setAxisTitle("jx", 1);
00460 meTiming_[0]->setAxisTitle("jy", 2);
00461
00462 if( meTiming_[1] ) dqmStore_->removeElement( meTiming_[1]->getName() );
00463 sprintf(histo, "EETMT EE + timing quality summary");
00464 meTiming_[1] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00465 meTiming_[1]->setAxisTitle("jx", 1);
00466 meTiming_[1]->setAxisTitle("jy", 2);
00467
00468 if( meTriggerTowerEt_[0] ) dqmStore_->removeElement( meTriggerTowerEt_[0]->getName() );
00469 sprintf(histo, "EETTT EE - Et trigger tower summary");
00470 meTriggerTowerEt_[0] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00471 meTriggerTowerEt_[0]->setAxisTitle("jx", 1);
00472 meTriggerTowerEt_[0]->setAxisTitle("jy", 2);
00473
00474 if( meTriggerTowerEt_[1] ) dqmStore_->removeElement( meTriggerTowerEt_[1]->getName() );
00475 sprintf(histo, "EETTT EE + Et trigger tower summary");
00476 meTriggerTowerEt_[1] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00477 meTriggerTowerEt_[1]->setAxisTitle("jx", 1);
00478 meTriggerTowerEt_[1]->setAxisTitle("jy", 2);
00479
00480 if( meTriggerTowerEmulError_[0] ) dqmStore_->removeElement( meTriggerTowerEmulError_[0]->getName() );
00481 sprintf(histo, "EETTT EE - emulator error quality summary");
00482 meTriggerTowerEmulError_[0] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00483 meTriggerTowerEmulError_[0]->setAxisTitle("jx", 1);
00484 meTriggerTowerEmulError_[0]->setAxisTitle("jy", 2);
00485
00486 if( meTriggerTowerEmulError_[1] ) dqmStore_->removeElement( meTriggerTowerEmulError_[1]->getName() );
00487 sprintf(histo, "EETTT EE + emulator error quality summary");
00488 meTriggerTowerEmulError_[1] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00489 meTriggerTowerEmulError_[1]->setAxisTitle("jx", 1);
00490 meTriggerTowerEmulError_[1]->setAxisTitle("jy", 2);
00491
00492 if( meTriggerTowerTiming_[0] ) dqmStore_->removeElement( meTriggerTowerTiming_[0]->getName() );
00493 sprintf(histo, "EETTT EE - Trigger Primitives Timing summary");
00494 meTriggerTowerTiming_[0] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00495 meTriggerTowerTiming_[0]->setAxisTitle("jx", 1);
00496 meTriggerTowerTiming_[0]->setAxisTitle("jy", 2);
00497
00498 if( meTriggerTowerTiming_[1] ) dqmStore_->removeElement( meTriggerTowerTiming_[1]->getName() );
00499 sprintf(histo, "EETTT EE + Trigger Primitives Timing summary");
00500 meTriggerTowerTiming_[1] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00501 meTriggerTowerTiming_[1]->setAxisTitle("jx", 1);
00502 meTriggerTowerTiming_[1]->setAxisTitle("jy", 2);
00503
00504 if( meGlobalSummary_[0] ) dqmStore_->removeElement( meGlobalSummary_[0]->getName() );
00505 sprintf(histo, "EE global summary EE -");
00506 meGlobalSummary_[0] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00507 meGlobalSummary_[0]->setAxisTitle("jx", 1);
00508 meGlobalSummary_[0]->setAxisTitle("jy", 2);
00509
00510 if( meGlobalSummary_[1] ) dqmStore_->removeElement( meGlobalSummary_[1]->getName() );
00511 sprintf(histo, "EE global summary EE +");
00512 meGlobalSummary_[1] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00513 meGlobalSummary_[1]->setAxisTitle("jx", 1);
00514 meGlobalSummary_[1]->setAxisTitle("jy", 2);
00515
00516 }
00517
00518 void EESummaryClient::cleanup(void) {
00519
00520 if ( ! enableCleanup_ ) return;
00521
00522 dqmStore_->setCurrentFolder( prefixME_ + "/EESummaryClient" );
00523
00524 if ( meIntegrity_[0] ) dqmStore_->removeElement( meIntegrity_[0]->getName() );
00525 meIntegrity_[0] = 0;
00526
00527 if ( meIntegrity_[1] ) dqmStore_->removeElement( meIntegrity_[1]->getName() );
00528 meIntegrity_[1] = 0;
00529
00530 if ( meIntegrityErr_ ) dqmStore_->removeElement( meIntegrityErr_->getName() );
00531 meIntegrityErr_ = 0;
00532
00533 if ( meOccupancy_[0] ) dqmStore_->removeElement( meOccupancy_[0]->getName() );
00534 meOccupancy_[0] = 0;
00535
00536 if ( meOccupancy_[1] ) dqmStore_->removeElement( meOccupancy_[1]->getName() );
00537 meOccupancy_[1] = 0;
00538
00539 if ( meOccupancy1D_ ) dqmStore_->removeElement( meOccupancy1D_->getName() );
00540 meOccupancy1D_ = 0;
00541
00542 if ( meStatusFlags_[0] ) dqmStore_->removeElement( meStatusFlags_[0]->getName() );
00543 meStatusFlags_[0] = 0;
00544
00545 if ( meStatusFlags_[1] ) dqmStore_->removeElement( meStatusFlags_[1]->getName() );
00546 meStatusFlags_[1] = 0;
00547
00548 if ( meStatusFlagsErr_ ) dqmStore_->removeElement( meStatusFlagsErr_->getName() );
00549 meStatusFlagsErr_ = 0;
00550
00551 if ( mePedestalOnline_[0] ) dqmStore_->removeElement( mePedestalOnline_[0]->getName() );
00552 mePedestalOnline_[0] = 0;
00553
00554 if ( mePedestalOnline_[1] ) dqmStore_->removeElement( mePedestalOnline_[1]->getName() );
00555 mePedestalOnline_[1] = 0;
00556
00557 if ( mePedestalOnlineErr_ ) dqmStore_->removeElement( mePedestalOnlineErr_->getName() );
00558 mePedestalOnlineErr_ = 0;
00559
00560 if ( meLaserL1_[0] ) dqmStore_->removeElement( meLaserL1_[0]->getName() );
00561 meLaserL1_[0] = 0;
00562
00563 if ( meLaserL1_[1] ) dqmStore_->removeElement( meLaserL1_[1]->getName() );
00564 meLaserL1_[1] = 0;
00565
00566 if ( meLaserL1Err_ ) dqmStore_->removeElement( meLaserL1Err_->getName() );
00567 meLaserL1Err_ = 0;
00568
00569 if ( meLaserL1PN_[0] ) dqmStore_->removeElement( meLaserL1PN_[0]->getName() );
00570 meLaserL1PN_[0] = 0;
00571
00572 if ( meLaserL1PN_[1] ) dqmStore_->removeElement( meLaserL1PN_[1]->getName() );
00573 meLaserL1PN_[1] = 0;
00574
00575 if ( meLaserL1PNErr_ ) dqmStore_->removeElement( meLaserL1PNErr_->getName() );
00576 meLaserL1PNErr_ = 0;
00577
00578 if ( meLedL1_[0] ) dqmStore_->removeElement( meLedL1_[0]->getName() );
00579 meLedL1_[0] = 0;
00580
00581 if ( meLedL1_[1] ) dqmStore_->removeElement( meLedL1_[1]->getName() );
00582 meLedL1_[1] = 0;
00583
00584 if ( meLedL1Err_ ) dqmStore_->removeElement( meLedL1Err_->getName() );
00585 meLedL1Err_ = 0;
00586
00587 if ( meLedL1PN_[0] ) dqmStore_->removeElement( meLedL1PN_[0]->getName() );
00588 meLedL1PN_[0] = 0;
00589
00590 if ( meLedL1PN_[1] ) dqmStore_->removeElement( meLedL1PN_[1]->getName() );
00591 meLedL1PN_[1] = 0;
00592
00593 if ( meLedL1PNErr_ ) dqmStore_->removeElement( meLedL1PNErr_->getName() );
00594 meLedL1PNErr_ = 0;
00595
00596 if ( mePedestal_[0] ) dqmStore_->removeElement( mePedestal_[0]->getName() );
00597 mePedestal_[0] = 0;
00598
00599 if ( mePedestal_[1] ) dqmStore_->removeElement( mePedestal_[1]->getName() );
00600 mePedestal_[1] = 0;
00601
00602 if ( mePedestalErr_ ) dqmStore_->removeElement( mePedestalErr_->getName() );
00603 mePedestalErr_ = 0;
00604
00605 if ( mePedestalPN_[0] ) dqmStore_->removeElement( mePedestalPN_[0]->getName() );
00606 mePedestalPN_[0] = 0;
00607
00608 if ( mePedestalPN_[1] ) dqmStore_->removeElement( mePedestalPN_[1]->getName() );
00609 mePedestalPN_[1] = 0;
00610
00611 if ( mePedestalPNErr_ ) dqmStore_->removeElement( mePedestalPNErr_->getName() );
00612 mePedestalPNErr_ = 0;
00613
00614 if ( meTestPulse_[0] ) dqmStore_->removeElement( meTestPulse_[0]->getName() );
00615 meTestPulse_[0] = 0;
00616
00617 if ( meTestPulse_[1] ) dqmStore_->removeElement( meTestPulse_[1]->getName() );
00618 meTestPulse_[1] = 0;
00619
00620 if ( meTestPulseErr_ ) dqmStore_->removeElement( meTestPulseErr_->getName() );
00621 meTestPulseErr_ = 0;
00622
00623 if ( meTestPulsePN_[0] ) dqmStore_->removeElement( meTestPulsePN_[0]->getName() );
00624 meTestPulsePN_[0] = 0;
00625
00626 if ( meTestPulsePN_[1] ) dqmStore_->removeElement( meTestPulsePN_[1]->getName() );
00627 meTestPulsePN_[1] = 0;
00628
00629 if ( meTestPulsePNErr_ ) dqmStore_->removeElement( meTestPulsePNErr_->getName() );
00630 meTestPulsePNErr_ = 0;
00631
00632 if ( meCosmic_[0] ) dqmStore_->removeElement( meCosmic_[0]->getName() );
00633 meCosmic_[0] = 0;
00634
00635 if ( meCosmic_[1] ) dqmStore_->removeElement( meCosmic_[1]->getName() );
00636 meCosmic_[1] = 0;
00637
00638 if ( meTiming_[0] ) dqmStore_->removeElement( meTiming_[0]->getName() );
00639 meTiming_[0] = 0;
00640
00641 if ( meTiming_[1] ) dqmStore_->removeElement( meTiming_[1]->getName() );
00642 meTiming_[1] = 0;
00643
00644 if ( meTriggerTowerEt_[0] ) dqmStore_->removeElement( meTriggerTowerEt_[0]->getName() );
00645 meTriggerTowerEt_[0] = 0;
00646
00647 if ( meTriggerTowerEt_[1] ) dqmStore_->removeElement( meTriggerTowerEt_[1]->getName() );
00648 meTriggerTowerEt_[1] = 0;
00649
00650 if ( meTriggerTowerEmulError_[0] ) dqmStore_->removeElement( meTriggerTowerEmulError_[0]->getName() );
00651 meTriggerTowerEmulError_[0] = 0;
00652
00653 if ( meTriggerTowerEmulError_[1] ) dqmStore_->removeElement( meTriggerTowerEmulError_[1]->getName() );
00654 meTriggerTowerEmulError_[1] = 0;
00655
00656 if ( meTriggerTowerTiming_[0] ) dqmStore_->removeElement( meTriggerTowerTiming_[0]->getName() );
00657 meTriggerTowerTiming_[0] = 0;
00658
00659 if ( meTriggerTowerTiming_[1] ) dqmStore_->removeElement( meTriggerTowerTiming_[1]->getName() );
00660 meTriggerTowerTiming_[1] = 0;
00661
00662 if ( meGlobalSummary_[0] ) dqmStore_->removeElement( meGlobalSummary_[0]->getName() );
00663 meGlobalSummary_[0] = 0;
00664
00665 if ( meGlobalSummary_[1] ) dqmStore_->removeElement( meGlobalSummary_[1]->getName() );
00666 meGlobalSummary_[1] = 0;
00667
00668 }
00669
00670 bool EESummaryClient::writeDb(EcalCondDBInterface* econn, RunIOV* runiov, MonRunIOV* moniov, bool& status, bool flag) {
00671
00672 status = true;
00673
00674 if ( ! flag ) return false;
00675
00676 return true;
00677
00678 }
00679
00680 void EESummaryClient::analyze(void) {
00681
00682 ievt_++;
00683 jevt_++;
00684 if ( ievt_ % 10 == 0 ) {
00685 if ( debug_ ) cout << "EESummaryClient: ievt/jevt = " << ievt_ << "/" << jevt_ << endl;
00686 }
00687
00688 for ( int ix = 1; ix <= 100; ix++ ) {
00689 for ( int iy = 1; iy <= 100; iy++ ) {
00690
00691 meIntegrity_[0]->setBinContent( ix, iy, 6. );
00692 meIntegrity_[1]->setBinContent( ix, iy, 6. );
00693 meOccupancy_[0]->setBinContent( ix, iy, 0. );
00694 meOccupancy_[1]->setBinContent( ix, iy, 0. );
00695 meStatusFlags_[0]->setBinContent( ix, iy, 6. );
00696 meStatusFlags_[1]->setBinContent( ix, iy, 6. );
00697 mePedestalOnline_[0]->setBinContent( ix, iy, 6. );
00698 mePedestalOnline_[1]->setBinContent( ix, iy, 6. );
00699
00700 meLaserL1_[0]->setBinContent( ix, iy, 6. );
00701 meLaserL1_[1]->setBinContent( ix, iy, 6. );
00702 meLedL1_[0]->setBinContent( ix, iy, 6. );
00703 meLedL1_[1]->setBinContent( ix, iy, 6. );
00704 mePedestal_[0]->setBinContent( ix, iy, 6. );
00705 mePedestal_[1]->setBinContent( ix, iy, 6. );
00706 meTestPulse_[0]->setBinContent( ix, iy, 6. );
00707 meTestPulse_[1]->setBinContent( ix, iy, 6. );
00708
00709 meCosmic_[0]->setBinContent( ix, iy, 0. );
00710 meCosmic_[1]->setBinContent( ix, iy, 0. );
00711 meTiming_[0]->setBinContent( ix, iy, 6. );
00712 meTiming_[1]->setBinContent( ix, iy, 6. );
00713
00714 meGlobalSummary_[0]->setBinContent( ix, iy, 6. );
00715 meGlobalSummary_[1]->setBinContent( ix, iy, 6. );
00716
00717 }
00718 }
00719
00720 for ( int ix = 1; ix <= 20; ix++ ) {
00721 for ( int iy = 1; iy <= 90; iy++ ) {
00722
00723 meLaserL1PN_[0]->setBinContent( ix, iy, 6. );
00724 meLaserL1PN_[1]->setBinContent( ix, iy, 6. );
00725 mePedestalPN_[0]->setBinContent( ix, iy, 6. );
00726 mePedestalPN_[1]->setBinContent( ix, iy, 6. );
00727 meTestPulsePN_[0]->setBinContent( ix, iy, 6. );
00728 meTestPulsePN_[1]->setBinContent( ix, iy, 6. );
00729
00730 }
00731 }
00732
00733 for ( int ix = 1; ix <= 100; ix++ ) {
00734 for ( int iy = 1; iy <= 100; iy++ ) {
00735 meTriggerTowerEt_[0]->setBinContent( ix, iy, 0. );
00736 meTriggerTowerEt_[1]->setBinContent( ix, iy, 0. );
00737 meTriggerTowerEmulError_[0]->setBinContent( ix, iy, 6. );
00738 meTriggerTowerEmulError_[1]->setBinContent( ix, iy, 6. );
00739 meTriggerTowerTiming_[0]->setBinContent( ix, iy, -1 );
00740 meTriggerTowerTiming_[1]->setBinContent( ix, iy, -1 );
00741 }
00742 }
00743
00744 meIntegrity_[0]->setEntries( 0 );
00745 meIntegrity_[1]->setEntries( 0 );
00746 meIntegrityErr_->Reset();
00747 meOccupancy_[0]->setEntries( 0 );
00748 meOccupancy_[1]->setEntries( 0 );
00749 meOccupancy1D_->Reset();
00750 meStatusFlags_[0]->setEntries( 0 );
00751 meStatusFlags_[1]->setEntries( 0 );
00752 meStatusFlagsErr_->Reset();
00753 mePedestalOnline_[0]->setEntries( 0 );
00754 mePedestalOnline_[1]->setEntries( 0 );
00755 mePedestalOnlineErr_->Reset();
00756
00757 meLaserL1_[0]->setEntries( 0 );
00758 meLaserL1_[1]->setEntries( 0 );
00759 meLaserL1Err_->Reset();
00760 meLaserL1PN_[0]->setEntries( 0 );
00761 meLaserL1PN_[1]->setEntries( 0 );
00762 meLaserL1PNErr_->Reset();
00763 meLedL1_[0]->setEntries( 0 );
00764 meLedL1_[1]->setEntries( 0 );
00765 meLedL1Err_->Reset();
00766 meLedL1PN_[0]->setEntries( 0 );
00767 meLedL1PN_[1]->setEntries( 0 );
00768 meLedL1PNErr_->Reset();
00769 mePedestal_[0]->setEntries( 0 );
00770 mePedestal_[1]->setEntries( 0 );
00771 mePedestalErr_->Reset();
00772 mePedestalPN_[0]->setEntries( 0 );
00773 mePedestalPN_[1]->setEntries( 0 );
00774 mePedestalPNErr_->Reset();
00775 meTestPulse_[0]->setEntries( 0 );
00776 meTestPulse_[1]->setEntries( 0 );
00777 meTestPulseErr_->Reset();
00778 meTestPulsePN_[0]->setEntries( 0 );
00779 meTestPulsePN_[1]->setEntries( 0 );
00780 meTestPulsePNErr_->Reset();
00781
00782 meCosmic_[0]->setEntries( 0 );
00783 meCosmic_[1]->setEntries( 0 );
00784 meTiming_[0]->setEntries( 0 );
00785 meTiming_[1]->setEntries( 0 );
00786 meTriggerTowerEt_[0]->setEntries( 0 );
00787 meTriggerTowerEt_[1]->setEntries( 0 );
00788 meTriggerTowerEmulError_[0]->setEntries( 0 );
00789 meTriggerTowerEmulError_[1]->setEntries( 0 );
00790 meTriggerTowerTiming_[0]->setEntries( 0 );
00791 meTriggerTowerTiming_[1]->setEntries( 0 );
00792
00793 meGlobalSummary_[0]->setEntries( 0 );
00794 meGlobalSummary_[1]->setEntries( 0 );
00795
00796 for ( unsigned int i=0; i<clients_.size(); i++ ) {
00797
00798 EEIntegrityClient* eeic = dynamic_cast<EEIntegrityClient*>(clients_[i]);
00799 EEStatusFlagsClient* eesfc = dynamic_cast<EEStatusFlagsClient*>(clients_[i]);
00800 EEPedestalOnlineClient* eepoc = dynamic_cast<EEPedestalOnlineClient*>(clients_[i]);
00801
00802 EELaserClient* eelc = dynamic_cast<EELaserClient*>(clients_[i]);
00803 EELedClient* eeldc = dynamic_cast<EELedClient*>(clients_[i]);
00804 EEPedestalClient* eepc = dynamic_cast<EEPedestalClient*>(clients_[i]);
00805 EETestPulseClient* eetpc = dynamic_cast<EETestPulseClient*>(clients_[i]);
00806
00807 EECosmicClient* eecc = dynamic_cast<EECosmicClient*>(clients_[i]);
00808 EETimingClient* eetmc = dynamic_cast<EETimingClient*>(clients_[i]);
00809 EETriggerTowerClient* eetttc = dynamic_cast<EETriggerTowerClient*>(clients_[i]);
00810
00811 MonitorElement *me;
00812 MonitorElement *me_01, *me_02, *me_03;
00813
00814
00815
00816 TH2F* h2;
00817 TProfile2D* h2d;
00818
00819
00820 map<float,float> priority;
00821 priority.insert( pair<float,float>(0,3) );
00822 priority.insert( pair<float,float>(1,1) );
00823 priority.insert( pair<float,float>(2,2) );
00824 priority.insert( pair<float,float>(3,2) );
00825 priority.insert( pair<float,float>(4,3) );
00826 priority.insert( pair<float,float>(5,1) );
00827
00828 for ( unsigned int i=0; i<superModules_.size(); i++ ) {
00829
00830 int ism = superModules_[i];
00831
00832 for ( int ix = 1; ix <= 50; ix++ ) {
00833 for ( int iy = 1; iy <= 50; iy++ ) {
00834
00835 int jx = ix + Numbers::ix0EE(ism);
00836 int jy = iy + Numbers::iy0EE(ism);
00837
00838 if ( eeic ) {
00839
00840 me = eeic->meg01_[ism-1];
00841
00842 if ( me ) {
00843
00844 float xval = me->getBinContent( ix, iy );
00845
00846 if ( ism >= 1 && ism <= 9 ) {
00847 if ( Numbers::validEE(ism, 101 - jx, jy) ) meIntegrity_[0]->setBinContent( 101 - jx, jy, xval );
00848 } else {
00849 if ( Numbers::validEE(ism, jx, jy) ) meIntegrity_[1]->setBinContent( jx, jy, xval );
00850 }
00851 if ( xval == 0 ) meIntegrityErr_->Fill( ism );
00852
00853 }
00854
00855 h2 = eeic->h_[ism-1];
00856
00857 if ( h2 ) {
00858
00859 float xval = h2->GetBinContent( ix, iy );
00860
00861 if ( ism >= 1 && ism <= 9 ) {
00862 if ( xval != 0 ) {
00863 if ( Numbers::validEE(ism, 101 - jx, jy) ) meOccupancy_[0]->setBinContent( 101 - jx, jy, xval );
00864 }
00865 } else {
00866 if ( xval != 0 ) {
00867 if ( Numbers::validEE(ism, jx, jy) ) meOccupancy_[1]->setBinContent( jx, jy, xval );
00868 }
00869 }
00870 meOccupancy1D_->Fill( ism, xval );
00871
00872 }
00873
00874 }
00875
00876 if ( eepoc ) {
00877
00878 me = eepoc->meg03_[ism-1];
00879
00880 if ( me ) {
00881
00882 float xval = me->getBinContent( ix, iy );
00883
00884 if ( ism >= 1 && ism <= 9 ) {
00885 if ( Numbers::validEE(ism, 101 - jx, jy) ) mePedestalOnline_[0]->setBinContent( 101 - jx, jy, xval );
00886 } else {
00887 if ( Numbers::validEE(ism, jx, jy) ) mePedestalOnline_[1]->setBinContent( jx, jy, xval );
00888 }
00889 if ( xval == 0 ) mePedestalOnlineErr_->Fill( ism );
00890
00891 }
00892
00893 }
00894
00895 if ( eelc ) {
00896
00897 me = eelc->meg01_[ism-1];
00898
00899 if ( me ) {
00900
00901 float xval = me->getBinContent( ix, iy );
00902
00903 if ( me->getEntries() != 0 ) {
00904 if ( ism >= 1 && ism <= 9 ) {
00905 if ( Numbers::validEE(ism, 101 - jx, jy) ) meLaserL1_[0]->setBinContent( 101 - jx, jy, xval );
00906 } else {
00907 if ( Numbers::validEE(ism, jx, jy) ) meLaserL1_[1]->setBinContent( jx, jy, xval );
00908 }
00909 if ( xval == 0 ) meLaserL1Err_->Fill( ism );
00910 }
00911
00912 }
00913
00914 }
00915
00916 if ( eeldc ) {
00917
00918 me = eeldc->meg01_[ism-1];
00919
00920 if ( me ) {
00921
00922 float xval = me->getBinContent( ix, iy );
00923
00924 if ( me->getEntries() != 0 ) {
00925 if ( ism >= 1 && ism <= 9 ) {
00926 if ( Numbers::validEE(ism, 101 - jx, jy) ) meLedL1_[0]->setBinContent( 101 - jx, jy, xval );
00927 } else {
00928 if ( Numbers::validEE(ism, jx, jy) ) meLedL1_[1]->setBinContent( jx, jy, xval );
00929 }
00930 if ( xval == 0 ) meLedL1Err_->Fill( ism );
00931 }
00932
00933 }
00934
00935 }
00936
00937 if ( eepc ) {
00938
00939 me_01 = eepc->meg01_[ism-1];
00940 me_02 = eepc->meg02_[ism-1];
00941 me_03 = eepc->meg03_[ism-1];
00942
00943 if ( me_01 && me_02 && me_03 ) {
00944 float xval=2;
00945 float val_01=me_01->getBinContent(ix,iy);
00946 float val_02=me_02->getBinContent(ix,iy);
00947 float val_03=me_03->getBinContent(ix,iy);
00948
00949 vector<float> maskedVal, unmaskedVal;
00950 (val_01>=3&&val_01<=5) ? maskedVal.push_back(val_01) : unmaskedVal.push_back(val_01);
00951 (val_02>=3&&val_02<=5) ? maskedVal.push_back(val_02) : unmaskedVal.push_back(val_02);
00952 (val_03>=3&&val_03<=5) ? maskedVal.push_back(val_03) : unmaskedVal.push_back(val_03);
00953
00954 float brightColor=6, darkColor=6;
00955 float maxPriority=-1;
00956
00957 vector<float>::const_iterator Val;
00958 for(Val=unmaskedVal.begin(); Val<unmaskedVal.end(); Val++) {
00959 if(priority[*Val]>maxPriority) brightColor=*Val;
00960 }
00961 maxPriority=-1;
00962 for(Val=maskedVal.begin(); Val<maskedVal.end(); Val++) {
00963 if(priority[*Val]>maxPriority) darkColor=*Val;
00964 }
00965 if(unmaskedVal.size()==3) xval = brightColor;
00966 else if(maskedVal.size()==3) xval = darkColor;
00967 else {
00968 if(brightColor==1 && darkColor==5) xval = 5;
00969 else xval = brightColor;
00970 }
00971
00972 if ( me_01->getEntries() != 0 && me_02->getEntries() != 0 && me_03->getEntries() != 0 ) {
00973 if ( ism >= 1 && ism <= 9 ) {
00974 if ( Numbers::validEE(ism, 101 - jx, jy) ) mePedestal_[0]->setBinContent( 101 - jx, jy, xval );
00975 } else {
00976 if ( Numbers::validEE(ism, jx, jy) ) mePedestal_[1]->setBinContent( jx, jy, xval );
00977 }
00978 if ( xval == 0 ) mePedestalErr_->Fill( ism );
00979 }
00980
00981 }
00982
00983 }
00984
00985 if ( eetpc ) {
00986
00987 me_01 = eetpc->meg01_[ism-1];
00988 me_02 = eetpc->meg02_[ism-1];
00989 me_03 = eetpc->meg03_[ism-1];
00990
00991 if ( me_01 && me_02 && me_03 ) {
00992 float xval=2;
00993 float val_01=me_01->getBinContent(ix,iy);
00994 float val_02=me_02->getBinContent(ix,iy);
00995 float val_03=me_03->getBinContent(ix,iy);
00996
00997 vector<float> maskedVal, unmaskedVal;
00998 (val_01>=3&&val_01<=5) ? maskedVal.push_back(val_01) : unmaskedVal.push_back(val_01);
00999 (val_02>=3&&val_02<=5) ? maskedVal.push_back(val_02) : unmaskedVal.push_back(val_02);
01000 (val_03>=3&&val_03<=5) ? maskedVal.push_back(val_03) : unmaskedVal.push_back(val_03);
01001
01002 float brightColor=6, darkColor=6;
01003 float maxPriority=-1;
01004
01005 vector<float>::const_iterator Val;
01006 for(Val=unmaskedVal.begin(); Val<unmaskedVal.end(); Val++) {
01007 if(priority[*Val]>maxPriority) brightColor=*Val;
01008 }
01009 maxPriority=-1;
01010 for(Val=maskedVal.begin(); Val<maskedVal.end(); Val++) {
01011 if(priority[*Val]>maxPriority) darkColor=*Val;
01012 }
01013 if(unmaskedVal.size()==3) xval = brightColor;
01014 else if(maskedVal.size()==3) xval = darkColor;
01015 else {
01016 if(brightColor==1 && darkColor==5) xval = 5;
01017 else xval = brightColor;
01018 }
01019
01020 if ( me_01->getEntries() != 0 && me_02->getEntries() != 0 && me_03->getEntries() != 0 ) {
01021 if ( ism >= 1 && ism <= 9 ) {
01022 if ( Numbers::validEE(ism, 101 - jx, jy) ) meTestPulse_[0]->setBinContent( 101 - jx, jy, xval );
01023 } else {
01024 if ( Numbers::validEE(ism, jx, jy) ) meTestPulse_[1]->setBinContent( jx, jy, xval );
01025 }
01026 if ( xval == 0 ) meTestPulseErr_->Fill( ism );
01027 }
01028
01029 }
01030
01031 }
01032
01033 if ( eecc ) {
01034
01035 h2d = eecc->h02_[ism-1];
01036
01037 if ( h2d ) {
01038
01039 float xval = h2d->GetBinContent( ix, iy );
01040
01041 if ( ism >= 1 && ism <= 9 ) {
01042 if ( xval != 0 ) {
01043 if ( Numbers::validEE(ism, 101 - jx, jy) ) meCosmic_[0]->setBinContent( 101 - jx, jy, xval );
01044 }
01045 } else {
01046 if ( xval != 0 ) {
01047 if ( Numbers::validEE(ism, jx, jy) ) meCosmic_[1]->setBinContent( jx, jy, xval );
01048 }
01049 }
01050
01051 }
01052
01053 }
01054
01055 if ( eetmc ) {
01056
01057 me = eetmc->meg01_[ism-1];
01058
01059 if ( me ) {
01060
01061 float xval = me->getBinContent( ix, iy );
01062
01063 if ( ism >= 1 && ism <= 9 ) {
01064 if ( Numbers::validEE(ism, 101 - jx, jy) ) meTiming_[0]->setBinContent( 101 - jx, jy, xval );
01065 } else {
01066 if ( Numbers::validEE(ism, jx, jy) ) meTiming_[1]->setBinContent( jx, jy, xval );
01067 }
01068
01069 }
01070
01071 }
01072
01073 }
01074 }
01075
01076 for ( int ix = 1; ix <= 50; ix++ ) {
01077 for ( int iy = 1; iy <= 50; iy++ ) {
01078
01079 int jx = ix + Numbers::ix0EE(ism);
01080 int jy = iy + Numbers::iy0EE(ism);
01081
01082 if ( eesfc ) {
01083
01084 me = eesfc->meh01_[ism-1];
01085
01086 if ( me ) {
01087
01088 float xval = 6;
01089
01090 if ( me->getBinContent( ix, iy ) == 6 ) xval = 2;
01091 if ( me->getBinContent( ix, iy ) == 0 ) xval = 1;
01092 if ( me->getBinContent( ix, iy ) > 0 ) xval = 0;
01093
01094 if ( me->getEntries() != 0 ) {
01095 if ( ism >= 1 && ism <= 9 ) {
01096 if ( Numbers::validEE(ism, 101 - jx, jy) ) meStatusFlags_[0]->setBinContent( 101 - jx, jy, xval );
01097 } else {
01098 if ( Numbers::validEE(ism, jx, jy) ) meStatusFlags_[1]->setBinContent( jx, jy, xval );
01099 }
01100 if ( xval == 0 ) meStatusFlagsErr_->Fill( ism );
01101 }
01102
01103 }
01104
01105 }
01106
01107 if ( eetttc ) {
01108
01109 me = eetttc->me_h01_[ism-1];
01110
01111 bool hasRealDigi = false;
01112
01113 if ( me ) {
01114
01115 float xval = me->getBinContent( ix, iy );
01116
01117 TProfile2D* obj = UtilsClient::getHisto<TProfile2D*>( me );
01118 if(obj && obj->GetBinEntries(obj->GetBin( ix, iy ))!=0) hasRealDigi = true;
01119
01120 if ( ism >= 1 && ism <= 9 ) {
01121 if ( xval > 0 ) {
01122 meTriggerTowerEt_[0]->setBinContent( 101 - jx, jy, xval );
01123 }
01124 } else {
01125 if ( xval > 0 ) {
01126 meTriggerTowerEt_[1]->setBinContent( jx, jy, xval );
01127 }
01128 }
01129
01130 }
01131
01132 me = eetttc->me_o01_[ism-1];
01133
01134 if ( me ) {
01135
01136 float xval = me->getBinContent( ix, iy );
01137
01138 if ( ism >= 1 && ism <= 9 ) {
01139 meTriggerTowerTiming_[0]->setBinContent( 101 - jx, jy, xval );
01140 } else {
01141 meTriggerTowerTiming_[1]->setBinContent( jx, jy, xval );
01142 }
01143
01144 }
01145
01146 float xval = 6;
01147 if(!hasRealDigi) xval = 2;
01148 else {
01149
01150 h2 = eetttc->l01_[ism-1];
01151
01152 if ( h2 ) {
01153
01154 float emulErrorVal = h2->GetBinContent( ix, iy );
01155 if( emulErrorVal!=0 ) xval = 0;
01156
01157 }
01158
01159
01160
01161
01162
01163
01164
01165
01166
01167
01168
01169
01170
01171
01172
01173
01174
01175
01176
01177
01178
01179
01180
01181
01182
01183
01184
01185 if ( xval!=0 ) xval = 1;
01186
01187 }
01188
01189
01190 if ( xval == 2 ) continue;
01191
01192 if ( ism >= 1 && ism <= 9 ) {
01193 meTriggerTowerEmulError_[0]->setBinContent( 101 - jx, jy, xval );
01194 } else {
01195 meTriggerTowerEmulError_[1]->setBinContent( jx, jy, xval );
01196 }
01197
01198 }
01199
01200 }
01201 }
01202
01203
01204 for( int i = 1; i <= 10; i++ ) {
01205 for( int j = 1; j <= 5; j++ ) {
01206
01207 if ( eepc ) {
01208
01209 }
01210
01211 if ( eetpc ) {
01212
01213 }
01214
01215 if ( eelc ) {
01216
01217 }
01218
01219 if ( eeldc ) {
01220
01221
01222 }
01223
01224 }
01225 }
01226
01227 }
01228
01229
01230
01231 for ( unsigned int i=0; i<superModules_.size(); i++ ) {
01232
01233 int ism = superModules_[i];
01234
01235 for ( int ix = 1; ix <= 50; ix++ ) {
01236 for ( int iy = 1; iy <= 50; iy++ ) {
01237
01238 int jx = ix + Numbers::ix0EE(ism);
01239 int jy = iy + Numbers::iy0EE(ism);
01240
01241 if ( eetttc ) {
01242
01243 if ( ism >= 1 && ism <= 9 ) {
01244 if ( meTriggerTowerEmulError_[0]->getBinContent( 101 - jx, jy ) == 6 ) {
01245 if ( Numbers::validEE(ism, 101 - jx, jy) ) meTriggerTowerEmulError_[0]->setBinContent( 101 - jx, jy, 2 );
01246 }
01247 } else {
01248 if ( meTriggerTowerEmulError_[1]->getBinContent( jx, jy ) == 6 ) {
01249 if ( Numbers::validEE(ism, jx, jy) ) meTriggerTowerEmulError_[1]->setBinContent( jx, jy, 2 );
01250 }
01251 }
01252
01253 }
01254
01255 }
01256 }
01257
01258 }
01259
01260 }
01261
01262
01263 int nGlobalErrors = 0;
01264 int nGlobalErrorsEE[18];
01265 int nValidChannels = 0;
01266 int nValidChannelsEE[18];
01267
01268 for (int i = 0; i < 18; i++) {
01269 nGlobalErrorsEE[i] = 0;
01270 nValidChannelsEE[i] = 0;
01271 }
01272
01273 for ( int jx = 1; jx <= 100; jx++ ) {
01274 for ( int jy = 1; jy <= 100; jy++ ) {
01275
01276 if(meIntegrity_[0] && mePedestalOnline_[0] && meLaserL1_[0] && meLedL1_[0] && meTiming_[0] && meStatusFlags_[0] && meTriggerTowerEmulError_[0]) {
01277
01278 float xval = 6;
01279 float val_in = meIntegrity_[0]->getBinContent(jx,jy);
01280 float val_po = mePedestalOnline_[0]->getBinContent(jx,jy);
01281 float val_ls = meLaserL1_[0]->getBinContent(jx,jy);
01282 float val_ld = meLedL1_[0]->getBinContent(jx,jy);
01283 float val_tm = meTiming_[0]->getBinContent(jx,jy);
01284 float val_sf = meStatusFlags_[0]->getBinContent(jx,jy);
01285
01286 float val_ee = 1;
01287
01288
01289
01290
01291
01292
01293
01294
01295
01296 if( val_in==3 || val_in==4 || val_in==5) val_in=1;
01297 if( val_po==3 || val_po==4 || val_po==5) val_po=1;
01298 if(val_ls==2 || val_ls==3 || val_ls==4 || val_ls==5) val_ls=1;
01299 if(val_ld==2 || val_ld==3 || val_ld==4 || val_ld==5) val_ld=1;
01300 if(val_tm==2 || val_tm==3 || val_tm==4 || val_tm==5) val_tm=1;
01301 if( val_sf==3 || val_sf==4 || val_sf==5) val_sf=1;
01302 if(val_ee==2 || val_ee==3 || val_ee==4 || val_ee==5) val_ee=1;
01303
01304 if(val_in==6) xval=6;
01305 else if(val_in==0) xval=0;
01306 else if(val_po==0 || val_ls==0 || val_ld==0 || val_tm==0 || val_sf==0 || val_ee==0) xval=0;
01307 else if(val_po==2 || val_ls==2 || val_ld==2 || val_tm==2 || val_sf==2 || val_ee==2) xval=2;
01308 else xval=1;
01309
01310 bool validCry = false;
01311
01312
01313
01314 float iEntries=0;
01315
01316 for(int ism = 1; ism <= 9; ism++) {
01317 vector<int>::iterator iter = find(superModules_.begin(), superModules_.end(), ism);
01318 if (iter != superModules_.end()) {
01319 if ( Numbers::validEE(ism, jx, jy) ) {
01320 validCry = true;
01321 for ( unsigned int i=0; i<clients_.size(); i++ ) {
01322 EEIntegrityClient* eeic = dynamic_cast<EEIntegrityClient*>(clients_[i]);
01323 if ( eeic ) {
01324 TH2F* h2 = eeic->h_[ism-1];
01325 if ( h2 ) {
01326 iEntries = h2->GetEntries();
01327 }
01328 }
01329 }
01330 }
01331 }
01332 }
01333
01334 if ( validCry && iEntries==0 ) {
01335 xval=2;
01336 }
01337
01338 meGlobalSummary_[0]->setBinContent( jx, jy, xval );
01339
01340 if ( xval >= 0 && xval <= 5 ) {
01341 if ( xval != 2 && xval != 5 ) ++nValidChannels;
01342 for (int i = 1; i <= 9; i++) {
01343 if ( xval != 2 && xval != 5 ) {
01344 if ( Numbers::validEE(i, jx, jy) ) ++nValidChannelsEE[i-1];
01345 }
01346 }
01347 if ( xval == 0 ) ++nGlobalErrors;
01348 for (int i = 1; i <= 9; i++) {
01349 if ( xval == 0 ) {
01350 if ( Numbers::validEE(i, jx, jy) ) ++nGlobalErrorsEE[i-1];
01351 }
01352 }
01353 }
01354
01355 }
01356
01357 if(meIntegrity_[1] && mePedestalOnline_[1] && meLaserL1_[1] && meLedL1_[1] && meTiming_[1] && meStatusFlags_[1] && meTriggerTowerEmulError_[1]) {
01358
01359 float xval = 6;
01360 float val_in = meIntegrity_[1]->getBinContent(jx,jy);
01361 float val_po = mePedestalOnline_[1]->getBinContent(jx,jy);
01362 float val_ls = meLaserL1_[1]->getBinContent(jx,jy);
01363 float val_ld = meLedL1_[1]->getBinContent(jx,jy);
01364 float val_tm = meTiming_[1]->getBinContent(jx,jy);
01365 float val_sf = meStatusFlags_[1]->getBinContent(jx,jy);
01366
01367 float val_ee = 1;
01368
01369
01370
01371
01372
01373
01374
01375
01376
01377 if( val_in==3 || val_in==4 || val_in==5) val_in=1;
01378 if( val_po==3 || val_po==4 || val_po==5) val_po=1;
01379 if(val_ls==2 || val_ls==3 || val_ls==4 || val_ls==5) val_ls=1;
01380 if(val_ld==2 || val_ld==3 || val_ld==4 || val_ld==5) val_ld=1;
01381 if(val_tm==2 || val_tm==3 || val_tm==4 || val_tm==5) val_tm=1;
01382 if( val_sf==3 || val_sf==4 || val_sf==5) val_sf=1;
01383 if(val_ee==2 || val_ee==3 || val_ee==4 || val_ee==5) val_ee=1;
01384
01385 if(val_in==6) xval=6;
01386 else if(val_in==0) xval=0;
01387 else if(val_po==0 || val_ls==0 || val_ld==0 || val_tm==0 || val_sf==0 || val_ee==0) xval=0;
01388 else if(val_po==2 || val_ls==2 || val_ld==2 || val_tm==2 || val_sf==2 || val_ee==2) xval=2;
01389 else xval=1;
01390
01391 bool validCry = false;
01392
01393
01394
01395 float iEntries=0;
01396 for(int ism = 10; ism <= 18; ism++) {
01397 if ( Numbers::validEE(ism, jx, jy) ) {
01398 validCry = true;
01399 for ( unsigned int i=0; i<clients_.size(); i++ ) {
01400 EEIntegrityClient* eeic = dynamic_cast<EEIntegrityClient*>(clients_[i]);
01401 if ( eeic ) {
01402 TH2F *h2 = eeic->h_[ism-1];
01403 if ( h2 ) {
01404 iEntries = h2->GetEntries();
01405 }
01406 }
01407 }
01408 }
01409 }
01410
01411 if ( validCry && iEntries==0 ) {
01412 xval=2;
01413 }
01414
01415 meGlobalSummary_[1]->setBinContent( jx, jy, xval );
01416
01417 if ( xval >= 0 && xval <= 5 ) {
01418 if ( xval != 2 && xval != 5 ) ++nValidChannels;
01419 for (int i = 10; i <= 18; i++) {
01420 if ( xval != 2 && xval != 5 ) {
01421 if ( Numbers::validEE(i, jx, jy) ) ++nValidChannelsEE[i-1];
01422 }
01423 }
01424 if ( xval == 0 ) ++nGlobalErrors;
01425 for (int i = 10; i <= 18; i++) {
01426 if ( xval == 0 ) {
01427 if ( Numbers::validEE(i, jx, jy) ) ++nGlobalErrorsEE[i-1];
01428 }
01429 }
01430 }
01431
01432 }
01433
01434 }
01435 }
01436
01437 MonitorElement* me;
01438
01439 float reportSummary = -1.0;
01440 if ( nValidChannels != 0 )
01441 reportSummary = 1.0 - float(nGlobalErrors)/float(nValidChannels);
01442 me = dqmStore_->get(prefixME_ + "/EventInfo/reportSummary");
01443 if ( me ) me->Fill(reportSummary);
01444
01445 char histo[200];
01446
01447 for (int i = 0; i < 18; i++) {
01448 float reportSummaryEE = -1.0;
01449 if ( nValidChannelsEE[i] != 0 )
01450 reportSummaryEE = 1.0 - float(nGlobalErrorsEE[i])/float(nValidChannelsEE[i]);
01451 sprintf(histo, "EcalEndcap_%s", Numbers::sEE(i+1).c_str());
01452 me = dqmStore_->get(prefixME_ + "/EventInfo/reportSummaryContents/" + histo);
01453 if ( me ) me->Fill(reportSummaryEE);
01454 }
01455
01456 me = dqmStore_->get(prefixME_ + "/EventInfo/reportSummaryMap");
01457 if ( me ) {
01458
01459 int nValidChannelsTT[2][20][20];
01460 int nGlobalErrorsTT[2][20][20];
01461 int nOutOfGeometryTT[2][20][20];
01462 for ( int jxdcc = 0; jxdcc < 20; jxdcc++ ) {
01463 for ( int jydcc = 0; jydcc < 20; jydcc++ ) {
01464 for ( int iside = 0; iside < 2; iside++ ) {
01465 nValidChannelsTT[iside][jxdcc][jydcc] = 0;
01466 nGlobalErrorsTT[iside][jxdcc][jydcc] = 0;
01467 nOutOfGeometryTT[iside][jxdcc][jydcc] = 0;
01468 }
01469 }
01470 }
01471
01472 for ( int jx = 1; jx <= 100; jx++ ) {
01473 for ( int jy = 1; jy <= 100; jy++ ) {
01474 for ( int iside = 0; iside < 2; iside++ ) {
01475
01476 int jxdcc = (jx-1)/5+1;
01477 int jydcc = (jy-1)/5+1;
01478
01479 float xval = meGlobalSummary_[iside]->getBinContent( jx, jy );
01480
01481 if ( xval >= 0 && xval <= 5 ) {
01482 if ( xval != 2 && xval != 5 ) ++nValidChannelsTT[iside][jxdcc-1][jydcc-1];
01483 if ( xval == 0 ) ++nGlobalErrorsTT[iside][jxdcc-1][jydcc-1];
01484 } else {
01485 nOutOfGeometryTT[iside][jxdcc-1][jydcc-1]++;
01486 }
01487
01488 }
01489 }
01490 }
01491
01492 for ( int jxdcc = 0; jxdcc < 20; jxdcc++ ) {
01493 for ( int jydcc = 0; jydcc < 20; jydcc++ ) {
01494 for ( int iside = 0; iside < 2; iside++ ) {
01495
01496 float xval = -1.0;
01497 if ( nOutOfGeometryTT[iside][jxdcc][jydcc] < 25 ) {
01498 if ( nValidChannelsTT[iside][jxdcc][jydcc] != 0 )
01499 xval = 1.0 - float(nGlobalErrorsTT[iside][jxdcc][jydcc])/float(nValidChannelsTT[iside][jxdcc][jydcc]);
01500 }
01501
01502 me->setBinContent( 20*iside+jxdcc+1, jydcc+1, xval );
01503
01504 }
01505 }
01506 }
01507
01508 }
01509
01510 }
01511
01512 void EESummaryClient::softReset(bool flag) {
01513
01514 }
01515
01516 void EESummaryClient::htmlOutput(int run, string& htmlDir, string& htmlName) {
01517
01518 if ( verbose_ ) cout << "Preparing EESummaryClient html output ..." << endl;
01519
01520 ofstream htmlFile;
01521
01522 htmlFile.open((htmlDir + htmlName).c_str());
01523
01524
01525 htmlFile << "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\"> " << endl;
01526 htmlFile << "<html> " << endl;
01527 htmlFile << "<head> " << endl;
01528 htmlFile << " <meta content=\"text/html; charset=ISO-8859-1\" " << endl;
01529 htmlFile << " https-equiv=\"content-type\"> " << endl;
01530 htmlFile << " <title>Monitor:Summary output</title> " << endl;
01531 htmlFile << "</head> " << endl;
01532 htmlFile << "<style type=\"text/css\"> td { font-weight: bold } </style>" << endl;
01533 htmlFile << "<body> " << endl;
01534
01535 htmlFile << "<a name=""top""></a>" << endl;
01536 htmlFile << "<h2>Run: " << endl;
01537 htmlFile << " <span " << endl;
01538 htmlFile << " style=\"color: rgb(0, 0, 153);\">" << run << "</span></h2>" << endl;
01539 htmlFile << "<h2>Monitoring task: <span " << endl;
01540 htmlFile << " style=\"color: rgb(0, 0, 153);\">SUMMARY</span></h2> " << endl;
01541 htmlFile << "<hr>" << endl;
01542 htmlFile << "<table border=1><tr><td bgcolor=red>channel has problems in this task</td>" << endl;
01543 htmlFile << "<td bgcolor=lime>channel has NO problems</td>" << endl;
01544 htmlFile << "<td bgcolor=yellow>channel is missing</td></table>" << endl;
01545 htmlFile << "<br>" << endl;
01546
01547
01548
01549 const int csize = 250;
01550
01551
01552
01553 int pCol3[7] = { 301, 302, 303, 304, 305, 306, 307 };
01554 int pCol4[10];
01555 for ( int i = 0; i < 10; i++ ) pCol4[i] = 401+i;
01556
01557
01558 TH2C labelGrid1("labelGrid1","label grid for EE -", 10, 0., 100., 10, 0., 100.);
01559
01560 for ( int i=1; i<=10; i++) {
01561 for ( int j=1; j<=10; j++) {
01562 labelGrid1.SetBinContent(i, j, -10);
01563 }
01564 }
01565
01566 labelGrid1.SetBinContent(2, 5, -3);
01567 labelGrid1.SetBinContent(2, 7, -2);
01568 labelGrid1.SetBinContent(4, 9, -1);
01569 labelGrid1.SetBinContent(7, 9, -9);
01570 labelGrid1.SetBinContent(9, 7, -8);
01571 labelGrid1.SetBinContent(9, 5, -7);
01572 labelGrid1.SetBinContent(8, 3, -6);
01573 labelGrid1.SetBinContent(6, 2, -5);
01574 labelGrid1.SetBinContent(3, 3, -4);
01575
01576 labelGrid1.SetMarkerSize(2);
01577 labelGrid1.SetMinimum(-9.01);
01578 labelGrid1.SetMaximum(-0.01);
01579
01580 TH2C labelGrid2("labelGrid2","label grid for EE +", 10, 0., 100., 10, 0., 100.);
01581
01582 for ( int i=1; i<=10; i++) {
01583 for ( int j=1; j<=10; j++) {
01584 labelGrid2.SetBinContent(i, j, -10);
01585 }
01586 }
01587
01588 labelGrid2.SetBinContent(2, 5, +3);
01589 labelGrid2.SetBinContent(2, 7, +2);
01590 labelGrid2.SetBinContent(4, 9, +1);
01591 labelGrid2.SetBinContent(7, 9, +9);
01592 labelGrid2.SetBinContent(9, 7, +8);
01593 labelGrid2.SetBinContent(9, 5, +7);
01594 labelGrid2.SetBinContent(8, 3, +6);
01595 labelGrid2.SetBinContent(5, 2, +5);
01596 labelGrid2.SetBinContent(3, 3, +4);
01597
01598 labelGrid2.SetMarkerSize(2);
01599 labelGrid2.SetMinimum(+0.01);
01600 labelGrid2.SetMaximum(+9.01);
01601
01602 string imgNameMapI[2], imgNameMapO[2];
01603 string imgNameMapSF[2];
01604 string imgNameMapPO[2];
01605 string imgNameMapLL1[2], imgNameMapLL1_PN[2];
01606 string imgNameMapLD[2], imgNameMapLD_PN[2];
01607 string imgNameMapP[2], imgNameMapP_PN[2];
01608 string imgNameMapTP[2], imgNameMapTP_PN[2];
01609 string imgNameMapC[2];
01610 string imgNameMapTM[2];
01611 string imgNameMapTTEt[2];
01612 string imgNameMapTTEmulError[2];
01613 string imgName, meName;
01614 string imgNameMapGS[2];
01615
01616 TCanvas* cMap = new TCanvas("cMap", "Temp", int(1.5*csize), int(1.5*csize));
01617
01618 float saveHeigth = gStyle->GetTitleH();
01619 gStyle->SetTitleH(0.07);
01620 float saveFontSize = gStyle->GetTitleFontSize();
01621 gStyle->SetTitleFontSize(14);
01622
01623 TH2F* obj2f;
01624
01625 gStyle->SetPaintTextFormat("+g");
01626
01627 imgNameMapI[0] = "";
01628
01629 obj2f = 0;
01630 obj2f = UtilsClient::getHisto<TH2F*>( meIntegrity_[0] );
01631
01632 if ( obj2f ) {
01633
01634 meName = obj2f->GetName();
01635
01636 replace(meName.begin(), meName.end(), ' ', '_');
01637 imgNameMapI[0] = meName + ".png";
01638 imgName = htmlDir + imgNameMapI[0];
01639
01640 cMap->cd();
01641 gStyle->SetOptStat(" ");
01642 gStyle->SetPalette(7, pCol3);
01643 cMap->SetGridx();
01644 cMap->SetGridy();
01645 obj2f->SetMinimum(-0.00000001);
01646 obj2f->SetMaximum(7.0);
01647 obj2f->GetXaxis()->SetLabelSize(0.03);
01648 obj2f->GetYaxis()->SetLabelSize(0.03);
01649 obj2f->Draw("col");
01650 labelGrid1.Draw("text,same");
01651 cMap->SetBit(TGraph::kClipFrame);
01652 TLine l;
01653 l.SetLineWidth(1);
01654 for ( int i=0; i<201; i=i+1) {
01655 if ( (Numbers::ixSectorsEE[i]!=0 || Numbers::iySectorsEE[i]!=0) && (Numbers::ixSectorsEE[i+1]!=0 || Numbers::iySectorsEE[i+1]!=0) ) {
01656 l.DrawLine(Numbers::ixSectorsEE[i], Numbers::iySectorsEE[i], Numbers::ixSectorsEE[i+1], Numbers::iySectorsEE[i+1]);
01657 }
01658 }
01659 cMap->Update();
01660 cMap->SaveAs(imgName.c_str());
01661
01662 }
01663
01664 imgNameMapI[1] = "";
01665
01666 obj2f = 0;
01667 obj2f = UtilsClient::getHisto<TH2F*>( meIntegrity_[1] );
01668
01669 if ( obj2f ) {
01670
01671 meName = obj2f->GetName();
01672
01673 replace(meName.begin(), meName.end(), ' ', '_');
01674 imgNameMapI[1] = meName + ".png";
01675 imgName = htmlDir + imgNameMapI[1];
01676
01677 cMap->cd();
01678 gStyle->SetOptStat(" ");
01679 gStyle->SetPalette(7, pCol3);
01680 cMap->SetGridx();
01681 cMap->SetGridy();
01682 obj2f->SetMinimum(-0.00000001);
01683 obj2f->SetMaximum(7.0);
01684 obj2f->GetXaxis()->SetLabelSize(0.03);
01685 obj2f->GetYaxis()->SetLabelSize(0.03);
01686 obj2f->Draw("col");
01687 labelGrid2.Draw("text,same");
01688 cMap->SetBit(TGraph::kClipFrame);
01689 TLine l;
01690 l.SetLineWidth(1);
01691 for ( int i=0; i<201; i=i+1) {
01692 if ( (Numbers::ixSectorsEE[i]!=0 || Numbers::iySectorsEE[i]!=0) && (Numbers::ixSectorsEE[i+1]!=0 || Numbers::iySectorsEE[i+1]!=0) ) {
01693 l.DrawLine(Numbers::ixSectorsEE[i], Numbers::iySectorsEE[i], Numbers::ixSectorsEE[i+1], Numbers::iySectorsEE[i+1]);
01694 }
01695 }
01696 cMap->Update();
01697 cMap->SaveAs(imgName.c_str());
01698
01699 }
01700
01701 imgNameMapO[0] = "";
01702
01703 obj2f = 0;
01704 obj2f = UtilsClient::getHisto<TH2F*>( meOccupancy_[0] );
01705
01706 if ( obj2f ) {
01707
01708 meName = obj2f->GetName();
01709
01710 replace(meName.begin(), meName.end(), ' ', '_');
01711 imgNameMapO[0] = meName + ".png";
01712 imgName = htmlDir + imgNameMapO[0];
01713
01714 cMap->cd();
01715 gStyle->SetOptStat(" ");
01716 gStyle->SetPalette(10, pCol4);
01717 cMap->SetGridx();
01718 cMap->SetGridy();
01719 obj2f->SetMinimum(0.0);
01720 obj2f->GetXaxis()->SetLabelSize(0.03);
01721 obj2f->GetYaxis()->SetLabelSize(0.03);
01722 obj2f->GetZaxis()->SetLabelSize(0.03);
01723 obj2f->Draw("colz");
01724 labelGrid1.Draw("text,same");
01725 cMap->SetBit(TGraph::kClipFrame);
01726 TLine l;
01727 l.SetLineWidth(1);
01728 for ( int i=0; i<201; i=i+1) {
01729 if ( (Numbers::ixSectorsEE[i]!=0 || Numbers::iySectorsEE[i]!=0) && (Numbers::ixSectorsEE[i+1]!=0 || Numbers::iySectorsEE[i+1]!=0) ) {
01730 l.DrawLine(Numbers::ixSectorsEE[i], Numbers::iySectorsEE[i], Numbers::ixSectorsEE[i+1], Numbers::iySectorsEE[i+1]);
01731 }
01732 }
01733 cMap->Update();
01734 cMap->SaveAs(imgName.c_str());
01735
01736 }
01737
01738 imgNameMapO[1] = "";
01739
01740 obj2f = 0;
01741 obj2f = UtilsClient::getHisto<TH2F*>( meOccupancy_[1] );
01742
01743 if ( obj2f ) {
01744
01745 meName = obj2f->GetName();
01746
01747 replace(meName.begin(), meName.end(), ' ', '_');
01748 imgNameMapO[1] = meName + ".png";
01749 imgName = htmlDir + imgNameMapO[1];
01750
01751 cMap->cd();
01752 gStyle->SetOptStat(" ");
01753 gStyle->SetPalette(10, pCol4);
01754 cMap->SetGridx();
01755 cMap->SetGridy();
01756 obj2f->SetMinimum(0.0);
01757 obj2f->GetXaxis()->SetLabelSize(0.03);
01758 obj2f->GetYaxis()->SetLabelSize(0.03);
01759 obj2f->GetZaxis()->SetLabelSize(0.03);
01760 obj2f->Draw("colz");
01761 labelGrid2.Draw("text,same");
01762 cMap->SetBit(TGraph::kClipFrame);
01763 TLine l;
01764 l.SetLineWidth(1);
01765 for ( int i=0; i<201; i=i+1) {
01766 if ( (Numbers::ixSectorsEE[i]!=0 || Numbers::iySectorsEE[i]!=0) && (Numbers::ixSectorsEE[i+1]!=0 || Numbers::iySectorsEE[i+1]!=0) ) {
01767 l.DrawLine(Numbers::ixSectorsEE[i], Numbers::iySectorsEE[i], Numbers::ixSectorsEE[i+1], Numbers::iySectorsEE[i+1]);
01768 }
01769 }
01770 cMap->Update();
01771 cMap->SaveAs(imgName.c_str());
01772
01773 }
01774
01775 imgNameMapSF[0] = "";
01776
01777 obj2f = 0;
01778 obj2f = UtilsClient::getHisto<TH2F*>( meStatusFlags_[0] );
01779
01780 if ( obj2f && obj2f->GetEntries() != 0 ) {
01781
01782 meName = obj2f->GetName();
01783
01784 replace(meName.begin(), meName.end(), ' ', '_');
01785 imgNameMapSF[0] = meName + ".png";
01786 imgName = htmlDir + imgNameMapSF[0];
01787
01788 cMap->cd();
01789 gStyle->SetOptStat(" ");
01790 gStyle->SetPalette(7, pCol3);
01791 cMap->SetGridx();
01792 cMap->SetGridy();
01793 obj2f->SetMinimum(-0.00000001);
01794 obj2f->SetMaximum(7.0);
01795 obj2f->GetXaxis()->SetLabelSize(0.03);
01796 obj2f->GetYaxis()->SetLabelSize(0.03);
01797 obj2f->Draw("col");
01798 labelGrid1.Draw("text,same");
01799 cMap->SetBit(TGraph::kClipFrame);
01800 TLine l;
01801 l.SetLineWidth(1);
01802 for ( int i=0; i<201; i=i+1) {
01803 if ( (Numbers::ixSectorsEE[i]!=0 || Numbers::iySectorsEE[i]!=0) && (Numbers::ixSectorsEE[i+1]!=0 || Numbers::iySectorsEE[i+1]!=0) ) {
01804 l.DrawLine(Numbers::ixSectorsEE[i], Numbers::iySectorsEE[i], Numbers::ixSectorsEE[i+1], Numbers::iySectorsEE[i+1]);
01805 }
01806 }
01807 cMap->Update();
01808 cMap->SaveAs(imgName.c_str());
01809
01810 }
01811
01812 imgNameMapSF[1] = "";
01813
01814 obj2f = 0;
01815 obj2f = UtilsClient::getHisto<TH2F*>( meStatusFlags_[1] );
01816
01817 if ( obj2f && obj2f->GetEntries() != 0 ) {
01818
01819 meName = obj2f->GetName();
01820
01821 replace(meName.begin(), meName.end(), ' ', '_');
01822 imgNameMapSF[1] = meName + ".png";
01823 imgName = htmlDir + imgNameMapSF[1];
01824
01825 cMap->cd();
01826 gStyle->SetOptStat(" ");
01827 gStyle->SetPalette(7, pCol3);
01828 cMap->SetGridx();
01829 cMap->SetGridy();
01830 obj2f->SetMinimum(-0.00000001);
01831 obj2f->SetMaximum(7.0);
01832 obj2f->GetXaxis()->SetLabelSize(0.03);
01833 obj2f->GetYaxis()->SetLabelSize(0.03);
01834 obj2f->Draw("col");
01835 labelGrid2.Draw("text,same");
01836 cMap->SetBit(TGraph::kClipFrame);
01837 TLine l;
01838 l.SetLineWidth(1);
01839 for ( int i=0; i<201; i=i+1) {
01840 if ( (Numbers::ixSectorsEE[i]!=0 || Numbers::iySectorsEE[i]!=0) && (Numbers::ixSectorsEE[i+1]!=0 || Numbers::iySectorsEE[i+1]!=0) ) {
01841 l.DrawLine(Numbers::ixSectorsEE[i], Numbers::iySectorsEE[i], Numbers::ixSectorsEE[i+1], Numbers::iySectorsEE[i+1]);
01842 }
01843 }
01844 cMap->Update();
01845 cMap->SaveAs(imgName.c_str());
01846
01847 }
01848
01849 imgNameMapPO[0] = "";
01850
01851 obj2f = 0;
01852 obj2f = UtilsClient::getHisto<TH2F*>( mePedestalOnline_[0] );
01853
01854 if ( obj2f && obj2f->GetEntries() != 0 ) {
01855
01856 meName = obj2f->GetName();
01857
01858 replace(meName.begin(), meName.end(), ' ', '_');
01859 imgNameMapPO[0] = meName + ".png";
01860 imgName = htmlDir + imgNameMapPO[0];
01861
01862 cMap->cd();
01863 gStyle->SetOptStat(" ");
01864 gStyle->SetPalette(7, pCol3);
01865 cMap->SetGridx();
01866 cMap->SetGridy();
01867 obj2f->SetMinimum(-0.00000001);
01868 obj2f->SetMaximum(7.0);
01869 obj2f->GetXaxis()->SetLabelSize(0.03);
01870 obj2f->GetYaxis()->SetLabelSize(0.03);
01871 obj2f->Draw("col");
01872 labelGrid1.Draw("text,same");
01873 cMap->SetBit(TGraph::kClipFrame);
01874 TLine l;
01875 l.SetLineWidth(1);
01876 for ( int i=0; i<201; i=i+1) {
01877 if ( (Numbers::ixSectorsEE[i]!=0 || Numbers::iySectorsEE[i]!=0) && (Numbers::ixSectorsEE[i+1]!=0 || Numbers::iySectorsEE[i+1]!=0) ) {
01878 l.DrawLine(Numbers::ixSectorsEE[i], Numbers::iySectorsEE[i], Numbers::ixSectorsEE[i+1], Numbers::iySectorsEE[i+1]);
01879 }
01880 }
01881 cMap->Update();
01882 cMap->SaveAs(imgName.c_str());
01883
01884 }
01885
01886 imgNameMapPO[1] = "";
01887
01888 obj2f = 0;
01889 obj2f = UtilsClient::getHisto<TH2F*>( mePedestalOnline_[1] );
01890
01891 if ( obj2f && obj2f->GetEntries() != 0 ) {
01892
01893 meName = obj2f->GetName();
01894
01895 replace(meName.begin(), meName.end(), ' ', '_');
01896 imgNameMapPO[1] = meName + ".png";
01897 imgName = htmlDir + imgNameMapPO[1];
01898
01899 cMap->cd();
01900 gStyle->SetOptStat(" ");
01901 gStyle->SetPalette(7, pCol3);
01902 cMap->SetGridx();
01903 cMap->SetGridy();
01904 obj2f->SetMinimum(-0.00000001);
01905 obj2f->SetMaximum(7.0);
01906 obj2f->GetXaxis()->SetLabelSize(0.03);
01907 obj2f->GetYaxis()->SetLabelSize(0.03);
01908 obj2f->Draw("col");
01909 labelGrid2.Draw("text,same");
01910 cMap->SetBit(TGraph::kClipFrame);
01911 TLine l;
01912 l.SetLineWidth(1);
01913 for ( int i=0; i<201; i=i+1) {
01914 if ( (Numbers::ixSectorsEE[i]!=0 || Numbers::iySectorsEE[i]!=0) && (Numbers::ixSectorsEE[i+1]!=0 || Numbers::iySectorsEE[i+1]!=0) ) {
01915 l.DrawLine(Numbers::ixSectorsEE[i], Numbers::iySectorsEE[i], Numbers::ixSectorsEE[i+1], Numbers::iySectorsEE[i+1]);
01916 }
01917 }
01918 cMap->Update();
01919 cMap->SaveAs(imgName.c_str());
01920
01921 }
01922
01923 imgNameMapLL1[0] = "";
01924
01925 obj2f = 0;
01926 obj2f = UtilsClient::getHisto<TH2F*>( meLaserL1_[0] );
01927
01928 if ( obj2f && obj2f->GetEntries() != 0 ) {
01929
01930 meName = obj2f->GetName();
01931
01932 replace(meName.begin(), meName.end(), ' ', '_');
01933 imgNameMapLL1[0] = meName + ".png";
01934 imgName = htmlDir + imgNameMapLL1[0];
01935
01936 cMap->cd();
01937 gStyle->SetOptStat(" ");
01938 gStyle->SetPalette(7, pCol3);
01939 cMap->SetGridx();
01940 cMap->SetGridy();
01941 obj2f->SetMinimum(-0.00000001);
01942 obj2f->SetMaximum(7.0);
01943 obj2f->GetXaxis()->SetLabelSize(0.03);
01944 obj2f->GetYaxis()->SetLabelSize(0.03);
01945 obj2f->Draw("col");
01946 labelGrid1.Draw("text,same");
01947 cMap->SetBit(TGraph::kClipFrame);
01948 TLine l;
01949 l.SetLineWidth(1);
01950 for ( int i=0; i<201; i=i+1) {
01951 if ( (Numbers::ixSectorsEE[i]!=0 || Numbers::iySectorsEE[i]!=0) && (Numbers::ixSectorsEE[i+1]!=0 || Numbers::iySectorsEE[i+1]!=0) ) {
01952 l.DrawLine(Numbers::ixSectorsEE[i], Numbers::iySectorsEE[i], Numbers::ixSectorsEE[i+1], Numbers::iySectorsEE[i+1]);
01953 }
01954 }
01955 cMap->Update();
01956 cMap->SaveAs(imgName.c_str());
01957
01958 }
01959
01960 imgNameMapLL1[1] = "";
01961
01962 obj2f = 0;
01963 obj2f = UtilsClient::getHisto<TH2F*>( meLaserL1_[1] );
01964
01965 if ( obj2f && obj2f->GetEntries() != 0 ) {
01966
01967 meName = obj2f->GetName();
01968
01969 replace(meName.begin(), meName.end(), ' ', '_');
01970 imgNameMapLL1[1] = meName + ".png";
01971 imgName = htmlDir + imgNameMapLL1[1];
01972
01973 cMap->cd();
01974 gStyle->SetOptStat(" ");
01975 gStyle->SetPalette(7, pCol3);
01976 cMap->SetGridx();
01977 cMap->SetGridy();
01978 obj2f->SetMinimum(-0.00000001);
01979 obj2f->SetMaximum(7.0);
01980 obj2f->GetXaxis()->SetLabelSize(0.03);
01981 obj2f->GetYaxis()->SetLabelSize(0.03);
01982 obj2f->Draw("col");
01983 labelGrid2.Draw("text,same");
01984 cMap->SetBit(TGraph::kClipFrame);
01985 TLine l;
01986 l.SetLineWidth(1);
01987 for ( int i=0; i<201; i=i+1) {
01988 if ( (Numbers::ixSectorsEE[i]!=0 || Numbers::iySectorsEE[i]!=0) && (Numbers::ixSectorsEE[i+1]!=0 || Numbers::iySectorsEE[i+1]!=0) ) {
01989 l.DrawLine(Numbers::ixSectorsEE[i], Numbers::iySectorsEE[i], Numbers::ixSectorsEE[i+1], Numbers::iySectorsEE[i+1]);
01990 }
01991 }
01992 cMap->Update();
01993 cMap->SaveAs(imgName.c_str());
01994
01995 }
01996
01997
01998 imgNameMapLL1_PN[0] = "";
01999 imgNameMapLL1_PN[1] = "";
02000
02001
02002 imgNameMapLD[0] = "";
02003
02004 obj2f = 0;
02005 obj2f = UtilsClient::getHisto<TH2F*>( meLedL1_[0] );
02006
02007 if ( obj2f && obj2f->GetEntries() != 0 ) {
02008
02009 meName = obj2f->GetName();
02010
02011 replace(meName.begin(), meName.end(), ' ', '_');
02012 imgNameMapLD[0] = meName + ".png";
02013 imgName = htmlDir + imgNameMapLD[0];
02014
02015 cMap->cd();
02016 gStyle->SetOptStat(" ");
02017 gStyle->SetPalette(7, pCol3);
02018 cMap->SetGridx();
02019 cMap->SetGridy();
02020 obj2f->SetMinimum(-0.00000001);
02021 obj2f->SetMaximum(7.0);
02022 obj2f->GetXaxis()->SetLabelSize(0.03);
02023 obj2f->GetYaxis()->SetLabelSize(0.03);
02024 obj2f->Draw("col");
02025 labelGrid1.Draw("text,same");
02026 cMap->SetBit(TGraph::kClipFrame);
02027 TLine l;
02028 l.SetLineWidth(1);
02029 for ( int i=0; i<201; i=i+1) {
02030 if ( (Numbers::ixSectorsEE[i]!=0 || Numbers::iySectorsEE[i]!=0) && (Numbers::ixSectorsEE[i+1]!=0 || Numbers::iySectorsEE[i+1]!=0) ) {
02031 l.DrawLine(Numbers::ixSectorsEE[i], Numbers::iySectorsEE[i], Numbers::ixSectorsEE[i+1], Numbers::iySectorsEE[i+1]);
02032 }
02033 }
02034 cMap->Update();
02035 cMap->SaveAs(imgName.c_str());
02036
02037 }
02038
02039 imgNameMapLD[1] = "";
02040
02041 obj2f = 0;
02042 obj2f = UtilsClient::getHisto<TH2F*>( meLedL1_[1] );
02043
02044 if ( obj2f && obj2f->GetEntries() != 0 ) {
02045
02046 meName = obj2f->GetName();
02047
02048 replace(meName.begin(), meName.end(), ' ', '_');
02049 imgNameMapLD[1] = meName + ".png";
02050 imgName = htmlDir + imgNameMapLD[1];
02051
02052 cMap->cd();
02053 gStyle->SetOptStat(" ");
02054 gStyle->SetPalette(7, pCol3);
02055 cMap->SetGridx();
02056 cMap->SetGridy();
02057 obj2f->SetMinimum(-0.00000001);
02058 obj2f->SetMaximum(7.0);
02059 obj2f->GetXaxis()->SetLabelSize(0.03);
02060 obj2f->GetYaxis()->SetLabelSize(0.03);
02061 obj2f->Draw("col");
02062 labelGrid2.Draw("text,same");
02063 cMap->SetBit(TGraph::kClipFrame);
02064 TLine l;
02065 l.SetLineWidth(1);
02066 for ( int i=0; i<201; i=i+1) {
02067 if ( (Numbers::ixSectorsEE[i]!=0 || Numbers::iySectorsEE[i]!=0) && (Numbers::ixSectorsEE[i+1]!=0 || Numbers::iySectorsEE[i+1]!=0) ) {
02068 l.DrawLine(Numbers::ixSectorsEE[i], Numbers::iySectorsEE[i], Numbers::ixSectorsEE[i+1], Numbers::iySectorsEE[i+1]);
02069 }
02070 }
02071 cMap->Update();
02072 cMap->SaveAs(imgName.c_str());
02073
02074 }
02075
02076
02077 imgNameMapLD_PN[0] = "";
02078 imgNameMapLD_PN[1] = "";
02079
02080
02081 imgNameMapP[0] = "";
02082
02083 obj2f = 0;
02084 obj2f = UtilsClient::getHisto<TH2F*>( mePedestal_[0] );
02085
02086 if ( obj2f && obj2f->GetEntries() != 0 ) {
02087
02088 meName = obj2f->GetName();
02089
02090 replace(meName.begin(), meName.end(), ' ', '_');
02091 imgNameMapP[0] = meName + ".png";
02092 imgName = htmlDir + imgNameMapP[0];
02093
02094 cMap->cd();
02095 gStyle->SetOptStat(" ");
02096 gStyle->SetPalette(7, pCol3);
02097 cMap->SetGridx();
02098 cMap->SetGridy();
02099 obj2f->SetMinimum(-0.00000001);
02100 obj2f->SetMaximum(7.0);
02101 obj2f->GetXaxis()->SetLabelSize(0.03);
02102 obj2f->GetYaxis()->SetLabelSize(0.03);
02103 obj2f->Draw("col");
02104 labelGrid1.Draw("text,same");
02105 cMap->SetBit(TGraph::kClipFrame);
02106 TLine l;
02107 l.SetLineWidth(1);
02108 for ( int i=0; i<201; i=i+1) {
02109 if ( (Numbers::ixSectorsEE[i]!=0 || Numbers::iySectorsEE[i]!=0) && (Numbers::ixSectorsEE[i+1]!=0 || Numbers::iySectorsEE[i+1]!=0) ) {
02110 l.DrawLine(Numbers::ixSectorsEE[i], Numbers::iySectorsEE[i], Numbers::ixSectorsEE[i+1], Numbers::iySectorsEE[i+1]);
02111 }
02112 }
02113 cMap->Update();
02114 cMap->SaveAs(imgName.c_str());
02115
02116 }
02117
02118 imgNameMapP[1] = "";
02119
02120 obj2f = 0;
02121 obj2f = UtilsClient::getHisto<TH2F*>( mePedestal_[1] );
02122
02123 if ( obj2f && obj2f->GetEntries() != 0 ) {
02124
02125 meName = obj2f->GetName();
02126
02127 replace(meName.begin(), meName.end(), ' ', '_');
02128 imgNameMapP[1] = meName + ".png";
02129 imgName = htmlDir + imgNameMapP[1];
02130
02131 cMap->cd();
02132 gStyle->SetOptStat(" ");
02133 gStyle->SetPalette(7, pCol3);
02134 cMap->SetGridx();
02135 cMap->SetGridy();
02136 obj2f->SetMinimum(-0.00000001);
02137 obj2f->SetMaximum(7.0);
02138 obj2f->GetXaxis()->SetLabelSize(0.03);
02139 obj2f->GetYaxis()->SetLabelSize(0.03);
02140 obj2f->Draw("col");
02141 labelGrid2.Draw("text,same");
02142 cMap->SetBit(TGraph::kClipFrame);
02143 TLine l;
02144 l.SetLineWidth(1);
02145 for ( int i=0; i<201; i=i+1) {
02146 if ( (Numbers::ixSectorsEE[i]!=0 || Numbers::iySectorsEE[i]!=0) && (Numbers::ixSectorsEE[i+1]!=0 || Numbers::iySectorsEE[i+1]!=0) ) {
02147 l.DrawLine(Numbers::ixSectorsEE[i], Numbers::iySectorsEE[i], Numbers::ixSectorsEE[i+1], Numbers::iySectorsEE[i+1]);
02148 }
02149 }
02150 cMap->Update();
02151 cMap->SaveAs(imgName.c_str());
02152
02153 }
02154
02155
02156 imgNameMapP_PN[0] = "";
02157 imgNameMapP_PN[1] = "";
02158
02159
02160 imgNameMapTP[0] = "";
02161
02162 obj2f = 0;
02163 obj2f = UtilsClient::getHisto<TH2F*>( meTestPulse_[0] );
02164
02165 if ( obj2f && obj2f->GetEntries() != 0 ) {
02166
02167 meName = obj2f->GetName();
02168
02169 replace(meName.begin(), meName.end(), ' ', '_');
02170 imgNameMapTP[0] = meName + ".png";
02171 imgName = htmlDir + imgNameMapTP[0];
02172
02173 cMap->cd();
02174 gStyle->SetOptStat(" ");
02175 gStyle->SetPalette(7, pCol3);
02176 cMap->SetGridx();
02177 cMap->SetGridy();
02178 obj2f->SetMinimum(-0.00000001);
02179 obj2f->SetMaximum(7.0);
02180 obj2f->GetXaxis()->SetLabelSize(0.03);
02181 obj2f->GetYaxis()->SetLabelSize(0.03);
02182 obj2f->Draw("col");
02183 labelGrid1.Draw("text,same");
02184 cMap->SetBit(TGraph::kClipFrame);
02185 TLine l;
02186 l.SetLineWidth(1);
02187 for ( int i=0; i<201; i=i+1) {
02188 if ( (Numbers::ixSectorsEE[i]!=0 || Numbers::iySectorsEE[i]!=0) && (Numbers::ixSectorsEE[i+1]!=0 || Numbers::iySectorsEE[i+1]!=0) ) {
02189 l.DrawLine(Numbers::ixSectorsEE[i], Numbers::iySectorsEE[i], Numbers::ixSectorsEE[i+1], Numbers::iySectorsEE[i+1]);
02190 }
02191 }
02192 cMap->Update();
02193 cMap->SaveAs(imgName.c_str());
02194
02195 }
02196
02197 imgNameMapTP[1] = "";
02198
02199 obj2f = 0;
02200 obj2f = UtilsClient::getHisto<TH2F*>( meTestPulse_[1] );
02201
02202 if ( obj2f && obj2f->GetEntries() != 0 ) {
02203
02204 meName = obj2f->GetName();
02205
02206 replace(meName.begin(), meName.end(), ' ', '_');
02207 imgNameMapTP[1] = meName + ".png";
02208 imgName = htmlDir + imgNameMapTP[1];
02209
02210 cMap->cd();
02211 gStyle->SetOptStat(" ");
02212 gStyle->SetPalette(7, pCol3);
02213 cMap->SetGridx();
02214 cMap->SetGridy();
02215 obj2f->SetMinimum(-0.00000001);
02216 obj2f->SetMaximum(7.0);
02217 obj2f->GetXaxis()->SetLabelSize(0.03);
02218 obj2f->GetYaxis()->SetLabelSize(0.03);
02219 obj2f->Draw("col");
02220 labelGrid2.Draw("text,same");
02221 cMap->SetBit(TGraph::kClipFrame);
02222 TLine l;
02223 l.SetLineWidth(1);
02224 for ( int i=0; i<201; i=i+1) {
02225 if ( (Numbers::ixSectorsEE[i]!=0 || Numbers::iySectorsEE[i]!=0) && (Numbers::ixSectorsEE[i+1]!=0 || Numbers::iySectorsEE[i+1]!=0) ) {
02226 l.DrawLine(Numbers::ixSectorsEE[i], Numbers::iySectorsEE[i], Numbers::ixSectorsEE[i+1], Numbers::iySectorsEE[i+1]);
02227 }
02228 }
02229 cMap->Update();
02230 cMap->SaveAs(imgName.c_str());
02231
02232 }
02233
02234
02235 imgNameMapTP_PN[0] = "";
02236 imgNameMapTP_PN[1] = "";
02237
02238
02239 imgNameMapC[0] = "";
02240
02241 obj2f = 0;
02242 obj2f = UtilsClient::getHisto<TH2F*>( meCosmic_[0] );
02243
02244 if ( obj2f && obj2f->GetEntries() != 0 ) {
02245
02246 meName = obj2f->GetName();
02247
02248 replace(meName.begin(), meName.end(), ' ', '_');
02249 imgNameMapC[0] = meName + ".png";
02250 imgName = htmlDir + imgNameMapC[0];
02251
02252 cMap->cd();
02253 gStyle->SetOptStat(" ");
02254 gStyle->SetPalette(10, pCol4);
02255 cMap->SetGridx();
02256 cMap->SetGridy();
02257 obj2f->SetMinimum(0.0);
02258 obj2f->GetXaxis()->SetLabelSize(0.03);
02259 obj2f->GetYaxis()->SetLabelSize(0.03);
02260 obj2f->GetZaxis()->SetLabelSize(0.03);
02261 obj2f->Draw("colz");
02262 labelGrid1.Draw("text,same");
02263 cMap->SetBit(TGraph::kClipFrame);
02264 TLine l;
02265 l.SetLineWidth(1);
02266 for ( int i=0; i<201; i=i+1) {
02267 if ( (Numbers::ixSectorsEE[i]!=0 || Numbers::iySectorsEE[i]!=0) && (Numbers::ixSectorsEE[i+1]!=0 || Numbers::iySectorsEE[i+1]!=0) ) {
02268 l.DrawLine(Numbers::ixSectorsEE[i], Numbers::iySectorsEE[i], Numbers::ixSectorsEE[i+1], Numbers::iySectorsEE[i+1]);
02269 }
02270 }
02271 cMap->Update();
02272 cMap->SaveAs(imgName.c_str());
02273
02274 }
02275
02276 imgNameMapC[1] = "";
02277
02278 obj2f = 0;
02279 obj2f = UtilsClient::getHisto<TH2F*>( meCosmic_[1] );
02280
02281 if ( obj2f && obj2f->GetEntries() != 0 ) {
02282
02283 meName = obj2f->GetName();
02284
02285 replace(meName.begin(), meName.end(), ' ', '_');
02286 imgNameMapC[1] = meName + ".png";
02287 imgName = htmlDir + imgNameMapC[1];
02288
02289 cMap->cd();
02290 gStyle->SetOptStat(" ");
02291 gStyle->SetPalette(10, pCol4);
02292 cMap->SetGridx();
02293 cMap->SetGridy();
02294 obj2f->SetMinimum(0.0);
02295 obj2f->GetXaxis()->SetLabelSize(0.03);
02296 obj2f->GetYaxis()->SetLabelSize(0.03);
02297 obj2f->GetZaxis()->SetLabelSize(0.03);
02298 obj2f->Draw("colz");
02299 labelGrid2.Draw("text,same");
02300 cMap->SetBit(TGraph::kClipFrame);
02301 TLine l;
02302 l.SetLineWidth(1);
02303 for ( int i=0; i<201; i=i+1) {
02304 if ( (Numbers::ixSectorsEE[i]!=0 || Numbers::iySectorsEE[i]!=0) && (Numbers::ixSectorsEE[i+1]!=0 || Numbers::iySectorsEE[i+1]!=0) ) {
02305 l.DrawLine(Numbers::ixSectorsEE[i], Numbers::iySectorsEE[i], Numbers::ixSectorsEE[i+1], Numbers::iySectorsEE[i+1]);
02306 }
02307 }
02308 cMap->Update();
02309 cMap->SaveAs(imgName.c_str());
02310
02311 }
02312
02313 imgNameMapTM[0] = "";
02314
02315 obj2f = 0;
02316 obj2f = UtilsClient::getHisto<TH2F*>( meTiming_[0] );
02317
02318 if ( obj2f && obj2f->GetEntries() != 0 ) {
02319
02320 meName = obj2f->GetName();
02321
02322 replace(meName.begin(), meName.end(), ' ', '_');
02323 imgNameMapTM[0] = meName + ".png";
02324 imgName = htmlDir + imgNameMapTM[0];
02325
02326 cMap->cd();
02327 gStyle->SetOptStat(" ");
02328 gStyle->SetPalette(7, pCol3);
02329 cMap->SetGridx();
02330 cMap->SetGridy();
02331 obj2f->SetMinimum(-0.00000001);
02332 obj2f->SetMaximum(7.0);
02333 obj2f->GetXaxis()->SetLabelSize(0.03);
02334 obj2f->GetYaxis()->SetLabelSize(0.03);
02335 obj2f->Draw("col");
02336 labelGrid1.Draw("text,same");
02337 cMap->SetBit(TGraph::kClipFrame);
02338 TLine l;
02339 l.SetLineWidth(1);
02340 for ( int i=0; i<201; i=i+1) {
02341 if ( (Numbers::ixSectorsEE[i]!=0 || Numbers::iySectorsEE[i]!=0) && (Numbers::ixSectorsEE[i+1]!=0 || Numbers::iySectorsEE[i+1]!=0) ) {
02342 l.DrawLine(Numbers::ixSectorsEE[i], Numbers::iySectorsEE[i], Numbers::ixSectorsEE[i+1], Numbers::iySectorsEE[i+1]);
02343 }
02344 }
02345 cMap->Update();
02346 cMap->SaveAs(imgName.c_str());
02347
02348 }
02349
02350 imgNameMapTM[1] = "";
02351
02352 obj2f = 0;
02353 obj2f = UtilsClient::getHisto<TH2F*>( meTiming_[1] );
02354
02355 if ( obj2f && obj2f->GetEntries() != 0 ) {
02356
02357 meName = obj2f->GetName();
02358
02359 replace(meName.begin(), meName.end(), ' ', '_');
02360 imgNameMapTM[1] = meName + ".png";
02361 imgName = htmlDir + imgNameMapTM[1];
02362
02363 cMap->cd();
02364 gStyle->SetOptStat(" ");
02365 gStyle->SetPalette(7, pCol3);
02366 cMap->SetGridx();
02367 cMap->SetGridy();
02368 obj2f->SetMinimum(-0.00000001);
02369 obj2f->SetMaximum(7.0);
02370 obj2f->GetXaxis()->SetLabelSize(0.03);
02371 obj2f->GetYaxis()->SetLabelSize(0.03);
02372 obj2f->Draw("col");
02373 labelGrid1.Draw("text,same");
02374 cMap->SetBit(TGraph::kClipFrame);
02375 TLine l;
02376 l.SetLineWidth(1);
02377 for ( int i=0; i<201; i=i+1) {
02378 if ( (Numbers::ixSectorsEE[i]!=0 || Numbers::iySectorsEE[i]!=0) && (Numbers::ixSectorsEE[i+1]!=0 || Numbers::iySectorsEE[i+1]!=0) ) {
02379 l.DrawLine(Numbers::ixSectorsEE[i], Numbers::iySectorsEE[i], Numbers::ixSectorsEE[i+1], Numbers::iySectorsEE[i+1]);
02380 }
02381 }
02382 cMap->Update();
02383 cMap->SaveAs(imgName.c_str());
02384
02385 }
02386
02387 imgNameMapTTEmulError[0] = "";
02388
02389 obj2f = 0;
02390 obj2f = UtilsClient::getHisto<TH2F*>( meTriggerTowerEmulError_[0] );
02391
02392 if ( obj2f && obj2f->GetEntries() != 0 ) {
02393
02394 meName = obj2f->GetName();
02395
02396 replace(meName.begin(), meName.end(), ' ', '_');
02397 imgNameMapTTEmulError[0] = meName + ".png";
02398 imgName = htmlDir + imgNameMapTTEmulError[0];
02399
02400 cMap->cd();
02401 gStyle->SetOptStat(" ");
02402 gStyle->SetPalette(7, pCol3);
02403 cMap->SetGridx();
02404 cMap->SetGridy();
02405 obj2f->SetMinimum(-0.00000001);
02406 obj2f->SetMaximum(7.0);
02407 obj2f->GetXaxis()->SetLabelSize(0.03);
02408 obj2f->GetYaxis()->SetLabelSize(0.03);
02409 obj2f->Draw("col");
02410 labelGrid1.Draw("text,same");
02411 cMap->SetBit(TGraph::kClipFrame);
02412 TLine l;
02413 l.SetLineWidth(1);
02414 for ( int i=0; i<201; i=i+1) {
02415 if ( (Numbers::ixSectorsEE[i]!=0 || Numbers::iySectorsEE[i]!=0) && (Numbers::ixSectorsEE[i+1]!=0 || Numbers::iySectorsEE[i+1]!=0) ) {
02416 l.DrawLine(Numbers::ixSectorsEE[i], Numbers::iySectorsEE[i], Numbers::ixSectorsEE[i+1], Numbers::iySectorsEE[i+1]);
02417 }
02418 }
02419 cMap->Update();
02420 cMap->SaveAs(imgName.c_str());
02421
02422 }
02423
02424 imgNameMapTTEmulError[1] = "";
02425
02426 obj2f = 0;
02427 obj2f = UtilsClient::getHisto<TH2F*>( meTriggerTowerEmulError_[1] );
02428
02429 if ( obj2f && obj2f->GetEntries() != 0 ) {
02430
02431 meName = obj2f->GetName();
02432
02433 replace(meName.begin(), meName.end(), ' ', '_');
02434 imgNameMapTTEmulError[1] = meName + ".png";
02435 imgName = htmlDir + imgNameMapTTEmulError[1];
02436
02437 cMap->cd();
02438 gStyle->SetOptStat(" ");
02439 gStyle->SetPalette(7, pCol3);
02440 cMap->SetGridx();
02441 cMap->SetGridy();
02442 obj2f->SetMinimum(-0.00000001);
02443 obj2f->SetMaximum(7.0);
02444 obj2f->GetXaxis()->SetLabelSize(0.03);
02445 obj2f->GetYaxis()->SetLabelSize(0.03);
02446 obj2f->Draw("col");
02447 labelGrid1.Draw("text,same");
02448 cMap->SetBit(TGraph::kClipFrame);
02449 TLine l;
02450 l.SetLineWidth(1);
02451 for ( int i=0; i<201; i=i+1) {
02452 if ( (Numbers::ixSectorsEE[i]!=0 || Numbers::iySectorsEE[i]!=0) && (Numbers::ixSectorsEE[i+1]!=0 || Numbers::iySectorsEE[i+1]!=0) ) {
02453 l.DrawLine(Numbers::ixSectorsEE[i], Numbers::iySectorsEE[i], Numbers::ixSectorsEE[i+1], Numbers::iySectorsEE[i+1]);
02454 }
02455 }
02456 cMap->Update();
02457 cMap->SaveAs(imgName.c_str());
02458
02459 }
02460
02461 imgNameMapTTEt[0] = "";
02462
02463 obj2f = 0;
02464 obj2f = UtilsClient::getHisto<TH2F*>( meTriggerTowerEt_[0] );
02465
02466 if ( obj2f && obj2f->GetEntries() != 0 ) {
02467
02468 meName = obj2f->GetName();
02469
02470 replace(meName.begin(), meName.end(), ' ', '_');
02471 imgNameMapTTEt[0] = meName + ".png";
02472 imgName = htmlDir + imgNameMapTTEt[0];
02473
02474 cMap->cd();
02475 gStyle->SetOptStat(" ");
02476 gStyle->SetPalette(10, pCol4);
02477 cMap->SetGridx();
02478 cMap->SetGridy();
02479 obj2f->SetMinimum(0.0);
02480 obj2f->GetXaxis()->SetLabelSize(0.03);
02481 obj2f->GetYaxis()->SetLabelSize(0.03);
02482 obj2f->GetZaxis()->SetLabelSize(0.03);
02483 obj2f->Draw("colz");
02484 labelGrid1.Draw("text,same");
02485 cMap->SetBit(TGraph::kClipFrame);
02486 TLine l;
02487 l.SetLineWidth(1);
02488 for ( int i=0; i<201; i=i+1) {
02489 if ( (Numbers::ixSectorsEE[i]!=0 || Numbers::iySectorsEE[i]!=0) && (Numbers::ixSectorsEE[i+1]!=0 || Numbers::iySectorsEE[i+1]!=0) ) {
02490 l.DrawLine(Numbers::ixSectorsEE[i], Numbers::iySectorsEE[i], Numbers::ixSectorsEE[i+1], Numbers::iySectorsEE[i+1]);
02491 }
02492 }
02493 cMap->Update();
02494 cMap->SaveAs(imgName.c_str());
02495
02496 }
02497
02498 imgNameMapTTEt[1] = "";
02499
02500 obj2f = 0;
02501 obj2f = UtilsClient::getHisto<TH2F*>( meTriggerTowerEt_[1] );
02502
02503 if ( obj2f && obj2f->GetEntries() != 0 ) {
02504
02505 meName = obj2f->GetName();
02506
02507 replace(meName.begin(), meName.end(), ' ', '_');
02508 imgNameMapTTEt[1] = meName + ".png";
02509 imgName = htmlDir + imgNameMapTTEt[1];
02510
02511 cMap->cd();
02512 gStyle->SetOptStat(" ");
02513 gStyle->SetPalette(10, pCol4);
02514 cMap->SetGridx();
02515 cMap->SetGridy();
02516 obj2f->SetMinimum(0.0);
02517 obj2f->GetXaxis()->SetLabelSize(0.03);
02518 obj2f->GetYaxis()->SetLabelSize(0.03);
02519 obj2f->GetZaxis()->SetLabelSize(0.03);
02520 obj2f->Draw("colz");
02521 labelGrid1.Draw("text,same");
02522 cMap->SetBit(TGraph::kClipFrame);
02523 TLine l;
02524 l.SetLineWidth(1);
02525 for ( int i=0; i<201; i=i+1) {
02526 if ( (Numbers::ixSectorsEE[i]!=0 || Numbers::iySectorsEE[i]!=0) && (Numbers::ixSectorsEE[i+1]!=0 || Numbers::iySectorsEE[i+1]!=0) ) {
02527 l.DrawLine(Numbers::ixSectorsEE[i], Numbers::iySectorsEE[i], Numbers::ixSectorsEE[i+1], Numbers::iySectorsEE[i+1]);
02528 }
02529 }
02530 cMap->Update();
02531 cMap->SaveAs(imgName.c_str());
02532
02533 }
02534
02535 imgNameMapGS[0] = "";
02536
02537 obj2f = 0;
02538 obj2f = UtilsClient::getHisto<TH2F*>( meGlobalSummary_[0] );
02539
02540 if ( obj2f ) {
02541
02542 meName = obj2f->GetName();
02543
02544 replace(meName.begin(), meName.end(), ' ', '_');
02545 imgNameMapGS[0] = meName + ".png";
02546 imgName = htmlDir + imgNameMapGS[0];
02547
02548 cMap->cd();
02549 gStyle->SetOptStat(" ");
02550 gStyle->SetPalette(7, pCol3);
02551 cMap->SetGridx();
02552 cMap->SetGridy();
02553 obj2f->SetMinimum(-0.00000001);
02554 obj2f->SetMaximum(7.0);
02555 obj2f->GetXaxis()->SetLabelSize(0.03);
02556 obj2f->GetYaxis()->SetLabelSize(0.03);
02557 obj2f->Draw("col");
02558 labelGrid1.Draw("text,same");
02559 cMap->SetBit(TGraph::kClipFrame);
02560 TLine l;
02561 l.SetLineWidth(1);
02562 for ( int i=0; i<201; i=i+1) {
02563 if ( (Numbers::ixSectorsEE[i]!=0 || Numbers::iySectorsEE[i]!=0) && (Numbers::ixSectorsEE[i+1]!=0 || Numbers::iySectorsEE[i+1]!=0) ) {
02564 l.DrawLine(Numbers::ixSectorsEE[i], Numbers::iySectorsEE[i], Numbers::ixSectorsEE[i+1], Numbers::iySectorsEE[i+1]);
02565 }
02566 }
02567 cMap->Update();
02568 cMap->SaveAs(imgName.c_str());
02569
02570 }
02571
02572 imgNameMapGS[1] = "";
02573
02574 obj2f = 0;
02575 obj2f = UtilsClient::getHisto<TH2F*>( meGlobalSummary_[1] );
02576
02577 if ( obj2f ) {
02578
02579 meName = obj2f->GetName();
02580
02581 replace(meName.begin(), meName.end(), ' ', '_');
02582 imgNameMapGS[1] = meName + ".png";
02583 imgName = htmlDir + imgNameMapGS[1];
02584
02585 cMap->cd();
02586 gStyle->SetOptStat(" ");
02587 gStyle->SetPalette(7, pCol3);
02588 cMap->SetGridx();
02589 cMap->SetGridy();
02590 obj2f->SetMinimum(-0.00000001);
02591 obj2f->SetMaximum(7.0);
02592 obj2f->GetXaxis()->SetLabelSize(0.03);
02593 obj2f->GetYaxis()->SetLabelSize(0.03);
02594 obj2f->Draw("col");
02595 labelGrid2.Draw("text,same");
02596 cMap->SetBit(TGraph::kClipFrame);
02597 TLine l;
02598 l.SetLineWidth(1);
02599 for ( int i=0; i<201; i=i+1) {
02600 if ( (Numbers::ixSectorsEE[i]!=0 || Numbers::iySectorsEE[i]!=0) && (Numbers::ixSectorsEE[i+1]!=0 || Numbers::iySectorsEE[i+1]!=0) ) {
02601 l.DrawLine(Numbers::ixSectorsEE[i], Numbers::iySectorsEE[i], Numbers::ixSectorsEE[i+1], Numbers::iySectorsEE[i+1]);
02602 }
02603 }
02604 cMap->Update();
02605 cMap->SaveAs(imgName.c_str());
02606
02607 }
02608
02609 gStyle->SetPaintTextFormat();
02610
02611 if ( imgNameMapI[0].size() != 0 || imgNameMapI[1].size() != 0 ) {
02612 htmlFile << "<table border=\"0\" cellspacing=\"0\" " << endl;
02613 htmlFile << "cellpadding=\"10\" align=\"center\"> " << endl;
02614 htmlFile << "<tr align=\"center\">" << endl;
02615 if ( imgNameMapI[0].size() != 0 ) htmlFile << "<td><img src=\"" << imgNameMapI[0] << "\" usemap=\"#Integrity_0\" border=0></td>" << endl;
02616 if ( imgNameMapI[1].size() != 0 ) htmlFile << "<td><img src=\"" << imgNameMapI[1] << "\" usemap=\"#Integrity_1\" border=0></td>" << endl;
02617 htmlFile << "</tr>" << endl;
02618 htmlFile << "</table>" << endl;
02619 htmlFile << "<br>" << endl;
02620 }
02621
02622 if ( imgNameMapO[0].size() != 0 || imgNameMapO[1].size() != 0 ) {
02623 htmlFile << "<table border=\"0\" cellspacing=\"0\" " << endl;
02624 htmlFile << "cellpadding=\"10\" align=\"center\"> " << endl;
02625 htmlFile << "<tr align=\"center\">" << endl;
02626 if ( imgNameMapO[0].size() != 0 ) htmlFile << "<td><img src=\"" << imgNameMapO[0] << "\" usemap=\"#Occupancy_0\" border=0></td>" << endl;
02627 if ( imgNameMapO[1].size() != 0 ) htmlFile << "<td><img src=\"" << imgNameMapO[1] << "\" usemap=\"#Occupancy_1\" border=0></td>" << endl;
02628 htmlFile << "</tr>" << endl;
02629 htmlFile << "</table>" << endl;
02630 htmlFile << "<br>" << endl;
02631 }
02632
02633 if ( imgNameMapSF[0].size() != 0 || imgNameMapSF[1].size() != 0 ) {
02634 htmlFile << "<table border=\"0\" cellspacing=\"0\" " << endl;
02635 htmlFile << "cellpadding=\"10\" align=\"center\"> " << endl;
02636 htmlFile << "<tr align=\"center\">" << endl;
02637 if ( imgNameMapSF[0].size() != 0 ) htmlFile << "<td><img src=\"" << imgNameMapSF[0] << "\" usemap=\"#StatusFlags_0\" border=0></td>" << endl;
02638 if ( imgNameMapSF[1].size() != 0 ) htmlFile << "<td><img src=\"" << imgNameMapSF[1] << "\" usemap=\"#StatusFlags_1\" border=0></td>" << endl;
02639 htmlFile << "</tr>" << endl;
02640 htmlFile << "</table>" << endl;
02641 htmlFile << "<br>" << endl;
02642 }
02643
02644 if ( imgNameMapPO[0].size() != 0 || imgNameMapPO[1].size() != 0 ) {
02645 htmlFile << "<table border=\"0\" cellspacing=\"0\" " << endl;
02646 htmlFile << "cellpadding=\"10\" align=\"center\"> " << endl;
02647 htmlFile << "<tr align=\"center\">" << endl;
02648 if ( imgNameMapPO[0].size() != 0 ) htmlFile << "<td><img src=\"" << imgNameMapPO[0] << "\" usemap=\"#PedestalOnline_0\" border=0></td>" << endl;
02649 if ( imgNameMapPO[1].size() != 0 ) htmlFile << "<td><img src=\"" << imgNameMapPO[1] << "\" usemap=\"#PedestalOnline_1\" border=0></td>" << endl;
02650 htmlFile << "</tr>" << endl;
02651 htmlFile << "</table>" << endl;
02652 htmlFile << "<br>" << endl;
02653 }
02654
02655 if ( imgNameMapLL1[0].size() != 0 || imgNameMapLL1[1].size() != 0 ) {
02656 htmlFile << "<table border=\"0\" cellspacing=\"0\" " << endl;
02657 htmlFile << "cellpadding=\"10\" align=\"center\"> " << endl;
02658 htmlFile << "<tr align=\"center\">" << endl;
02659 if ( imgNameMapLL1[0].size() != 0 ) htmlFile << "<td><img src=\"" << imgNameMapLL1[0] << "\" usemap=\"#LaserL1_0\" border=0></td>" << endl;
02660 if ( imgNameMapLL1[1].size() != 0 ) htmlFile << "<td><img src=\"" << imgNameMapLL1[1] << "\" usemap=\"#LaserL1_1\" border=0></td>" << endl;
02661 htmlFile << "</tr>" << endl;
02662 htmlFile << "</table>" << endl;
02663 htmlFile << "<br>" << endl;
02664 }
02665
02666 if ( imgNameMapLD[0].size() != 0 || imgNameMapLD[1].size() != 0 ) {
02667 htmlFile << "<table border=\"0\" cellspacing=\"0\" " << endl;
02668 htmlFile << "cellpadding=\"10\" align=\"center\"> " << endl;
02669 htmlFile << "<tr align=\"center\">" << endl;
02670 if ( imgNameMapLD[0].size() != 0 ) htmlFile << "<td><img src=\"" << imgNameMapLD[0] << "\" usemap=\"#Led_0\" border=0></td>" << endl;
02671 if ( imgNameMapLD[1].size() != 0 ) htmlFile << "<td><img src=\"" << imgNameMapLD[1] << "\" usemap=\"#Led_1\" border=0></td>" << endl;
02672 htmlFile << "</tr>" << endl;
02673 htmlFile << "</table>" << endl;
02674 htmlFile << "<br>" << endl;
02675 }
02676
02677 if ( imgNameMapP[0].size() != 0 || imgNameMapP[1].size() != 0 ) {
02678 htmlFile << "<table border=\"0\" cellspacing=\"0\" " << endl;
02679 htmlFile << "cellpadding=\"10\" align=\"center\"> " << endl;
02680 htmlFile << "<tr align=\"center\">" << endl;
02681 if ( imgNameMapP[0].size() != 0 ) htmlFile << "<td><img src=\"" << imgNameMapP[0] << "\" usemap=\"#Pedestal_0\" border=0></td>" << endl;
02682 if ( imgNameMapP[1].size() != 0 ) htmlFile << "<td><img src=\"" << imgNameMapP[1] << "\" usemap=\"#Pedestal_1\" border=0></td>" << endl;
02683 htmlFile << "</tr>" << endl;
02684 htmlFile << "</table>" << endl;
02685 htmlFile << "<br>" << endl;
02686 }
02687
02688 if ( imgNameMapTP[0].size() != 0 || imgNameMapTP[1].size() != 0 ) {
02689 htmlFile << "<table border=\"0\" cellspacing=\"0\" " << endl;
02690 htmlFile << "cellpadding=\"10\" align=\"center\"> " << endl;
02691 htmlFile << "<tr align=\"center\">" << endl;
02692 if ( imgNameMapTP[0].size() != 0 ) htmlFile << "<td><img src=\"" << imgNameMapTP[0] << "\" usemap=\"#TestPulse_0\" border=0></td>" << endl;
02693 if ( imgNameMapTP[1].size() != 0 ) htmlFile << "<td><img src=\"" << imgNameMapTP[1] << "\" usemap=\"#TestPulse_1\" border=0></td>" << endl;
02694 htmlFile << "</tr>" << endl;
02695 htmlFile << "</table>" << endl;
02696 htmlFile << "<br>" << endl;
02697 }
02698
02699 if ( imgNameMapC[0].size() != 0 || imgNameMapC[1].size() != 0 ) {
02700 htmlFile << "<table border=\"0\" cellspacing=\"0\" " << endl;
02701 htmlFile << "cellpadding=\"10\" align=\"center\"> " << endl;
02702 htmlFile << "<tr align=\"center\">" << endl;
02703 if ( imgNameMapC[0].size() != 0 ) htmlFile << "<td><img src=\"" << imgNameMapC[0] << "\" usemap=\"#Cosmic_0\" border=0></td>" << endl;
02704 if ( imgNameMapC[1].size() != 0 ) htmlFile << "<td><img src=\"" << imgNameMapC[1] << "\" usemap=\"#Cosmic_1\" border=0></td>" << endl;
02705 htmlFile << "</tr>" << endl;
02706 htmlFile << "</table>" << endl;
02707 htmlFile << "<br>" << endl;
02708 }
02709
02710 if ( imgNameMapTM[0].size() != 0 || imgNameMapTM[1].size() != 0 ) {
02711 htmlFile << "<table border=\"0\" cellspacing=\"0\" " << endl;
02712 htmlFile << "cellpadding=\"10\" align=\"center\"> " << endl;
02713 htmlFile << "<tr align=\"center\">" << endl;
02714 if ( imgNameMapTM[0].size() != 0 ) htmlFile << "<td><img src=\"" << imgNameMapTM[0] << "\" usemap=\"#Timing_0\" border=0></td>" << endl;
02715 if ( imgNameMapTM[1].size() != 0 ) htmlFile << "<td><img src=\"" << imgNameMapTM[1] << "\" usemap=\"#Timing_1\" border=0></td>" << endl;
02716 htmlFile << "</tr>" << endl;
02717 htmlFile << "</table>" << endl;
02718 htmlFile << "<br>" << endl;
02719 }
02720
02721 if ( imgNameMapTTEmulError[0].size() != 0 || imgNameMapTTEmulError[1].size() != 0 ) {
02722 htmlFile << "<table border=\"0\" cellspacing=\"0\" " << endl;
02723 htmlFile << "cellpadding=\"10\" align=\"center\"> " << endl;
02724 htmlFile << "<tr align=\"center\">" << endl;
02725 if ( imgNameMapTTEmulError[0].size() != 0 ) htmlFile << "<td><img src=\"" << imgNameMapTTEmulError[0] << "\" usemap=\"#TriggerTower_0\" border=0></td>" << endl;
02726 if ( imgNameMapTTEmulError[1].size() != 0 ) htmlFile << "<td><img src=\"" << imgNameMapTTEmulError[1] << "\" usemap=\"#TriggerTower_1\" border=0></td>" << endl;
02727 htmlFile << "</tr>" << endl;
02728 htmlFile << "</table>" << endl;
02729 htmlFile << "<br>" << endl;
02730 }
02731
02732 if ( imgNameMapTTEt[0].size() != 0 || imgNameMapTTEt[1].size() != 0 ) {
02733 htmlFile << "<table border=\"0\" cellspacing=\"0\" " << endl;
02734 htmlFile << "cellpadding=\"10\" align=\"center\"> " << endl;
02735 htmlFile << "<tr align=\"center\">" << endl;
02736 if ( imgNameMapTTEt[0].size() != 0 ) htmlFile << "<td><img src=\"" << imgNameMapTTEt[0] << "\" usemap=\"#TriggerTower_0\" border=0></td>" << endl;
02737 if ( imgNameMapTTEt[1].size() != 0 ) htmlFile << "<td><img src=\"" << imgNameMapTTEt[1] << "\" usemap=\"#TriggerTower_1\" border=0></td>" << endl;
02738 htmlFile << "</tr>" << endl;
02739 htmlFile << "</table>" << endl;
02740 htmlFile << "<br>" << endl;
02741 }
02742
02743 delete cMap;
02744
02745 gStyle->SetPaintTextFormat();
02746
02747 if ( imgNameMapI[0].size() != 0 || imgNameMapI[1].size() != 0 ) this->writeMap( htmlFile, "Integrity" );
02748 if ( imgNameMapO[0].size() != 0 || imgNameMapO[1].size() != 0 ) this->writeMap( htmlFile, "Occupancy" );
02749 if ( imgNameMapSF[0].size() != 0 || imgNameMapSF[1].size() != 0 ) this->writeMap( htmlFile, "StatusFlags" );
02750 if ( imgNameMapPO[0].size() != 0 || imgNameMapPO[1].size() != 0 ) this->writeMap( htmlFile, "PedestalOnline" );
02751 if ( imgNameMapLL1[0].size() != 0 || imgNameMapLL1[1].size() != 0 ) this->writeMap( htmlFile, "LaserL1" );
02752 if ( imgNameMapLD[0].size() != 0 || imgNameMapLD[1].size() != 0 ) this->writeMap( htmlFile, "Led" );
02753 if ( imgNameMapP[0].size() != 0 || imgNameMapP[1].size() != 0 ) this->writeMap( htmlFile, "Pedestal" );
02754 if ( imgNameMapTP[0].size() != 0 || imgNameMapTP[1].size() != 0 ) this->writeMap( htmlFile, "TestPulse" );
02755
02756 if ( imgNameMapC[0].size() != 0 || imgNameMapC[1].size() != 0 ) this->writeMap( htmlFile, "Cosmic" );
02757 if ( imgNameMapTM[0].size() != 0 || imgNameMapTM[1].size() != 0 ) this->writeMap( htmlFile, "Timing" );
02758 if ( imgNameMapTTEt[0].size() != 0 || imgNameMapTTEt[1].size() != 0 ) this->writeMap( htmlFile, "TriggerTower" );
02759 if ( imgNameMapTTEmulError[0].size() != 0 || imgNameMapTTEmulError[1].size() != 0 ) this->writeMap( htmlFile, "TriggerTower" );
02760
02761
02762 htmlFile << "</body> " << endl;
02763 htmlFile << "</html> " << endl;
02764
02765 htmlFile.close();
02766
02767 gStyle->SetTitleH( saveHeigth );
02768 gStyle->SetTitleFontSize( saveFontSize );
02769
02770 }
02771
02772 void EESummaryClient::writeMap( ofstream& hf, const char* mapname ) {
02773
02774 map<string, string> refhtml;
02775 refhtml["Integrity"] = "EEIntegrityClient.html";
02776 refhtml["Occupancy"] = "EEIntegrityClient.html";
02777 refhtml["StatusFlags"] = "EEStatusFlagsClient.html";
02778 refhtml["PedestalOnline"] = "EEPedestalOnlineClient.html";
02779 refhtml["LaserL1"] = "EELaserClient.html";
02780 refhtml["Led"] = "EELedClient.html";
02781 refhtml["Pedestal"] = "EEPedestalClient.html";
02782 refhtml["TestPulse"] = "EETestPulseClient.html";
02783
02784 refhtml["Cosmic"] = "EECosmicClient.html";
02785 refhtml["Timing"] = "EETimingClient.html";
02786 refhtml["TriggerTower"] = "EETriggerTowerClient.html";
02787
02788 const int A0 = 38;
02789 const int A1 = 334;
02790 const int B0 = 33;
02791 const int B1 = 312;
02792
02793 const int C0 = 34;
02794 const int C1 = 148;
02795
02796
02797
02798 hf << "<map name=\"" << mapname << "_0\">" << endl;
02799 for( unsigned int sm=0; sm<superModules_.size(); sm++ ) {
02800 if( superModules_[sm] >= 1 && superModules_[sm] <= 9 ) {
02801 int i=superModules_[sm]-9-1;
02802 int j=superModules_[sm]-9;
02803 int x0 = (A0+A1)/2 + int(C0*cos(M_PI/2-3*2*M_PI/9+i*2*M_PI/9));
02804 int x1 = (A0+A1)/2 + int(C0*cos(M_PI/2-3*2*M_PI/9+j*2*M_PI/9));
02805 int x2 = (A0+A1)/2 + int(C1*cos(M_PI/2-3*2*M_PI/9+j*2*M_PI/9));
02806 int x3 = (A0+A1)/2 + int(C1*cos(M_PI/2-3*2*M_PI/9+i*2*M_PI/9));
02807 int y0 = (B0+B1)/2 - int(C0*sin(M_PI/2-3*2*M_PI/9+i*2*M_PI/9));
02808 int y1 = (B0+B1)/2 - int(C0*sin(M_PI/2-3*2*M_PI/9+j*2*M_PI/9));
02809 int y2 = (B0+B1)/2 - int(C1*sin(M_PI/2-3*2*M_PI/9+j*2*M_PI/9));
02810 int y3 = (B0+B1)/2 - int(C1*sin(M_PI/2-3*2*M_PI/9+i*2*M_PI/9));
02811 hf << "<area title=\"" << Numbers::sEE(superModules_[sm])
02812 << "\" shape=\"poly\" href=\"" << refhtml[mapname]
02813 << "#" << Numbers::sEE(superModules_[sm])
02814 << "\" coords=\"" << x0 << ", " << y0 << ", "
02815 << x1 << ", " << y1 << ", "
02816 << x2 << ", " << y2 << ", "
02817 << x3 << ", " << y3 << "\">"
02818 << endl;
02819 }
02820 }
02821 hf << "</map>" << endl;
02822
02823
02824
02825 hf << "<map name=\"" << mapname << "_1\">" << endl;
02826 for( unsigned int sm=0; sm<superModules_.size(); sm++ ) {
02827 if( superModules_[sm] >= 10 && superModules_[sm] <= 18 ) {
02828 int i=superModules_[sm]-9-1;
02829 int j=superModules_[sm]-9;
02830 int x0 = (A0+A1)/2 + int(C0*cos(M_PI/2-3*2*M_PI/9+i*2*M_PI/9));
02831 int x1 = (A0+A1)/2 + int(C0*cos(M_PI/2-3*2*M_PI/9+j*2*M_PI/9));
02832 int x2 = (A0+A1)/2 + int(C1*cos(M_PI/2-3*2*M_PI/9+j*2*M_PI/9));
02833 int x3 = (A0+A1)/2 + int(C1*cos(M_PI/2-3*2*M_PI/9+i*2*M_PI/9));
02834 int y0 = (B0+B1)/2 - int(C0*sin(M_PI/2-3*2*M_PI/9+i*2*M_PI/9));
02835 int y1 = (B0+B1)/2 - int(C0*sin(M_PI/2-3*2*M_PI/9+j*2*M_PI/9));
02836 int y2 = (B0+B1)/2 - int(C1*sin(M_PI/2-3*2*M_PI/9+j*2*M_PI/9));
02837 int y3 = (B0+B1)/2 - int(C1*sin(M_PI/2-3*2*M_PI/9+i*2*M_PI/9));
02838 hf << "<area title=\"" << Numbers::sEE(superModules_[sm])
02839 << "\" shape=\"poly\" href=\"" << refhtml[mapname]
02840 << "#" << Numbers::sEE(superModules_[sm])
02841 << "\" coords=\"" << x0 << ", " << y0 << ", "
02842 << x1 << ", " << y1 << ", "
02843 << x2 << ", " << y2 << ", "
02844 << x3 << ", " << y3 << "\">"
02845 << endl;
02846 }
02847 }
02848 hf << "</map>" << endl;
02849
02850 }
02851