CMS 3D CMS Logo

EELaserClient.cc

Go to the documentation of this file.
00001 /*
00002  * \file EELaserClient.cc
00003  *
00004  * $Date: 2008/10/07 18:34:23 $
00005  * $Revision: 1.106 $
00006  * \author G. Della Ricca
00007  * \author G. Franzoni
00008  *
00009 */
00010 
00011 #include <memory>
00012 #include <iostream>
00013 #include <fstream>
00014 #include <iomanip>
00015 #include <math.h>
00016 
00017 #include "TCanvas.h"
00018 #include "TStyle.h"
00019 #include "TGraph.h"
00020 #include "TLine.h"
00021 
00022 #include "DQMServices/Core/interface/DQMStore.h"
00023 
00024 #include "OnlineDB/EcalCondDB/interface/MonLaserBlueDat.h"
00025 #include "OnlineDB/EcalCondDB/interface/MonLaserGreenDat.h"
00026 #include "OnlineDB/EcalCondDB/interface/MonLaserIRedDat.h"
00027 #include "OnlineDB/EcalCondDB/interface/MonLaserRedDat.h"
00028 #include "OnlineDB/EcalCondDB/interface/MonPNBlueDat.h"
00029 #include "OnlineDB/EcalCondDB/interface/MonPNGreenDat.h"
00030 #include "OnlineDB/EcalCondDB/interface/MonPNIRedDat.h"
00031 #include "OnlineDB/EcalCondDB/interface/MonPNRedDat.h"
00032 #include "OnlineDB/EcalCondDB/interface/MonTimingLaserBlueCrystalDat.h"
00033 #include "OnlineDB/EcalCondDB/interface/MonTimingLaserGreenCrystalDat.h"
00034 #include "OnlineDB/EcalCondDB/interface/MonTimingLaserIRedCrystalDat.h"
00035 #include "OnlineDB/EcalCondDB/interface/MonTimingLaserRedCrystalDat.h"
00036 #include "OnlineDB/EcalCondDB/interface/RunCrystalErrorsDat.h"
00037 #include "OnlineDB/EcalCondDB/interface/RunTTErrorsDat.h"
00038 #include "OnlineDB/EcalCondDB/interface/RunPNErrorsDat.h"
00039 
00040 #include "OnlineDB/EcalCondDB/interface/EcalCondDBInterface.h"
00041 
00042 #include "CondTools/Ecal/interface/EcalErrorDictionary.h"
00043 
00044 #include "DQM/EcalCommon/interface/EcalErrorMask.h"
00045 #include "DQM/EcalCommon/interface/UtilsClient.h"
00046 #include "DQM/EcalCommon/interface/LogicID.h"
00047 #include "DQM/EcalCommon/interface/Numbers.h"
00048 
00049 #include <DQM/EcalEndcapMonitorClient/interface/EELaserClient.h>
00050 
00051 using namespace cms;
00052 using namespace edm;
00053 using namespace std;
00054 
00055 EELaserClient::EELaserClient(const ParameterSet& ps) {
00056 
00057   // cloneME switch
00058   cloneME_ = ps.getUntrackedParameter<bool>("cloneME", true);
00059 
00060   // verbose switch
00061   verbose_ = ps.getUntrackedParameter<bool>("verbose", true);
00062 
00063   // debug switch
00064   debug_ = ps.getUntrackedParameter<bool>("debug", false);
00065 
00066   // prefixME path
00067   prefixME_ = ps.getUntrackedParameter<string>("prefixME", "");
00068 
00069   // enableCleanup_ switch
00070   enableCleanup_ = ps.getUntrackedParameter<bool>("enableCleanup", false);
00071 
00072   // vector of selected Super Modules (Defaults to all 18).
00073   superModules_.reserve(18);
00074   for ( unsigned int i = 1; i <= 18; i++ ) superModules_.push_back(i);
00075   superModules_ = ps.getUntrackedParameter<vector<int> >("superModules", superModules_);
00076 
00077   for ( unsigned int i=0; i<superModules_.size(); i++ ) {
00078 
00079     int ism = superModules_[i];
00080 
00081     h01_[ism-1] = 0;
00082     h02_[ism-1] = 0;
00083     h03_[ism-1] = 0;
00084     h04_[ism-1] = 0;
00085     h05_[ism-1] = 0;
00086     h06_[ism-1] = 0;
00087     h07_[ism-1] = 0;
00088     h08_[ism-1] = 0;
00089 
00090     h09_[ism-1] = 0;
00091     h10_[ism-1] = 0;
00092     h11_[ism-1] = 0;
00093     h12_[ism-1] = 0;
00094 
00095     h13_[ism-1] = 0;
00096     h14_[ism-1] = 0;
00097     h15_[ism-1] = 0;
00098     h16_[ism-1] = 0;
00099     h17_[ism-1] = 0;
00100     h18_[ism-1] = 0;
00101     h19_[ism-1] = 0;
00102     h20_[ism-1] = 0;
00103 
00104     h21_[ism-1] = 0;
00105     h22_[ism-1] = 0;
00106     h23_[ism-1] = 0;
00107     h24_[ism-1] = 0;
00108 
00109     hs01_[ism-1] = 0;
00110     hs02_[ism-1] = 0;
00111     hs03_[ism-1] = 0;
00112     hs04_[ism-1] = 0;
00113 
00114     hs05_[ism-1] = 0;
00115     hs06_[ism-1] = 0;
00116     hs07_[ism-1] = 0;
00117     hs08_[ism-1] = 0;
00118 
00119     i01_[ism-1] = 0;
00120     i02_[ism-1] = 0;
00121     i03_[ism-1] = 0;
00122     i04_[ism-1] = 0;
00123     i05_[ism-1] = 0;
00124     i06_[ism-1] = 0;
00125     i07_[ism-1] = 0;
00126     i08_[ism-1] = 0;
00127 
00128     i09_[ism-1] = 0;
00129     i10_[ism-1] = 0;
00130     i11_[ism-1] = 0;
00131     i12_[ism-1] = 0;
00132     i13_[ism-1] = 0;
00133     i14_[ism-1] = 0;
00134     i15_[ism-1] = 0;
00135     i16_[ism-1] = 0;
00136 
00137   }
00138 
00139   for ( unsigned int i=0; i<superModules_.size(); i++ ) {
00140 
00141     int ism = superModules_[i];
00142 
00143     meg01_[ism-1] = 0;
00144     meg02_[ism-1] = 0;
00145     meg03_[ism-1] = 0;
00146     meg04_[ism-1] = 0;
00147 
00148     meg05_[ism-1] = 0;
00149     meg06_[ism-1] = 0;
00150     meg07_[ism-1] = 0;
00151     meg08_[ism-1] = 0;
00152     meg09_[ism-1] = 0;
00153     meg10_[ism-1] = 0;
00154     meg11_[ism-1] = 0;
00155     meg12_[ism-1] = 0;
00156 
00157     mea01_[ism-1] = 0;
00158     mea02_[ism-1] = 0;
00159     mea03_[ism-1] = 0;
00160     mea04_[ism-1] = 0;
00161     mea05_[ism-1] = 0;
00162     mea06_[ism-1] = 0;
00163     mea07_[ism-1] = 0;
00164     mea08_[ism-1] = 0;
00165 
00166     met01_[ism-1] = 0;
00167     met02_[ism-1] = 0;
00168     met03_[ism-1] = 0;
00169     met04_[ism-1] = 0;
00170     met05_[ism-1] = 0;
00171     met06_[ism-1] = 0;
00172     met07_[ism-1] = 0;
00173     met08_[ism-1] = 0;
00174 
00175     metav01_[ism-1] = 0;
00176     metav02_[ism-1] = 0;
00177     metav03_[ism-1] = 0;
00178     metav04_[ism-1] = 0;
00179     metav05_[ism-1] = 0;
00180     metav06_[ism-1] = 0;
00181     metav07_[ism-1] = 0;
00182     metav08_[ism-1] = 0;
00183 
00184     metrms01_[ism-1] = 0;
00185     metrms02_[ism-1] = 0;
00186     metrms03_[ism-1] = 0;
00187     metrms04_[ism-1] = 0;
00188     metrms05_[ism-1] = 0;
00189     metrms06_[ism-1] = 0;
00190     metrms07_[ism-1] = 0;
00191     metrms08_[ism-1] = 0;
00192 
00193     meaopn01_[ism-1] = 0;
00194     meaopn02_[ism-1] = 0;
00195     meaopn03_[ism-1] = 0;
00196     meaopn04_[ism-1] = 0;
00197     meaopn05_[ism-1] = 0;
00198     meaopn06_[ism-1] = 0;
00199     meaopn07_[ism-1] = 0;
00200     meaopn08_[ism-1] = 0;
00201 
00202     mepnprms01_[ism-1] = 0;
00203     mepnprms02_[ism-1] = 0;
00204     mepnprms03_[ism-1] = 0;
00205     mepnprms04_[ism-1] = 0;
00206     mepnprms05_[ism-1] = 0;
00207     mepnprms06_[ism-1] = 0;
00208     mepnprms07_[ism-1] = 0;
00209     mepnprms08_[ism-1] = 0;
00210 
00211     me_hs01_[ism-1] = 0;
00212     me_hs02_[ism-1] = 0;
00213     me_hs03_[ism-1] = 0;
00214     me_hs04_[ism-1] = 0;
00215     me_hs05_[ism-1] = 0;
00216     me_hs06_[ism-1] = 0;
00217     me_hs07_[ism-1] = 0;
00218     me_hs08_[ism-1] = 0;
00219 
00220   }
00221 
00222   percentVariation_ = 0.4;
00223 
00224   amplitudeThreshold_ = 10.;
00225 
00226   amplitudeThresholdPnG01_ = 50.;
00227   amplitudeThresholdPnG16_ = 50.;
00228 
00229   pedPnExpectedMean_[0] = 750.0;
00230   pedPnExpectedMean_[1] = 750.0;
00231 
00232   pedPnDiscrepancyMean_[0] = 100.0;
00233   pedPnDiscrepancyMean_[1] = 100.0;
00234 
00235   pedPnRMSThreshold_[0] = 1.0; // value at h4; expected nominal: 0.5
00236   pedPnRMSThreshold_[1] = 3.0; // value at h4; expected nominal: 1.6
00237 
00238 }
00239 
00240 EELaserClient::~EELaserClient() {
00241 
00242 }
00243 
00244 void EELaserClient::beginJob(DQMStore* dqmStore) {
00245 
00246   dqmStore_ = dqmStore;
00247 
00248   if ( debug_ ) cout << "EELaserClient: beginJob" << endl;
00249 
00250   ievt_ = 0;
00251   jevt_ = 0;
00252 
00253 }
00254 
00255 void EELaserClient::beginRun(void) {
00256 
00257   if ( debug_ ) cout << "EELaserClient: beginRun" << endl;
00258 
00259   jevt_ = 0;
00260 
00261   this->setup();
00262 
00263 }
00264 
00265 void EELaserClient::endJob(void) {
00266 
00267   if ( debug_ ) cout << "EELaserClient: endJob, ievt = " << ievt_ << endl;
00268 
00269   this->cleanup();
00270 
00271 }
00272 
00273 void EELaserClient::endRun(void) {
00274 
00275   if ( debug_ ) cout << "EELaserClient: endRun, jevt = " << jevt_ << endl;
00276 
00277   this->cleanup();
00278 
00279 }
00280 
00281 void EELaserClient::setup(void) {
00282 
00283   char histo[200];
00284 
00285   dqmStore_->setCurrentFolder( prefixME_ + "/EELaserClient" );
00286 
00287   for ( unsigned int i=0; i<superModules_.size(); i++ ) {
00288 
00289     int ism = superModules_[i];
00290 
00291     if ( meg01_[ism-1] ) dqmStore_->removeElement( meg01_[ism-1]->getName() );
00292     sprintf(histo, "EELT laser quality L1 %s", Numbers::sEE(ism).c_str());
00293     meg01_[ism-1] = dqmStore_->book2D(histo, histo, 50, Numbers::ix0EE(ism)+0., Numbers::ix0EE(ism)+50., 50, Numbers::iy0EE(ism)+0., Numbers::iy0EE(ism)+50.);
00294     meg01_[ism-1]->setAxisTitle("jx", 1);
00295     meg01_[ism-1]->setAxisTitle("jy", 2);
00296     if ( meg02_[ism-1] ) dqmStore_->removeElement( meg02_[ism-1]->getName() );
00297     sprintf(histo, "EELT laser quality L2 %s", Numbers::sEE(ism).c_str());
00298     meg02_[ism-1] = dqmStore_->book2D(histo, histo, 50, Numbers::ix0EE(ism)+0., Numbers::ix0EE(ism)+50., 50, Numbers::iy0EE(ism)+0., Numbers::iy0EE(ism)+50.);
00299     meg02_[ism-1]->setAxisTitle("jx", 1);
00300     meg02_[ism-1]->setAxisTitle("jy", 2);
00301     if ( meg03_[ism-1] ) dqmStore_->removeElement( meg03_[ism-1]->getName() );
00302     sprintf(histo, "EELT laser quality L3 %s", Numbers::sEE(ism).c_str());
00303     meg03_[ism-1] = dqmStore_->book2D(histo, histo, 50, Numbers::ix0EE(ism)+0., Numbers::ix0EE(ism)+50., 50, Numbers::iy0EE(ism)+0., Numbers::iy0EE(ism)+50.);
00304     meg03_[ism-1]->setAxisTitle("jx", 1);
00305     meg03_[ism-1]->setAxisTitle("jy", 2);
00306     if ( meg04_[ism-1] ) dqmStore_->removeElement( meg04_[ism-1]->getName() );
00307     sprintf(histo, "EELT laser quality L4 %s", Numbers::sEE(ism).c_str());
00308     meg04_[ism-1] = dqmStore_->book2D(histo, histo, 50, Numbers::ix0EE(ism)+0., Numbers::ix0EE(ism)+50., 50, Numbers::iy0EE(ism)+0., Numbers::iy0EE(ism)+50.);
00309     meg04_[ism-1]->setAxisTitle("jx", 1);
00310     meg04_[ism-1]->setAxisTitle("jy", 2);
00311 
00312     if ( meg05_[ism-1] ) dqmStore_->removeElement( meg05_[ism-1]->getName() );
00313     sprintf(histo, "EELT laser quality L1 PNs G01 %s", Numbers::sEE(ism).c_str());
00314     meg05_[ism-1] = dqmStore_->book2D(histo, histo, 10, 0., 10., 1, 0., 5.);
00315     meg05_[ism-1]->setAxisTitle("pseudo-strip", 1);
00316     meg05_[ism-1]->setAxisTitle("channel", 2);
00317     if ( meg06_[ism-1] ) dqmStore_->removeElement( meg06_[ism-1]->getName() );
00318     sprintf(histo, "EELT laser quality L2 PNs G01 %s", Numbers::sEE(ism).c_str());
00319     meg06_[ism-1] = dqmStore_->book2D(histo, histo, 10, 0., 10., 1, 0., 5.);
00320     meg06_[ism-1]->setAxisTitle("pseudo-strip", 1);
00321     meg06_[ism-1]->setAxisTitle("channel", 2);
00322     if ( meg07_[ism-1] ) dqmStore_->removeElement( meg07_[ism-1]->getName() );
00323     sprintf(histo, "EELT laser quality L3 PNs G01 %s", Numbers::sEE(ism).c_str());
00324     meg07_[ism-1] = dqmStore_->book2D(histo, histo, 10, 0., 10., 1, 0., 5.);
00325     meg07_[ism-1]->setAxisTitle("pseudo-strip", 1);
00326     meg07_[ism-1]->setAxisTitle("channel", 2);
00327     if ( meg08_[ism-1] ) dqmStore_->removeElement( meg08_[ism-1]->getName() );
00328     sprintf(histo, "EELT laser quality L4 PNs G01 %s", Numbers::sEE(ism).c_str());
00329     meg08_[ism-1] = dqmStore_->book2D(histo, histo, 10, 0., 10., 1, 0., 5.);
00330     meg08_[ism-1]->setAxisTitle("pseudo-strip", 1);
00331     meg08_[ism-1]->setAxisTitle("channel", 2);
00332     if ( meg09_[ism-1] ) dqmStore_->removeElement( meg09_[ism-1]->getName() );
00333     sprintf(histo, "EELT laser quality L1 PNs G16 %s", Numbers::sEE(ism).c_str());
00334     meg09_[ism-1] = dqmStore_->book2D(histo, histo, 10, 0., 10., 1, 0., 5.);
00335     meg09_[ism-1]->setAxisTitle("pseudo-strip", 1);
00336     meg09_[ism-1]->setAxisTitle("channel", 2);
00337     if ( meg10_[ism-1] ) dqmStore_->removeElement( meg10_[ism-1]->getName() );
00338     sprintf(histo, "EELT laser quality L2 PNs G16 %s", Numbers::sEE(ism).c_str());
00339     meg10_[ism-1] = dqmStore_->book2D(histo, histo, 10, 0., 10., 1, 0., 5.);
00340     meg10_[ism-1]->setAxisTitle("pseudo-strip", 1);
00341     meg10_[ism-1]->setAxisTitle("channel", 2);
00342     if ( meg11_[ism-1] ) dqmStore_->removeElement( meg11_[ism-1]->getName() );
00343     sprintf(histo, "EELT laser quality L3 PNs G16 %s", Numbers::sEE(ism).c_str());
00344     meg11_[ism-1] = dqmStore_->book2D(histo, histo, 10, 0., 10., 1, 0., 5.);
00345     meg11_[ism-1]->setAxisTitle("pseudo-strip", 1);
00346     meg11_[ism-1]->setAxisTitle("channel", 2);
00347     if ( meg12_[ism-1] ) dqmStore_->removeElement( meg12_[ism-1]->getName() );
00348     sprintf(histo, "EELT laser quality L4 PNs G16 %s", Numbers::sEE(ism).c_str());
00349     meg12_[ism-1] = dqmStore_->book2D(histo, histo, 10, 0., 10., 1, 0., 5.);
00350     meg12_[ism-1]->setAxisTitle("pseudo-strip", 1);
00351     meg12_[ism-1]->setAxisTitle("channel", 2);
00352 
00353     if ( mea01_[ism-1] ) dqmStore_->removeElement( mea01_[ism-1]->getName() );;
00354     sprintf(histo, "EELT amplitude L1A %s", Numbers::sEE(ism).c_str());
00355     mea01_[ism-1] = dqmStore_->book1D(histo, histo, 850, 0., 850.);
00356     mea01_[ism-1]->setAxisTitle("channel", 1);
00357     mea01_[ism-1]->setAxisTitle("amplitude", 2);
00358     if ( mea02_[ism-1] ) dqmStore_->removeElement( mea02_[ism-1]->getName() );
00359     sprintf(histo, "EELT amplitude L2A %s", Numbers::sEE(ism).c_str());
00360     mea02_[ism-1] = dqmStore_->book1D(histo, histo, 850, 0., 850.);
00361     mea02_[ism-1]->setAxisTitle("channel", 1);
00362     mea02_[ism-1]->setAxisTitle("amplitude", 2);
00363     if ( mea03_[ism-1] ) dqmStore_->removeElement( mea03_[ism-1]->getName() );
00364     sprintf(histo, "EELT amplitude L3A %s", Numbers::sEE(ism).c_str());
00365     mea03_[ism-1] = dqmStore_->book1D(histo, histo, 850, 0., 850.);
00366     mea03_[ism-1]->setAxisTitle("channel", 1);
00367     mea03_[ism-1]->setAxisTitle("amplitude", 2);
00368     if ( mea04_[ism-1] ) dqmStore_->removeElement( mea04_[ism-1]->getName() );
00369     sprintf(histo, "EELT amplitude L4A %s", Numbers::sEE(ism).c_str());
00370     mea04_[ism-1] = dqmStore_->book1D(histo, histo, 850, 0., 850.);
00371     mea04_[ism-1]->setAxisTitle("channel", 1);
00372     mea04_[ism-1]->setAxisTitle("amplitude", 2);
00373     if ( mea05_[ism-1] ) dqmStore_->removeElement( mea05_[ism-1]->getName() );;
00374     sprintf(histo, "EELT amplitude L1B %s", Numbers::sEE(ism).c_str());
00375     mea05_[ism-1] = dqmStore_->book1D(histo, histo, 850, 0., 850.);
00376     mea05_[ism-1]->setAxisTitle("channel", 1);
00377     mea05_[ism-1]->setAxisTitle("amplitude", 2);
00378     if ( mea06_[ism-1] ) dqmStore_->removeElement( mea06_[ism-1]->getName() );
00379     sprintf(histo, "EELT amplitude L2B %s", Numbers::sEE(ism).c_str());
00380     mea06_[ism-1] = dqmStore_->book1D(histo, histo, 850, 0., 850.);
00381     mea06_[ism-1]->setAxisTitle("channel", 1);
00382     mea06_[ism-1]->setAxisTitle("amplitude", 2);
00383     if ( mea07_[ism-1] ) dqmStore_->removeElement( mea07_[ism-1]->getName() );
00384     sprintf(histo, "EELT amplitude L3B %s", Numbers::sEE(ism).c_str());
00385     mea07_[ism-1] = dqmStore_->book1D(histo, histo, 850, 0., 850.);
00386     mea07_[ism-1]->setAxisTitle("channel", 1);
00387     mea07_[ism-1]->setAxisTitle("amplitude", 2);
00388     if ( mea08_[ism-1] ) dqmStore_->removeElement( mea08_[ism-1]->getName() );
00389     sprintf(histo, "EELT amplitude L4B %s", Numbers::sEE(ism).c_str());
00390     mea08_[ism-1] = dqmStore_->book1D(histo, histo, 850, 0., 850.);
00391     mea08_[ism-1]->setAxisTitle("channel", 1);
00392     mea08_[ism-1]->setAxisTitle("amplitude", 2);
00393 
00394     if ( met01_[ism-1] ) dqmStore_->removeElement( met01_[ism-1]->getName() );
00395     sprintf(histo, "EELT laser timing L1A %s", Numbers::sEE(ism).c_str());
00396     met01_[ism-1] = dqmStore_->book1D(histo, histo, 850, 0., 850.);
00397     met01_[ism-1]->setAxisTitle("channel", 1);
00398     met01_[ism-1]->setAxisTitle("jitter", 2);
00399     if ( met02_[ism-1] ) dqmStore_->removeElement( met02_[ism-1]->getName() );
00400     sprintf(histo, "EELT laser timing L2A %s", Numbers::sEE(ism).c_str());
00401     met02_[ism-1] = dqmStore_->book1D(histo, histo, 850, 0., 850.);
00402     met02_[ism-1]->setAxisTitle("channel", 1);
00403     met02_[ism-1]->setAxisTitle("jitter", 2);
00404     if ( met03_[ism-1] ) dqmStore_->removeElement( met03_[ism-1]->getName() );
00405     sprintf(histo, "EELT laser timing L3A %s", Numbers::sEE(ism).c_str());
00406     met03_[ism-1] = dqmStore_->book1D(histo, histo, 850, 0., 850.);
00407     met03_[ism-1]->setAxisTitle("channel", 1);
00408     met03_[ism-1]->setAxisTitle("jitter", 2);
00409     if ( met04_[ism-1] ) dqmStore_->removeElement( met04_[ism-1]->getName() );
00410     sprintf(histo, "EELT laser timing L4A %s", Numbers::sEE(ism).c_str());
00411     met04_[ism-1] = dqmStore_->book1D(histo, histo, 850, 0., 850.);
00412     met04_[ism-1]->setAxisTitle("channel", 1);
00413     met04_[ism-1]->setAxisTitle("jitter", 2);
00414     if ( met05_[ism-1] ) dqmStore_->removeElement( met05_[ism-1]->getName() );
00415     sprintf(histo, "EELT laser timing L1B %s", Numbers::sEE(ism).c_str());
00416     met05_[ism-1] = dqmStore_->book1D(histo, histo, 850, 0., 850.);
00417     met05_[ism-1]->setAxisTitle("channel", 1);
00418     met05_[ism-1]->setAxisTitle("jitter", 2);
00419     if ( met06_[ism-1] ) dqmStore_->removeElement( met06_[ism-1]->getName() );
00420     sprintf(histo, "EELT laser timing L2B %s", Numbers::sEE(ism).c_str());
00421     met06_[ism-1] = dqmStore_->book1D(histo, histo, 850, 0., 850.);
00422     met06_[ism-1]->setAxisTitle("channel", 1);
00423     met06_[ism-1]->setAxisTitle("jitter", 2);
00424     if ( met07_[ism-1] ) dqmStore_->removeElement( met07_[ism-1]->getName() );
00425     sprintf(histo, "EELT laser timing L3B %s", Numbers::sEE(ism).c_str());
00426     met07_[ism-1] = dqmStore_->book1D(histo, histo, 850, 0., 850.);
00427     met07_[ism-1]->setAxisTitle("channel", 1);
00428     met07_[ism-1]->setAxisTitle("jitter", 2);
00429     if ( met08_[ism-1] ) dqmStore_->removeElement( met08_[ism-1]->getName() );
00430     sprintf(histo, "EELT laser timing L4B %s", Numbers::sEE(ism).c_str());
00431     met08_[ism-1] = dqmStore_->book1D(histo, histo, 850, 0., 850.);
00432     met08_[ism-1]->setAxisTitle("channel", 1);
00433     met08_[ism-1]->setAxisTitle("jitter", 2);
00434 
00435     if ( metav01_[ism-1] ) dqmStore_->removeElement( metav01_[ism-1]->getName() );
00436     sprintf(histo, "EELT laser timing mean L1A %s", Numbers::sEE(ism).c_str());
00437     metav01_[ism-1] = dqmStore_->book1D(histo, histo, 100, 0., 10.);
00438     metav01_[ism-1]->setAxisTitle("mean", 1);
00439     if ( metav02_[ism-1] ) dqmStore_->removeElement( metav02_[ism-1]->getName() );
00440     sprintf(histo, "EELT laser timing mean L2A %s", Numbers::sEE(ism).c_str());
00441     metav02_[ism-1] = dqmStore_->book1D(histo, histo, 100, 0., 10.);
00442     metav02_[ism-1]->setAxisTitle("mean", 1);
00443     if ( metav03_[ism-1] ) dqmStore_->removeElement( metav03_[ism-1]->getName() );
00444     sprintf(histo, "EELT laser timing mean L3A %s", Numbers::sEE(ism).c_str());
00445     metav03_[ism-1] = dqmStore_->book1D(histo, histo, 100, 0., 10.);
00446     metav03_[ism-1]->setAxisTitle("mean", 1);
00447     if ( metav04_[ism-1] ) dqmStore_->removeElement( metav04_[ism-1]->getName() );
00448     sprintf(histo, "EELT laser timing mean L4A %s", Numbers::sEE(ism).c_str());
00449     metav04_[ism-1] = dqmStore_->book1D(histo, histo, 100, 0., 10.);
00450     metav04_[ism-1]->setAxisTitle("mean", 1);
00451     if ( metav05_[ism-1] ) dqmStore_->removeElement( metav05_[ism-1]->getName() );
00452     sprintf(histo, "EELT laser timing mean L1B %s", Numbers::sEE(ism).c_str());
00453     metav05_[ism-1] = dqmStore_->book1D(histo, histo, 100, 0., 10.);
00454     metav05_[ism-1]->setAxisTitle("mean", 1);
00455     if ( metav06_[ism-1] ) dqmStore_->removeElement( metav06_[ism-1]->getName() );
00456     sprintf(histo, "EELT laser timing mean L2B %s", Numbers::sEE(ism).c_str());
00457     metav06_[ism-1] = dqmStore_->book1D(histo, histo, 100, 0., 10.);
00458     metav06_[ism-1]->setAxisTitle("mean", 1);
00459     if ( metav07_[ism-1] ) dqmStore_->removeElement( metav07_[ism-1]->getName() );
00460     sprintf(histo, "EELT laser timing mean L3B %s", Numbers::sEE(ism).c_str());
00461     metav07_[ism-1] = dqmStore_->book1D(histo, histo, 100, 0., 10.);
00462     metav07_[ism-1]->setAxisTitle("mean", 1);
00463     if ( metav08_[ism-1] ) dqmStore_->removeElement( metav08_[ism-1]->getName() );
00464     sprintf(histo, "EELT laser timing mean L4B %s", Numbers::sEE(ism).c_str());
00465     metav08_[ism-1] = dqmStore_->book1D(histo, histo, 100, 0., 10.);
00466     metav08_[ism-1]->setAxisTitle("mean", 1);
00467 
00468     if ( metrms01_[ism-1] ) dqmStore_->removeElement( metrms01_[ism-1]->getName() );
00469     sprintf(histo, "EELT laser timing rms L1A %s", Numbers::sEE(ism).c_str());
00470     metrms01_[ism-1] = dqmStore_->book1D(histo, histo, 100, 0., 0.5);
00471     metrms01_[ism-1]->setAxisTitle("rms", 1);
00472     if ( metrms02_[ism-1] ) dqmStore_->removeElement( metrms02_[ism-1]->getName() );
00473     sprintf(histo, "EELT laser timing rms L2A %s", Numbers::sEE(ism).c_str());
00474     metrms02_[ism-1] = dqmStore_->book1D(histo, histo, 100, 0., 0.5);
00475     metrms02_[ism-1]->setAxisTitle("rms", 1);
00476     if ( metrms03_[ism-1] ) dqmStore_->removeElement( metrms03_[ism-1]->getName() );
00477     sprintf(histo, "EELT laser timing rms L3A %s", Numbers::sEE(ism).c_str());
00478     metrms03_[ism-1] = dqmStore_->book1D(histo, histo, 100, 0., 0.5);
00479     metrms03_[ism-1]->setAxisTitle("rms", 1);
00480     if ( metrms04_[ism-1] ) dqmStore_->removeElement( metrms04_[ism-1]->getName() );
00481     sprintf(histo, "EELT laser timing rms L4A %s", Numbers::sEE(ism).c_str());
00482     metrms04_[ism-1] = dqmStore_->book1D(histo, histo, 100, 0., 0.5);
00483     metrms04_[ism-1]->setAxisTitle("rms", 1);
00484     if ( metrms05_[ism-1] ) dqmStore_->removeElement( metrms05_[ism-1]->getName() );
00485     sprintf(histo, "EELT laser timing rms L1B %s", Numbers::sEE(ism).c_str());
00486     metrms05_[ism-1] = dqmStore_->book1D(histo, histo, 100, 0., 0.5);
00487     metrms05_[ism-1]->setAxisTitle("rms", 1);
00488     if ( metrms06_[ism-1] ) dqmStore_->removeElement( metrms06_[ism-1]->getName() );
00489     sprintf(histo, "EELT laser timing rms L2B %s", Numbers::sEE(ism).c_str());
00490     metrms06_[ism-1] = dqmStore_->book1D(histo, histo, 100, 0., 0.5);
00491     metrms06_[ism-1]->setAxisTitle("rms", 1);
00492     if ( metrms07_[ism-1] ) dqmStore_->removeElement( metrms07_[ism-1]->getName() );
00493     sprintf(histo, "EELT laser timing rms L3B %s", Numbers::sEE(ism).c_str());
00494     metrms07_[ism-1] = dqmStore_->book1D(histo, histo, 100, 0., 0.5);
00495     metrms07_[ism-1]->setAxisTitle("rms", 1);
00496     if ( metrms08_[ism-1] ) dqmStore_->removeElement( metrms08_[ism-1]->getName() );
00497     sprintf(histo, "EELT laser timing rms L4B %s", Numbers::sEE(ism).c_str());
00498     metrms08_[ism-1] = dqmStore_->book1D(histo, histo, 100, 0., 0.5);
00499     metrms08_[ism-1]->setAxisTitle("rms", 1);
00500 
00501     if ( meaopn01_[ism-1] ) dqmStore_->removeElement( meaopn01_[ism-1]->getName() );
00502     sprintf(histo, "EELT amplitude over PN L1A %s", Numbers::sEE(ism).c_str());
00503     meaopn01_[ism-1] = dqmStore_->book1D(histo, histo, 850, 0., 850.);
00504     meaopn01_[ism-1]->setAxisTitle("channel", 1);
00505     meaopn01_[ism-1]->setAxisTitle("amplitude/PN", 2);
00506     if ( meaopn02_[ism-1] ) dqmStore_->removeElement( meaopn02_[ism-1]->getName() );
00507     sprintf(histo, "EELT amplitude over PN L2A %s", Numbers::sEE(ism).c_str());
00508     meaopn02_[ism-1] = dqmStore_->book1D(histo, histo, 850, 0., 850.);
00509     meaopn02_[ism-1]->setAxisTitle("channel", 1);
00510     meaopn02_[ism-1]->setAxisTitle("amplitude/PN", 2);
00511     if ( meaopn03_[ism-1] ) dqmStore_->removeElement( meaopn03_[ism-1]->getName() );
00512     sprintf(histo, "EELT amplitude over PN L3A %s", Numbers::sEE(ism).c_str());
00513     meaopn03_[ism-1] = dqmStore_->book1D(histo, histo, 850, 0., 850.);
00514     meaopn03_[ism-1]->setAxisTitle("channel", 1);
00515     meaopn03_[ism-1]->setAxisTitle("amplitude/PN", 2);
00516     if ( meaopn04_[ism-1] ) dqmStore_->removeElement( meaopn04_[ism-1]->getName() );
00517     sprintf(histo, "EELT amplitude over PN L4A %s", Numbers::sEE(ism).c_str());
00518     meaopn04_[ism-1] = dqmStore_->book1D(histo, histo, 850, 0., 850.);
00519     meaopn04_[ism-1]->setAxisTitle("channel", 1);
00520     meaopn04_[ism-1]->setAxisTitle("amplitude/PN", 2);
00521     if ( meaopn05_[ism-1] ) dqmStore_->removeElement( meaopn05_[ism-1]->getName() );
00522     sprintf(histo, "EELT amplitude over PN L1B %s", Numbers::sEE(ism).c_str());
00523     meaopn05_[ism-1] = dqmStore_->book1D(histo, histo, 850, 0., 850.);
00524     meaopn05_[ism-1]->setAxisTitle("channel", 1);
00525     meaopn05_[ism-1]->setAxisTitle("amplitude/PN", 2);
00526     if ( meaopn06_[ism-1] ) dqmStore_->removeElement( meaopn06_[ism-1]->getName() );
00527     sprintf(histo, "EELT amplitude over PN L2B %s", Numbers::sEE(ism).c_str());
00528     meaopn06_[ism-1] = dqmStore_->book1D(histo, histo, 850, 0., 850.);
00529     meaopn06_[ism-1]->setAxisTitle("channel", 1);
00530     meaopn06_[ism-1]->setAxisTitle("amplitude/PN", 2);
00531     if ( meaopn07_[ism-1] ) dqmStore_->removeElement( meaopn07_[ism-1]->getName() );
00532     sprintf(histo, "EELT amplitude over PN L3B %s", Numbers::sEE(ism).c_str());
00533     meaopn07_[ism-1] = dqmStore_->book1D(histo, histo, 850, 0., 850.);
00534     meaopn07_[ism-1]->setAxisTitle("channel", 1);
00535     meaopn07_[ism-1]->setAxisTitle("amplitude/PN", 2);
00536     if ( meaopn08_[ism-1] ) dqmStore_->removeElement( meaopn08_[ism-1]->getName() );
00537     sprintf(histo, "EELT amplitude over PN L4B %s", Numbers::sEE(ism).c_str());
00538     meaopn08_[ism-1] = dqmStore_->book1D(histo, histo, 850, 0., 850.);
00539     meaopn08_[ism-1]->setAxisTitle("channel", 1);
00540     meaopn08_[ism-1]->setAxisTitle("amplitude/PN", 2);
00541 
00542     if ( mepnprms01_[ism-1] ) dqmStore_->removeElement( mepnprms01_[ism-1]->getName() );
00543     sprintf(histo, "EEPDT PNs pedestal rms %s G01 L1", Numbers::sEE(ism).c_str());
00544     mepnprms01_[ism-1] = dqmStore_->book1D(histo, histo, 100, 0., 10.);
00545     mepnprms01_[ism-1]->setAxisTitle("rms", 1);
00546     if ( mepnprms02_[ism-1] ) dqmStore_->removeElement( mepnprms02_[ism-1]->getName() );
00547     sprintf(histo, "EEPDT PNs pedestal rms %s G01 L2", Numbers::sEE(ism).c_str());
00548     mepnprms02_[ism-1] = dqmStore_->book1D(histo, histo, 100, 0., 10.);
00549     mepnprms02_[ism-1]->setAxisTitle("rms", 1);
00550     if ( mepnprms03_[ism-1] ) dqmStore_->removeElement( mepnprms03_[ism-1]->getName() );
00551     sprintf(histo, "EEPDT PNs pedestal rms %s G01 L3", Numbers::sEE(ism).c_str());
00552     mepnprms03_[ism-1] = dqmStore_->book1D(histo, histo, 100, 0., 10.);
00553     mepnprms03_[ism-1]->setAxisTitle("rms", 1);
00554     if ( mepnprms04_[ism-1] ) dqmStore_->removeElement( mepnprms04_[ism-1]->getName() );
00555     sprintf(histo, "EEPDT PNs pedestal rms %s G01 L4", Numbers::sEE(ism).c_str());
00556     mepnprms04_[ism-1] = dqmStore_->book1D(histo, histo, 100, 0., 10.);
00557     mepnprms04_[ism-1]->setAxisTitle("rms", 1);
00558     if ( mepnprms05_[ism-1] ) dqmStore_->removeElement( mepnprms05_[ism-1]->getName() );
00559     sprintf(histo, "EEPDT PNs pedestal rms %s G16 L1", Numbers::sEE(ism).c_str());
00560     mepnprms05_[ism-1] = dqmStore_->book1D(histo, histo, 100, 0., 10.);
00561     mepnprms05_[ism-1]->setAxisTitle("rms", 1);
00562     if ( mepnprms06_[ism-1] ) dqmStore_->removeElement( mepnprms06_[ism-1]->getName() );
00563     sprintf(histo, "EEPDT PNs pedestal rms %s G16 L2", Numbers::sEE(ism).c_str());
00564     mepnprms06_[ism-1] = dqmStore_->book1D(histo, histo, 100, 0., 10.);
00565     mepnprms06_[ism-1]->setAxisTitle("rms", 1);
00566     if ( mepnprms07_[ism-1] ) dqmStore_->removeElement( mepnprms07_[ism-1]->getName() );
00567     sprintf(histo, "EEPDT PNs pedestal rms %s G16 L3", Numbers::sEE(ism).c_str());
00568     mepnprms07_[ism-1] = dqmStore_->book1D(histo, histo, 100, 0., 10.);
00569     mepnprms07_[ism-1]->setAxisTitle("rms", 1);
00570     if ( mepnprms08_[ism-1] ) dqmStore_->removeElement( mepnprms08_[ism-1]->getName() );
00571     sprintf(histo, "EEPDT PNs pedestal rms %s G16 L4", Numbers::sEE(ism).c_str());
00572     mepnprms08_[ism-1] = dqmStore_->book1D(histo, histo, 100, 0., 10.);
00573     mepnprms08_[ism-1]->setAxisTitle("rms", 1);
00574 
00575     if ( me_hs01_[ism-1] ) dqmStore_->removeElement( me_hs01_[ism-1]->getName() );
00576     sprintf(histo, "EELT laser shape L1A %s", Numbers::sEE(ism).c_str());
00577     me_hs01_[ism-1] = dqmStore_->book1D(histo, histo, 10, 0., 10.);
00578     me_hs01_[ism-1]->setAxisTitle("sample", 1);
00579     me_hs01_[ism-1]->setAxisTitle("amplitude", 2);
00580     if ( me_hs02_[ism-1] ) dqmStore_->removeElement( me_hs02_[ism-1]->getName() );
00581     sprintf(histo, "EELT laser shape L2A %s", Numbers::sEE(ism).c_str());
00582     me_hs02_[ism-1] = dqmStore_->book1D(histo, histo, 10, 0., 10.);
00583     me_hs02_[ism-1]->setAxisTitle("sample", 1);
00584     me_hs02_[ism-1]->setAxisTitle("amplitude", 2);
00585     if ( me_hs03_[ism-1] ) dqmStore_->removeElement( me_hs03_[ism-1]->getName() );
00586     sprintf(histo, "EELT laser shape L3A %s", Numbers::sEE(ism).c_str());
00587     me_hs03_[ism-1] = dqmStore_->book1D(histo, histo, 10, 0., 10.);
00588     me_hs03_[ism-1]->setAxisTitle("sample", 1);
00589     me_hs03_[ism-1]->setAxisTitle("amplitude", 2);
00590     if ( me_hs04_[ism-1] ) dqmStore_->removeElement( me_hs04_[ism-1]->getName() );
00591     sprintf(histo, "EELT laser shape L4A %s", Numbers::sEE(ism).c_str());
00592     me_hs04_[ism-1] = dqmStore_->book1D(histo, histo, 10, 0., 10.);
00593     me_hs04_[ism-1]->setAxisTitle("sample", 1);
00594     me_hs04_[ism-1]->setAxisTitle("amplitude", 2);
00595     if ( me_hs05_[ism-1] ) dqmStore_->removeElement( me_hs05_[ism-1]->getName() );
00596     sprintf(histo, "EELT laser shape L1B %s", Numbers::sEE(ism).c_str());
00597     me_hs05_[ism-1] = dqmStore_->book1D(histo, histo, 10, 0., 10.);
00598     me_hs05_[ism-1]->setAxisTitle("sample", 1);
00599     me_hs05_[ism-1]->setAxisTitle("amplitude", 2);
00600     if ( me_hs06_[ism-1] ) dqmStore_->removeElement( me_hs06_[ism-1]->getName() );
00601     sprintf(histo, "EELT laser shape L2B %s", Numbers::sEE(ism).c_str());
00602     me_hs06_[ism-1] = dqmStore_->book1D(histo, histo, 10, 0., 10.);
00603     me_hs06_[ism-1]->setAxisTitle("sample", 1);
00604     me_hs06_[ism-1]->setAxisTitle("amplitude", 2);
00605     if ( me_hs07_[ism-1] ) dqmStore_->removeElement( me_hs07_[ism-1]->getName() );
00606     sprintf(histo, "EELT laser shape L3B %s", Numbers::sEE(ism).c_str());
00607     me_hs07_[ism-1] = dqmStore_->book1D(histo, histo, 10, 0., 10.);
00608     me_hs07_[ism-1]->setAxisTitle("sample", 1);
00609     me_hs07_[ism-1]->setAxisTitle("amplitude", 2);
00610     if ( me_hs08_[ism-1] ) dqmStore_->removeElement( me_hs08_[ism-1]->getName() );
00611     sprintf(histo, "EELT laser shape L4B %s", Numbers::sEE(ism).c_str());
00612     me_hs08_[ism-1] = dqmStore_->book1D(histo, histo, 10, 0., 10.);
00613     me_hs08_[ism-1]->setAxisTitle("sample", 1);
00614     me_hs08_[ism-1]->setAxisTitle("amplitude", 2);
00615 
00616   }
00617 
00618   for ( unsigned int i=0; i<superModules_.size(); i++ ) {
00619 
00620     int ism = superModules_[i];
00621 
00622     if ( meg01_[ism-1] ) meg01_[ism-1]->Reset();
00623     if ( meg02_[ism-1] ) meg02_[ism-1]->Reset();
00624     if ( meg03_[ism-1] ) meg03_[ism-1]->Reset();
00625     if ( meg04_[ism-1] ) meg04_[ism-1]->Reset();
00626 
00627     if ( meg05_[ism-1] ) meg05_[ism-1]->Reset();
00628     if ( meg06_[ism-1] ) meg06_[ism-1]->Reset();
00629     if ( meg07_[ism-1] ) meg07_[ism-1]->Reset();
00630     if ( meg08_[ism-1] ) meg08_[ism-1]->Reset();
00631     if ( meg09_[ism-1] ) meg09_[ism-1]->Reset();
00632     if ( meg10_[ism-1] ) meg10_[ism-1]->Reset();
00633     if ( meg11_[ism-1] ) meg11_[ism-1]->Reset();
00634     if ( meg12_[ism-1] ) meg12_[ism-1]->Reset();
00635 
00636     for ( int ix = 1; ix <= 50; ix++ ) {
00637       for ( int iy = 1; iy <= 50; iy++ ) {
00638 
00639         if ( meg01_[ism-1] ) meg01_[ism-1]->setBinContent( ix, iy, 6. );
00640         if ( meg02_[ism-1] ) meg02_[ism-1]->setBinContent( ix, iy, 6. );
00641         if ( meg03_[ism-1] ) meg03_[ism-1]->setBinContent( ix, iy, 6. );
00642         if ( meg04_[ism-1] ) meg04_[ism-1]->setBinContent( ix, iy, 6. );
00643 
00644         int jx = ix + Numbers::ix0EE(ism);
00645         int jy = iy + Numbers::iy0EE(ism);
00646 
00647         if ( ism >= 1 && ism <= 9 ) jx = 101 - jx;
00648 
00649         if ( Numbers::validEE(ism, jx, jy) ) {
00650           if ( meg01_[ism-1] ) meg01_[ism-1]->setBinContent( ix, iy, 2. );
00651           if ( meg02_[ism-1] ) meg02_[ism-1]->setBinContent( ix, iy, 2. );
00652           if ( meg03_[ism-1] ) meg03_[ism-1]->setBinContent( ix, iy, 2. );
00653           if ( meg04_[ism-1] ) meg04_[ism-1]->setBinContent( ix, iy, 2. );
00654         }
00655 
00656       }
00657     }
00658 
00659     for ( int i = 1; i <= 10; i++ ) {
00660 
00661         if ( meg05_[ism-1] ) meg05_[ism-1]->setBinContent( i, 1, 2. );
00662         if ( meg06_[ism-1] ) meg06_[ism-1]->setBinContent( i, 1, 2. );
00663         if ( meg07_[ism-1] ) meg07_[ism-1]->setBinContent( i, 1, 2. );
00664         if ( meg08_[ism-1] ) meg08_[ism-1]->setBinContent( i, 1, 2. );
00665         if ( meg09_[ism-1] ) meg09_[ism-1]->setBinContent( i, 1, 2. );
00666         if ( meg10_[ism-1] ) meg10_[ism-1]->setBinContent( i, 1, 2. );
00667         if ( meg11_[ism-1] ) meg11_[ism-1]->setBinContent( i, 1, 2. );
00668         if ( meg12_[ism-1] ) meg12_[ism-1]->setBinContent( i, 1, 2. );
00669 
00670     }
00671 
00672     if ( mea01_[ism-1] ) mea01_[ism-1]->Reset();
00673     if ( mea02_[ism-1] ) mea02_[ism-1]->Reset();
00674     if ( mea03_[ism-1] ) mea03_[ism-1]->Reset();
00675     if ( mea04_[ism-1] ) mea04_[ism-1]->Reset();
00676     if ( mea05_[ism-1] ) mea05_[ism-1]->Reset();
00677     if ( mea06_[ism-1] ) mea06_[ism-1]->Reset();
00678     if ( mea07_[ism-1] ) mea07_[ism-1]->Reset();
00679     if ( mea08_[ism-1] ) mea08_[ism-1]->Reset();
00680 
00681     if ( met01_[ism-1] ) met01_[ism-1]->Reset();
00682     if ( met02_[ism-1] ) met02_[ism-1]->Reset();
00683     if ( met03_[ism-1] ) met03_[ism-1]->Reset();
00684     if ( met04_[ism-1] ) met04_[ism-1]->Reset();
00685     if ( met05_[ism-1] ) met05_[ism-1]->Reset();
00686     if ( met06_[ism-1] ) met06_[ism-1]->Reset();
00687     if ( met07_[ism-1] ) met07_[ism-1]->Reset();
00688     if ( met08_[ism-1] ) met08_[ism-1]->Reset();
00689 
00690     if ( metav01_[ism-1] ) metav01_[ism-1]->Reset();
00691     if ( metav02_[ism-1] ) metav02_[ism-1]->Reset();
00692     if ( metav03_[ism-1] ) metav03_[ism-1]->Reset();
00693     if ( metav04_[ism-1] ) metav04_[ism-1]->Reset();
00694     if ( metav05_[ism-1] ) metav05_[ism-1]->Reset();
00695     if ( metav06_[ism-1] ) metav06_[ism-1]->Reset();
00696     if ( metav07_[ism-1] ) metav07_[ism-1]->Reset();
00697     if ( metav08_[ism-1] ) metav08_[ism-1]->Reset();
00698 
00699     if ( metrms01_[ism-1] ) metrms01_[ism-1]->Reset();
00700     if ( metrms02_[ism-1] ) metrms02_[ism-1]->Reset();
00701     if ( metrms03_[ism-1] ) metrms03_[ism-1]->Reset();
00702     if ( metrms04_[ism-1] ) metrms04_[ism-1]->Reset();
00703     if ( metrms05_[ism-1] ) metrms05_[ism-1]->Reset();
00704     if ( metrms06_[ism-1] ) metrms06_[ism-1]->Reset();
00705     if ( metrms07_[ism-1] ) metrms07_[ism-1]->Reset();
00706     if ( metrms08_[ism-1] ) metrms08_[ism-1]->Reset();
00707 
00708     if ( meaopn01_[ism-1] ) meaopn01_[ism-1]->Reset();
00709     if ( meaopn02_[ism-1] ) meaopn02_[ism-1]->Reset();
00710     if ( meaopn03_[ism-1] ) meaopn03_[ism-1]->Reset();
00711     if ( meaopn04_[ism-1] ) meaopn04_[ism-1]->Reset();
00712     if ( meaopn05_[ism-1] ) meaopn05_[ism-1]->Reset();
00713     if ( meaopn06_[ism-1] ) meaopn06_[ism-1]->Reset();
00714     if ( meaopn07_[ism-1] ) meaopn07_[ism-1]->Reset();
00715     if ( meaopn08_[ism-1] ) meaopn08_[ism-1]->Reset();
00716 
00717     if ( mepnprms01_[ism-1] ) mepnprms01_[ism-1]->Reset();
00718     if ( mepnprms02_[ism-1] ) mepnprms02_[ism-1]->Reset();
00719     if ( mepnprms03_[ism-1] ) mepnprms03_[ism-1]->Reset();
00720     if ( mepnprms04_[ism-1] ) mepnprms04_[ism-1]->Reset();
00721     if ( mepnprms05_[ism-1] ) mepnprms05_[ism-1]->Reset();
00722     if ( mepnprms06_[ism-1] ) mepnprms06_[ism-1]->Reset();
00723     if ( mepnprms07_[ism-1] ) mepnprms07_[ism-1]->Reset();
00724     if ( mepnprms08_[ism-1] ) mepnprms08_[ism-1]->Reset();
00725 
00726     if ( me_hs01_[ism-1] ) me_hs01_[ism-1]->Reset();
00727     if ( me_hs02_[ism-1] ) me_hs02_[ism-1]->Reset();
00728     if ( me_hs03_[ism-1] ) me_hs03_[ism-1]->Reset();
00729     if ( me_hs04_[ism-1] ) me_hs04_[ism-1]->Reset();
00730     if ( me_hs05_[ism-1] ) me_hs05_[ism-1]->Reset();
00731     if ( me_hs06_[ism-1] ) me_hs06_[ism-1]->Reset();
00732     if ( me_hs07_[ism-1] ) me_hs07_[ism-1]->Reset();
00733     if ( me_hs08_[ism-1] ) me_hs08_[ism-1]->Reset();
00734 
00735   }
00736 
00737 }
00738 
00739 void EELaserClient::cleanup(void) {
00740 
00741   if ( ! enableCleanup_ ) return;
00742 
00743   for ( unsigned int i=0; i<superModules_.size(); i++ ) {
00744 
00745     int ism = superModules_[i];
00746 
00747     if ( cloneME_ ) {
00748       if ( h01_[ism-1] ) delete h01_[ism-1];
00749       if ( h02_[ism-1] ) delete h02_[ism-1];
00750       if ( h03_[ism-1] ) delete h03_[ism-1];
00751       if ( h04_[ism-1] ) delete h04_[ism-1];
00752       if ( h05_[ism-1] ) delete h05_[ism-1];
00753       if ( h06_[ism-1] ) delete h06_[ism-1];
00754       if ( h07_[ism-1] ) delete h07_[ism-1];
00755       if ( h08_[ism-1] ) delete h08_[ism-1];
00756 
00757       if ( h09_[ism-1] ) delete h09_[ism-1];
00758       if ( h10_[ism-1] ) delete h10_[ism-1];
00759       if ( h11_[ism-1] ) delete h11_[ism-1];
00760       if ( h12_[ism-1] ) delete h12_[ism-1];
00761 
00762       if ( h13_[ism-1] ) delete h13_[ism-1];
00763       if ( h14_[ism-1] ) delete h14_[ism-1];
00764       if ( h15_[ism-1] ) delete h15_[ism-1];
00765       if ( h16_[ism-1] ) delete h16_[ism-1];
00766       if ( h17_[ism-1] ) delete h17_[ism-1];
00767       if ( h18_[ism-1] ) delete h18_[ism-1];
00768       if ( h19_[ism-1] ) delete h19_[ism-1];
00769       if ( h20_[ism-1] ) delete h20_[ism-1];
00770 
00771       if ( h21_[ism-1] ) delete h21_[ism-1];
00772       if ( h22_[ism-1] ) delete h22_[ism-1];
00773       if ( h23_[ism-1] ) delete h23_[ism-1];
00774       if ( h24_[ism-1] ) delete h24_[ism-1];
00775 
00776       if ( hs01_[ism-1] ) delete hs01_[ism-1];
00777       if ( hs02_[ism-1] ) delete hs02_[ism-1];
00778       if ( hs03_[ism-1] ) delete hs03_[ism-1];
00779       if ( hs04_[ism-1] ) delete hs04_[ism-1];
00780 
00781       if ( hs05_[ism-1] ) delete hs05_[ism-1];
00782       if ( hs06_[ism-1] ) delete hs06_[ism-1];
00783       if ( hs07_[ism-1] ) delete hs07_[ism-1];
00784       if ( hs08_[ism-1] ) delete hs08_[ism-1];
00785 
00786       if ( i01_[ism-1] ) delete i01_[ism-1];
00787       if ( i02_[ism-1] ) delete i02_[ism-1];
00788       if ( i03_[ism-1] ) delete i03_[ism-1];
00789       if ( i04_[ism-1] ) delete i04_[ism-1];
00790       if ( i05_[ism-1] ) delete i05_[ism-1];
00791       if ( i06_[ism-1] ) delete i06_[ism-1];
00792       if ( i07_[ism-1] ) delete i07_[ism-1];
00793       if ( i08_[ism-1] ) delete i08_[ism-1];
00794 
00795       if ( i09_[ism-1] ) delete i09_[ism-1];
00796       if ( i10_[ism-1] ) delete i10_[ism-1];
00797       if ( i11_[ism-1] ) delete i11_[ism-1];
00798       if ( i12_[ism-1] ) delete i12_[ism-1];
00799       if ( i13_[ism-1] ) delete i13_[ism-1];
00800       if ( i14_[ism-1] ) delete i14_[ism-1];
00801       if ( i15_[ism-1] ) delete i15_[ism-1];
00802       if ( i16_[ism-1] ) delete i16_[ism-1];
00803     }
00804 
00805     h01_[ism-1] = 0;
00806     h02_[ism-1] = 0;
00807     h03_[ism-1] = 0;
00808     h04_[ism-1] = 0;
00809     h05_[ism-1] = 0;
00810     h06_[ism-1] = 0;
00811     h07_[ism-1] = 0;
00812     h08_[ism-1] = 0;
00813 
00814     h09_[ism-1] = 0;
00815     h10_[ism-1] = 0;
00816     h11_[ism-1] = 0;
00817     h12_[ism-1] = 0;
00818 
00819     h13_[ism-1] = 0;
00820     h14_[ism-1] = 0;
00821     h15_[ism-1] = 0;
00822     h16_[ism-1] = 0;
00823     h17_[ism-1] = 0;
00824     h18_[ism-1] = 0;
00825     h19_[ism-1] = 0;
00826     h20_[ism-1] = 0;
00827 
00828     h21_[ism-1] = 0;
00829     h22_[ism-1] = 0;
00830     h23_[ism-1] = 0;
00831     h24_[ism-1] = 0;
00832 
00833     hs01_[ism-1] = 0;
00834     hs02_[ism-1] = 0;
00835     hs03_[ism-1] = 0;
00836     hs04_[ism-1] = 0;
00837 
00838     hs05_[ism-1] = 0;
00839     hs06_[ism-1] = 0;
00840     hs07_[ism-1] = 0;
00841     hs08_[ism-1] = 0;
00842 
00843     i01_[ism-1] = 0;
00844     i02_[ism-1] = 0;
00845     i03_[ism-1] = 0;
00846     i04_[ism-1] = 0;
00847     i05_[ism-1] = 0;
00848     i06_[ism-1] = 0;
00849     i07_[ism-1] = 0;
00850     i08_[ism-1] = 0;
00851 
00852     i09_[ism-1] = 0;
00853     i10_[ism-1] = 0;
00854     i11_[ism-1] = 0;
00855     i12_[ism-1] = 0;
00856     i13_[ism-1] = 0;
00857     i14_[ism-1] = 0;
00858     i15_[ism-1] = 0;
00859     i16_[ism-1] = 0;
00860 
00861   }
00862 
00863   for ( unsigned int i=0; i<superModules_.size(); i++ ) {
00864 
00865     int ism = superModules_[i];
00866 
00867     dqmStore_->setCurrentFolder( prefixME_ + "/EELaserClient" );
00868 
00869     if ( meg01_[ism-1] ) dqmStore_->removeElement( meg01_[ism-1]->getName() );
00870     meg01_[ism-1] = 0;
00871     if ( meg02_[ism-1] ) dqmStore_->removeElement( meg02_[ism-1]->getName() );
00872     meg02_[ism-1] = 0;
00873     if ( meg03_[ism-1] ) dqmStore_->removeElement( meg03_[ism-1]->getName() );
00874     meg03_[ism-1] = 0;
00875     if ( meg04_[ism-1] ) dqmStore_->removeElement( meg04_[ism-1]->getName() );
00876     meg04_[ism-1] = 0;
00877 
00878     if ( meg05_[ism-1] ) dqmStore_->removeElement( meg05_[ism-1]->getName() );
00879     meg05_[ism-1] = 0;
00880     if ( meg06_[ism-1] ) dqmStore_->removeElement( meg06_[ism-1]->getName() );
00881     meg06_[ism-1] = 0;
00882     if ( meg07_[ism-1] ) dqmStore_->removeElement( meg07_[ism-1]->getName() );
00883     meg07_[ism-1] = 0;
00884     if ( meg08_[ism-1] ) dqmStore_->removeElement( meg08_[ism-1]->getName() );
00885     meg08_[ism-1] = 0;
00886     if ( meg09_[ism-1] ) dqmStore_->removeElement( meg09_[ism-1]->getName() );
00887     meg09_[ism-1] = 0;
00888     if ( meg10_[ism-1] ) dqmStore_->removeElement( meg10_[ism-1]->getName() );
00889     meg10_[ism-1] = 0;
00890     if ( meg11_[ism-1] ) dqmStore_->removeElement( meg11_[ism-1]->getName() );
00891     meg11_[ism-1] = 0;
00892     if ( meg12_[ism-1] ) dqmStore_->removeElement( meg12_[ism-1]->getName() );
00893     meg12_[ism-1] = 0;
00894 
00895     if ( mea01_[ism-1] ) dqmStore_->removeElement( mea01_[ism-1]->getName() );
00896     mea01_[ism-1] = 0;
00897     if ( mea02_[ism-1] ) dqmStore_->removeElement( mea02_[ism-1]->getName() );
00898     mea02_[ism-1] = 0;
00899     if ( mea03_[ism-1] ) dqmStore_->removeElement( mea03_[ism-1]->getName() );
00900     mea03_[ism-1] = 0;
00901     if ( mea04_[ism-1] ) dqmStore_->removeElement( mea04_[ism-1]->getName() );
00902     mea04_[ism-1] = 0;
00903     if ( mea05_[ism-1] ) dqmStore_->removeElement( mea05_[ism-1]->getName() );
00904     mea05_[ism-1] = 0;
00905     if ( mea06_[ism-1] ) dqmStore_->removeElement( mea06_[ism-1]->getName() );
00906     mea06_[ism-1] = 0;
00907     if ( mea07_[ism-1] ) dqmStore_->removeElement( mea07_[ism-1]->getName() );
00908     mea07_[ism-1] = 0;
00909     if ( mea08_[ism-1] ) dqmStore_->removeElement( mea08_[ism-1]->getName() );
00910     mea08_[ism-1] = 0;
00911 
00912     if ( met01_[ism-1] ) dqmStore_->removeElement( met01_[ism-1]->getName() );
00913     met01_[ism-1] = 0;
00914     if ( met02_[ism-1] ) dqmStore_->removeElement( met02_[ism-1]->getName() );
00915     met02_[ism-1] = 0;
00916     if ( met03_[ism-1] ) dqmStore_->removeElement( met03_[ism-1]->getName() );
00917     met03_[ism-1] = 0;
00918     if ( met04_[ism-1] ) dqmStore_->removeElement( met04_[ism-1]->getName() );
00919     met04_[ism-1] = 0;
00920     if ( met05_[ism-1] ) dqmStore_->removeElement( met05_[ism-1]->getName() );
00921     met05_[ism-1] = 0;
00922     if ( met06_[ism-1] ) dqmStore_->removeElement( met06_[ism-1]->getName() );
00923     met06_[ism-1] = 0;
00924     if ( met07_[ism-1] ) dqmStore_->removeElement( met07_[ism-1]->getName() );
00925     met07_[ism-1] = 0;
00926     if ( met08_[ism-1] ) dqmStore_->removeElement( met08_[ism-1]->getName() );
00927     met08_[ism-1] = 0;
00928 
00929     if ( metav01_[ism-1] ) dqmStore_->removeElement( metav01_[ism-1]->getName() );
00930     metav01_[ism-1] = 0;
00931     if ( metav02_[ism-1] ) dqmStore_->removeElement( metav02_[ism-1]->getName() );
00932     metav02_[ism-1] = 0;
00933     if ( metav03_[ism-1] ) dqmStore_->removeElement( metav03_[ism-1]->getName() );
00934     metav03_[ism-1] = 0;
00935     if ( metav04_[ism-1] ) dqmStore_->removeElement( metav04_[ism-1]->getName() );
00936     metav04_[ism-1] = 0;
00937     if ( metav05_[ism-1] ) dqmStore_->removeElement( metav05_[ism-1]->getName() );
00938     metav05_[ism-1] = 0;
00939     if ( metav06_[ism-1] ) dqmStore_->removeElement( metav06_[ism-1]->getName() );
00940     metav06_[ism-1] = 0;
00941     if ( metav07_[ism-1] ) dqmStore_->removeElement( metav07_[ism-1]->getName() );
00942     metav07_[ism-1] = 0;
00943     if ( metav08_[ism-1] ) dqmStore_->removeElement( metav08_[ism-1]->getName() );
00944     metav08_[ism-1] = 0;
00945 
00946     if ( metrms01_[ism-1] ) dqmStore_->removeElement( metrms01_[ism-1]->getName() );
00947     metrms01_[ism-1] = 0;
00948     if ( metrms02_[ism-1] ) dqmStore_->removeElement( metrms02_[ism-1]->getName() );
00949     metrms02_[ism-1] = 0;
00950     if ( metrms03_[ism-1] ) dqmStore_->removeElement( metrms03_[ism-1]->getName() );
00951     metrms03_[ism-1] = 0;
00952     if ( metrms04_[ism-1] ) dqmStore_->removeElement( metrms04_[ism-1]->getName() );
00953     metrms04_[ism-1] = 0;
00954     if ( metrms05_[ism-1] ) dqmStore_->removeElement( metrms05_[ism-1]->getName() );
00955     metrms05_[ism-1] = 0;
00956     if ( metrms06_[ism-1] ) dqmStore_->removeElement( metrms06_[ism-1]->getName() );
00957     metrms06_[ism-1] = 0;
00958     if ( metrms07_[ism-1] ) dqmStore_->removeElement( metrms07_[ism-1]->getName() );
00959     metrms07_[ism-1] = 0;
00960     if ( metrms08_[ism-1] ) dqmStore_->removeElement( metrms08_[ism-1]->getName() );
00961     metrms08_[ism-1] = 0;
00962 
00963     if ( meaopn01_[ism-1] ) dqmStore_->removeElement( meaopn01_[ism-1]->getName() );
00964     meaopn01_[ism-1] = 0;
00965     if ( meaopn02_[ism-1] ) dqmStore_->removeElement( meaopn02_[ism-1]->getName() );
00966     meaopn02_[ism-1] = 0;
00967     if ( meaopn03_[ism-1] ) dqmStore_->removeElement( meaopn03_[ism-1]->getName() );
00968     meaopn03_[ism-1] = 0;
00969     if ( meaopn04_[ism-1] ) dqmStore_->removeElement( meaopn04_[ism-1]->getName() );
00970     meaopn04_[ism-1] = 0;
00971     if ( meaopn05_[ism-1] ) dqmStore_->removeElement( meaopn05_[ism-1]->getName() );
00972     meaopn05_[ism-1] = 0;
00973     if ( meaopn06_[ism-1] ) dqmStore_->removeElement( meaopn06_[ism-1]->getName() );
00974     meaopn06_[ism-1] = 0;
00975     if ( meaopn07_[ism-1] ) dqmStore_->removeElement( meaopn07_[ism-1]->getName() );
00976     meaopn07_[ism-1] = 0;
00977     if ( meaopn08_[ism-1] ) dqmStore_->removeElement( meaopn08_[ism-1]->getName() );
00978     meaopn08_[ism-1] = 0;
00979 
00980     if ( mepnprms01_[ism-1] ) dqmStore_->removeElement( mepnprms01_[ism-1]->getName() );
00981     mepnprms01_[ism-1] = 0;
00982     if ( mepnprms02_[ism-1] ) dqmStore_->removeElement( mepnprms02_[ism-1]->getName() );
00983     mepnprms02_[ism-1] = 0;
00984     if ( mepnprms03_[ism-1] ) dqmStore_->removeElement( mepnprms03_[ism-1]->getName() );
00985     mepnprms03_[ism-1] = 0;
00986     if ( mepnprms04_[ism-1] ) dqmStore_->removeElement( mepnprms04_[ism-1]->getName() );
00987     mepnprms04_[ism-1] = 0;
00988     if ( mepnprms05_[ism-1] ) dqmStore_->removeElement( mepnprms05_[ism-1]->getName() );
00989     mepnprms05_[ism-1] = 0;
00990     if ( mepnprms06_[ism-1] ) dqmStore_->removeElement( mepnprms06_[ism-1]->getName() );
00991     mepnprms06_[ism-1] = 0;
00992     if ( mepnprms07_[ism-1] ) dqmStore_->removeElement( mepnprms07_[ism-1]->getName() );
00993     mepnprms07_[ism-1] = 0;
00994     if ( mepnprms08_[ism-1] ) dqmStore_->removeElement( mepnprms08_[ism-1]->getName() );
00995     mepnprms08_[ism-1] = 0;
00996 
00997     if ( me_hs01_[ism-1] ) dqmStore_->removeElement( me_hs01_[ism-1]->getName() );
00998     me_hs01_[ism-1] = 0;
00999     if ( me_hs02_[ism-1] ) dqmStore_->removeElement( me_hs02_[ism-1]->getName() );
01000     me_hs02_[ism-1] = 0;
01001     if ( me_hs03_[ism-1] ) dqmStore_->removeElement( me_hs03_[ism-1]->getName() );
01002     me_hs03_[ism-1] = 0;
01003     if ( me_hs04_[ism-1] ) dqmStore_->removeElement( me_hs04_[ism-1]->getName() );
01004     me_hs04_[ism-1] = 0;
01005     if ( me_hs05_[ism-1] ) dqmStore_->removeElement( me_hs05_[ism-1]->getName() );
01006     me_hs05_[ism-1] = 0;
01007     if ( me_hs06_[ism-1] ) dqmStore_->removeElement( me_hs06_[ism-1]->getName() );
01008     me_hs06_[ism-1] = 0;
01009     if ( me_hs07_[ism-1] ) dqmStore_->removeElement( me_hs07_[ism-1]->getName() );
01010     me_hs07_[ism-1] = 0;
01011     if ( me_hs08_[ism-1] ) dqmStore_->removeElement( me_hs08_[ism-1]->getName() );
01012     me_hs08_[ism-1] = 0;
01013 
01014   }
01015 
01016 }
01017 
01018 bool EELaserClient::writeDb(EcalCondDBInterface* econn, RunIOV* runiov, MonRunIOV* moniov, bool& status, bool flag) {
01019 
01020   status = true;
01021 
01022   if ( ! flag ) return false;
01023 
01024   EcalLogicID ecid;
01025 
01026   MonLaserBlueDat apd_bl;
01027   map<EcalLogicID, MonLaserBlueDat> dataset1_bl;
01028   MonLaserGreenDat apd_gr;
01029   map<EcalLogicID, MonLaserGreenDat> dataset1_gr;
01030   MonLaserIRedDat apd_ir;
01031   map<EcalLogicID, MonLaserIRedDat> dataset1_ir;
01032   MonLaserRedDat apd_rd;
01033   map<EcalLogicID, MonLaserRedDat> dataset1_rd;
01034 
01035   for ( unsigned int i=0; i<superModules_.size(); i++ ) {
01036 
01037     int ism = superModules_[i];
01038 
01039     if ( verbose_ ) {
01040       cout << " " << Numbers::sEE(ism) << " (ism=" << ism << ")" << endl;
01041       cout << endl;
01042       UtilsClient::printBadChannels(meg01_[ism-1], h01_[ism-1]);
01043       UtilsClient::printBadChannels(meg01_[ism-1], h13_[ism-1]);
01044       UtilsClient::printBadChannels(meg02_[ism-1], h03_[ism-1]);
01045       UtilsClient::printBadChannels(meg02_[ism-1], h15_[ism-1]);
01046       UtilsClient::printBadChannels(meg03_[ism-1], h05_[ism-1]);
01047       UtilsClient::printBadChannels(meg03_[ism-1], h17_[ism-1]);
01048       UtilsClient::printBadChannels(meg04_[ism-1], h07_[ism-1]);
01049       UtilsClient::printBadChannels(meg04_[ism-1], h19_[ism-1]);
01050     }
01051 
01052     for ( int ix = 1; ix <= 50; ix++ ) {
01053       for ( int iy = 1; iy <= 50; iy++ ) {
01054 
01055         int jx = ix + Numbers::ix0EE(ism);
01056         int jy = iy + Numbers::iy0EE(ism);
01057 
01058         if ( ism >= 1 && ism <= 9 ) jx = 101 - jx;
01059 
01060         if ( ! Numbers::validEE(ism, jx, jy) ) continue;
01061 
01062         bool update01;
01063         bool update02;
01064         bool update03;
01065         bool update04;
01066         bool update05;
01067         bool update06;
01068         bool update07;
01069         bool update08;
01070 
01071         bool update09;
01072         bool update10;
01073         bool update11;
01074         bool update12;
01075         bool update13;
01076         bool update14;
01077         bool update15;
01078         bool update16;
01079 
01080         float num01, num02, num03, num04, num05, num06, num07, num08;
01081         float mean01, mean02, mean03, mean04, mean05, mean06, mean07, mean08;
01082         float rms01, rms02, rms03, rms04, rms05, rms06, rms07, rms08;
01083 
01084         float num09, num10, num11, num12, num13, num14, num15, num16;
01085         float mean09, mean10, mean11, mean12, mean13, mean14, mean15, mean16;
01086         float rms09, rms10, rms11, rms12, rms13, rms14, rms15, rms16;
01087 
01088         update01 = UtilsClient::getBinStatistics(h01_[ism-1], ix, iy, num01, mean01, rms01);
01089         update02 = UtilsClient::getBinStatistics(h02_[ism-1], ix, iy, num02, mean02, rms02);
01090         update03 = UtilsClient::getBinStatistics(h03_[ism-1], ix, iy, num03, mean03, rms03);
01091         update04 = UtilsClient::getBinStatistics(h04_[ism-1], ix, iy, num04, mean04, rms04);
01092         update05 = UtilsClient::getBinStatistics(h05_[ism-1], ix, iy, num05, mean05, rms05);
01093         update06 = UtilsClient::getBinStatistics(h06_[ism-1], ix, iy, num06, mean06, rms06);
01094         update07 = UtilsClient::getBinStatistics(h07_[ism-1], ix, iy, num07, mean07, rms07);
01095         update08 = UtilsClient::getBinStatistics(h08_[ism-1], ix, iy, num08, mean08, rms08);
01096 
01097         update09 = UtilsClient::getBinStatistics(h13_[ism-1], ix, iy, num09, mean09, rms09);
01098         update10 = UtilsClient::getBinStatistics(h14_[ism-1], ix, iy, num10, mean10, rms10);
01099         update11 = UtilsClient::getBinStatistics(h15_[ism-1], ix, iy, num11, mean11, rms11);
01100         update12 = UtilsClient::getBinStatistics(h16_[ism-1], ix, iy, num12, mean12, rms12);
01101         update13 = UtilsClient::getBinStatistics(h17_[ism-1], ix, iy, num13, mean13, rms13);
01102         update14 = UtilsClient::getBinStatistics(h18_[ism-1], ix, iy, num14, mean14, rms14);
01103         update15 = UtilsClient::getBinStatistics(h19_[ism-1], ix, iy, num15, mean15, rms15);
01104         update16 = UtilsClient::getBinStatistics(h20_[ism-1], ix, iy, num16, mean16, rms16);
01105 
01106         if ( update01 || update02 ) {
01107 
01108           if ( Numbers::icEE(ism, jx, jy) == 1 ) {
01109 
01110             if ( verbose_ ) {
01111               cout << "Preparing dataset for " << Numbers::sEE(ism) << " (ism=" << ism << ")" << endl;
01112               cout << "L1A (" << Numbers::ix0EE(i+1)+ix << "," << Numbers::iy0EE(i+1)+iy << ") " << num01 << " " << mean01 << " " << rms01 << endl;
01113               cout << endl;
01114             }
01115 
01116           }
01117 
01118           apd_bl.setAPDMean(mean01);
01119           apd_bl.setAPDRMS(rms01);
01120 
01121           apd_bl.setAPDOverPNMean(mean02);
01122           apd_bl.setAPDOverPNRMS(rms02);
01123 
01124           if ( UtilsClient::getBinStatus(meg01_[ism-1], ix, iy) ) {
01125             apd_bl.setTaskStatus(true);
01126           } else {
01127             apd_bl.setTaskStatus(false);
01128           }
01129 
01130           status = status && UtilsClient::getBinQuality(meg01_[ism-1], ix, iy);
01131 
01132           int ic = Numbers::indexEE(ism, jx, jy);
01133 
01134           if ( ic == -1 ) continue;
01135 
01136           if ( econn ) {
01137             ecid = LogicID::getEcalLogicID("EE_crystal_number", Numbers::iSM(ism, EcalEndcap), ic);
01138             dataset1_bl[ecid] = apd_bl;
01139           }
01140 
01141         }
01142 
01143         if ( update09 || update10 ) {
01144 
01145           if ( Numbers::icEE(ism, jx, jy) == 1 ) {
01146 
01147             if ( verbose_ ) {
01148               cout << "Preparing dataset for " << Numbers::sEE(ism) << " (ism=" << ism << ")" << endl;
01149               cout << "L1B (" << Numbers::ix0EE(i+1)+ix << "," << Numbers::iy0EE(i+1)+iy << ") " << num09 << " " << mean09 << " " << rms09 << endl;
01150               cout << endl;
01151             }
01152 
01153           }
01154 
01155           apd_bl.setAPDMean(mean09);
01156           apd_bl.setAPDRMS(rms09);
01157 
01158           apd_bl.setAPDOverPNMean(mean10);
01159           apd_bl.setAPDOverPNRMS(rms10);
01160 
01161           if ( UtilsClient::getBinStatus(meg01_[ism-1], ix, iy) ) {
01162             apd_bl.setTaskStatus(true);
01163           } else {
01164             apd_bl.setTaskStatus(false);
01165           }
01166 
01167           status = status && UtilsClient::getBinQuality(meg01_[ism-1], ix, iy);
01168 
01169           int ic = Numbers::indexEE(ism, jx, jy);
01170 
01171           if ( ic == -1 ) continue;
01172 
01173           if ( econn ) {
01174             ecid = LogicID::getEcalLogicID("EE_crystal_number", Numbers::iSM(ism, EcalEndcap), ic);
01175             dataset1_bl[ecid] = apd_bl;
01176           }
01177 
01178         }
01179 
01180         if ( update03 || update04 ) {
01181 
01182           if ( Numbers::icEE(ism, jx, jy) == 1 ) {
01183 
01184             if ( verbose_ ) {
01185               cout << "Preparing dataset for " << Numbers::sEE(ism) << " (ism=" << ism << ")" << endl;
01186               cout << "L2A (" << Numbers::ix0EE(i+1)+ix << "," << Numbers::iy0EE(i+1)+iy << ") " << num03 << " " << mean03 << " " << rms03 << endl;
01187               cout << endl;
01188             }
01189 
01190           }
01191 
01192           apd_ir.setAPDMean(mean03);
01193           apd_ir.setAPDRMS(rms03);
01194 
01195           apd_ir.setAPDOverPNMean(mean04);
01196           apd_ir.setAPDOverPNRMS(rms04);
01197 
01198           if ( UtilsClient::getBinStatus(meg02_[ism-1], ix, iy) ) {
01199             apd_ir.setTaskStatus(true);
01200           } else {
01201             apd_ir.setTaskStatus(false);
01202           }
01203 
01204           status = status && UtilsClient::getBinQuality(meg02_[ism-1], ix, iy);
01205 
01206           int ic = Numbers::indexEE(ism, jx, jy);
01207 
01208           if ( ic == -1 ) continue;
01209 
01210           if ( econn ) {
01211             ecid = LogicID::getEcalLogicID("EE_crystal_number", Numbers::iSM(ism, EcalEndcap), ic);
01212             dataset1_ir[ecid] = apd_ir;
01213           }
01214 
01215         }
01216 
01217         if ( update11 || update12 ) {
01218 
01219           if ( Numbers::icEE(ism, jx, jy) == 1 ) {
01220 
01221             if ( verbose_ ) {
01222               cout << "Preparing dataset for " << Numbers::sEE(ism) << " (ism=" << ism << ")" << endl;
01223               cout << "L2B (" << Numbers::ix0EE(i+1)+ix << "," << Numbers::iy0EE(i+1)+iy << ") " << num11 << " " << mean11 << " " << rms11 << endl;
01224               cout << endl;
01225             }
01226 
01227           }
01228 
01229           apd_ir.setAPDMean(mean11);
01230           apd_ir.setAPDRMS(rms11);
01231 
01232           apd_ir.setAPDOverPNMean(mean12);
01233           apd_ir.setAPDOverPNRMS(rms12);
01234 
01235           if ( UtilsClient::getBinStatus(meg02_[ism-1], ix, iy) ) {
01236             apd_ir.setTaskStatus(true);
01237           } else {
01238             apd_ir.setTaskStatus(false);
01239           }
01240 
01241           status = status && UtilsClient::getBinQuality(meg02_[ism-1], ix, iy);
01242 
01243           int ic = Numbers::indexEE(ism, jx, jy);
01244 
01245           if ( ic == -1 ) continue;
01246 
01247           if ( econn ) {
01248             ecid = LogicID::getEcalLogicID("EE_crystal_number", Numbers::iSM(ism, EcalEndcap), ic);
01249             dataset1_ir[ecid] = apd_ir;
01250           }
01251 
01252         }
01253 
01254         if ( update05 || update06 ) {
01255 
01256           if ( Numbers::icEE(ism, jx, jy) == 1 ) {
01257 
01258             if ( verbose_ ) {
01259               cout << "Preparing dataset for " << Numbers::sEE(ism) << " (ism=" << ism << ")" << endl;
01260               cout << "L3A (" << Numbers::ix0EE(i+1)+ix << "," << Numbers::iy0EE(i+1)+iy << ") " << num05 << " " << mean05 << " " << rms05 << endl;
01261               cout << endl;
01262             }
01263 
01264           }
01265 
01266           apd_gr.setAPDMean(mean05);
01267           apd_gr.setAPDRMS(rms05);
01268 
01269           apd_gr.setAPDOverPNMean(mean06);
01270           apd_gr.setAPDOverPNRMS(rms06);
01271 
01272           if ( UtilsClient::getBinStatus(meg03_[ism-1], ix, iy) ) {
01273             apd_gr.setTaskStatus(true);
01274           } else {
01275             apd_gr.setTaskStatus(false);
01276           }
01277 
01278           status = status && UtilsClient::getBinQuality(meg03_[ism-1], ix, iy);
01279 
01280           int ic = Numbers::indexEE(ism, jx, jy);
01281 
01282           if ( ic == -1 ) continue;
01283 
01284           if ( econn ) {
01285             ecid = LogicID::getEcalLogicID("EE_crystal_number", Numbers::iSM(ism, EcalEndcap), ic);
01286             dataset1_gr[ecid] = apd_gr;
01287           }
01288 
01289         }
01290 
01291         if ( update13 || update14 ) {
01292 
01293           if ( Numbers::icEE(ism, jx, jy) == 1 ) {
01294 
01295             if ( verbose_ ) {
01296               cout << "Preparing dataset for " << Numbers::sEE(ism) << " (ism=" << ism << ")" << endl;
01297               cout << "L3B (" << Numbers::ix0EE(i+1)+ix << "," << Numbers::iy0EE(i+1)+iy << ") " << num13 << " " << mean13 << " " << rms13 << endl;
01298               cout << endl;
01299             }
01300 
01301           }
01302 
01303           apd_gr.setAPDMean(mean13);
01304           apd_gr.setAPDRMS(rms13);
01305 
01306           apd_gr.setAPDOverPNMean(mean14);
01307           apd_gr.setAPDOverPNRMS(rms14);
01308 
01309           if ( UtilsClient::getBinStatus(meg03_[ism-1], ix, iy) ) {
01310             apd_gr.setTaskStatus(true);
01311           } else {
01312             apd_gr.setTaskStatus(false);
01313           }
01314 
01315           status = status && UtilsClient::getBinQuality(meg03_[ism-1], ix, iy);
01316 
01317           int ic = Numbers::indexEE(ism, jx, jy);
01318 
01319           if ( ic == -1 ) continue;
01320 
01321           if ( econn ) {
01322             ecid = LogicID::getEcalLogicID("EE_crystal_number", Numbers::iSM(ism, EcalEndcap), ic);
01323             dataset1_gr[ecid] = apd_gr;
01324           }
01325 
01326         }
01327 
01328         if ( update07 || update08 ) {
01329 
01330           if ( Numbers::icEE(ism, jx, jy) == 1 ) {
01331 
01332             if ( verbose_ ) {
01333               cout << "Preparing dataset for " << Numbers::sEE(ism) << " (ism=" << ism << ")" << endl;
01334               cout << "L4A (" << Numbers::ix0EE(i+1)+ix << "," << Numbers::iy0EE(i+1)+iy << ") " << num07 << " " << mean07 << " " << rms07 << endl;
01335               cout << endl;
01336             }
01337 
01338           }
01339 
01340           apd_rd.setAPDMean(mean07);
01341           apd_rd.setAPDRMS(rms07);
01342 
01343           apd_rd.setAPDOverPNMean(mean08);
01344           apd_rd.setAPDOverPNRMS(rms08);
01345 
01346           if ( UtilsClient::getBinStatus(meg04_[ism-1], ix, iy) ) {
01347             apd_rd.setTaskStatus(true);
01348           } else {
01349             apd_rd.setTaskStatus(false);
01350           }
01351 
01352           status = status && UtilsClient::getBinQuality(meg04_[ism-1], ix, iy);
01353 
01354           int ic = Numbers::indexEE(ism, jx, jy);
01355 
01356           if ( ic == -1 ) continue;
01357 
01358           if ( econn ) {
01359             ecid = LogicID::getEcalLogicID("EE_crystal_number", Numbers::iSM(ism, EcalEndcap), ic);
01360             dataset1_rd[ecid] = apd_rd;
01361           }
01362 
01363         }
01364 
01365         if ( update15 || update16 ) {
01366 
01367           if ( Numbers::icEE(ism, jx, jy) == 1 ) {
01368 
01369             if ( verbose_ ) {
01370               cout << "Preparing dataset for " << Numbers::sEE(ism) << " (ism=" << ism << ")" << endl;
01371               cout << "L4B (" << Numbers::ix0EE(i+1)+ix << "," << Numbers::iy0EE(i+1)+iy << ") " << num15 << " " << mean15 << " " << rms15 << endl;
01372               cout << endl;
01373             }
01374 
01375           }
01376 
01377           apd_rd.setAPDMean(mean15);
01378           apd_rd.setAPDRMS(rms15);
01379 
01380           apd_rd.setAPDOverPNMean(mean16);
01381           apd_rd.setAPDOverPNRMS(rms16);
01382 
01383           if ( UtilsClient::getBinStatus(meg04_[ism-1], ix, iy) ) {
01384             apd_rd.setTaskStatus(true);
01385           } else {
01386             apd_rd.setTaskStatus(false);
01387           }
01388 
01389           status = status && UtilsClient::getBinQuality(meg04_[ism-1], ix, iy);
01390 
01391           int ic = Numbers::indexEE(ism, jx, jy);
01392 
01393           if ( ic == -1 ) continue;
01394 
01395           if ( econn ) {
01396             ecid = LogicID::getEcalLogicID("EE_crystal_number", Numbers::iSM(ism, EcalEndcap), ic);
01397             dataset1_rd[ecid] = apd_rd;
01398           }
01399 
01400         }
01401 
01402       }
01403     }
01404 
01405   }
01406 
01407   if ( econn ) {
01408     try {
01409       if ( verbose_ ) cout << "Inserting MonLaserDat ..." << endl;
01410       if ( dataset1_bl.size() != 0 ) econn->insertDataArraySet(&dataset1_bl, moniov);
01411       if ( dataset1_ir.size() != 0 ) econn->insertDataArraySet(&dataset1_ir, moniov);
01412       if ( dataset1_gr.size() != 0 ) econn->insertDataArraySet(&dataset1_gr, moniov);
01413       if ( dataset1_rd.size() != 0 ) econn->insertDataArraySet(&dataset1_rd, moniov);
01414       if ( verbose_ ) cout << "done." << endl;
01415     } catch (runtime_error &e) {
01416       cerr << e.what() << endl;
01417     }
01418   }
01419 
01420   if ( verbose_ ) cout << endl;
01421 
01422   MonPNBlueDat pn_bl;
01423   map<EcalLogicID, MonPNBlueDat> dataset2_bl;
01424   MonPNGreenDat pn_gr;
01425   map<EcalLogicID, MonPNGreenDat> dataset2_gr;
01426   MonPNIRedDat pn_ir;
01427   map<EcalLogicID, MonPNIRedDat> dataset2_ir;
01428   MonPNRedDat pn_rd;
01429   map<EcalLogicID, MonPNRedDat> dataset2_rd;
01430 
01431   for ( unsigned int i=0; i<superModules_.size(); i++ ) {
01432 
01433     int ism = superModules_[i];
01434 
01435     if ( verbose_ ) {
01436       cout << " " << Numbers::sEE(ism) << " (ism=" << ism << ")" << endl;
01437       cout << endl;
01438       UtilsClient::printBadChannels(meg05_[ism-1], i01_[ism-1]);
01439       UtilsClient::printBadChannels(meg05_[ism-1], i05_[ism-1]);
01440       UtilsClient::printBadChannels(meg06_[ism-1], i02_[ism-1]);
01441       UtilsClient::printBadChannels(meg06_[ism-1], i06_[ism-1]);
01442       UtilsClient::printBadChannels(meg07_[ism-1], i03_[ism-1]);
01443       UtilsClient::printBadChannels(meg07_[ism-1], i07_[ism-1]);
01444       UtilsClient::printBadChannels(meg08_[ism-1], i04_[ism-1]);
01445       UtilsClient::printBadChannels(meg08_[ism-1], i08_[ism-1]);
01446       UtilsClient::printBadChannels(meg09_[ism-1], i09_[ism-1]);
01447       UtilsClient::printBadChannels(meg09_[ism-1], i13_[ism-1]);
01448       UtilsClient::printBadChannels(meg10_[ism-1], i10_[ism-1]);
01449       UtilsClient::printBadChannels(meg10_[ism-1], i14_[ism-1]);
01450       UtilsClient::printBadChannels(meg11_[ism-1], i11_[ism-1]);
01451       UtilsClient::printBadChannels(meg11_[ism-1], i15_[ism-1]);
01452       UtilsClient::printBadChannels(meg12_[ism-1], i12_[ism-1]);
01453       UtilsClient::printBadChannels(meg12_[ism-1], i16_[ism-1]);
01454     }
01455 
01456     for ( int i = 1; i <= 10; i++ ) {
01457 
01458       bool update01;
01459       bool update02;
01460       bool update03;
01461       bool update04;
01462       bool update05;
01463       bool update06;
01464       bool update07;
01465       bool update08;
01466       bool update09;
01467       bool update10;
01468       bool update11;
01469       bool update12;
01470       bool update13;
01471       bool update14;
01472       bool update15;
01473       bool update16;
01474 
01475       float num01, num02, num03, num04, num05, num06, num07, num08;
01476       float num09, num10, num11, num12, num13, num14, num15, num16;
01477       float mean01, mean02, mean03, mean04, mean05, mean06, mean07, mean08;
01478       float mean09, mean10, mean11, mean12, mean13, mean14, mean15, mean16;
01479       float rms01, rms02, rms03, rms04, rms05, rms06, rms07, rms08;
01480       float rms09, rms10, rms11, rms12, rms13, rms14, rms15, rms16;
01481 
01482       update01 = UtilsClient::getBinStatistics(i01_[ism-1], i, 0, num01, mean01, rms01);
01483       update02 = UtilsClient::getBinStatistics(i02_[ism-1], i, 0, num02, mean02, rms02);
01484       update03 = UtilsClient::getBinStatistics(i03_[ism-1], i, 0, num03, mean03, rms03);
01485       update04 = UtilsClient::getBinStatistics(i04_[ism-1], i, 0, num04, mean04, rms04);
01486       update05 = UtilsClient::getBinStatistics(i05_[ism-1], i, 0, num05, mean05, rms05);
01487       update06 = UtilsClient::getBinStatistics(i06_[ism-1], i, 0, num06, mean06, rms06);
01488       update07 = UtilsClient::getBinStatistics(i07_[ism-1], i, 0, num07, mean07, rms07);
01489       update08 = UtilsClient::getBinStatistics(i08_[ism-1], i, 0, num08, mean08, rms08);
01490       update09 = UtilsClient::getBinStatistics(i09_[ism-1], i, 0, num09, mean09, rms09);
01491       update10 = UtilsClient::getBinStatistics(i10_[ism-1], i, 0, num10, mean10, rms10);
01492       update11 = UtilsClient::getBinStatistics(i11_[ism-1], i, 0, num11, mean11, rms11);
01493       update12 = UtilsClient::getBinStatistics(i12_[ism-1], i, 0, num12, mean12, rms12);
01494       update13 = UtilsClient::getBinStatistics(i13_[ism-1], i, 0, num13, mean13, rms13);
01495       update14 = UtilsClient::getBinStatistics(i14_[ism-1], i, 0, num14, mean14, rms14);
01496       update15 = UtilsClient::getBinStatistics(i15_[ism-1], i, 0, num15, mean15, rms15);
01497       update16 = UtilsClient::getBinStatistics(i16_[ism-1], i, 0, num16, mean16, rms16);
01498 
01499       if ( update01 || update05 || update09 || update13 ) {
01500 
01501         if ( i == 1 ) {
01502 
01503           if ( verbose_ ) {
01504             cout << "Preparing dataset for " << Numbers::sEE(ism) << " (ism=" << ism << ")" << endl;
01505             cout << "PNs (" << i << ") L1 G01 " << num01  << " " << mean01 << " " << rms01  << endl;
01506             cout << "PNs (" << i << ") L1 G16 " << num09  << " " << mean09 << " " << rms09  << endl;
01507             cout << endl;
01508           }
01509 
01510         }
01511 
01512         pn_bl.setADCMeanG1(mean01);
01513         pn_bl.setADCRMSG1(rms01);
01514 
01515         pn_bl.setPedMeanG1(mean05);
01516         pn_bl.setPedRMSG1(rms05);
01517 
01518         pn_bl.setADCMeanG16(mean09);
01519         pn_bl.setADCRMSG16(rms09);
01520 
01521         pn_bl.setPedMeanG16(mean13);
01522         pn_bl.setPedRMSG16(rms13);
01523 
01524         if ( UtilsClient::getBinStatus(meg05_[ism-1], i, 1) ||
01525              UtilsClient::getBinStatus(meg09_[ism-1], i, 1) ) {
01526           pn_bl.setTaskStatus(true);
01527         } else {
01528           pn_bl.setTaskStatus(false);
01529         }
01530 
01531         status = status && ( UtilsClient::getBinQuality(meg05_[ism-1], i, 1) ||
01532                              UtilsClient::getBinQuality(meg09_[ism-1], i, 1) );
01533 
01534         if ( econn ) {
01535           ecid = LogicID::getEcalLogicID("EE_LM_PN", Numbers::iSM(ism, EcalEndcap), i-1);
01536           dataset2_bl[ecid] = pn_bl;
01537         }
01538 
01539       }
01540 
01541       if ( update02 || update06 || update10 || update14 ) {
01542 
01543         if ( i == 1 ) {
01544 
01545           if ( verbose_ ) {
01546             cout << "Preparing dataset for " << Numbers::sEE(ism) << " (ism=" << ism << ")" << endl;
01547             cout << "PNs (" << i << ") L2 G01 " << num02  << " " << mean02 << " " << rms02  << endl;
01548             cout << "PNs (" << i << ") L2 G16 " << num10  << " " << mean10 << " " << rms10  << endl;
01549             cout << endl;
01550           }
01551 
01552         }
01553 
01554         pn_ir.setADCMeanG1(mean02);
01555         pn_ir.setADCRMSG1(rms02);
01556 
01557         pn_ir.setPedMeanG1(mean06);
01558         pn_ir.setPedRMSG1(rms06);
01559 
01560         pn_ir.setADCMeanG16(mean10);
01561         pn_ir.setADCRMSG16(rms10);
01562 
01563         pn_ir.setPedMeanG16(mean14);
01564         pn_ir.setPedRMSG16(rms14);
01565 
01566         if ( UtilsClient::getBinStatus(meg06_[ism-1], i, 1) ||
01567              UtilsClient::getBinStatus(meg10_[ism-1], i, 1) ) {
01568           pn_ir.setTaskStatus(true);
01569         } else {
01570           pn_ir.setTaskStatus(false);
01571         }
01572 
01573         status = status && ( UtilsClient::getBinQuality(meg06_[ism-1], i, 1) ||
01574                              UtilsClient::getBinQuality(meg10_[ism-1], i, 1) );
01575 
01576         if ( econn ) {
01577           ecid = LogicID::getEcalLogicID("EE_LM_PN", Numbers::iSM(ism, EcalEndcap), i-1);
01578           dataset2_ir[ecid] = pn_ir;
01579         }
01580 
01581       }
01582 
01583       if ( update03 || update07 || update11 || update15 ) {
01584 
01585         if ( i == 1 ) {
01586 
01587           if ( verbose_ ) {
01588             cout << "Preparing dataset for " << Numbers::sEE(ism) << " (ism=" << ism << ")" << endl;
01589             cout << "PNs (" << i << ") L3 G01 " << num03  << " " << mean03 << " " << rms03  << endl;
01590             cout << "PNs (" << i << ") L3 G16 " << num11  << " " << mean11 << " " << rms11  << endl;
01591             cout << endl;
01592           }
01593 
01594         }
01595 
01596         pn_gr.setADCMeanG1(mean03);
01597         pn_gr.setADCRMSG1(rms03);
01598 
01599         pn_gr.setPedMeanG1(mean07);
01600         pn_gr.setPedRMSG1(rms07);
01601 
01602         pn_gr.setADCMeanG16(mean11);
01603         pn_gr.setADCRMSG16(rms11);
01604 
01605         pn_gr.setPedMeanG16(mean15);
01606         pn_gr.setPedRMSG16(rms15);
01607 
01608         if ( UtilsClient::getBinStatus(meg07_[ism-1], i, 1) ||
01609              UtilsClient::getBinStatus(meg11_[ism-1], i, 1) ) {
01610           pn_gr.setTaskStatus(true);
01611         } else {
01612           pn_gr.setTaskStatus(false);
01613         }
01614 
01615         status = status && ( UtilsClient::getBinQuality(meg07_[ism-1], i, 1) ||
01616                              UtilsClient::getBinQuality(meg11_[ism-1], i, 1) );
01617 
01618         if ( econn ) {
01619           ecid = LogicID::getEcalLogicID("EE_LM_PN", Numbers::iSM(ism, EcalEndcap), i-1);
01620           dataset2_gr[ecid] = pn_gr;
01621         }
01622 
01623       }
01624 
01625       if ( update04 || update08 || update12 || update16 ) {
01626 
01627         if ( i == 1 ) {
01628 
01629           if ( verbose_ ) {
01630             cout << "Preparing dataset for " << Numbers::sEE(ism) << " (ism=" << ism << ")" << endl;
01631             cout << "PNs (" << i << ") L4 G01 " << num04  << " " << mean04 << " " << rms04  << endl;
01632             cout << "PNs (" << i << ") L4 G16 " << num12  << " " << mean12 << " " << rms12  << endl;
01633             cout << endl;
01634           }
01635 
01636         }
01637 
01638         pn_rd.setADCMeanG1(mean04);
01639         pn_rd.setADCRMSG1(rms04);
01640 
01641         pn_rd.setPedMeanG1(mean08);
01642         pn_rd.setPedRMSG1(mean08);
01643 
01644         pn_rd.setADCMeanG16(mean12);
01645         pn_rd.setADCRMSG16(rms12);
01646 
01647         pn_rd.setPedMeanG16(mean16);
01648         pn_rd.setPedRMSG16(rms16);
01649 
01650         if ( UtilsClient::getBinStatus(meg08_[ism-1], i, 1) ||
01651              UtilsClient::getBinStatus(meg12_[ism-1], i, 1) ) {
01652           pn_rd.setTaskStatus(true);
01653         } else {
01654           pn_rd.setTaskStatus(false);
01655         }
01656 
01657         status = status && ( UtilsClient::getBinQuality(meg08_[ism-1], i, 1) ||
01658                              UtilsClient::getBinQuality(meg12_[ism-1], i, 1) );
01659 
01660         if ( econn ) {
01661           ecid = LogicID::getEcalLogicID("EE_LM_PN", Numbers::iSM(ism, EcalEndcap), i-1);
01662           dataset2_rd[ecid] = pn_rd;
01663         }
01664 
01665       }
01666 
01667     }
01668 
01669   }
01670 
01671   if ( econn ) {
01672     try {
01673       if ( verbose_ ) cout << "Inserting MonPnDat ..." << endl;
01674       if ( dataset2_bl.size() != 0 ) econn->insertDataArraySet(&dataset2_bl, moniov);
01675       if ( dataset2_ir.size() != 0 ) econn->insertDataArraySet(&dataset2_ir, moniov);
01676       if ( dataset2_gr.size() != 0 ) econn->insertDataArraySet(&dataset2_gr, moniov);
01677       if ( dataset2_rd.size() != 0 ) econn->insertDataArraySet(&dataset2_rd, moniov);
01678       if ( verbose_ ) cout << "done." << endl;
01679     } catch (runtime_error &e) {
01680       cerr << e.what() << endl;
01681     }
01682   }
01683 
01684   if ( verbose_ ) cout << endl;
01685 
01686   MonTimingLaserBlueCrystalDat t_bl;
01687   map<EcalLogicID, MonTimingLaserBlueCrystalDat> dataset3_bl;
01688   MonTimingLaserGreenCrystalDat t_gr;
01689   map<EcalLogicID, MonTimingLaserGreenCrystalDat> dataset3_gr;
01690   MonTimingLaserIRedCrystalDat t_ir;
01691   map<EcalLogicID, MonTimingLaserIRedCrystalDat> dataset3_ir;
01692   MonTimingLaserRedCrystalDat t_rd;
01693   map<EcalLogicID, MonTimingLaserRedCrystalDat> dataset3_rd;
01694 
01695   for ( unsigned int i=0; i<superModules_.size(); i++ ) {
01696 
01697     int ism = superModules_[i];
01698 
01699     if ( verbose_ ) {
01700       cout << " " << Numbers::sEE(ism) << " (ism=" << ism << ")" << endl;
01701       cout << endl;
01702     }
01703 
01704     for ( int ix = 1; ix <= 50; ix++ ) {
01705       for ( int iy = 1; iy <= 50; iy++ ) {
01706 
01707         int jx = ix + Numbers::ix0EE(ism);
01708         int jy = iy + Numbers::iy0EE(ism);
01709 
01710         if ( ism >= 1 && ism <= 9 ) jx = 101 - jx;
01711 
01712         if ( ! Numbers::validEE(ism, jx, jy) ) continue;
01713 
01714         bool update01;
01715         bool update02;
01716         bool update03;
01717         bool update04;
01718         bool update05;
01719         bool update06;
01720         bool update07;
01721         bool update08;
01722 
01723         float num01, num02, num03, num04, num05, num06, num07, num08;
01724         float mean01, mean02, mean03, mean04, mean05, mean06, mean07, mean08;
01725         float rms01, rms02, rms03, rms04, rms05, rms06, rms07, rms08;
01726 
01727         update01 = UtilsClient::getBinStatistics(h09_[ism-1], ix, iy, num01, mean01, rms01);
01728         update02 = UtilsClient::getBinStatistics(h10_[ism-1], ix, iy, num02, mean02, rms02);
01729         update03 = UtilsClient::getBinStatistics(h11_[ism-1], ix, iy, num03, mean03, rms03);
01730         update04 = UtilsClient::getBinStatistics(h12_[ism-1], ix, iy, num04, mean04, rms04);
01731         update05 = UtilsClient::getBinStatistics(h21_[ism-1], ix, iy, num05, mean05, rms05);
01732         update06 = UtilsClient::getBinStatistics(h22_[ism-1], ix, iy, num06, mean06, rms06);
01733         update07 = UtilsClient::getBinStatistics(h23_[ism-1], ix, iy, num07, mean07, rms07);
01734         update08 = UtilsClient::getBinStatistics(h24_[ism-1], ix, iy, num08, mean08, rms08);
01735 
01736         if ( update01 ) {
01737 
01738           if ( Numbers::icEE(ism, ix, iy) == 1 ) {
01739 
01740             if ( verbose_ ) {
01741               cout << "Preparing dataset for " << Numbers::sEE(ism) << " (ism=" << ism << ")" << endl;
01742               cout << "L1A crystal (" << Numbers::ix0EE(i+1)+ix << "," << Numbers::iy0EE(i+1)+iy << ") " << num01  << " " << mean01 << " " << rms01  << endl;
01743               cout << endl;
01744             }
01745 
01746           }
01747 
01748           t_bl.setTimingMean(mean01);
01749           t_bl.setTimingRMS(rms01);
01750 
01751           if ( UtilsClient::getBinStatus(meg01_[ism-1], ix, iy) ) {
01752             t_bl.setTaskStatus(true);
01753           } else {
01754             t_bl.setTaskStatus(false);
01755           }
01756 
01757           status = status && UtilsClient::getBinQuality(meg01_[ism-1], ix, iy);
01758 
01759           int ic = Numbers::indexEE(ism, ix, iy);
01760 
01761           if ( ic == -1 ) continue;
01762 
01763           if ( econn ) {
01764             ecid = LogicID::getEcalLogicID("EE_crystal_number", Numbers::iSM(ism, EcalEndcap), ic);
01765             dataset3_bl[ecid] = t_bl;
01766           }
01767 
01768         }
01769 
01770         if ( update05 ) {
01771 
01772           if ( Numbers::icEE(ism, ix, iy) == 1 ) {
01773 
01774             if ( verbose_ ) {
01775               cout << "Preparing dataset for " << Numbers::sEE(ism) << " (ism=" << ism << ")" << endl;
01776               cout << "L1B crystal (" << Numbers::ix0EE(i+1)+ix << "," << Numbers::iy0EE(i+1)+iy << ") " << num05  << " " << mean05 << " " << rms05  << endl;
01777               cout << endl;
01778             }
01779 
01780           }
01781 
01782           t_bl.setTimingMean(mean05);
01783           t_bl.setTimingRMS(rms05);
01784 
01785           if ( UtilsClient::getBinStatus(meg01_[ism-1], ix, iy) ) {
01786             t_bl.setTaskStatus(true);
01787           } else {
01788             t_bl.setTaskStatus(false);
01789           }
01790 
01791           status = status && UtilsClient::getBinQuality(meg01_[ism-1], ix, iy);
01792 
01793           int ic = Numbers::indexEE(ism, ix, iy);
01794 
01795           if ( ic == -1 ) continue;
01796 
01797           if ( econn ) {
01798             ecid = LogicID::getEcalLogicID("EE_crystal_number", Numbers::iSM(ism, EcalEndcap), ic);
01799             dataset3_bl[ecid] = t_bl;
01800           }
01801 
01802         }
01803 
01804         if ( update02 ) {
01805 
01806           if ( Numbers::icEE(ism, ix, iy) == 1 ) {
01807 
01808             if ( verbose_ ) {
01809               cout << "Preparing dataset for " << Numbers::sEE(ism) << " (ism=" << ism << ")" << endl;
01810               cout << "L2A crystal (" << Numbers::ix0EE(i+1)+ix << "," << Numbers::iy0EE(i+1)+iy << ") " << num02  << " " << mean02 << " " << rms02  << endl;
01811               cout << endl;
01812             }
01813 
01814           }
01815 
01816           t_gr.setTimingMean(mean02);
01817           t_gr.setTimingRMS(rms02);
01818 
01819           if ( UtilsClient::getBinStatus(meg02_[ism-1], ix, iy) ) {
01820             t_gr.setTaskStatus(true);
01821           } else {
01822             t_gr.setTaskStatus(false);
01823           }
01824 
01825           status = status && UtilsClient::getBinQuality(meg02_[ism-1], ix, iy);
01826 
01827           int ic = Numbers::indexEE(ism, ix, iy);
01828 
01829           if ( ic == -1 ) continue;
01830 
01831           if ( econn ) {
01832             ecid = LogicID::getEcalLogicID("EE_crystal_number", Numbers::iSM(ism, EcalEndcap), ic);
01833             dataset3_gr[ecid] = t_gr;
01834           }
01835 
01836         }
01837 
01838         if ( update06 ) {
01839 
01840           if ( Numbers::icEE(ism, ix, iy) == 1 ) {
01841 
01842             if ( verbose_ ) {
01843               cout << "Preparing dataset for " << Numbers::sEE(ism) << " (ism=" << ism << ")" << endl;
01844               cout << "L2B crystal (" << Numbers::ix0EE(i+1)+ix << "," << Numbers::iy0EE(i+1)+iy << ") " << num06  << " " << mean06 << " " << rms06  << endl;
01845               cout << endl;
01846             }
01847 
01848           }
01849 
01850           t_gr.setTimingMean(mean06);
01851           t_gr.setTimingRMS(rms06);
01852 
01853           if ( UtilsClient::getBinStatus(meg02_[ism-1], ix, iy) ) {
01854             t_gr.setTaskStatus(true);
01855           } else {
01856             t_gr.setTaskStatus(false);
01857           }
01858 
01859           status = status && UtilsClient::getBinQuality(meg02_[ism-1], ix, iy);
01860 
01861           int ic = Numbers::indexEE(ism, ix, iy);
01862 
01863           if ( ic == -1 ) continue;
01864 
01865           if ( econn ) {
01866             ecid = LogicID::getEcalLogicID("EE_crystal_number", Numbers::iSM(ism, EcalEndcap), ic);
01867             dataset3_gr[ecid] = t_gr;
01868           }
01869 
01870         }
01871 
01872         if ( update03 ) {
01873 
01874           if ( Numbers::icEE(ism, ix, iy) == 1 ) {
01875 
01876             if ( verbose_ ) {
01877               cout << "Preparing dataset for " << Numbers::sEE(ism) << " (ism=" << ism << ")" << endl;
01878               cout << "L3A crystal (" << Numbers::ix0EE(i+1)+ix << "," << Numbers::iy0EE(i+1)+iy << ") " << num03  << " " << mean03 << " " << rms03  << endl;
01879               cout << endl;
01880             }
01881 
01882           }
01883 
01884           t_ir.setTimingMean(mean03);
01885           t_ir.setTimingRMS(rms03);
01886 
01887           if ( UtilsClient::getBinStatus(meg03_[ism-1], ix, iy) ) {
01888             t_ir.setTaskStatus(true);
01889           } else {
01890             t_ir.setTaskStatus(false);
01891           }
01892 
01893           status = status && UtilsClient::getBinQuality(meg03_[ism-1], ix, iy);
01894 
01895           int ic = Numbers::indexEE(ism, ix, iy);
01896 
01897           if ( ic == -1 ) continue;
01898 
01899           if ( econn ) {
01900             ecid = LogicID::getEcalLogicID("EE_crystal_number", Numbers::iSM(ism, EcalEndcap), ic);
01901             dataset3_ir[ecid] = t_ir;
01902           }
01903 
01904         }
01905 
01906         if ( update07 ) {
01907 
01908           if ( Numbers::icEE(ism, ix, iy) == 1 ) {
01909 
01910             if ( verbose_ ) {
01911               cout << "Preparing dataset for " << Numbers::sEE(ism) << " (ism=" << ism << ")" << endl;
01912               cout << "L3B crystal (" << Numbers::ix0EE(i+1)+ix << "," << Numbers::iy0EE(i+1)+iy << ") " << num07  << " " << mean07 << " " << rms07  << endl;
01913               cout << endl;
01914             }
01915 
01916           }
01917 
01918           t_ir.setTimingMean(mean07);
01919           t_ir.setTimingRMS(rms07);
01920 
01921           if ( UtilsClient::getBinStatus(meg03_[ism-1], ix, iy) ) {
01922             t_ir.setTaskStatus(true);
01923           } else {
01924             t_ir.setTaskStatus(false);
01925           }
01926 
01927           status = status && UtilsClient::getBinQuality(meg03_[ism-1], ix, iy);
01928 
01929           int ic = Numbers::indexEE(ism, ix, iy);
01930 
01931           if ( ic == -1 ) continue;
01932 
01933           if ( econn ) {
01934             ecid = LogicID::getEcalLogicID("EE_crystal_number", Numbers::iSM(ism, EcalEndcap), ic);
01935             dataset3_ir[ecid] = t_ir;
01936           }
01937 
01938         }
01939 
01940         if ( update04 ) {
01941 
01942           if ( Numbers::icEE(ism, ix, iy) == 1 ) {
01943 
01944             if ( verbose_ ) {
01945               cout << "Preparing dataset for " << Numbers::sEE(ism) << " (ism=" << ism << ")" << endl;
01946               cout << "L4A crystal (" << Numbers::ix0EE(i+1)+ix << "," << Numbers::iy0EE(i+1)+iy << ") " << num04  << " " << mean04 << " " << rms04  << endl;
01947               cout << endl;
01948             }
01949 
01950           }
01951 
01952           t_rd.setTimingMean(mean04);
01953           t_rd.setTimingRMS(rms04);
01954 
01955           if ( UtilsClient::getBinStatus(meg04_[ism-1], ix, iy) ) {
01956             t_rd.setTaskStatus(true);
01957           } else {
01958             t_rd.setTaskStatus(false);
01959           }
01960 
01961           status = status && UtilsClient::getBinQuality(meg04_[ism-1], ix, iy);
01962 
01963           int ic = Numbers::indexEE(ism, ix, iy);
01964 
01965           if ( ic == -1 ) continue;
01966 
01967           if ( econn ) {
01968             ecid = LogicID::getEcalLogicID("EE_crystal_number", Numbers::iSM(ism, EcalEndcap), ic);
01969             dataset3_rd[ecid] = t_rd;
01970           }
01971 
01972         }
01973 
01974         if ( update08 ) {
01975 
01976           if ( Numbers::icEE(ism, ix, iy) == 1 ) {
01977 
01978             if ( verbose_ ) {
01979               cout << "Preparing dataset for " << Numbers::sEE(ism) << " (ism=" << ism << ")" << endl;
01980               cout << "L4B crystal (" << Numbers::ix0EE(i+1)+ix << "," << Numbers::iy0EE(i+1)+iy << ") " << num08  << " " << mean08 << " " << rms08  << endl;
01981               cout << endl;
01982             }
01983 
01984           }
01985 
01986           t_bl.setTimingMean(mean08);
01987           t_bl.setTimingRMS(rms08);
01988 
01989           if ( UtilsClient::getBinStatus(meg04_[ism-1], ix, iy) ) {
01990             t_rd.setTaskStatus(true);
01991           } else {
01992             t_rd.setTaskStatus(false);
01993           }
01994 
01995           status = status && UtilsClient::getBinQuality(meg04_[ism-1], ix, iy);
01996 
01997           int ic = Numbers::indexEE(ism, ix, iy);
01998 
01999           if ( ic == -1 ) continue;
02000 
02001           if ( econn ) {
02002             ecid = LogicID::getEcalLogicID("EE_crystal_number", Numbers::iSM(ism, EcalEndcap), ic);
02003             dataset3_rd[ecid] = t_rd;
02004           }
02005 
02006         }
02007 
02008       }
02009     }
02010 
02011   }
02012 
02013   if ( econn ) {
02014     try {
02015       if ( verbose_ ) cout << "Inserting MonTimingLaserCrystalDat ..." << endl;
02016       if ( dataset3_bl.size() != 0 ) econn->insertDataArraySet(&dataset3_bl, moniov);
02017       if ( dataset3_ir.size() != 0 ) econn->insertDataArraySet(&dataset3_ir, moniov);
02018       if ( dataset3_gr.size() != 0 ) econn->insertDataArraySet(&dataset3_gr, moniov);
02019       if ( dataset3_rd.size() != 0 ) econn->insertDataArraySet(&dataset3_rd, moniov);
02020       if ( verbose_ ) cout << "done." << endl;
02021     } catch (runtime_error &e) {
02022       cerr << e.what() << endl;
02023     }
02024   }
02025 
02026   return true;
02027 
02028 }
02029 
02030 void EELaserClient::analyze(void) {
02031 
02032   ievt_++;
02033   jevt_++;
02034   if ( ievt_ % 10 == 0 ) {
02035     if ( debug_ ) cout << "EELaserClient: ievt/jevt = " << ievt_ << "/" << jevt_ << endl;
02036   }
02037 
02038   uint64_t bits01 = 0;
02039   bits01 |= EcalErrorDictionary::getMask("LASER_MEAN_WARNING");
02040   bits01 |= EcalErrorDictionary::getMask("LASER_RMS_WARNING");
02041   bits01 |= EcalErrorDictionary::getMask("LASER_MEAN_OVER_PN_WARNING");
02042   bits01 |= EcalErrorDictionary::getMask("LASER_RMS_OVER_PN_WARNING");
02043 
02044   uint64_t bits02 = 0;
02045   bits02 |= EcalErrorDictionary::getMask("PEDESTAL_LOW_GAIN_MEAN_WARNING");
02046   bits02 |= EcalErrorDictionary::getMask("PEDESTAL_LOW_GAIN_RMS_WARNING");
02047   bits02 |= EcalErrorDictionary::getMask("PEDESTAL_LOW_GAIN_MEAN_ERROR");
02048   bits02 |= EcalErrorDictionary::getMask("PEDESTAL_LOW_GAIN_RMS_ERROR");
02049 
02050   uint64_t bits03 = 0;
02051   bits03 |= EcalErrorDictionary::getMask("PEDESTAL_MIDDLE_GAIN_MEAN_WARNING");
02052   bits03 |= EcalErrorDictionary::getMask("PEDESTAL_MIDDLE_GAIN_RMS_WARNING");
02053   bits03 |= EcalErrorDictionary::getMask("PEDESTAL_MIDDLE_GAIN_MEAN_ERROR");
02054   bits03 |= EcalErrorDictionary::getMask("PEDESTAL_MIDDLE_GAIN_RMS_ERROR");
02055 
02056   uint64_t bits04 = 0;
02057   bits04 |= EcalErrorDictionary::getMask("PEDESTAL_HIGH_GAIN_MEAN_WARNING");
02058   bits04 |= EcalErrorDictionary::getMask("PEDESTAL_HIGH_GAIN_RMS_WARNING");
02059   bits04 |= EcalErrorDictionary::getMask("PEDESTAL_HIGH_GAIN_MEAN_ERROR");
02060   bits04 |= EcalErrorDictionary::getMask("PEDESTAL_HIGH_GAIN_RMS_ERROR");
02061 
02062   map<EcalLogicID, RunCrystalErrorsDat> mask1;
02063   map<EcalLogicID, RunPNErrorsDat> mask2;
02064   map<EcalLogicID, RunTTErrorsDat> mask3;
02065 
02066   EcalErrorMask::fetchDataSet(&mask1);
02067   EcalErrorMask::fetchDataSet(&mask2);
02068   EcalErrorMask::fetchDataSet(&mask3);
02069 
02070   char histo[200];
02071 
02072   MonitorElement* me;
02073 
02074   for ( unsigned int i=0; i<superModules_.size(); i++ ) {
02075 
02076     int ism = superModules_[i];
02077 
02078     sprintf(histo, (prefixME_ + "/EELaserTask/Laser1/EELT amplitude %s L1A").c_str(), Numbers::sEE(ism).c_str());
02079     me = dqmStore_->get(histo);
02080     h01_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, h01_[ism-1] );
02081 
02082     sprintf(histo, (prefixME_ + "/EELaserTask/Laser1/EELT amplitude over PN %s L1A").c_str(), Numbers::sEE(ism).c_str());
02083     me = dqmStore_->get(histo);
02084     h02_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, h02_[ism-1] );
02085 
02086     sprintf(histo, (prefixME_ + "/EELaserTask/Laser2/EELT amplitude %s L2A").c_str(), Numbers::sEE(ism).c_str());
02087     me = dqmStore_->get(histo);
02088     h03_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, h03_[ism-1] );
02089 
02090     sprintf(histo, (prefixME_ + "/EELaserTask/Laser2/EELT amplitude over PN %s L2A").c_str(), Numbers::sEE(ism).c_str());
02091     me = dqmStore_->get(histo);
02092     h04_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, h04_[ism-1] );
02093 
02094     sprintf(histo, (prefixME_ + "/EELaserTask/Laser3/EELT amplitude %s L3A").c_str(), Numbers::sEE(ism).c_str());
02095     me = dqmStore_->get(histo);
02096     h05_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, h05_[ism-1] );
02097 
02098     sprintf(histo, (prefixME_ + "/EELaserTask/Laser3/EELT amplitude over PN %s L3A").c_str(), Numbers::sEE(ism).c_str());
02099     me = dqmStore_->get(histo);
02100     h06_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, h06_[ism-1] );
02101 
02102     sprintf(histo, (prefixME_ + "/EELaserTask/Laser4/EELT amplitude %s L4A").c_str(), Numbers::sEE(ism).c_str());
02103     me = dqmStore_->get(histo);
02104     h07_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, h07_[ism-1] );
02105 
02106     sprintf(histo, (prefixME_ + "/EELaserTask/Laser4/EELT amplitude over PN %s L4A").c_str(), Numbers::sEE(ism).c_str());
02107     me = dqmStore_->get(histo);
02108     h08_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, h08_[ism-1] );
02109 
02110     sprintf(histo, (prefixME_ + "/EELaserTask/Laser1/EELT timing %s L1A").c_str(), Numbers::sEE(ism).c_str());
02111     me = dqmStore_->get(histo);
02112     h09_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, h09_[ism-1] );
02113 
02114     sprintf(histo, (prefixME_ + "/EELaserTask/Laser2/EELT timing %s L2A").c_str(), Numbers::sEE(ism).c_str());
02115     me = dqmStore_->get(histo);
02116     h10_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, h10_[ism-1] );
02117 
02118     sprintf(histo, (prefixME_ + "/EELaserTask/Laser3/EELT timing %s L3A").c_str(), Numbers::sEE(ism).c_str());
02119     me = dqmStore_->get(histo);
02120     h11_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, h11_[ism-1] );
02121 
02122     sprintf(histo, (prefixME_ + "/EELaserTask/Laser4/EELT timing %s L4A").c_str(), Numbers::sEE(ism).c_str());
02123     me = dqmStore_->get(histo);
02124     h12_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, h12_[ism-1] );
02125 
02126     sprintf(histo, (prefixME_ + "/EELaserTask/Laser1/EELT amplitude %s L1B").c_str(), Numbers::sEE(ism).c_str());
02127     me = dqmStore_->get(histo);
02128     h13_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, h13_[ism-1] );
02129 
02130     sprintf(histo, (prefixME_ + "/EELaserTask/Laser1/EELT amplitude over PN %s L1B").c_str(), Numbers::sEE(ism).c_str());
02131     me = dqmStore_->get(histo);
02132     h14_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, h14_[ism-1] );
02133 
02134     sprintf(histo, (prefixME_ + "/EELaserTask/Laser2/EELT amplitude %s L2B").c_str(), Numbers::sEE(ism).c_str());
02135     me = dqmStore_->get(histo);
02136     h15_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, h15_[ism-1] );
02137 
02138     sprintf(histo, (prefixME_ + "/EELaserTask/Laser2/EELT amplitude over PN %s L2B").c_str(), Numbers::sEE(ism).c_str());
02139     me = dqmStore_->get(histo);
02140     h16_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, h16_[ism-1] );
02141 
02142     sprintf(histo, (prefixME_ + "/EELaserTask/Laser3/EELT amplitude %s L3B").c_str(), Numbers::sEE(ism).c_str());
02143     me = dqmStore_->get(histo);
02144     h17_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, h17_[ism-1] );
02145 
02146     sprintf(histo, (prefixME_ + "/EELaserTask/Laser3/EELT amplitude over PN %s L3B").c_str(), Numbers::sEE(ism).c_str());
02147     me = dqmStore_->get(histo);
02148     h18_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, h18_[ism-1] );
02149 
02150     sprintf(histo, (prefixME_ + "/EELaserTask/Laser4/EELT amplitude %s L4B").c_str(), Numbers::sEE(ism).c_str());
02151     me = dqmStore_->get(histo);
02152     h19_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, h19_[ism-1] );
02153 
02154     sprintf(histo, (prefixME_ + "/EELaserTask/Laser4/EELT amplitude over PN %s L4B").c_str(), Numbers::sEE(ism).c_str());
02155     me = dqmStore_->get(histo);
02156     h20_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, h20_[ism-1] );
02157 
02158     sprintf(histo, (prefixME_ + "/EELaserTask/Laser1/EELT timing %s L1B").c_str(), Numbers::sEE(ism).c_str());
02159     me = dqmStore_->get(histo);
02160     h21_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, h21_[ism-1] );
02161 
02162     sprintf(histo, (prefixME_ + "/EELaserTask/Laser2/EELT timing %s L2B").c_str(), Numbers::sEE(ism).c_str());
02163     me = dqmStore_->get(histo);
02164     h22_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, h22_[ism-1] );
02165 
02166     sprintf(histo, (prefixME_ + "/EELaserTask/Laser3/EELT timing %s L3B").c_str(), Numbers::sEE(ism).c_str());
02167     me = dqmStore_->get(histo);
02168     h23_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, h23_[ism-1] );
02169 
02170     sprintf(histo, (prefixME_ + "/EELaserTask/Laser4/EELT timing %s L4B").c_str(), Numbers::sEE(ism).c_str());
02171     me = dqmStore_->get(histo);
02172     h24_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, h24_[ism-1] );
02173 
02174     sprintf(histo, (prefixME_ + "/EELaserTask/Laser1/EELT shape %s L1A").c_str(), Numbers::sEE(ism).c_str());
02175     me = dqmStore_->get(histo);
02176     hs01_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, hs01_[ism-1] );
02177 
02178     sprintf(histo, (prefixME_ + "/EELaserTask/Laser2/EELT shape %s L2A").c_str(), Numbers::sEE(ism).c_str());
02179     me = dqmStore_->get(histo);
02180     hs02_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, hs02_[ism-1] );
02181 
02182     sprintf(histo, (prefixME_ + "/EELaserTask/Laser3/EELT shape %s L3A").c_str(), Numbers::sEE(ism).c_str());
02183     me = dqmStore_->get(histo);
02184     hs03_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, hs03_[ism-1] );
02185 
02186     sprintf(histo, (prefixME_ + "/EELaserTask/Laser4/EELT shape %s L4A").c_str(), Numbers::sEE(ism).c_str());
02187     me = dqmStore_->get(histo);
02188     hs04_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, hs04_[ism-1] );
02189 
02190     sprintf(histo, (prefixME_ + "/EELaserTask/Laser1/EELT shape %s L1B").c_str(), Numbers::sEE(ism).c_str());
02191     me = dqmStore_->get(histo);
02192     hs05_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, hs05_[ism-1] );
02193 
02194     sprintf(histo, (prefixME_ + "/EELaserTask/Laser2/EELT shape %s L2B").c_str(), Numbers::sEE(ism).c_str());
02195     me = dqmStore_->get(histo);
02196     hs06_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, hs06_[ism-1] );
02197 
02198     sprintf(histo, (prefixME_ + "/EELaserTask/Laser3/EELT shape %s L3B").c_str(), Numbers::sEE(ism).c_str());
02199     me = dqmStore_->get(histo);
02200     hs07_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, hs07_[ism-1] );
02201 
02202     sprintf(histo, (prefixME_ + "/EELaserTask/Laser4/EELT shape %s L4B").c_str(), Numbers::sEE(ism).c_str());
02203     me = dqmStore_->get(histo);
02204     hs08_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, hs08_[ism-1] );
02205 
02206     sprintf(histo, (prefixME_ + "/EELaserTask/Laser1/PN/Gain01/EEPDT PNs amplitude %s G01 L1").c_str(), Numbers::sEE(ism).c_str());
02207     me = dqmStore_->get(histo);
02208     i01_[ism-1] = UtilsClient::getHisto<TProfile*>( me, cloneME_, i01_[ism-1] );
02209 
02210     sprintf(histo, (prefixME_ + "/EELaserTask/Laser2/PN/Gain01/EEPDT PNs amplitude %s G01 L2").c_str(), Numbers::sEE(ism).c_str());
02211     me = dqmStore_->get(histo);
02212     i02_[ism-1] = UtilsClient::getHisto<TProfile*>( me, cloneME_, i02_[ism-1] );
02213 
02214     sprintf(histo, (prefixME_ + "/EELaserTask/Laser3/PN/Gain01/EEPDT PNs amplitude %s G01 L3").c_str(), Numbers::sEE(ism).c_str());
02215     me = dqmStore_->get(histo);
02216     i03_[ism-1] = UtilsClient::getHisto<TProfile*>( me, cloneME_, i03_[ism-1] );
02217 
02218     sprintf(histo, (prefixME_ + "/EELaserTask/Laser4/PN/Gain01/EEPDT PNs amplitude %s G01 L4").c_str(), Numbers::sEE(ism).c_str());
02219     me = dqmStore_->get(histo);
02220     i04_[ism-1] = UtilsClient::getHisto<TProfile*>( me, cloneME_, i04_[ism-1] );
02221 
02222     sprintf(histo, (prefixME_ + "/EELaserTask/Laser1/PN/Gain01/EEPDT PNs pedestal %s G01 L1").c_str(), Numbers::sEE(ism).c_str());
02223     me = dqmStore_->get(histo);
02224     i05_[ism-1] = UtilsClient::getHisto<TProfile*>( me, cloneME_, i05_[ism-1] );
02225 
02226     sprintf(histo, (prefixME_ + "/EELaserTask/Laser2/PN/Gain01/EEPDT PNs pedestal %s G01 L2").c_str(), Numbers::sEE(ism).c_str());
02227     me = dqmStore_->get(histo);
02228     i06_[ism-1] = UtilsClient::getHisto<TProfile*>( me, cloneME_, i06_[ism-1] );
02229 
02230     sprintf(histo, (prefixME_ + "/EELaserTask/Laser3/PN/Gain01/EEPDT PNs pedestal %s G01 L3").c_str(), Numbers::sEE(ism).c_str());
02231     me = dqmStore_->get(histo);
02232     i07_[ism-1] = UtilsClient::getHisto<TProfile*>( me, cloneME_, i07_[ism-1] );
02233 
02234     sprintf(histo, (prefixME_ + "/EELaserTask/Laser4/PN/Gain01/EEPDT PNs pedestal %s G01 L4").c_str(), Numbers::sEE(ism).c_str());
02235     me = dqmStore_->get(histo);
02236     i08_[ism-1] = UtilsClient::getHisto<TProfile*>( me, cloneME_, i08_[ism-1] );
02237 
02238     sprintf(histo, (prefixME_ + "/EELaserTask/Laser1/PN/Gain16/EEPDT PNs amplitude %s G16 L1").c_str(), Numbers::sEE(ism).c_str());
02239     me = dqmStore_->get(histo);
02240     i09_[ism-1] = UtilsClient::getHisto<TProfile*>( me, cloneME_, i09_[ism-1] );
02241 
02242     sprintf(histo, (prefixME_ + "/EELaserTask/Laser2/PN/Gain16/EEPDT PNs amplitude %s G16 L2").c_str(), Numbers::sEE(ism).c_str());
02243     me = dqmStore_->get(histo);
02244     i10_[ism-1] = UtilsClient::getHisto<TProfile*>( me, cloneME_, i10_[ism-1] );
02245 
02246     sprintf(histo, (prefixME_ + "/EELaserTask/Laser3/PN/Gain16/EEPDT PNs amplitude %s G16 L3").c_str(), Numbers::sEE(ism).c_str());
02247     me = dqmStore_->get(histo);
02248     i11_[ism-1] = UtilsClient::getHisto<TProfile*>( me, cloneME_, i11_[ism-1] );
02249 
02250     sprintf(histo, (prefixME_ + "/EELaserTask/Laser4/PN/Gain16/EEPDT PNs amplitude %s G16 L4").c_str(), Numbers::sEE(ism).c_str());
02251     me = dqmStore_->get(histo);
02252     i12_[ism-1] = UtilsClient::getHisto<TProfile*>( me, cloneME_, i12_[ism-1] );
02253 
02254     sprintf(histo, (prefixME_ + "/EELaserTask/Laser1/PN/Gain16/EEPDT PNs pedestal %s G16 L1").c_str(), Numbers::sEE(ism).c_str());
02255     me = dqmStore_->get(histo);
02256     i13_[ism-1] = UtilsClient::getHisto<TProfile*>( me, cloneME_, i13_[ism-1] );
02257 
02258     sprintf(histo, (prefixME_ + "/EELaserTask/Laser2/PN/Gain16/EEPDT PNs pedestal %s G16 L2").c_str(), Numbers::sEE(ism).c_str());
02259     me = dqmStore_->get(histo);
02260     i14_[ism-1] = UtilsClient::getHisto<TProfile*>( me, cloneME_, i14_[ism-1] );
02261 
02262     sprintf(histo, (prefixME_ + "/EELaserTask/Laser3/PN/Gain16/EEPDT PNs pedestal %s G16 L3").c_str(), Numbers::sEE(ism).c_str());
02263     me = dqmStore_->get(histo);
02264     i15_[ism-1] = UtilsClient::getHisto<TProfile*>( me, cloneME_, i15_[ism-1] );
02265 
02266     sprintf(histo, (prefixME_ + "/EELaserTask/Laser4/PN/Gain16/EEPDT PNs pedestal %s G16 L4").c_str(), Numbers::sEE(ism).c_str());
02267     me = dqmStore_->get(histo);
02268     i16_[ism-1] = UtilsClient::getHisto<TProfile*>( me, cloneME_, i16_[ism-1] );
02269 
02270     if ( meg01_[ism-1] ) meg01_[ism-1]->Reset();
02271     if ( meg02_[ism-1] ) meg02_[ism-1]->Reset();
02272     if ( meg03_[ism-1] ) meg03_[ism-1]->Reset();
02273     if ( meg04_[ism-1] ) meg04_[ism-1]->Reset();
02274 
02275     if ( meg05_[ism-1] ) meg05_[ism-1]->Reset();
02276     if ( meg06_[ism-1] ) meg06_[ism-1]->Reset();
02277     if ( meg07_[ism-1] ) meg07_[ism-1]->Reset();
02278     if ( meg08_[ism-1] ) meg08_[ism-1]->Reset();
02279     if ( meg09_[ism-1] ) meg09_[ism-1]->Reset();
02280     if ( meg10_[ism-1] ) meg10_[ism-1]->Reset();
02281     if ( meg11_[ism-1] ) meg11_[ism-1]->Reset();
02282     if ( meg12_[ism-1] ) meg12_[ism-1]->Reset();
02283 
02284     if ( mea01_[ism-1] ) mea01_[ism-1]->Reset();
02285     if ( mea02_[ism-1] ) mea02_[ism-1]->Reset();
02286     if ( mea03_[ism-1] ) mea03_[ism-1]->Reset();
02287     if ( mea04_[ism-1] ) mea04_[ism-1]->Reset();
02288     if ( mea05_[ism-1] ) mea05_[ism-1]->Reset();
02289     if ( mea06_[ism-1] ) mea06_[ism-1]->Reset();
02290     if ( mea07_[ism-1] ) mea07_[ism-1]->Reset();
02291     if ( mea08_[ism-1] ) mea08_[ism-1]->Reset();
02292 
02293     if ( met01_[ism-1] ) met01_[ism-1]->Reset();
02294     if ( met02_[ism-1] ) met02_[ism-1]->Reset();
02295     if ( met03_[ism-1] ) met03_[ism-1]->Reset();
02296     if ( met04_[ism-1] ) met04_[ism-1]->Reset();
02297     if ( met05_[ism-1] ) met05_[ism-1]->Reset();
02298     if ( met06_[ism-1] ) met06_[ism-1]->Reset();
02299     if ( met07_[ism-1] ) met07_[ism-1]->Reset();
02300     if ( met08_[ism-1] ) met08_[ism-1]->Reset();
02301 
02302     if ( metav01_[ism-1] ) metav01_[ism-1]->Reset();
02303     if ( metav02_[ism-1] ) metav02_[ism-1]->Reset();
02304     if ( metav03_[ism-1] ) metav03_[ism-1]->Reset();
02305     if ( metav04_[ism-1] ) metav04_[ism-1]->Reset();
02306     if ( metav05_[ism-1] ) metav05_[ism-1]->Reset();
02307     if ( metav06_[ism-1] ) metav06_[ism-1]->Reset();
02308     if ( metav07_[ism-1] ) metav07_[ism-1]->Reset();
02309     if ( metav08_[ism-1] ) metav08_[ism-1]->Reset();
02310 
02311     if ( metrms01_[ism-1] ) metrms01_[ism-1]->Reset();
02312     if ( metrms02_[ism-1] ) metrms02_[ism-1]->Reset();
02313     if ( metrms03_[ism-1] ) metrms03_[ism-1]->Reset();
02314     if ( metrms04_[ism-1] ) metrms04_[ism-1]->Reset();
02315     if ( metrms05_[ism-1] ) metrms05_[ism-1]->Reset();
02316     if ( metrms06_[ism-1] ) metrms06_[ism-1]->Reset();
02317     if ( metrms07_[ism-1] ) metrms07_[ism-1]->Reset();
02318     if ( metrms08_[ism-1] ) metrms08_[ism-1]->Reset();
02319 
02320     if ( meaopn01_[ism-1] ) meaopn01_[ism-1]->Reset();
02321     if ( meaopn02_[ism-1] ) meaopn02_[ism-1]->Reset();
02322     if ( meaopn03_[ism-1] ) meaopn03_[ism-1]->Reset();
02323     if ( meaopn04_[ism-1] ) meaopn04_[ism-1]->Reset();
02324     if ( meaopn05_[ism-1] ) meaopn05_[ism-1]->Reset();
02325     if ( meaopn06_[ism-1] ) meaopn06_[ism-1]->Reset();
02326     if ( meaopn07_[ism-1] ) meaopn07_[ism-1]->Reset();
02327     if ( meaopn08_[ism-1] ) meaopn08_[ism-1]->Reset();
02328 
02329     if ( mepnprms01_[ism-1] ) mepnprms01_[ism-1]->Reset();
02330     if ( mepnprms02_[ism-1] ) mepnprms02_[ism-1]->Reset();
02331     if ( mepnprms03_[ism-1] ) mepnprms03_[ism-1]->Reset();
02332     if ( mepnprms04_[ism-1] ) mepnprms04_[ism-1]->Reset();
02333     if ( mepnprms05_[ism-1] ) mepnprms05_[ism-1]->Reset();
02334     if ( mepnprms06_[ism-1] ) mepnprms06_[ism-1]->Reset();
02335     if ( mepnprms07_[ism-1] ) mepnprms07_[ism-1]->Reset();
02336     if ( mepnprms08_[ism-1] ) mepnprms08_[ism-1]->Reset();
02337 
02338     if ( me_hs01_[ism-1] ) me_hs01_[ism-1]->Reset();
02339     if ( me_hs02_[ism-1] ) me_hs02_[ism-1]->Reset();
02340     if ( me_hs03_[ism-1] ) me_hs03_[ism-1]->Reset();
02341     if ( me_hs04_[ism-1] ) me_hs04_[ism-1]->Reset();
02342     if ( me_hs05_[ism-1] ) me_hs05_[ism-1]->Reset();
02343     if ( me_hs06_[ism-1] ) me_hs06_[ism-1]->Reset();
02344     if ( me_hs07_[ism-1] ) me_hs07_[ism-1]->Reset();
02345     if ( me_hs08_[ism-1] ) me_hs08_[ism-1]->Reset();
02346 
02347     float meanAmplL1A, meanAmplL2A, meanAmplL3A, meanAmplL4A;
02348     float meanAmplL1B, meanAmplL2B, meanAmplL3B, meanAmplL4B;
02349 
02350     int nCryL1A, nCryL2A, nCryL3A, nCryL4A;
02351     int nCryL1B, nCryL2B, nCryL3B, nCryL4B;
02352 
02353     meanAmplL1A = meanAmplL2A = meanAmplL3A = meanAmplL4A = 0.;
02354     meanAmplL1B = meanAmplL2B = meanAmplL3B = meanAmplL4B = 0.;
02355 
02356     nCryL1A = nCryL2A = nCryL3A = nCryL4A = 0;
02357     nCryL1B = nCryL2B = nCryL3B = nCryL4B = 0;
02358 
02359     for ( int ix = 1; ix <= 50; ix++ ) {
02360       for ( int iy = 1; iy <= 50; iy++ ) {
02361 
02362         bool update01;
02363         bool update02;
02364         bool update03;
02365         bool update04;
02366         bool update05;
02367         bool update06;
02368         bool update07;
02369         bool update08;
02370 
02371         float num01, num02, num03, num04, num05, num06, num07, num08;
02372         float mean01, mean02, mean03, mean04, mean05, mean06, mean07, mean08;
02373         float rms01, rms02, rms03, rms04, rms05, rms06, rms07, rms08;
02374 
02375         update01 = UtilsClient::getBinStatistics(h01_[ism-1], ix, iy, num01, mean01, rms01);
02376         update02 = UtilsClient::getBinStatistics(h03_[ism-1], ix, iy, num02, mean02, rms02);
02377         update03 = UtilsClient::getBinStatistics(h05_[ism-1], ix, iy, num03, mean03, rms03);
02378         update04 = UtilsClient::getBinStatistics(h07_[ism-1], ix, iy, num04, mean04, rms04);
02379         update05 = UtilsClient::getBinStatistics(h13_[ism-1], ix, iy, num05, mean05, rms05);
02380         update06 = UtilsClient::getBinStatistics(h15_[ism-1], ix, iy, num06, mean06, rms06);
02381         update07 = UtilsClient::getBinStatistics(h17_[ism-1], ix, iy, num07, mean07, rms07);
02382         update08 = UtilsClient::getBinStatistics(h19_[ism-1], ix, iy, num08, mean08, rms08);
02383 
02384         if ( update01 ) {
02385           meanAmplL1A += mean01;
02386           nCryL1A++;
02387         }
02388 
02389         if ( update02 ) {
02390           meanAmplL2A += mean02;
02391           nCryL2A++;
02392         }
02393 
02394         if ( update03 ) {
02395           meanAmplL3A += mean03;
02396           nCryL3A++;
02397         }
02398 
02399         if ( update04 ) {
02400           meanAmplL4A += mean04;
02401           nCryL4A++;
02402         }
02403 
02404         if ( update05 ) {
02405           meanAmplL1B += mean05;
02406           nCryL1B++;
02407         }
02408 
02409         if ( update06 ) {
02410           meanAmplL2B += mean06;
02411           nCryL2B++;
02412         }
02413 
02414         if ( update07 ) {
02415           meanAmplL3B += mean07;
02416           nCryL3B++;
02417         }
02418 
02419         if ( update08 ) {
02420           meanAmplL4B += mean08;
02421           nCryL4B++;
02422         }
02423 
02424       }
02425     }
02426 
02427     if ( nCryL1A > 0 ) meanAmplL1A /= float (nCryL1A);
02428     if ( nCryL2A > 0 ) meanAmplL2A /= float (nCryL2A);
02429     if ( nCryL3A > 0 ) meanAmplL3A /= float (nCryL3A);
02430     if ( nCryL4A > 0 ) meanAmplL4A /= float (nCryL4A);
02431     if ( nCryL1B > 0 ) meanAmplL1B /= float (nCryL1B);
02432     if ( nCryL2B > 0 ) meanAmplL2B /= float (nCryL2B);
02433     if ( nCryL3B > 0 ) meanAmplL3B /= float (nCryL3B);
02434     if ( nCryL4B > 0 ) meanAmplL4B /= float (nCryL4B);
02435 
02436     for ( int ix = 1; ix <= 50; ix++ ) {
02437       for ( int iy = 1; iy <= 50; iy++ ) {
02438 
02439         if ( meg01_[ism-1] ) meg01_[ism-1]->setBinContent( ix, iy, 6.);
02440         if ( meg02_[ism-1] ) meg02_[ism-1]->setBinContent( ix, iy, 6.);
02441         if ( meg03_[ism-1] ) meg03_[ism-1]->setBinContent( ix, iy, 6.);
02442         if ( meg04_[ism-1] ) meg04_[ism-1]->setBinContent( ix, iy, 6.);
02443 
02444         int jx = ix + Numbers::ix0EE(ism);
02445         int jy = iy + Numbers::iy0EE(ism);
02446 
02447         if ( ism >= 1 && ism <= 9 ) jx = 101 - jx;
02448 
02449         if ( Numbers::validEE(ism, jx, jy) ) {
02450           if ( meg01_[ism-1] ) meg01_[ism-1]->setBinContent( ix, iy, 2.);
02451           if ( meg02_[ism-1] ) meg02_[ism-1]->setBinContent( ix, iy, 2.);
02452           if ( meg03_[ism-1] ) meg03_[ism-1]->setBinContent( ix, iy, 2.);
02453           if ( meg04_[ism-1] ) meg04_[ism-1]->setBinContent( ix, iy, 2.);
02454         }
02455 
02456         bool update01;
02457         bool update02;
02458         bool update03;
02459         bool update04;
02460         bool update05;
02461         bool update06;
02462         bool update07;
02463         bool update08;
02464         bool update09;
02465         bool update10;
02466         bool update11;
02467         bool update12;
02468 
02469         bool update13;
02470         bool update14;
02471         bool update15;
02472         bool update16;
02473         bool update17;
02474         bool update18;
02475         bool update19;
02476         bool update20;
02477         bool update21;
02478         bool update22;
02479         bool update23;
02480         bool update24;
02481 
02482         float num01, num02, num03, num04, num05, num06, num07, num08;
02483         float num09, num10, num11, num12;
02484         float mean01, mean02, mean03, mean04, mean05, mean06, mean07, mean08;
02485         float mean09, mean10, mean11, mean12;
02486         float rms01, rms02, rms03, rms04, rms05, rms06, rms07, rms08;
02487         float rms09, rms10, rms11, rms12;
02488 
02489         float num13, num14, num15, num16, num17, num18, num19, num20;
02490         float num21, num22, num23, num24;
02491         float mean13, mean14, mean15, mean16, mean17, mean18, mean19, mean20;
02492         float mean21, mean22, mean23, mean24;
02493         float rms13, rms14, rms15, rms16, rms17, rms18, rms19, rms20;
02494         float rms21, rms22, rms23, rms24;
02495 
02496         update01 = UtilsClient::getBinStatistics(h01_[ism-1], ix, iy, num01, mean01, rms01);
02497         update02 = UtilsClient::getBinStatistics(h02_[ism-1], ix, iy, num02, mean02, rms02);
02498         update03 = UtilsClient::getBinStatistics(h03_[ism-1], ix, iy, num03, mean03, rms03);
02499         update04 = UtilsClient::getBinStatistics(h04_[ism-1], ix, iy, num04, mean04, rms04);
02500         update05 = UtilsClient::getBinStatistics(h05_[ism-1], ix, iy, num05, mean05, rms05);
02501         update06 = UtilsClient::getBinStatistics(h06_[ism-1], ix, iy, num06, mean06, rms06);
02502         update07 = UtilsClient::getBinStatistics(h07_[ism-1], ix, iy, num07, mean07, rms07);
02503         update08 = UtilsClient::getBinStatistics(h08_[ism-1], ix, iy, num08, mean08, rms08);
02504         update09 = UtilsClient::getBinStatistics(h09_[ism-1], ix, iy, num09, mean09, rms09);
02505         update10 = UtilsClient::getBinStatistics(h10_[ism-1], ix, iy, num10, mean10, rms10);
02506         update11 = UtilsClient::getBinStatistics(h11_[ism-1], ix, iy, num11, mean11, rms11);
02507         update12 = UtilsClient::getBinStatistics(h12_[ism-1], ix, iy, num12, mean12, rms12);
02508 
02509         // other SM half
02510 
02511         update13 = UtilsClient::getBinStatistics(h13_[ism-1], ix, iy, num13, mean13, rms13);
02512         update14 = UtilsClient::getBinStatistics(h14_[ism-1], ix, iy, num14, mean14, rms14);
02513         update15 = UtilsClient::getBinStatistics(h15_[ism-1], ix, iy, num15, mean15, rms15);
02514         update16 = UtilsClient::getBinStatistics(h16_[ism-1], ix, iy, num16, mean16, rms16);
02515         update17 = UtilsClient::getBinStatistics(h17_[ism-1], ix, iy, num17, mean17, rms17);
02516         update18 = UtilsClient::getBinStatistics(h18_[ism-1], ix, iy, num18, mean18, rms18);
02517         update19 = UtilsClient::getBinStatistics(h19_[ism-1], ix, iy, num19, mean19, rms19);
02518         update20 = UtilsClient::getBinStatistics(h20_[ism-1], ix, iy, num20, mean20, rms20);
02519         update21 = UtilsClient::getBinStatistics(h21_[ism-1], ix, iy, num21, mean21, rms21);
02520         update22 = UtilsClient::getBinStatistics(h22_[ism-1], ix, iy, num22, mean22, rms22);
02521         update23 = UtilsClient::getBinStatistics(h23_[ism-1], ix, iy, num23, mean23, rms23);
02522         update24 = UtilsClient::getBinStatistics(h24_[ism-1], ix, iy, num24, mean24, rms24);
02523 
02524         if ( update01 ) {
02525 
02526           float val;
02527 
02528           val = 1.;
02529           if ( fabs(mean01 - meanAmplL1A) > fabs(percentVariation_ * meanAmplL1A) || mean01 < amplitudeThreshold_ )
02530             val = 0.;
02531           if ( meg01_[ism-1] ) meg01_[ism-1]->setBinContent( ix, iy, val );
02532 
02533           int ic = Numbers::icEE(ism, jx, jy);
02534 
02535           if ( ic != -1 ) {
02536             if ( mea01_[ism-1] ) {
02537               if ( mean01 > 0. ) {
02538                 mea01_[ism-1]->setBinContent( ic, mean01 );
02539                 mea01_[ism-1]->setBinError( ic, rms01 );
02540               } else {
02541                 mea01_[ism-1]->setEntries( 1.+mea01_[ism-1]->getEntries() );
02542               }
02543             }
02544           }
02545 
02546         }
02547 
02548         if ( update13 ) {
02549 
02550           float val;
02551 
02552           val = 1.;
02553           if ( fabs(mean13 - meanAmplL1B) > fabs(percentVariation_ * meanAmplL1B) || mean13 < amplitudeThreshold_ )
02554            val = 0.;
02555           if ( meg01_[ism-1] ) meg01_[ism-1]->setBinContent( ix, iy, val );
02556 
02557           int ic = Numbers::icEE(ism, jx, jy);
02558 
02559           if ( ic != -1 ) {
02560             if ( mea05_[ism-1] ) {
02561               if ( mean13 > 0. ) {
02562                 mea05_[ism-1]->setBinContent( ic, mean13 );
02563                 mea05_[ism-1]->setBinError( ic, rms13 );
02564             } else {
02565                 mea05_[ism-1]->setEntries( 1.+mea05_[ism-1]->getEntries() );
02566               }
02567             }
02568           }
02569 
02570         }
02571 
02572         if ( update03 ) {
02573 
02574           float val;
02575 
02576           val = 1.;
02577           if ( fabs(mean03 - meanAmplL2A) > fabs(percentVariation_ * meanAmplL2A) || mean03 < amplitudeThreshold_ )
02578             val = 0.;
02579           if ( meg02_[ism-1] ) meg02_[ism-1]->setBinContent( ix, iy, val);
02580 
02581           int ic = Numbers::icEE(ism, jx, jy);
02582 
02583           if ( ic != -1 ) {
02584             if ( mea02_[ism-1] ) {
02585               if ( mean03 > 0. ) {
02586                 mea02_[ism-1]->setBinContent( ic, mean03 );
02587                 mea02_[ism-1]->setBinError( ic, rms03 );
02588               } else {
02589                 mea02_[ism-1]->setEntries( 1.+mea02_[ism-1]->getEntries() );
02590               }
02591             }
02592           }
02593 
02594         }
02595 
02596         if ( update15 ) {
02597 
02598           float val;
02599 
02600           val = 1.;
02601           if ( fabs(mean15 - meanAmplL2B) > fabs(percentVariation_ * meanAmplL2B) || mean15 < amplitudeThreshold_ )
02602             val = 0.;
02603           if ( meg02_[ism-1] ) meg02_[ism-1]->setBinContent( ix, iy, val);
02604 
02605           int ic = Numbers::icEE(ism, jx, jy);
02606 
02607           if ( ic != -1 ) {
02608             if ( mea06_[ism-1] ) {
02609               if ( mean15 > 0. ) {
02610                 mea06_[ism-1]->setBinContent( ic, mean15 );
02611                 mea06_[ism-1]->setBinError( ic, rms15 );
02612               } else {
02613                 mea06_[ism-1]->setEntries( 1.+mea06_[ism-1]->getEntries() );
02614               }
02615             }
02616           }
02617 
02618         }
02619 
02620         if ( update05 ) {
02621 
02622           float val;
02623 
02624           val = 1.;
02625           if ( fabs(mean05 - meanAmplL3A) > fabs(percentVariation_ * meanAmplL3A) || mean05 < amplitudeThreshold_ )
02626             val = 0.;
02627           if ( meg03_[ism-1] ) meg03_[ism-1]->setBinContent( ix, iy, val );
02628 
02629           int ic = Numbers::icEE(ism, jx, jy);
02630 
02631           if ( ic != -1 ) {
02632             if ( mea03_[ism-1] ) {
02633               if ( mean05 > 0. ) {
02634                 mea03_[ism-1]->setBinContent( ic, mean05 );
02635                 mea03_[ism-1]->setBinError( ic, rms05 );
02636               } else {
02637                 mea03_[ism-1]->setEntries( 1.+mea03_[ism-1]->getEntries() );
02638               }
02639             }
02640           }
02641 
02642         }
02643 
02644         if ( update17 ) {
02645 
02646           float val;
02647 
02648           val = 1.;
02649           if ( fabs(mean17 - meanAmplL3B) > fabs(percentVariation_ * meanAmplL3B) || mean17 < amplitudeThreshold_ )
02650             val = 0.;
02651           if ( meg03_[ism-1] ) meg03_[ism-1]->setBinContent( ix, iy, val );
02652 
02653           int ic = Numbers::icEE(ism, jx, jy);
02654 
02655           if ( ic != -1 ) {
02656             if ( mea07_[ism-1] ) {
02657               if ( mean17 > 0. ) {
02658                 mea07_[ism-1]->setBinContent( ic, mean17 );
02659                 mea07_[ism-1]->setBinError( ic, rms17 );
02660               } else {
02661                 mea07_[ism-1]->setEntries( 1.+mea07_[ism-1]->getEntries() );
02662               }
02663             }
02664           }
02665 
02666         }
02667 
02668         if ( update07 ) {
02669 
02670           float val;
02671 
02672           val = 1.;
02673           if ( fabs(mean07 - meanAmplL4A) > fabs(percentVariation_ * meanAmplL4A) || mean07 < amplitudeThreshold_ )
02674             val = 0.;
02675           if ( meg04_[ism-1] ) meg04_[ism-1]->setBinContent( ix, iy, val );
02676 
02677           int ic = Numbers::icEE(ism, jx, jy);
02678 
02679           if ( ic != -1 ) {
02680             if ( mea04_[ism-1] ) {
02681               if ( mean07 > 0. ) {
02682                 mea04_[ism-1]->setBinContent( ic, mean07 );
02683                 mea04_[ism-1]->setBinError( ic, rms07 );
02684               } else {
02685                 mea04_[ism-1]->setEntries( 1.+mea04_[ism-1]->getEntries() );
02686               }
02687             }
02688           }
02689 
02690         }
02691 
02692         if ( update19 ) {
02693 
02694           float val;
02695 
02696           val = 1.;
02697           if ( fabs(mean19 - meanAmplL4B) > fabs(percentVariation_ * meanAmplL4B) || mean19 < amplitudeThreshold_ )
02698             val = 0.;
02699           if ( meg04_[ism-1] ) meg04_[ism-1]->setBinContent( ix, iy, val );
02700 
02701           int ic = Numbers::icEE(ism, jx, jy);
02702 
02703           if ( ic != -1 ) {
02704             if ( mea08_[ism-1] ) {
02705               if ( mean19 > 0. ) {
02706                 mea08_[ism-1]->setBinContent( ic, mean19 );
02707                 mea08_[ism-1]->setBinError( ic, rms19 );
02708               } else {
02709                 mea08_[ism-1]->setEntries( 1.+mea08_[ism-1]->getEntries() );
02710               }
02711             }
02712           }
02713 
02714         }
02715 
02716         if ( update02 ) {
02717 
02718           int ic = Numbers::icEE(ism, jx, jy);
02719 
02720           if ( ic != -1 ) {
02721             if ( meaopn01_[ism-1] ) {
02722               if ( mean02 > 0. ) {
02723                 meaopn01_[ism-1]->setBinContent( ic, mean02 );
02724                 meaopn01_[ism-1]->setBinError( ic, rms02 );
02725               } else {
02726                 meaopn01_[ism-1]->setEntries( 1.+meaopn01_[ism-1]->getEntries() );
02727               }
02728             }
02729           }
02730 
02731         }
02732 
02733         if ( update14 ) {
02734 
02735           int ic = Numbers::icEE(ism, jx, jy);
02736 
02737           if ( ic != -1 ) {
02738             if ( meaopn05_[ism-1] ) {
02739               if ( mean14 > 0. ) {
02740                 meaopn05_[ism-1]->setBinContent( ic, mean14 );
02741                 meaopn05_[ism-1]->setBinError( ic, rms14 );
02742               } else {
02743                 meaopn05_[ism-1]->setEntries( 1.+meaopn05_[ism-1]->getEntries() );
02744               }
02745             }
02746           }
02747 
02748         }
02749 
02750         if ( update04 ) {
02751 
02752           int ic = Numbers::icEE(ism, jx, jy);
02753 
02754           if ( ic != -1 ) {
02755             if ( meaopn02_[ism-1] ) {
02756               if ( mean04 > 0. ) {
02757                 meaopn02_[ism-1]->setBinContent( ic, mean04 );
02758                 meaopn02_[ism-1]->setBinError( ic, rms04 );
02759               } else {
02760                 meaopn02_[ism-1]->setEntries( 1.+meaopn02_[ism-1]->getEntries() );
02761               }
02762             }
02763           }
02764 
02765         }
02766 
02767         if ( update16 ) {
02768 
02769           int ic = Numbers::icEE(ism, jx, jy);
02770 
02771           if ( ic != -1 ) {
02772             if ( meaopn06_[ism-1] ) {
02773               if ( mean16 > 0. ) {
02774                 meaopn06_[ism-1]->setBinContent( ic, mean16 );
02775                 meaopn06_[ism-1]->setBinError( ic, rms16 );
02776               } else {
02777                 meaopn06_[ism-1]->setEntries( 1.+meaopn06_[ism-1]->getEntries() );
02778               }
02779             }
02780           }
02781 
02782         }
02783 
02784         if ( update06 ) {
02785 
02786           int ic = Numbers::icEE(ism, jx, jy);
02787 
02788           if ( ic != -1 ) {
02789             if ( meaopn03_[ism-1] ) {
02790               if ( mean06 > 0. ) {
02791                 meaopn03_[ism-1]->setBinContent( ic, mean06 );
02792                 meaopn03_[ism-1]->setBinError( ic, rms06 );
02793               } else {
02794                 meaopn03_[ism-1]->setEntries( 1.+meaopn03_[ism-1]->getEntries() );
02795               }
02796             }
02797           }
02798 
02799         }
02800 
02801         if ( update18 ) {
02802 
02803           int ic = Numbers::icEE(ism, jx, jy);
02804 
02805           if ( ic != -1 ) {
02806             if ( meaopn07_[ism-1] ) {
02807               if ( mean18 > 0. ) {
02808                 meaopn07_[ism-1]->setBinContent( ic, mean18 );
02809                 meaopn07_[ism-1]->setBinError( ic, rms18 );
02810               } else {
02811                 meaopn07_[ism-1]->setEntries( 1.+meaopn07_[ism-1]->getEntries() );
02812               }
02813             }
02814           }
02815 
02816         }
02817 
02818         if ( update08 ) {
02819 
02820           int ic = Numbers::icEE(ism, jx, jy);
02821 
02822           if ( ic != -1 ) {
02823             if ( meaopn04_[ism-1] ) {
02824               if ( mean08 > 0. ) {
02825                 meaopn04_[ism-1]->setBinContent( ic, mean08 );
02826                 meaopn04_[ism-1]->setBinError( ic, rms08 );
02827               } else {
02828                 meaopn04_[ism-1]->setEntries( 1.+meaopn04_[ism-1]->getEntries() );
02829               }
02830             }
02831           }
02832 
02833         }
02834 
02835         if ( update20 ) {
02836 
02837           int ic = Numbers::icEE(ism, jx, jy);
02838 
02839           if ( ic != -1 ) {
02840             if ( meaopn08_[ism-1] ) {
02841               if ( mean20 > 0. ) {
02842                 meaopn08_[ism-1]->setBinContent( ic, mean20 );
02843                 meaopn08_[ism-1]->setBinError( ic, rms20 );
02844               } else {
02845                 meaopn08_[ism-1]->setEntries( 1.+meaopn08_[ism-1]->getEntries() );
02846               }
02847             }
02848           }
02849 
02850         }
02851 
02852         if ( update09 ) {
02853 
02854           int ic = Numbers::icEE(ism, jx, jy);
02855 
02856           if ( ic != -1 ) {
02857             if ( met01_[ism-1] ) {
02858               if ( mean09 > 0. ) {
02859                 met01_[ism-1]->setBinContent( ic, mean09 );
02860                 met01_[ism-1]->setBinError( ic, rms09 );
02861               } else {
02862                 met01_[ism-1]->setEntries(1.+met01_[ism-1]->getEntries());
02863               }
02864             }
02865 
02866             if ( metav01_[ism-1] ) metav01_[ism-1] ->Fill(mean09);
02867             if ( metrms01_[ism-1] ) metrms01_[ism-1]->Fill(rms09);
02868           }
02869 
02870         }
02871 
02872         if ( update21 ) {
02873 
02874           int ic = Numbers::icEE(ism, jx, jy);
02875 
02876           if ( ic != -1 ) {
02877             if ( met05_[ism-1] ) {
02878               if ( mean21 > 0. ) {
02879                 met05_[ism-1]->setBinContent( ic, mean21 );
02880                 met05_[ism-1]->setBinError( ic, rms21 );
02881               } else {
02882                 met05_[ism-1]->setEntries(1.+met05_[ism-1]->getEntries());
02883               }
02884             }
02885 
02886             if ( metav05_[ism-1] ) metav05_[ism-1] ->Fill(mean21);
02887             if ( metrms05_[ism-1] ) metrms05_[ism-1]->Fill(rms21);
02888           }
02889 
02890         }
02891 
02892         if ( update10 ) {
02893 
02894           int ic = Numbers::icEE(ism, jx, jy);
02895 
02896           if ( ic != -1 ) {
02897             if ( met02_[ism-1] ) {
02898               if ( mean10 > 0. ) {
02899                 met02_[ism-1]->setBinContent( ic, mean10 );
02900                 met02_[ism-1]->setBinError( ic, rms10 );
02901               } else {
02902                 met02_[ism-1]->setEntries(1.+met02_[ism-1]->getEntries());
02903               }
02904             }
02905 
02906             if ( metav02_[ism-1] ) metav02_[ism-1] ->Fill(mean10);
02907             if ( metrms02_[ism-1] ) metrms02_[ism-1]->Fill(rms10);
02908           }
02909 
02910         }
02911 
02912         if ( update22 ) {
02913 
02914           int ic = Numbers::icEE(ism, jx, jy);
02915 
02916           if ( ic != -1 ) {
02917             if ( met06_[ism-1] ) {
02918               if ( mean22 > 0. ) {
02919                 met06_[ism-1]->setBinContent( ic, mean22 );
02920                 met06_[ism-1]->setBinError( ic, rms22 );
02921               } else {
02922                 met06_[ism-1]->setEntries(1.+met06_[ism-1]->getEntries());
02923               }
02924             }
02925 
02926             if ( metav06_[ism-1] ) metav06_[ism-1] ->Fill(mean22);
02927             if ( metrms06_[ism-1] ) metrms06_[ism-1]->Fill(rms22);
02928           }
02929 
02930         }
02931 
02932         if ( update11 ) {
02933 
02934           int ic = Numbers::icEE(ism, jx, jy);
02935 
02936           if ( ic != -1 ) {
02937             if ( met03_[ism-1] ) {
02938               if ( mean11 > 0. ) {
02939                 met03_[ism-1]->setBinContent( ic, mean11 );
02940                 met03_[ism-1]->setBinError( ic, rms11 );
02941               } else {
02942                 met03_[ism-1]->setEntries(1.+met03_[ism-1]->getEntries());
02943               }
02944             }
02945 
02946             if ( metav03_[ism-1] ) metav03_[ism-1] ->Fill(mean11);
02947             if ( metrms03_[ism-1] ) metrms03_[ism-1]->Fill(rms11);
02948           }
02949 
02950         }
02951 
02952         if ( update23 ) {
02953 
02954           int ic = Numbers::icEE(ism, jx, jy);
02955 
02956           if ( ic != -1 ) {
02957             if ( met07_[ism-1] ) {
02958               if ( mean23 > 0. ) {
02959                 met07_[ism-1]->setBinContent( ic, mean23 );
02960                 met07_[ism-1]->setBinError( ic, rms23 );
02961               } else {
02962                 met07_[ism-1]->setEntries(1.+met07_[ism-1]->getEntries());
02963               }
02964             }
02965 
02966             if ( metav07_[ism-1] ) metav07_[ism-1] ->Fill(mean23);
02967             if ( metrms07_[ism-1] ) metrms07_[ism-1]->Fill(rms23);
02968           }
02969 
02970         }
02971 
02972         if ( update12 ) {
02973 
02974           int ic = Numbers::icEE(ism, jx, jy);
02975 
02976           if ( ic != -1 ) {
02977             if ( met04_[ism-1] ) {
02978               if ( mean12 > 0. ) {
02979                 met04_[ism-1]->setBinContent( ic, mean12 );
02980                 met04_[ism-1]->setBinError( ic, rms12 );
02981               } else {
02982                 met04_[ism-1]->setEntries(1.+met04_[ism-1]->getEntries());
02983               }
02984             }
02985 
02986             if ( metav04_[ism-1] ) metav04_[ism-1] ->Fill(mean12);
02987             if ( metrms04_[ism-1] ) metrms04_[ism-1]->Fill(rms12);
02988           }
02989 
02990         }
02991 
02992         if ( update24 ) {
02993 
02994           int ic = Numbers::icEE(ism, jx, jy);
02995 
02996           if ( ic != -1 ) {
02997             if ( met08_[ism-1] ) {
02998               if ( mean24 > 0. ) {
02999                 met08_[ism-1]->setBinContent( ic, mean24 );
03000                 met08_[ism-1]->setBinError( ic, rms24 );
03001               } else {
03002                 met08_[ism-1]->setEntries(1.+met08_[ism-1]->getEntries());
03003               }
03004             }
03005 
03006             if ( metav08_[ism-1] ) metav08_[ism-1] ->Fill(mean24);
03007             if ( metrms08_[ism-1] ) metrms08_[ism-1]->Fill(rms24);
03008           }
03009 
03010         }
03011 
03012         // masking
03013 
03014         if ( mask1.size() != 0 ) {
03015           map<EcalLogicID, RunCrystalErrorsDat>::const_iterator m;
03016           for (m = mask1.begin(); m != mask1.end(); m++) {
03017 
03018             int jx = ix + Numbers::ix0EE(ism);
03019             int jy = iy + Numbers::iy0EE(ism);
03020 
03021             if ( ism >= 1 && ism <= 9 ) jx = 101 - jx;
03022 
03023             if ( ! Numbers::validEE(ism, jx, jy) ) continue;
03024 
03025             int ic = Numbers::indexEE(ism, jx, jy);
03026 
03027             if ( ic == -1 ) continue;
03028 
03029             EcalLogicID ecid = m->first;
03030 
03031             if ( ecid.getLogicID() == LogicID::getEcalLogicID("EE_crystal_number", Numbers::iSM(ism, EcalEndcap), ic).getLogicID() ) {
03032               if ( (m->second).getErrorBits() & bits01 ) {
03033                 UtilsClient::maskBinContent( meg01_[ism-1], ix, iy );
03034                 UtilsClient::maskBinContent( meg02_[ism-1], ix, iy );
03035                 UtilsClient::maskBinContent( meg03_[ism-1], ix, iy );
03036                 UtilsClient::maskBinContent( meg04_[ism-1], ix, iy );
03037               }
03038             }
03039 
03040           }
03041         }
03042 
03043         // TT masking
03044 
03045         if ( mask3.size() != 0 ) {
03046           map<EcalLogicID, RunTTErrorsDat>::const_iterator m;
03047           for (m = mask3.begin(); m != mask3.end(); m++) {
03048 
03049             EcalLogicID ecid = m->first;
03050 
03051             int itt = Numbers::iTT(ism, EcalEndcap, ix, iy);
03052 
03053             if ( ecid.getLogicID() == LogicID::getEcalLogicID("EE_readout_tower", Numbers::iSM(ism, EcalEndcap), itt).getLogicID() ) {
03054               if ( (m->second).getErrorBits() & bits01 ) {
03055                 UtilsClient::maskBinContent( meg01_[ism-1], ix, iy );
03056                 UtilsClient::maskBinContent( meg02_[ism-1], ix, iy );
03057                 UtilsClient::maskBinContent( meg03_[ism-1], ix, iy );
03058                 UtilsClient::maskBinContent( meg04_[ism-1], ix, iy );
03059               }
03060             }
03061 
03062           }
03063         }
03064 
03065       }
03066     }
03067 
03068     for ( int i = 1; i <= 10; i++ ) {
03069 
03070       if ( meg05_[ism-1] ) meg05_[ism-1]->setBinContent( i, 1, 2. );
03071       if ( meg06_[ism-1] ) meg06_[ism-1]->setBinContent( i, 1, 2. );
03072       if ( meg07_[ism-1] ) meg07_[ism-1]->setBinContent( i, 1, 2. );
03073       if ( meg08_[ism-1] ) meg08_[ism-1]->setBinContent( i, 1, 2. );
03074       if ( meg09_[ism-1] ) meg09_[ism-1]->setBinContent( i, 1, 2. );
03075       if ( meg10_[ism-1] ) meg10_[ism-1]->setBinContent( i, 1, 2. );
03076       if ( meg11_[ism-1] ) meg11_[ism-1]->setBinContent( i, 1, 2. );
03077       if ( meg12_[ism-1] ) meg12_[ism-1]->setBinContent( i, 1, 2. );
03078 
03079       bool update01;
03080       bool update02;
03081       bool update03;
03082       bool update04;
03083       bool update05;
03084       bool update06;
03085       bool update07;
03086       bool update08;
03087       bool update09;
03088       bool update10;
03089       bool update11;
03090       bool update12;
03091       bool update13;
03092       bool update14;
03093       bool update15;
03094       bool update16;
03095 
03096       float num01, num02, num03, num04, num05, num06, num07, num08;
03097       float num09, num10, num11, num12, num13, num14, num15, num16;
03098       float mean01, mean02, mean03, mean04, mean05, mean06, mean07, mean08;
03099       float mean09, mean10, mean11, mean12, mean13, mean14, mean15, mean16;
03100       float rms01, rms02, rms03, rms04, rms05, rms06, rms07, rms08;
03101       float rms09, rms10, rms11, rms12, rms13, rms14, rms15, rms16;
03102 
03103       update01 = UtilsClient::getBinStatistics(i01_[ism-1], i, 0, num01, mean01, rms01);
03104       update02 = UtilsClient::getBinStatistics(i02_[ism-1], i, 0, num02, mean02, rms02);
03105       update03 = UtilsClient::getBinStatistics(i03_[ism-1], i, 0, num03, mean03, rms03);
03106       update04 = UtilsClient::getBinStatistics(i04_[ism-1], i, 0, num04, mean04, rms04);
03107       update05 = UtilsClient::getBinStatistics(i05_[ism-1], i, 0, num05, mean05, rms05);
03108       update06 = UtilsClient::getBinStatistics(i06_[ism-1], i, 0, num06, mean06, rms06);
03109       update07 = UtilsClient::getBinStatistics(i07_[ism-1], i, 0, num07, mean07, rms07);
03110       update08 = UtilsClient::getBinStatistics(i08_[ism-1], i, 0, num08, mean08, rms08);
03111       update09 = UtilsClient::getBinStatistics(i09_[ism-1], i, 0, num09, mean09, rms09);
03112       update10 = UtilsClient::getBinStatistics(i10_[ism-1], i, 0, num10, mean10, rms10);
03113       update11 = UtilsClient::getBinStatistics(i11_[ism-1], i, 0, num11, mean11, rms11);
03114       update12 = UtilsClient::getBinStatistics(i12_[ism-1], i, 0, num12, mean12, rms12);
03115       update13 = UtilsClient::getBinStatistics(i13_[ism-1], i, 0, num13, mean13, rms13);
03116       update14 = UtilsClient::getBinStatistics(i14_[ism-1], i, 0, num14, mean14, rms14);
03117       update15 = UtilsClient::getBinStatistics(i15_[ism-1], i, 0, num15, mean15, rms15);
03118       update16 = UtilsClient::getBinStatistics(i16_[ism-1], i, 0, num16, mean16, rms16);
03119 
03120       if ( update01 && update05 ) {
03121 
03122         float val;
03123 
03124         val = 1.;
03125         if ( mean01 < amplitudeThresholdPnG01_ )
03126           val = 0.;
03127         if ( mean05 <  pedPnExpectedMean_[0] - pedPnDiscrepancyMean_[0] ||
03128              pedPnExpectedMean_[0] + pedPnDiscrepancyMean_[0] < mean05)
03129           val = 0.;
03130         if ( rms05 > pedPnRMSThreshold_[0] )
03131           val = 0.;
03132 
03133         if ( meg05_[ism-1] ) meg05_[ism-1]->setBinContent(i, 1, val);
03134         if ( mepnprms01_[ism-1] ) mepnprms01_[ism-1]->Fill(rms05);
03135 
03136       }
03137 
03138       if ( update02 && update06 ) {
03139 
03140         float val;
03141 
03142         val = 1.;
03143         if ( mean02 < amplitudeThresholdPnG01_ )
03144           val = 0.;
03145         if ( mean06 <  pedPnExpectedMean_[0] - pedPnDiscrepancyMean_[0] ||
03146              pedPnExpectedMean_[0] + pedPnDiscrepancyMean_[0] < mean06)
03147           val = 0.;
03148         if ( rms06 > pedPnRMSThreshold_[0] )
03149           val = 0.;
03150 
03151         if ( meg06_[ism-1] )           meg06_[ism-1]->setBinContent(i, 1, val);
03152         if ( mepnprms02_[ism-1] ) mepnprms02_[ism-1]->Fill(rms06);
03153 
03154       }
03155 
03156       if ( update03 && update07 ) {
03157 
03158         float val;
03159 
03160         val = 1.;
03161         if ( mean03 < amplitudeThresholdPnG01_ )
03162           val = 0.;
03163       if ( mean07 <  pedPnExpectedMean_[0] - pedPnDiscrepancyMean_[0] ||
03164            pedPnExpectedMean_[0] + pedPnDiscrepancyMean_[0] < mean07)
03165           val = 0.;
03166       if ( rms07 > pedPnRMSThreshold_[0] )
03167           val = 0.;
03168 
03169       if ( meg07_[ism-1] )           meg07_[ism-1]->setBinContent(i, 1, val);
03170       if ( mepnprms03_[ism-1] ) mepnprms03_[ism-1]->Fill(rms07);
03171 
03172       }
03173 
03174       if ( update04 && update08 ) {
03175 
03176         float val;
03177 
03178         val = 1.;
03179         if ( mean04 < amplitudeThresholdPnG01_ )
03180           val = 0.;
03181        if ( mean08 <  pedPnExpectedMean_[0] - pedPnDiscrepancyMean_[0] ||
03182             pedPnExpectedMean_[0] + pedPnDiscrepancyMean_[0] < mean08)
03183            val = 0.;
03184        if ( rms08 > pedPnRMSThreshold_[0] )
03185            val = 0.;
03186 
03187        if ( meg08_[ism-1] )           meg08_[ism-1]->setBinContent(i, 1, val);
03188        if ( mepnprms04_[ism-1] ) mepnprms04_[ism-1]->Fill(rms08);
03189 
03190       }
03191 
03192       if ( update09 && update13 ) {
03193 
03194         float val;
03195 
03196         val = 1.;
03197         if ( mean09 < amplitudeThresholdPnG16_ )
03198           val = 0.;
03199         if ( mean13 <  pedPnExpectedMean_[1] - pedPnDiscrepancyMean_[1] ||
03200              pedPnExpectedMean_[1] + pedPnDiscrepancyMean_[1] < mean13)
03201           val = 0.;
03202         if ( rms13 > pedPnRMSThreshold_[1] )
03203           val = 0.;
03204 
03205         if ( meg09_[ism-1] )           meg09_[ism-1]->setBinContent(i, 1, val);
03206         if ( mepnprms05_[ism-1] ) mepnprms05_[ism-1]->Fill(rms13);
03207 
03208       }
03209 
03210       if ( update10 && update14 ) {
03211 
03212         float val;
03213 
03214         val = 1.;
03215         if ( mean10 < amplitudeThresholdPnG16_ )
03216           val = 0.;
03217         //        if ( mean14 < pedestalThresholdPn_ )
03218        if ( mean14 <  pedPnExpectedMean_[1] - pedPnDiscrepancyMean_[1] ||
03219             pedPnExpectedMean_[1] + pedPnDiscrepancyMean_[1] < mean14)
03220            val = 0.;
03221        if ( rms14 > pedPnRMSThreshold_[1] )
03222           val = 0.;
03223 
03224        if ( meg10_[ism-1] )           meg10_[ism-1]->setBinContent(i, 1, val);
03225        if ( mepnprms06_[ism-1] ) mepnprms06_[ism-1]->Fill(rms14);
03226 
03227       }
03228 
03229       if ( update11 && update15 ) {
03230 
03231         float val;
03232 
03233         val = 1.;
03234         if ( mean11 < amplitudeThresholdPnG16_ )
03235           val = 0.;
03236         //        if ( mean15 < pedestalThresholdPn_ )
03237         if ( mean15 <  pedPnExpectedMean_[1] - pedPnDiscrepancyMean_[1] ||
03238              pedPnExpectedMean_[1] + pedPnDiscrepancyMean_[1] < mean15)
03239           val = 0.;
03240         if ( rms15 > pedPnRMSThreshold_[1] )
03241           val = 0.;
03242 
03243         if ( meg11_[ism-1] ) meg11_[ism-1]->setBinContent(i, 1, val);
03244         if ( mepnprms07_[ism-1] ) mepnprms07_[ism-1]->Fill(rms15);
03245 
03246       }
03247 
03248       if ( update12 && update16 ) {
03249 
03250         float val;
03251 
03252         val = 1.;
03253         if ( mean12 < amplitudeThresholdPnG16_ )
03254           val = 0.;
03255         //        if ( mean16 < pedestalThresholdPn_ )
03256         if ( mean16 <  pedPnExpectedMean_[1] - pedPnDiscrepancyMean_[1] ||
03257                         pedPnExpectedMean_[1] + pedPnDiscrepancyMean_[1] < mean16)
03258           val = 0.;
03259         if ( rms16 > pedPnRMSThreshold_[1] )
03260           val = 0.;
03261 
03262         if ( meg12_[ism-1] ) meg12_[ism-1]->setBinContent(i, 1, val);
03263         if ( mepnprms08_[ism-1] ) mepnprms08_[ism-1]->Fill(rms16);
03264 
03265       }
03266 
03267       // masking
03268 
03269       if ( mask2.size() != 0 ) {
03270         map<EcalLogicID, RunPNErrorsDat>::const_iterator m;
03271         for (m = mask2.begin(); m != mask2.end(); m++) {
03272 
03273           EcalLogicID ecid = m->first;
03274 
03275           if ( ecid.getLogicID() == LogicID::getEcalLogicID("EE_LM_PN", Numbers::iSM(ism, EcalEndcap), i-1).getLogicID() ) {
03276             if ( (m->second).getErrorBits() & (bits01|bits02) ) {
03277               UtilsClient::maskBinContent( meg05_[ism-1], i, 1 );
03278               UtilsClient::maskBinContent( meg06_[ism-1], i, 1 );
03279               UtilsClient::maskBinContent( meg07_[ism-1], i, 1 );
03280               UtilsClient::maskBinContent( meg08_[ism-1], i, 1 );
03281             }
03282             if ( (m->second).getErrorBits() & (bits01|bits04) ) {
03283               UtilsClient::maskBinContent( meg09_[ism-1], i, 1 );
03284               UtilsClient::maskBinContent( meg10_[ism-1], i, 1 );
03285               UtilsClient::maskBinContent( meg11_[ism-1], i, 1 );
03286               UtilsClient::maskBinContent( meg12_[ism-1], i, 1 );
03287             }
03288           }
03289 
03290         }
03291       }
03292 
03293     }
03294 
03295     for ( int i = 1; i <= 10; i++ ) {
03296 
03297       if ( hs01_[ism-1] ) {
03298         int ic = UtilsClient::getFirstNonEmptyChannel( hs01_[ism-1] );
03299         if ( me_hs01_[ism-1] ) {
03300           me_hs01_[ism-1]->setBinContent( i, hs01_[ism-1]->GetBinContent(ic, i) );
03301           me_hs01_[ism-1]->setBinError( i, hs01_[ism-1]->GetBinError(ic, i) );
03302         }
03303       }
03304 
03305       if ( hs02_[ism-1] ) {
03306         int ic = UtilsClient::getFirstNonEmptyChannel( hs02_[ism-1] );
03307         if ( me_hs02_[ism-1] ) {
03308           me_hs02_[ism-1]->setBinContent( i, hs02_[ism-1]->GetBinContent(ic, i) );
03309           me_hs02_[ism-1]->setBinError( i, hs02_[ism-1]->GetBinError(ic, i) );
03310         }
03311       }
03312 
03313       if ( hs03_[ism-1] ) {
03314         int ic = UtilsClient::getFirstNonEmptyChannel( hs03_[ism-1] );
03315         if ( me_hs03_[ism-1] ) {
03316           me_hs03_[ism-1]->setBinContent( i, hs03_[ism-1]->GetBinContent(ic, i) );
03317           me_hs03_[ism-1]->setBinError( i, hs03_[ism-1]->GetBinError(ic, i) );
03318         }
03319       }
03320 
03321       if ( hs04_[ism-1] ) {
03322         int ic = UtilsClient::getFirstNonEmptyChannel( hs04_[ism-1] );
03323         if ( me_hs04_[ism-1] ) {
03324           me_hs04_[ism-1]->setBinContent( i, hs04_[ism-1]->GetBinContent(ic, i) );
03325           me_hs04_[ism-1]->setBinError( i, hs04_[ism-1]->GetBinError(ic, i) );
03326         }
03327       }
03328 
03329       if ( hs05_[ism-1] ) {
03330         int ic = UtilsClient::getFirstNonEmptyChannel( hs05_[ism-1] );
03331         if ( me_hs05_[ism-1] ) {
03332           me_hs05_[ism-1]->setBinContent( i, hs05_[ism-1]->GetBinContent(ic, i) );
03333           me_hs05_[ism-1]->setBinError( i, hs05_[ism-1]->GetBinError(ic, i) );
03334         }
03335       }
03336 
03337       if ( hs06_[ism-1] ) {
03338         int ic = UtilsClient::getFirstNonEmptyChannel( hs06_[ism-1] );
03339         if ( me_hs06_[ism-1] ) {
03340           me_hs06_[ism-1]->setBinContent( i, hs06_[ism-1]->GetBinContent(ic, i) );
03341           me_hs06_[ism-1]->setBinError( i, hs06_[ism-1]->GetBinError(ic, i) );
03342         }
03343       }
03344 
03345       if ( hs07_[ism-1] ) {
03346         int ic = UtilsClient::getFirstNonEmptyChannel( hs07_[ism-1] );
03347         if ( me_hs07_[ism-1] ) {
03348           me_hs07_[ism-1]->setBinContent( i, hs07_[ism-1]->GetBinContent(ic, i) );
03349           me_hs07_[ism-1]->setBinError( i, hs07_[ism-1]->GetBinError(ic, i) );
03350         }
03351       }
03352 
03353       if ( hs08_[ism-1] ) {
03354         int ic = UtilsClient::getFirstNonEmptyChannel( hs08_[ism-1] );
03355         if ( me_hs08_[ism-1] ) {
03356           me_hs08_[ism-1]->setBinContent( i, hs08_[ism-1]->GetBinContent(ic, i) );
03357           me_hs08_[ism-1]->setBinError( i, hs08_[ism-1]->GetBinError(ic, i) );
03358         }
03359       }
03360 
03361     }
03362 
03363   }
03364 
03365 }
03366 
03367 void EELaserClient::softReset(bool flag) {
03368 
03369 }
03370 
03371 void EELaserClient::htmlOutput(int run, string& htmlDir, string& htmlName) {
03372 
03373   if ( verbose_ ) cout << "Preparing EELaserClient html output ..." << endl;
03374 
03375   ofstream htmlFile;
03376 
03377   htmlFile.open((htmlDir + htmlName).c_str());
03378 
03379   // html page header
03380   htmlFile << "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">  " << endl;
03381   htmlFile << "<html>  " << endl;
03382   htmlFile << "<head>  " << endl;
03383   htmlFile << "  <meta content=\"text/html; charset=ISO-8859-1\"  " << endl;
03384   htmlFile << " https-equiv=\"content-type\">  " << endl;
03385   htmlFile << "  <title>Monitor:LaserTask output</title> " << endl;
03386   htmlFile << "</head>  " << endl;
03387   htmlFile << "<style type=\"text/css\"> td { font-weight: bold } </style>" << endl;
03388   htmlFile << "<body>  " << endl;
03389   //htmlFile << "<br>  " << endl;
03390   htmlFile << "<a name=""top""></a>" << endl;
03391   htmlFile << "<h2>Run:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" << endl;
03392   htmlFile << "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span " << endl;
03393   htmlFile << " style=\"color: rgb(0, 0, 153);\">" << run << "</span></h2>" << endl;
03394   htmlFile << "<h2>Monitoring task:&nbsp;&nbsp;&nbsp;&nbsp; <span " << endl;
03395   htmlFile << " style=\"color: rgb(0, 0, 153);\">LASER</span></h2> " << endl;
03396   htmlFile << "<hr>" << endl;
03397   htmlFile << "<table border=1><tr><td bgcolor=red>channel has problems in this task</td>" << endl;
03398   htmlFile << "<td bgcolor=lime>channel has NO problems</td>" << endl;
03399   htmlFile << "<td bgcolor=yellow>channel is missing</td></table>" << endl;
03400   htmlFile << "<hr>" << endl;
03401   //   htmlFile << "<table border=1><tr><td>L1 = blu laser</td>" << endl;
03402   //   htmlFile << "<td>L2 = green laser</td>" << endl;
03403   //   htmlFile << "<td>L3 = red laser</td>" << endl;
03404   //   htmlFile << "<td>L4 = infrared laser</td></table>" << endl;
03405   htmlFile << "<table style=\"width: 600px;\" border=\"0\">" << endl;
03406   htmlFile << "<tbody>" << endl;
03407   htmlFile << "<tr>" << endl;
03408   htmlFile << "<td style=\"text-align: center;\">" << endl;
03409   htmlFile << "<div style=\"text-align: center;\"> </div>" << endl;
03410   htmlFile << "<table style=\"width: 482px; height: 35px;\" border=\"1\">" << endl;
03411   htmlFile << "<tbody>" << endl;
03412   htmlFile << "<tr>" << endl;
03413   htmlFile << "<td style=\"text-align: center;\">L1 = blue laser </td>" << endl;
03414   htmlFile << "<td style=\"vertical-align: top; text-align: center;\">L2 = green laser </td>" << endl;
03415   htmlFile << "<td style=\"vertical-align: top; text-align: center;\">L3 = red laser </td>" << endl;
03416   htmlFile << "<td style=\"vertical-align: top; text-align: center;\">L4 = infrared laser </td>" << endl;
03417   htmlFile << "</tr>" << endl;
03418   htmlFile << "</tbody>" << endl;
03419   htmlFile << "</table>" << endl;
03420   htmlFile << "</td>" << endl;
03421   htmlFile << "<td align=\"center\">" << endl;
03422   htmlFile << "<div style=\"text-align: center;\"> </div>" << endl;
03423   htmlFile << "<table style=\"width: 255px; height: 35px;\" border=\"1\">" << endl;
03424   htmlFile << "<tbody>" << endl;
03425   htmlFile << "<tr>" << endl;
03426   htmlFile << "<td style=\"text-align: center;\">A=first half</td>" << endl;
03427   htmlFile << "<td style=\"vertical-align: top; text-align: center;\">B=second half<br>" << endl;
03428   htmlFile << "</td>" << endl;
03429   htmlFile << "</tr>" << endl;
03430   htmlFile << "</tbody>" << endl;
03431   htmlFile << "</table>" << endl;
03432   htmlFile << "</td>" << endl;
03433   htmlFile << "</tr>" << endl;
03434   htmlFile << "</tbody>" << endl;
03435   htmlFile << "</table>" << endl;
03436   htmlFile << "<br>" << endl;
03437   htmlFile << "<table border=1>" << std::endl;
03438   for ( unsigned int i=0; i<superModules_.size(); i ++ ) {
03439     htmlFile << "<td bgcolor=white><a href=""#"
03440              << Numbers::sEE(superModules_[i]) << ">"
03441              << setfill( '0' ) << setw(2) << superModules_[i] << "</a></td>";
03442   }
03443   htmlFile << std::endl << "</table>" << std::endl;
03444 
03445   // Produce the plots to be shown as .png files from existing histograms
03446 
03447   const int csize = 250;
03448 
03449   const double histMax = 1.e15;
03450 
03451   int pCol3[7] = { 301, 302, 303, 304, 305, 306, 307 };
03452 
03453   TH2S labelGrid("labelGrid","label grid", 100, -2., 98., 100, -2., 98.);
03454   for ( short j=0; j<400; j++ ) {
03455     int x = 5*(1 + j%20);
03456     int y = 5*(1 + j/20);
03457     labelGrid.SetBinContent(x, y, Numbers::inTowersEE[j]);
03458   }
03459   labelGrid.SetMarkerSize(1);
03460   labelGrid.SetMinimum(0.1);
03461 
03462   TH2C dummy1( "dummy1", "dummy1 for sm mem", 10, 0, 10, 5, 0, 5 );
03463   for ( short i=0; i<2; i++ ) {
03464     int a = 2 + i*5;
03465     int b = 2;
03466     dummy1.Fill( a, b, i+1+68 );
03467   }
03468   dummy1.SetMarkerSize(2);
03469   dummy1.SetMinimum(0.1);
03470 
03471   string imgNameQual[8], imgNameAmp[8], imgNameTim[8], imgNameTimav[8], imgNameTimrms[8], imgNameShape[8], imgNameAmpoPN[8], imgNameMEPnQualG01[8], imgNameMEPnG01[8], imgNameMEPnPedG01[8], imgNameMEPnRmsPedG01[8], imgNameMEPnQualG16[8], imgNameMEPnG16[8], imgNameMEPnPedG16[8], imgNameMEPnRmsPedG16[8], imgName, meName;
03472 
03473   TCanvas* cQual   = new TCanvas("cQual", "Temp", 2*csize, 2*csize);
03474   TCanvas* cQualPN = new TCanvas("cQualPN", "Temp", 2*csize, csize);
03475   TCanvas* cAmp    = new TCanvas("cAmp", "Temp", csize, csize);
03476   TCanvas* cTim    = new TCanvas("cTim", "Temp", csize, csize);
03477   TCanvas* cTimav  = new TCanvas("cTimav", "Temp", csize, csize);
03478   TCanvas* cTimrms = new TCanvas("cTimrms", "Temp", csize, csize);
03479   TCanvas* cShape  = new TCanvas("cShape", "Temp", csize, csize);
03480   TCanvas* cAmpoPN = new TCanvas("cAmpoPN", "Temp", csize, csize);
03481   TCanvas* cPed    = new TCanvas("cPed", "Temp", csize, csize);
03482 
03483   TH2F* obj2f;
03484   TH1F* obj1f;
03485   TProfile* objp;
03486 
03487   // Loop on endcap sectors
03488 
03489   for ( unsigned int i=0; i<superModules_.size(); i ++ ) {
03490 
03491     int ism = superModules_[i];
03492 
03493     // Loop on wavelength times 2 'sides'
03494 
03495     for ( int iCanvas = 1 ; iCanvas <= 4 * 2 ; iCanvas++ ) {
03496 
03497       // skip unused wavelengths
03498       if ( iCanvas == 2 || iCanvas == 3 ) continue;
03499       if ( iCanvas == 4+2 || iCanvas == 4+3 ) continue;
03500 
03501       // Quality plots
03502 
03503       imgNameQual[iCanvas-1] = "";
03504 
03505       obj2f = 0;
03506       switch ( iCanvas ) {
03507         case 1:
03508           obj2f = UtilsClient::getHisto<TH2F*>( meg01_[ism-1] );
03509           break;
03510         case 2:
03511           obj2f = UtilsClient::getHisto<TH2F*>( meg02_[ism-1] );
03512           break;
03513         case 3:
03514           obj2f = UtilsClient::getHisto<TH2F*>( meg03_[ism-1] );
03515           break;
03516         case 4:
03517           obj2f = UtilsClient::getHisto<TH2F*>( meg04_[ism-1] );
03518           break;
03519         case 5:
03520         case 6:
03521         case 7:
03522         case 8:
03523           obj2f = 0;
03524           break;
03525         default:
03526          break;
03527       }
03528 
03529       if ( obj2f ) {
03530 
03531         meName = obj2f->GetName();
03532 
03533         replace(meName.begin(), meName.end(), ' ', '_');
03534         imgNameQual[iCanvas-1] = meName + ".png";
03535         imgName = htmlDir + imgNameQual[iCanvas-1];
03536 
03537         cQual->cd();
03538         gStyle->SetOptStat(" ");
03539         gStyle->SetPalette(7, pCol3);
03540         cQual->SetGridx();
03541         cQual->SetGridy();
03542         obj2f->GetXaxis()->SetLabelSize(0.02);
03543         obj2f->GetXaxis()->SetTitleSize(0.02);
03544         obj2f->GetYaxis()->SetLabelSize(0.02);
03545         obj2f->GetYaxis()->SetTitleSize(0.02);
03546         obj2f->SetMinimum(-0.00000001);
03547         obj2f->SetMaximum(7.0);
03548         obj2f->Draw("col");
03549         int x1 = labelGrid.GetXaxis()->FindFixBin(Numbers::ix0EE(ism)+0.);
03550         int x2 = labelGrid.GetXaxis()->FindFixBin(Numbers::ix0EE(ism)+50.);
03551         int y1 = labelGrid.GetYaxis()->FindFixBin(Numbers::iy0EE(ism)+0.);
03552         int y2 = labelGrid.GetYaxis()->FindFixBin(Numbers::iy0EE(ism)+50.);
03553         labelGrid.GetXaxis()->SetRange(x1, x2);
03554         labelGrid.GetYaxis()->SetRange(y1, y2);
03555         labelGrid.Draw("text,same");
03556         cQual->SetBit(TGraph::kClipFrame);
03557         TLine l;
03558         l.SetLineWidth(1);
03559         for ( int i=0; i<201; i=i+1) {
03560           if ( (Numbers::ixSectorsEE[i]!=0 || Numbers::iySectorsEE[i]!=0) && (Numbers::ixSectorsEE[i+1]!=0 || Numbers::iySectorsEE[i+1]!=0) ) {
03561             l.DrawLine(Numbers::ixSectorsEE[i], Numbers::iySectorsEE[i], Numbers::ixSectorsEE[i+1], Numbers::iySectorsEE[i+1]);
03562           }
03563         }
03564         cQual->Update();
03565         cQual->SaveAs(imgName.c_str());
03566 
03567       }
03568 
03569       // Amplitude distributions
03570 
03571       imgNameAmp[iCanvas-1] = "";
03572 
03573       obj1f = 0;
03574       switch ( iCanvas ) {
03575         case 1:
03576           obj1f = UtilsClient::getHisto<TH1F*>( mea01_[ism-1] );
03577           break;
03578         case 2:
03579           obj1f = UtilsClient::getHisto<TH1F*>( mea02_[ism-1] );
03580           break;
03581         case 3:
03582           obj1f = UtilsClient::getHisto<TH1F*>( mea03_[ism-1] );
03583           break;
03584         case 4:
03585           obj1f = UtilsClient::getHisto<TH1F*>( mea04_[ism-1] );
03586           break;
03587         case 5:
03588           obj1f = UtilsClient::getHisto<TH1F*>( mea05_[ism-1] );
03589           break;
03590         case 6:
03591           obj1f = UtilsClient::getHisto<TH1F*>( mea06_[ism-1] );
03592           break;
03593         case 7:
03594           obj1f = UtilsClient::getHisto<TH1F*>( mea07_[ism-1] );
03595           break;
03596         case 8:
03597           obj1f = UtilsClient::getHisto<TH1F*>( mea08_[ism-1] );
03598           break;
03599         default:
03600           break;
03601       }
03602 
03603       if ( obj1f ) {
03604 
03605         meName = obj1f->GetName();
03606 
03607         replace(meName.begin(), meName.end(), ' ', '_');
03608         imgNameAmp[iCanvas-1] = meName + ".png";
03609         imgName = htmlDir + imgNameAmp[iCanvas-1];
03610 
03611         cAmp->cd();
03612         gStyle->SetOptStat("euo");
03613         obj1f->SetStats(kTRUE);
03614 //        if ( obj1f->GetMaximum(histMax) > 0. ) {
03615 //          gPad->SetLogy(kTRUE);
03616 //        } else {
03617 //          gPad->SetLogy(kFALSE);
03618 //        }
03619         obj1f->SetMinimum(0.0);
03620         obj1f->Draw();
03621         cAmp->Update();
03622         cAmp->SaveAs(imgName.c_str());
03623         gPad->SetLogy(kFALSE);
03624 
03625       }
03626 
03627       // Timing distributions
03628 
03629       imgNameTim[iCanvas-1] = "";
03630 
03631       obj1f = 0;
03632       switch ( iCanvas ) {
03633         case 1:
03634           obj1f = UtilsClient::getHisto<TH1F*>( met01_[ism-1] );
03635           break;
03636         case 2:
03637           obj1f = UtilsClient::getHisto<TH1F*>( met02_[ism-1] );
03638           break;
03639         case 3:
03640           obj1f = UtilsClient::getHisto<TH1F*>( met03_[ism-1] );
03641           break;
03642         case 4:
03643           obj1f = UtilsClient::getHisto<TH1F*>( met04_[ism-1] );
03644           break;
03645         case 5:
03646           obj1f = UtilsClient::getHisto<TH1F*>( met05_[ism-1] );
03647           break;
03648         case 6:
03649           obj1f = UtilsClient::getHisto<TH1F*>( met06_[ism-1] );
03650           break;
03651         case 7:
03652           obj1f = UtilsClient::getHisto<TH1F*>( met07_[ism-1] );
03653           break;
03654         case 8:
03655           obj1f = UtilsClient::getHisto<TH1F*>( met08_[ism-1] );
03656           break;
03657         default:
03658           break;
03659       }
03660 
03661       if ( obj1f ) {
03662 
03663         meName = obj1f->GetName();
03664 
03665         replace(meName.begin(), meName.end(), ' ', '_');
03666         imgNameTim[iCanvas-1] = meName + ".png";
03667         imgName = htmlDir + imgNameTim[iCanvas-1];
03668 
03669         cTim->cd();
03670         gStyle->SetOptStat("euo");
03671         obj1f->SetStats(kTRUE);
03672         obj1f->SetMinimum(0.0);
03673         obj1f->SetMaximum(10.0);
03674         obj1f->Draw();
03675         cTim->Update();
03676         cTim->SaveAs(imgName.c_str());
03677         gPad->SetLogy(kFALSE);
03678 
03679       }
03680 
03681       // Timing mean distributions
03682 
03683       imgNameTimav[iCanvas-1] = "";
03684 
03685       obj1f = 0;
03686       switch ( iCanvas ) {
03687         case 1:
03688           obj1f = UtilsClient::getHisto<TH1F*>( metav01_[ism-1] );
03689           break;
03690         case 2:
03691           obj1f = UtilsClient::getHisto<TH1F*>( metav02_[ism-1] );
03692           break;
03693         case 3:
03694           obj1f = UtilsClient::getHisto<TH1F*>( metav03_[ism-1] );
03695           break;
03696         case 4:
03697           obj1f = UtilsClient::getHisto<TH1F*>( metav04_[ism-1] );
03698           break;
03699         case 5:
03700           obj1f = UtilsClient::getHisto<TH1F*>( metav05_[ism-1] );
03701           break;
03702         case 6:
03703           obj1f = UtilsClient::getHisto<TH1F*>( metav06_[ism-1] );
03704           break;
03705         case 7:
03706           obj1f = UtilsClient::getHisto<TH1F*>( metav07_[ism-1] );
03707           break;
03708         case 8:
03709           obj1f = UtilsClient::getHisto<TH1F*>( metav08_[ism-1] );
03710           break;
03711         default:
03712           break;
03713       }
03714 
03715       if ( obj1f ) {
03716 
03717         meName = obj1f->GetName();
03718 
03719         replace(meName.begin(), meName.end(), ' ', '_');
03720         imgNameTimav[iCanvas-1] = meName + ".png";
03721         imgName = htmlDir + imgNameTimav[iCanvas-1];
03722 
03723         cTimav->cd();
03724         gStyle->SetOptStat("euomr");
03725         obj1f->SetStats(kTRUE);
03726         if ( obj1f->GetMaximum(histMax) > 0. ) {
03727           gPad->SetLogy(kTRUE);
03728         } else {
03729           gPad->SetLogy(kFALSE);
03730         }
03731         obj1f->Draw();
03732         cTimav->Update();
03733         cTimav->SaveAs(imgName.c_str());
03734         gPad->SetLogy(kFALSE);
03735 
03736       }
03737 
03738       // Timing rms distributions
03739 
03740       imgNameTimrms[iCanvas-1] = "";
03741 
03742       obj1f = 0;
03743       switch ( iCanvas ) {
03744         case 1:
03745           obj1f = UtilsClient::getHisto<TH1F*>( metrms01_[ism-1] );
03746           break;
03747         case 2:
03748           obj1f = UtilsClient::getHisto<TH1F*>( metrms02_[ism-1] );
03749           break;
03750         case 3:
03751           obj1f = UtilsClient::getHisto<TH1F*>( metrms03_[ism-1] );
03752           break;
03753         case 4:
03754           obj1f = UtilsClient::getHisto<TH1F*>( metrms04_[ism-1] );
03755           break;
03756         case 5:
03757           obj1f = UtilsClient::getHisto<TH1F*>( metrms05_[ism-1] );
03758           break;
03759         case 6:
03760           obj1f = UtilsClient::getHisto<TH1F*>( metrms06_[ism-1] );
03761           break;
03762         case 7:
03763           obj1f = UtilsClient::getHisto<TH1F*>( metrms07_[ism-1] );
03764           break;
03765         case 8:
03766           obj1f = UtilsClient::getHisto<TH1F*>( metrms08_[ism-1] );
03767           break;
03768         default:
03769           break;
03770       }
03771 
03772       if ( obj1f ) {
03773 
03774         meName = obj1f->GetName();
03775 
03776         replace(meName.begin(), meName.end(), ' ', '_');
03777         imgNameTimrms[iCanvas-1] = meName + ".png";
03778         imgName = htmlDir + imgNameTimrms[iCanvas-1];
03779 
03780         cTimrms->cd();
03781         gStyle->SetOptStat("euomr");
03782         obj1f->SetStats(kTRUE);
03783         if ( obj1f->GetMaximum(histMax) > 0. ) {
03784           gPad->SetLogy(kTRUE);
03785         } else {
03786           gPad->SetLogy(kFALSE);
03787         }
03788         obj1f->Draw();
03789         cTimrms->Update();
03790         cTimrms->SaveAs(imgName.c_str());
03791         gPad->SetLogy(kFALSE);
03792 
03793       }
03794 
03795       // Shape distributions
03796 
03797       imgNameShape[iCanvas-1] = "";
03798 
03799       obj1f = 0;
03800       switch ( iCanvas ) {
03801         case 1:
03802           obj1f = UtilsClient::getHisto<TH1F*>( me_hs01_[ism-1] );
03803           break;
03804         case 2:
03805           obj1f = UtilsClient::getHisto<TH1F*>( me_hs02_[ism-1] );
03806           break;
03807         case 3:
03808           obj1f = UtilsClient::getHisto<TH1F*>( me_hs03_[ism-1] );
03809           break;
03810         case 4:
03811           obj1f = UtilsClient::getHisto<TH1F*>( me_hs04_[ism-1] );
03812           break;
03813         case 5:
03814           obj1f = UtilsClient::getHisto<TH1F*>( me_hs05_[ism-1] );
03815           break;
03816         case 6:
03817           obj1f = UtilsClient::getHisto<TH1F*>( me_hs06_[ism-1] );
03818           break;
03819         case 7:
03820           obj1f = UtilsClient::getHisto<TH1F*>( me_hs07_[ism-1] );
03821           break;
03822         case 8:
03823           obj1f = UtilsClient::getHisto<TH1F*>( me_hs08_[ism-1] );
03824           break;
03825         default:
03826           break;
03827       }
03828 
03829       if ( obj1f ) {
03830         meName = obj1f->GetName();
03831 
03832         replace(meName.begin(), meName.end(), ' ', '_');
03833         imgNameShape[iCanvas-1] = meName + ".png";
03834         imgName = htmlDir + imgNameShape[iCanvas-1];
03835 
03836         cShape->cd();
03837         gStyle->SetOptStat("euo");
03838         obj1f->SetStats(kTRUE);
03839 //        if ( obj1f->GetMaximum(histMax) > 0. ) {
03840 //          gPad->SetLogy(kTRUE);
03841 //        } else {
03842 //          gPad->SetLogy(kFALSE);
03843 //        }
03844         obj1f->Draw();
03845         cShape->Update();
03846         cShape->SaveAs(imgName.c_str());
03847         gPad->SetLogy(kFALSE);
03848 
03849       }
03850 
03851       // Amplitude over PN distributions
03852 
03853       imgNameAmpoPN[iCanvas-1] = "";
03854 
03855       obj1f = 0;
03856       switch ( iCanvas ) {
03857         case 1:
03858           obj1f = UtilsClient::getHisto<TH1F*>( meaopn01_[ism-1] );
03859           break;
03860         case 2:
03861           obj1f = UtilsClient::getHisto<TH1F*>( meaopn02_[ism-1] );
03862           break;
03863         case 3:
03864           obj1f = UtilsClient::getHisto<TH1F*>( meaopn03_[ism-1] );
03865           break;
03866         case 4:
03867           obj1f = UtilsClient::getHisto<TH1F*>( meaopn04_[ism-1] );
03868           break;
03869         case 5:
03870           obj1f = UtilsClient::getHisto<TH1F*>( meaopn05_[ism-1] );
03871           break;
03872         case 6:
03873           obj1f = UtilsClient::getHisto<TH1F*>( meaopn06_[ism-1] );
03874           break;
03875         case 7:
03876           obj1f = UtilsClient::getHisto<TH1F*>( meaopn07_[ism-1] );
03877           break;
03878         case 8:
03879           obj1f = UtilsClient::getHisto<TH1F*>( meaopn08_[ism-1] );
03880           break;
03881         default:
03882           break;
03883       }
03884 
03885       if ( obj1f ) {
03886 
03887         meName = obj1f->GetName();
03888 
03889         replace(meName.begin(), meName.end(), ' ', '_');
03890         imgNameAmpoPN[iCanvas-1] = meName + ".png";
03891         imgName = htmlDir + imgNameAmpoPN[iCanvas-1];
03892 
03893         cAmpoPN->cd();
03894         gStyle->SetOptStat("euo");
03895         obj1f->SetStats(kTRUE);
03896 //        if ( obj1f->GetMaximum(histMax) > 0. ) {
03897 //          gPad->SetLogy(kTRUE);
03898 //        } else {
03899 //          gPad->SetLogy(kFALSE);
03900 //        }
03901         obj1f->SetMinimum(0.0);
03902         obj1f->SetMaximum(20.0);
03903         obj1f->Draw();
03904         cAmpoPN->Update();
03905         cAmpoPN->SaveAs(imgName.c_str());
03906         gPad->SetLogy(kFALSE);
03907 
03908       }
03909 
03910       // Monitoring elements plots
03911 
03912       imgNameMEPnQualG01[iCanvas-1] = "";
03913 
03914       obj2f = 0;
03915       switch ( iCanvas ) {
03916       case 1:
03917         obj2f = UtilsClient::getHisto<TH2F*>( meg05_[ism-1] );
03918         break;
03919       case 2:
03920         obj2f = UtilsClient::getHisto<TH2F*>( meg06_[ism-1] );
03921         break;
03922       case 3:
03923         obj2f = UtilsClient::getHisto<TH2F*>( meg07_[ism-1] );
03924         break;
03925       case 4:
03926         obj2f = UtilsClient::getHisto<TH2F*>( meg08_[ism-1] );
03927         break;
03928       case 5:
03929       case 6:
03930       case 7:
03931       case 8:
03932         obj2f = 0;
03933         break;
03934       default:
03935         break;
03936       }
03937 
03938       if ( obj2f ) {
03939 
03940         meName = obj2f->GetName();
03941 
03942         replace(meName.begin(), meName.end(), ' ', '_');
03943         imgNameMEPnQualG01[iCanvas-1] = meName + ".png";
03944         imgName = htmlDir + imgNameMEPnQualG01[iCanvas-1];
03945 
03946         cQualPN->cd();
03947         gStyle->SetOptStat(" ");
03948         gStyle->SetPalette(7, pCol3);
03949         obj2f->GetXaxis()->SetNdivisions(10);
03950         obj2f->GetYaxis()->SetNdivisions(5);
03951         cQualPN->SetGridx();
03952         cQualPN->SetGridy(0);
03953         obj2f->SetMinimum(-0.00000001);
03954         obj2f->SetMaximum(7.0);
03955         obj2f->Draw("col");
03956         dummy1.Draw("text,same");
03957         cQualPN->Update();
03958         cQualPN->SaveAs(imgName.c_str());
03959 
03960       }
03961 
03962       imgNameMEPnQualG16[iCanvas-1] = "";
03963 
03964       obj2f = 0;
03965       switch ( iCanvas ) {
03966       case 1:
03967         obj2f = UtilsClient::getHisto<TH2F*>( meg09_[ism-1] );
03968         break;
03969       case 2:
03970         obj2f = UtilsClient::getHisto<TH2F*>( meg10_[ism-1] );
03971         break;
03972       case 3:
03973         obj2f = UtilsClient::getHisto<TH2F*>( meg11_[ism-1] );
03974         break;
03975       case 4:
03976         obj2f = UtilsClient::getHisto<TH2F*>( meg12_[ism-1] );
03977         break;
03978       case 5:
03979       case 6:
03980       case 7:
03981       case 8:
03982         obj2f = 0;
03983         break;
03984       default:
03985         break;
03986       }
03987 
03988       if ( obj2f ) {
03989 
03990         meName = obj2f->GetName();
03991 
03992         replace(meName.begin(), meName.end(), ' ', '_');
03993         imgNameMEPnQualG16[iCanvas-1] = meName + ".png";
03994         imgName = htmlDir + imgNameMEPnQualG16[iCanvas-1];
03995 
03996         cQualPN->cd();
03997         gStyle->SetOptStat(" ");
03998         gStyle->SetPalette(7, pCol3);
03999         obj2f->GetXaxis()->SetNdivisions(10);
04000         obj2f->GetYaxis()->SetNdivisions(5);
04001         cQualPN->SetGridx();
04002         cQualPN->SetGridy(0);
04003         obj2f->SetMinimum(-0.00000001);
04004         obj2f->SetMaximum(7.0);
04005         obj2f->Draw("col");
04006         dummy1.Draw("text,same");
04007         cQualPN->Update();
04008         cQualPN->SaveAs(imgName.c_str());
04009 
04010       }
04011 
04012       imgNameMEPnG01[iCanvas-1] = "";
04013 
04014       objp = 0;
04015       switch ( iCanvas ) {
04016         case 1:
04017           objp = i01_[ism-1];
04018           break;
04019         case 2:
04020           objp = i02_[ism-1];
04021           break;
04022         case 3:
04023           objp = i03_[ism-1];
04024           break;
04025         case 4:
04026           objp = i04_[ism-1];
04027           break;
04028         case 5:
04029         case 6:
04030         case 7:
04031         case 8:
04032           objp = 0;
04033           break;
04034         default:
04035           break;
04036       }
04037 
04038       if ( objp ) {
04039 
04040         meName = objp->GetName();
04041 
04042         replace(meName.begin(), meName.end(), ' ', '_');
04043         imgNameMEPnG01[iCanvas-1] = meName + ".png";
04044         imgName = htmlDir + imgNameMEPnG01[iCanvas-1];
04045 
04046         cAmp->cd();
04047         gStyle->SetOptStat("euo");
04048         objp->SetStats(kTRUE);
04049 //        if ( objp->GetMaximum(histMax) > 0. ) {
04050 //          gPad->SetLogy(kTRUE);
04051 //        } else {
04052 //          gPad->SetLogy(kFALSE);
04053 //        }
04054         objp->SetMinimum(0.0);
04055         objp->Draw();
04056         cAmp->Update();
04057         cAmp->SaveAs(imgName.c_str());
04058         gPad->SetLogy(kFALSE);
04059 
04060       }
04061 
04062       imgNameMEPnG16[iCanvas-1] = "";
04063 
04064       objp = 0;
04065       switch ( iCanvas ) {
04066         case 1:
04067           objp = i09_[ism-1];
04068           break;
04069         case 2:
04070           objp = i10_[ism-1];
04071           break;
04072         case 3:
04073           objp = i11_[ism-1];
04074           break;
04075         case 4:
04076           objp = i12_[ism-1];
04077           break;
04078         case 5:
04079         case 6:
04080         case 7:
04081         case 8:
04082           objp = 0;
04083           break;
04084         default:
04085           break;
04086       }
04087 
04088       if ( objp ) {
04089 
04090         meName = objp->GetName();
04091 
04092         replace(meName.begin(), meName.end(), ' ', '_');
04093         imgNameMEPnG16[iCanvas-1] = meName + ".png";
04094         imgName = htmlDir + imgNameMEPnG16[iCanvas-1];
04095 
04096         cAmp->cd();
04097         gStyle->SetOptStat("euo");
04098         objp->SetStats(kTRUE);
04099 //        if ( objp->GetMaximum(histMax) > 0. ) {
04100 //          gPad->SetLogy(kTRUE);
04101 //        } else {
04102 //          gPad->SetLogy(kFALSE);
04103 //        }
04104         objp->SetMinimum(0.0);
04105         objp->Draw();
04106         cAmp->Update();
04107         cAmp->SaveAs(imgName.c_str());
04108         gPad->SetLogy(kFALSE);
04109 
04110       }
04111 
04112       // Monitoring elements plots
04113 
04114       imgNameMEPnPedG01[iCanvas-1] = "";
04115 
04116       objp = 0;
04117       switch ( iCanvas ) {
04118         case 1:
04119           objp = i05_[ism-1];
04120           break;
04121         case 2:
04122           objp = i06_[ism-1];
04123           break;
04124         case 3:
04125           objp = i07_[ism-1];
04126           break;
04127         case 4:
04128           objp = i08_[ism-1];
04129           break;
04130         case 5:
04131         case 6:
04132         case 7:
04133         case 8:
04134           objp = 0;
04135           break;
04136         default:
04137           break;
04138       }
04139 
04140       if ( objp ) {
04141 
04142         meName = objp->GetName();
04143 
04144         replace(meName.begin(), meName.end(), ' ', '_');
04145         imgNameMEPnPedG01[iCanvas-1] = meName + ".png";
04146         imgName = htmlDir + imgNameMEPnPedG01[iCanvas-1];
04147 
04148         cPed->cd();
04149         gStyle->SetOptStat("euo");
04150         objp->SetStats(kTRUE);
04151 //        if ( objp->GetMaximum(histMax) > 0. ) {
04152 //          gPad->SetLogy(kTRUE);
04153 //        } else {
04154 //          gPad->SetLogy(kFALSE);
04155 //        }
04156         objp->SetMinimum(0.0);
04157         objp->Draw();
04158         cPed->Update();
04159         cPed->SaveAs(imgName.c_str());
04160         gPad->SetLogy(kFALSE);
04161 
04162       }
04163 
04164       imgNameMEPnPedG16[iCanvas-1] = "";
04165 
04166       objp = 0;
04167       switch ( iCanvas ) {
04168       case 1:
04169         objp = i13_[ism-1];
04170         break;
04171       case 2:
04172         objp = i14_[ism-1];
04173         break;
04174       case 3:
04175         objp = i15_[ism-1];
04176         break;
04177       case 4:
04178         objp = i16_[ism-1];
04179         break;
04180       case 5:
04181       case 6:
04182       case 7:
04183       case 8:
04184         objp = 0;
04185         break;
04186       default:
04187         break;
04188       }
04189 
04190       if ( objp ) {
04191 
04192         meName = objp->GetName();
04193 
04194         replace(meName.begin(), meName.end(), ' ', '_');
04195         imgNameMEPnPedG16[iCanvas-1] = meName + ".png";
04196         imgName = htmlDir + imgNameMEPnPedG16[iCanvas-1];
04197 
04198         cPed->cd();
04199         gStyle->SetOptStat("euo");
04200         objp->SetStats(kTRUE);
04201 //        if ( objp->GetMaximum(histMax) > 0. ) {
04202 //          gPad->SetLogy(kTRUE);
04203 //        } else {
04204 //          gPad->SetLogy(kFALSE);
04205 //        }
04206         objp->SetMinimum(0.0);
04207         objp->Draw();
04208         cPed->Update();
04209         cPed->SaveAs(imgName.c_str());
04210         gPad->SetLogy(kFALSE);
04211 
04212       }
04213 
04214       imgNameMEPnRmsPedG01[iCanvas-1] = "";
04215 
04216       obj1f = 0;
04217       switch ( iCanvas ) {
04218       case 1:
04219         if ( mepnprms01_[ism-1] ) obj1f =  UtilsClient::getHisto<TH1F*>(mepnprms01_[ism-1]);
04220         break;
04221       case 2:
04222         if ( mepnprms02_[ism-1] ) obj1f =  UtilsClient::getHisto<TH1F*>(mepnprms02_[ism-1]);
04223         break;
04224       case 3:
04225         if ( mepnprms03_[ism-1] ) obj1f =  UtilsClient::getHisto<TH1F*>(mepnprms03_[ism-1]);
04226         break;
04227       case 4:
04228         if ( mepnprms04_[ism-1] ) obj1f =  UtilsClient::getHisto<TH1F*>(mepnprms04_[ism-1]);
04229         break;
04230       case 5:
04231       case 6:
04232       case 7:
04233       case 8:
04234         obj1f = 0;
04235         break;
04236       default:
04237         break;
04238       }
04239 
04240       if ( obj1f ) {
04241 
04242         meName = obj1f->GetName();
04243 
04244         replace(meName.begin(), meName.end(), ' ', '_');
04245         imgNameMEPnRmsPedG01[iCanvas-1] = meName + ".png";
04246         imgName = htmlDir + imgNameMEPnRmsPedG01[iCanvas-1];
04247 
04248         cPed->cd();
04249         gStyle->SetOptStat("euomr");
04250         obj1f->SetStats(kTRUE);
04251 //        if ( obj1f->GetMaximum(histMax) > 0. ) {
04252 //          gPad->SetLogy(kTRUE);
04253 //        } else {
04254 //          gPad->SetLogy(kFALSE);
04255 //        }
04256         obj1f->SetMinimum(0.0);
04257         obj1f->Draw();
04258         cPed->Update();
04259         cPed->SaveAs(imgName.c_str());
04260         gPad->SetLogy(kFALSE);
04261 
04262       }
04263 
04264       imgNameMEPnRmsPedG16[iCanvas-1] = "";
04265 
04266       obj1f = 0;
04267       switch ( iCanvas ) {
04268       case 1:
04269         if ( mepnprms05_[ism-1] ) obj1f =  UtilsClient::getHisto<TH1F*>(mepnprms05_[ism-1]);
04270         break;
04271       case 2:
04272         if ( mepnprms06_[ism-1] ) obj1f =  UtilsClient::getHisto<TH1F*>(mepnprms06_[ism-1]);
04273         break;
04274       case 3:
04275         if ( mepnprms07_[ism-1] ) obj1f =  UtilsClient::getHisto<TH1F*>(mepnprms07_[ism-1]);
04276         break;
04277       case 4:
04278         if ( mepnprms08_[ism-1] ) obj1f =  UtilsClient::getHisto<TH1F*>(mepnprms08_[ism-1]);
04279         break;
04280       case 5:
04281       case 6:
04282       case 7:
04283       case 8:
04284         obj1f = 0;
04285         break;
04286       default:
04287         break;
04288       }
04289 
04290       if ( obj1f ) {
04291 
04292         meName = obj1f->GetName();
04293 
04294         replace(meName.begin(), meName.end(), ' ', '_');
04295         imgNameMEPnRmsPedG16[iCanvas-1] = meName + ".png";
04296         imgName = htmlDir + imgNameMEPnRmsPedG16[iCanvas-1];
04297 
04298         cPed->cd();
04299         gStyle->SetOptStat("euomr");
04300         obj1f->SetStats(kTRUE);
04301 //        if ( obj1f->GetMaximum(histMax) > 0. ) {
04302 //          gPad->SetLogy(kTRUE);
04303 //        } else {
04304 //          gPad->SetLogy(kFALSE);
04305 //        }
04306         obj1f->SetMinimum(0.0);
04307         obj1f->Draw();
04308         cPed->Update();
04309         cPed->SaveAs(imgName.c_str());
04310         gPad->SetLogy(kFALSE);
04311 
04312       }
04313 
04314     }
04315 
04316     if( i>0 ) htmlFile << "<a href=""#top"">Top</a>" << std::endl;
04317     htmlFile << "<hr>" << std::endl;
04318     htmlFile << "<h3><a name="""
04319              << Numbers::sEE(ism) << """></a><strong>"
04320              << Numbers::sEE(ism) << "</strong></h3>" << endl;
04321     htmlFile << "<table border=\"0\" cellspacing=\"0\" " << endl;
04322     htmlFile << "cellpadding=\"10\" align=\"center\"> " << endl;
04323     htmlFile << "<tr align=\"center\">" << endl;
04324 
04325     for ( int iCanvas = 1 ; iCanvas <= 4 ; iCanvas++ ) {
04326 
04327       // skip unused wavelengths
04328       if ( iCanvas == 2 || iCanvas == 3 ) continue;
04329 
04330       if ( imgNameQual[iCanvas-1].size() != 0 )
04331         htmlFile << "<td colspan=\"2\"><img src=\"" << imgNameQual[iCanvas-1] << "\"></td>" << endl;
04332       else
04333         htmlFile << "<td colspan=\"2\"><img src=\"" << " " << "\"></td>" << endl;
04334 
04335     }
04336 
04337     htmlFile << "</tr>" << endl;
04338 
04339     htmlFile << "<tr>" << endl;
04340 
04341     for ( int iCanvas = 1 ; iCanvas <= 4 ; iCanvas++ ) {
04342 
04343       // skip unused wavelengths
04344       if ( iCanvas == 2 || iCanvas == 3 ) continue;
04345 
04346       if ( imgNameAmp[iCanvas-1].size() != 0 )
04347         htmlFile << "<td><img src=\"" << imgNameAmp[iCanvas-1] << "\"></td>" << endl;
04348       else
04349         htmlFile << "<td><img src=\"" << " " << "\"></td>" << endl;
04350 
04351       if ( imgNameAmpoPN[iCanvas-1].size() != 0 )
04352         htmlFile << "<td><img src=\"" << imgNameAmpoPN[iCanvas-1] << "\"></td>" << endl;
04353       else
04354         htmlFile << "<td><img src=\"" << " " << "\"></td>" << endl;
04355 
04356     }
04357 
04358     htmlFile << "</tr>" << endl;
04359 
04360     htmlFile << "<tr>" << endl;
04361 
04362     for ( int iCanvas = 1 ; iCanvas <= 4 ; iCanvas++ ) {
04363 
04364       // skip unused wavelengths
04365       if ( iCanvas == 2 || iCanvas == 3 ) continue;
04366 
04367       if ( imgNameAmp[4+iCanvas-1].size() != 0 )
04368         htmlFile << "<td><img src=\"" << imgNameAmp[4+iCanvas-1] << "\"></td>" << endl;
04369       else
04370         htmlFile << "<td><img src=\"" << " " << "\"></td>" << endl;
04371 
04372       if ( imgNameAmpoPN[4+iCanvas-1].size() != 0 )
04373         htmlFile << "<td><img src=\"" << imgNameAmpoPN[4+iCanvas-1] << "\"></td>" << endl;
04374       else
04375         htmlFile << "<td><img src=\"" << " " << "\"></td>" << endl;
04376 
04377     }
04378 
04379     htmlFile << "</tr>" << endl;
04380 
04381     htmlFile << "<tr>" << endl;
04382 
04383     for ( int iCanvas = 1 ; iCanvas <= 4 ; iCanvas++ ) {
04384 
04385       // skip unused wavelengths
04386       if ( iCanvas == 2 || iCanvas == 3 ) continue;
04387 
04388       if ( imgNameTim[iCanvas-1].size() != 0 )
04389         htmlFile << "<td><img src=\"" << imgNameTim[iCanvas-1] << "\"></td>" << endl;
04390       else
04391         htmlFile << "<td><img src=\"" << " " << "\"></td>" << endl;
04392 
04393       if ( imgNameShape[iCanvas-1].size() != 0 )
04394         htmlFile << "<td><img src=\"" << imgNameShape[iCanvas-1] << "\"></td>" << endl;
04395       else
04396         htmlFile << "<td><img src=\"" << " " << "\"></td>" << endl;
04397 
04398     }
04399 
04400     htmlFile << "</tr>" << endl;
04401 
04402     htmlFile << "<tr>" << endl;
04403 
04404     for ( int iCanvas = 1 ; iCanvas <= 4 ; iCanvas++ ) {
04405 
04406       // skip unused wavelengths
04407       if ( iCanvas == 2 || iCanvas == 3 ) continue;
04408 
04409       if ( imgNameTimav[iCanvas-1].size() != 0 )
04410         htmlFile << "<td><img src=\"" << imgNameTimav[iCanvas-1] << "\"></td>" << endl;
04411       else
04412         htmlFile << "<td><img src=\"" << " " << "\"></td>" << endl;
04413 
04414       if ( imgNameTimrms[iCanvas-1].size() != 0 )
04415         htmlFile << "<td><img src=\"" << imgNameTimrms[iCanvas-1] << "\"></td>" << endl;
04416       else
04417         htmlFile << "<td><img src=\"" << " " << "\"></td>" << endl;
04418 
04419     }
04420 
04421     htmlFile << "</tr>" << endl;
04422 
04423     htmlFile << "<tr>" << endl;
04424 
04425     for ( int iCanvas = 1 ; iCanvas <= 4 ; iCanvas++ ) {
04426 
04427       // skip unused wavelengths
04428       if ( iCanvas == 2 || iCanvas == 3 ) continue;
04429 
04430       if ( imgNameTim[4+iCanvas-1].size() != 0 )
04431         htmlFile << "<td><img src=\"" << imgNameTim[4+iCanvas-1] << "\"></td>" << endl;
04432       else
04433         htmlFile << "<td><img src=\"" << " " << "\"></td>" << endl;
04434 
04435       if ( imgNameShape[4+iCanvas-1].size() != 0 )
04436         htmlFile << "<td><img src=\"" << imgNameShape[4+iCanvas-1] << "\"></td>" << endl;
04437       else
04438         htmlFile << "<td><img src=\"" << " " << "\"></td>" << endl;
04439 
04440     }
04441 
04442     htmlFile << "</tr>" << endl;
04443 
04444     htmlFile << "<tr>" << endl;
04445 
04446     for ( int iCanvas = 1 ; iCanvas <= 4 ; iCanvas++ ) {
04447 
04448       // skip unused wavelengths
04449       if ( iCanvas == 2 || iCanvas == 3 ) continue;
04450 
04451       if ( imgNameTimav[4+iCanvas-1].size() != 0 )
04452         htmlFile << "<td><img src=\"" << imgNameTimav[4+iCanvas-1] << "\"></td>" << endl;
04453       else
04454         htmlFile << "<td><img src=\"" << " " << "\"></td>" << endl;
04455 
04456       if ( imgNameTimrms[4+iCanvas-1].size() != 0 )
04457         htmlFile << "<td><img src=\"" << imgNameTimrms[4+iCanvas-1] << "\"></td>" << endl;
04458       else
04459         htmlFile << "<td><img src=\"" << " " << "\"></td>" << endl;
04460 
04461     }
04462 
04463     htmlFile << "</tr>" << endl;
04464 
04465     htmlFile << "<tr align=\"center\">" << endl;
04466 
04467     for ( int iCanvas = 1 ; iCanvas <= 4 ; iCanvas++ ) {
04468 
04469       // skip unused wavelengths
04470       if ( iCanvas == 2 || iCanvas == 3 ) continue;
04471 
04472       htmlFile << "<td colspan=\"2\">Laser " << iCanvas << "</td>" << endl;
04473 
04474     }
04475 
04476     htmlFile << "</tr>" << endl;
04477     htmlFile << "</table>" << endl;
04478     htmlFile << "<br>" << endl;
04479 
04480     htmlFile << "<table border=\"0\" cellspacing=\"0\" " << endl;
04481     htmlFile << "cellpadding=\"10\" align=\"center\"> " << endl;
04482     htmlFile << "<tr align=\"center\">" << endl;
04483 
04484     for ( int iCanvas = 1 ; iCanvas <= 4 ; iCanvas++ ) {
04485 
04486       // skip unused wavelengths
04487       if ( iCanvas == 2 || iCanvas == 3 ) continue;
04488 
04489       if ( imgNameMEPnQualG01[iCanvas-1].size() != 0 )
04490         htmlFile << "<td colspan=\"2\"><img src=\"" << imgNameMEPnQualG01[iCanvas-1] << "\"></td>" << endl;
04491       else
04492         htmlFile << "<td colspan=\"2\"><img src=\"" << " " << "\"></td>" << endl;
04493 
04494     }
04495 
04496     htmlFile << "</tr>" << endl;
04497 
04498     htmlFile << "<tr>" << endl;
04499 
04500     for ( int iCanvas = 1 ; iCanvas <= 4 ; iCanvas++ ) {
04501 
04502       // skip unused wavelengths
04503       if ( iCanvas == 2 || iCanvas == 3 ) continue;
04504 
04505       if ( imgNameMEPnPedG01[iCanvas-1].size() != 0 )
04506         htmlFile << "<td><img src=\"" << imgNameMEPnPedG01[iCanvas-1] << "\"></td>" << endl;
04507       else
04508        htmlFile << "<td><img src=\"" << " " << "\"></td>" << endl;
04509 
04510       if ( imgNameMEPnRmsPedG01[iCanvas-1].size() != 0 )
04511         htmlFile << "<td><img src=\"" << imgNameMEPnRmsPedG01[iCanvas-1] << "\"></td>" << endl;
04512       else
04513         htmlFile << "<td><img src=\"" << " " << "\"></td>" << endl;
04514 
04515       if ( imgNameMEPnG01[iCanvas-1].size() != 0 )
04516         htmlFile << "<td><img src=\"" << imgNameMEPnG01[iCanvas-1] << "\"></td>" << endl;
04517       else
04518         htmlFile << "<td><img src=\"" << " " << "\"></td>" << endl;
04519 
04520     }
04521 
04522     htmlFile << "</tr>" << endl;
04523 
04524     htmlFile << "<tr align=\"center\">" << endl;
04525 
04526     for ( int iCanvas = 1 ; iCanvas <= 4 ; iCanvas++ ) {
04527 
04528       // skip unused wavelengths
04529       if ( iCanvas == 2 || iCanvas == 3 ) continue;
04530 
04531       htmlFile << "<td colspan=\"1\"> </td> <td colspan=\"1\">Laser " << iCanvas << " - PN Gain 1</td> <td colspan=\"1\">" << endl;
04532 
04533     }
04534 
04535     htmlFile << "</tr>" << endl;
04536 
04537     htmlFile << "<tr align=\"center\">" << endl;
04538 
04539     for ( int iCanvas = 1 ; iCanvas <= 4 ; iCanvas++ ) {
04540 
04541       // skip unused wavelengths
04542       if ( iCanvas == 2 || iCanvas == 3 ) continue;
04543 
04544       if ( imgNameMEPnQualG16[iCanvas-1].size() != 0 )
04545         htmlFile << "<td colspan=\"2\"><img src=\"" << imgNameMEPnQualG16[iCanvas-1] << "\"></td>" << endl;
04546       else
04547         htmlFile << "<td colspan=\"2\"><img src=\"" << " " << "\"></td>" << endl;
04548 
04549     }
04550 
04551     htmlFile << "</tr>" << endl;
04552 
04553     htmlFile << "<tr>" << endl;
04554 
04555     for ( int iCanvas = 1 ; iCanvas <= 4 ; iCanvas++ ) {
04556 
04557       // skip unused wavelengths
04558       if ( iCanvas == 2 || iCanvas == 3 ) continue;
04559 
04560       if ( imgNameMEPnPedG16[iCanvas-1].size() != 0 )
04561         htmlFile << "<td><img src=\"" << imgNameMEPnPedG16[iCanvas-1] << "\"></td>" << endl;
04562       else
04563         htmlFile << "<td><img src=\"" << " " << "\"></td>" << endl;
04564 
04565       if ( imgNameMEPnRmsPedG16[iCanvas-1].size() != 0 )
04566         htmlFile << "<td><img src=\"" << imgNameMEPnRmsPedG16[iCanvas-1] << "\"></td>" << endl;
04567       else
04568         htmlFile << "<td><img src=\"" << " " << "\"></td>" << endl;
04569 
04570       if ( imgNameMEPnG16[iCanvas-1].size() != 0 )
04571         htmlFile << "<td><img src=\"" << imgNameMEPnG16[iCanvas-1] << "\"></td>" << endl;
04572       else
04573         htmlFile << "<td><img src=\"" << " " << "\"></td>" << endl;
04574 
04575     }
04576 
04577     htmlFile << "<tr align=\"center\">" << endl;
04578 
04579     for ( int iCanvas = 1 ; iCanvas <= 4 ; iCanvas++ ) {
04580 
04581       // skip unused wavelengths
04582       if ( iCanvas == 2 || iCanvas == 3 ) continue;
04583 
04584       htmlFile << "<td colspan=\"1\"> </td> <td colspan=\"1\">Laser " << iCanvas << " - PN Gain 16</td> <td colspan=\"1\"> </td>" << endl;
04585 
04586     }
04587 
04588     htmlFile << "</tr>" << endl;
04589 
04590     htmlFile << "</tr>" << endl;
04591     htmlFile << "</table>" << endl;
04592 
04593     htmlFile << "<br>" << endl;
04594 
04595   }
04596 
04597   delete cQual;
04598   delete cQualPN;
04599   delete cAmp;
04600   delete cTim;
04601   delete cTimav;
04602   delete cTimrms;
04603   delete cShape;
04604   delete cAmpoPN;
04605   delete cPed;
04606 
04607   // html page footer
04608   htmlFile << "</body> " << endl;
04609   htmlFile << "</html> " << endl;
04610 
04611   htmlFile.close();
04612 
04613 }
04614 

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