CMS 3D CMS Logo

EESummaryClient.cc

Go to the documentation of this file.
00001 /*
00002  * \file EESummaryClient.cc
00003  *
00004  * $Date: 2008/12/04 13:54:56 $
00005  * $Revision: 1.153 $
00006  * \author G. Della Ricca
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   // cloneME switch
00052   cloneME_ = ps.getUntrackedParameter<bool>("cloneME", true);
00053 
00054   // verbose switch
00055   verbose_ = ps.getUntrackedParameter<bool>("verbose", true);
00056 
00057   // debug switch
00058   debug_ = ps.getUntrackedParameter<bool>("debug", false);
00059 
00060   // prefixME path
00061   prefixME_ = ps.getUntrackedParameter<string>("prefixME", "");
00062 
00063   // enableCleanup_ switch
00064   enableCleanup_ = ps.getUntrackedParameter<bool>("enableCleanup", false);
00065 
00066   // vector of selected Super Modules (Defaults to all 18).
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   // summary maps
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   // summary errors
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   // summary for DQM GUI
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     //    MonitorElement *me_f[6], *me_fg[2];
00814 //    MonitorElement *me_04, *me_05;
00815 
00816     TH2F* h2;
00817     TProfile2D* h2d;
00818 
00819     // fill the gain value priority map<id,priority>
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               // do not propagate the flag bits to the summary for now
01160 //               for ( int iflag=0; iflag<6; iflag++ ) {
01161 
01162 //                 me_f[iflag] = eetttc->me_m01_[ism-1][iflag];
01163 
01164 //                 if ( me_f[iflag] ) {
01165 
01166 //                   float emulFlagErrorVal = me_f[iflag]->getBinContent( ix, iy );
01167 //                   if ( emulFlagErrorVal!=0 ) xval = 0;
01168 
01169 //                 }
01170 
01171 //               }
01172 
01173 //               for ( int ifg=0; ifg<2; ifg++) {
01174 
01175 //                 me_fg[ifg] = eetttc->me_n01_[ism-1][ifg];
01176 //                 if ( me_fg[ifg] ) {
01177 
01178 //                   float emulFineGrainVetoErrorVal = me_fg[ifg]->getBinContent( ix, iy );
01179 //                   if ( emulFineGrainVetoErrorVal!=0 ) xval = 0;
01180 
01181 //                 }
01182 
01183 //               }
01184 
01185               if ( xval!=0 ) xval = 1;
01186 
01187             }
01188 
01189             // see fix below
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       // PN's summaries
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     } // loop on SM
01228 
01229     // fix TPG quality plots
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   } // loop on clients
01261 
01262   // The global-summary
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         // float val_ee = meTriggerTowerEmulError_[0]->getBinContent(jx,jy); // removed temporarily from the global summary
01286         float val_ee = 1;
01287 
01288         // turn each dark color (masked channel) to bright green
01289         // for laser & timing & trigger turn also yellow into bright green
01290 
01291         //  0/3 = red/dark red
01292         //  1/4 = green/dark green
01293         //  2/5 = yellow/dark yellow
01294         //  6   = unknown
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         // if the SM is entirely not read, the masked channels
01313         // are reverted back to yellow
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         // float val_ee = meTriggerTowerEmulError_[1]->getBinContent(jx,jy); // removed temporarily from the global summary
01367         float val_ee = 1;
01368 
01369         // turn each dark color to bright green
01370         // for laser & timing & trigger turn also yellow into bright green
01371 
01372         //  0/3 = red/dark red
01373         //  1/4 = green/dark green
01374         //  2/5 = yellow/dark yellow
01375         //  6   = unknown
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         // if the SM is entirely not read, the masked channels
01394         // are reverted back in yellow
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   // html page header
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   //htmlFile << "<br>  " << endl;
01535   htmlFile << "<a name=""top""></a>" << endl;
01536   htmlFile << "<h2>Run:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" << endl;
01537   htmlFile << "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span " << endl;
01538   htmlFile << " style=\"color: rgb(0, 0, 153);\">" << run << "</span></h2>" << endl;
01539   htmlFile << "<h2>Monitoring task:&nbsp;&nbsp;&nbsp;&nbsp; <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   // Produce the plots to be shown as .png files from existing histograms
01548 
01549   const int csize = 250;
01550 
01551 //  const double histMax = 1.e15;
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   // dummy histogram labelling the SM's
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   // html page footer
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   // EE-
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   // EE+
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 

Generated on Tue Jun 9 17:32:51 2009 for CMSSW by  doxygen 1.5.4