00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #include <memory>
00012 #include <iostream>
00013 #include <fstream>
00014 #include <iomanip>
00015 #include <math.h>
00016
00017 #include "FWCore/ServiceRegistry/interface/Service.h"
00018
00019 #include "DQMServices/Core/interface/DQMStore.h"
00020
00021 #ifdef WITH_ECAL_COND_DB
00022 #include "OnlineDB/EcalCondDB/interface/MonLaserBlueDat.h"
00023 #include "OnlineDB/EcalCondDB/interface/MonLaserGreenDat.h"
00024 #include "OnlineDB/EcalCondDB/interface/MonLaserIRedDat.h"
00025 #include "OnlineDB/EcalCondDB/interface/MonLaserRedDat.h"
00026 #include "OnlineDB/EcalCondDB/interface/MonPNBlueDat.h"
00027 #include "OnlineDB/EcalCondDB/interface/MonPNGreenDat.h"
00028 #include "OnlineDB/EcalCondDB/interface/MonPNIRedDat.h"
00029 #include "OnlineDB/EcalCondDB/interface/MonPNRedDat.h"
00030 #include "OnlineDB/EcalCondDB/interface/MonTimingLaserBlueCrystalDat.h"
00031 #include "OnlineDB/EcalCondDB/interface/MonTimingLaserGreenCrystalDat.h"
00032 #include "OnlineDB/EcalCondDB/interface/MonTimingLaserIRedCrystalDat.h"
00033 #include "OnlineDB/EcalCondDB/interface/MonTimingLaserRedCrystalDat.h"
00034 #include "OnlineDB/EcalCondDB/interface/RunCrystalErrorsDat.h"
00035 #include "OnlineDB/EcalCondDB/interface/RunTTErrorsDat.h"
00036 #include "OnlineDB/EcalCondDB/interface/RunPNErrorsDat.h"
00037 #include "OnlineDB/EcalCondDB/interface/EcalCondDBInterface.h"
00038 #include "DQM/EcalCommon/interface/LogicID.h"
00039 #endif
00040
00041 #include "DQM/EcalCommon/interface/Masks.h"
00042
00043 #include "DQM/EcalCommon/interface/UtilsClient.h"
00044 #include "DQM/EcalCommon/interface/Numbers.h"
00045
00046 #include "DQM/EcalBarrelMonitorClient/interface/EBLaserClient.h"
00047
00048 EBLaserClient::EBLaserClient(const edm::ParameterSet& ps) {
00049
00050
00051 cloneME_ = ps.getUntrackedParameter<bool>("cloneME", true);
00052
00053
00054 verbose_ = ps.getUntrackedParameter<bool>("verbose", true);
00055
00056
00057 debug_ = ps.getUntrackedParameter<bool>("debug", false);
00058
00059
00060 prefixME_ = ps.getUntrackedParameter<std::string>("prefixME", "");
00061
00062
00063 enableCleanup_ = ps.getUntrackedParameter<bool>("enableCleanup", false);
00064
00065
00066 superModules_.reserve(36);
00067 for ( unsigned int i = 1; i <= 36; i++ ) superModules_.push_back(i);
00068 superModules_ = ps.getUntrackedParameter<std::vector<int> >("superModules", superModules_);
00069
00070 laserWavelengths_.reserve(4);
00071 for ( unsigned int i = 1; i <= 4; i++ ) laserWavelengths_.push_back(i);
00072 laserWavelengths_ = ps.getUntrackedParameter<std::vector<int> >("laserWavelengths", laserWavelengths_);
00073
00074 if ( verbose_ ) {
00075 std::cout << " Laser wavelengths:" << std::endl;
00076 for ( unsigned int i = 0; i < laserWavelengths_.size(); i++ ) {
00077 std::cout << " " << laserWavelengths_[i];
00078 }
00079 std::cout << std::endl;
00080 }
00081
00082 for ( unsigned int i=0; i<superModules_.size(); i++ ) {
00083
00084 int ism = superModules_[i];
00085
00086 h01_[ism-1] = 0;
00087 h02_[ism-1] = 0;
00088 h03_[ism-1] = 0;
00089 h04_[ism-1] = 0;
00090 h05_[ism-1] = 0;
00091 h06_[ism-1] = 0;
00092 h07_[ism-1] = 0;
00093 h08_[ism-1] = 0;
00094
00095 h09_[ism-1] = 0;
00096 h10_[ism-1] = 0;
00097 h11_[ism-1] = 0;
00098 h12_[ism-1] = 0;
00099
00100 hs01_[ism-1] = 0;
00101 hs02_[ism-1] = 0;
00102 hs03_[ism-1] = 0;
00103 hs04_[ism-1] = 0;
00104
00105 i01_[ism-1] = 0;
00106 i02_[ism-1] = 0;
00107 i03_[ism-1] = 0;
00108 i04_[ism-1] = 0;
00109 i05_[ism-1] = 0;
00110 i06_[ism-1] = 0;
00111 i07_[ism-1] = 0;
00112 i08_[ism-1] = 0;
00113
00114 i09_[ism-1] = 0;
00115 i10_[ism-1] = 0;
00116 i11_[ism-1] = 0;
00117 i12_[ism-1] = 0;
00118 i13_[ism-1] = 0;
00119 i14_[ism-1] = 0;
00120 i15_[ism-1] = 0;
00121 i16_[ism-1] = 0;
00122
00123 }
00124
00125 for ( unsigned int i=0; i<superModules_.size(); i++ ) {
00126
00127 int ism = superModules_[i];
00128
00129 meg01_[ism-1] = 0;
00130 meg02_[ism-1] = 0;
00131 meg03_[ism-1] = 0;
00132 meg04_[ism-1] = 0;
00133
00134 meg05_[ism-1] = 0;
00135 meg06_[ism-1] = 0;
00136 meg07_[ism-1] = 0;
00137 meg08_[ism-1] = 0;
00138 meg09_[ism-1] = 0;
00139 meg10_[ism-1] = 0;
00140 meg11_[ism-1] = 0;
00141 meg12_[ism-1] = 0;
00142
00143 mea01_[ism-1] = 0;
00144 mea02_[ism-1] = 0;
00145 mea03_[ism-1] = 0;
00146 mea04_[ism-1] = 0;
00147
00148 met01_[ism-1] = 0;
00149 met02_[ism-1] = 0;
00150 met03_[ism-1] = 0;
00151 met04_[ism-1] = 0;
00152
00153 metav01_[ism-1] = 0;
00154 metav02_[ism-1] = 0;
00155 metav03_[ism-1] = 0;
00156 metav04_[ism-1] = 0;
00157
00158 metrms01_[ism-1] = 0;
00159 metrms02_[ism-1] = 0;
00160 metrms03_[ism-1] = 0;
00161 metrms04_[ism-1] = 0;
00162
00163 meaopn01_[ism-1] = 0;
00164 meaopn02_[ism-1] = 0;
00165 meaopn03_[ism-1] = 0;
00166 meaopn04_[ism-1] = 0;
00167
00168 mepnprms01_[ism-1] = 0;
00169 mepnprms02_[ism-1] = 0;
00170 mepnprms03_[ism-1] = 0;
00171 mepnprms04_[ism-1] = 0;
00172 mepnprms05_[ism-1] = 0;
00173 mepnprms06_[ism-1] = 0;
00174 mepnprms07_[ism-1] = 0;
00175 mepnprms08_[ism-1] = 0;
00176
00177 me_hs01_[ism-1] = 0;
00178 me_hs02_[ism-1] = 0;
00179 me_hs03_[ism-1] = 0;
00180 me_hs04_[ism-1] = 0;
00181
00182 }
00183
00184 percentVariation_ = 0.4;
00185
00186 amplitudeThreshold_ = 100.;
00187
00188 rmsThresholdRelative_ = 0.3;
00189
00190 amplitudeThresholdPnG01_ = 100.;
00191 amplitudeThresholdPnG16_ = 100.;
00192
00193 pedPnExpectedMean_[0] = 750.0;
00194 pedPnExpectedMean_[1] = 750.0;
00195
00196 pedPnDiscrepancyMean_[0] = 100.0;
00197 pedPnDiscrepancyMean_[1] = 100.0;
00198
00199 pedPnRMSThreshold_[0] = 999.;
00200 pedPnRMSThreshold_[1] = 999.;
00201
00202 }
00203
00204 EBLaserClient::~EBLaserClient() {
00205
00206 }
00207
00208 void EBLaserClient::beginJob(void) {
00209
00210 dqmStore_ = edm::Service<DQMStore>().operator->();
00211
00212 if ( debug_ ) std::cout << "EBLaserClient: beginJob" << std::endl;
00213
00214 ievt_ = 0;
00215 jevt_ = 0;
00216
00217 }
00218
00219 void EBLaserClient::beginRun(void) {
00220
00221 if ( debug_ ) std::cout << "EBLaserClient: beginRun" << std::endl;
00222
00223 jevt_ = 0;
00224
00225 this->setup();
00226
00227 }
00228
00229 void EBLaserClient::endJob(void) {
00230
00231 if ( debug_ ) std::cout << "EBLaserClient: endJob, ievt = " << ievt_ << std::endl;
00232
00233 this->cleanup();
00234
00235 }
00236
00237 void EBLaserClient::endRun(void) {
00238
00239 if ( debug_ ) std::cout << "EBLaserClient: endRun, jevt = " << jevt_ << std::endl;
00240
00241 this->cleanup();
00242
00243 }
00244
00245 void EBLaserClient::setup(void) {
00246
00247 char histo[200];
00248
00249 dqmStore_->setCurrentFolder( prefixME_ + "/EBLaserClient" );
00250
00251 for ( unsigned int i=0; i<superModules_.size(); i++ ) {
00252
00253 int ism = superModules_[i];
00254
00255 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 1) != laserWavelengths_.end() ) {
00256 if ( meg01_[ism-1] ) dqmStore_->removeElement( meg01_[ism-1]->getName() );
00257 sprintf(histo, "EBLT laser quality L1 %s", Numbers::sEB(ism).c_str());
00258 meg01_[ism-1] = dqmStore_->book2D(histo, histo, 85, 0., 85., 20, 0., 20.);
00259 meg01_[ism-1]->setAxisTitle("ieta", 1);
00260 meg01_[ism-1]->setAxisTitle("iphi", 2);
00261 }
00262 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 2) != laserWavelengths_.end() ) {
00263 if ( meg02_[ism-1] ) dqmStore_->removeElement( meg02_[ism-1]->getName() );
00264 sprintf(histo, "EBLT laser quality L2 %s", Numbers::sEB(ism).c_str());
00265 meg02_[ism-1] = dqmStore_->book2D(histo, histo, 85, 0., 85., 20, 0., 20.);
00266 meg02_[ism-1]->setAxisTitle("ieta", 1);
00267 meg02_[ism-1]->setAxisTitle("iphi", 2);
00268 }
00269 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 3) != laserWavelengths_.end() ) {
00270 if ( meg03_[ism-1] ) dqmStore_->removeElement( meg03_[ism-1]->getName() );
00271 sprintf(histo, "EBLT laser quality L3 %s", Numbers::sEB(ism).c_str());
00272 meg03_[ism-1] = dqmStore_->book2D(histo, histo, 85, 0., 85., 20, 0., 20.);
00273 meg03_[ism-1]->setAxisTitle("ieta", 1);
00274 meg03_[ism-1]->setAxisTitle("iphi", 2);
00275 }
00276 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 4) != laserWavelengths_.end() ) {
00277 if ( meg04_[ism-1] ) dqmStore_->removeElement( meg04_[ism-1]->getName() );
00278 sprintf(histo, "EBLT laser quality L4 %s", Numbers::sEB(ism).c_str());
00279 meg04_[ism-1] = dqmStore_->book2D(histo, histo, 85, 0., 85., 20, 0., 20.);
00280 meg04_[ism-1]->setAxisTitle("ieta", 1);
00281 meg04_[ism-1]->setAxisTitle("iphi", 2);
00282 }
00283
00284 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 1) != laserWavelengths_.end() ) {
00285 if ( meg05_[ism-1] ) dqmStore_->removeElement( meg05_[ism-1]->getName() );
00286 sprintf(histo, "EBLT laser quality L1 PNs G01 %s", Numbers::sEB(ism).c_str());
00287 meg05_[ism-1] = dqmStore_->book2D(histo, histo, 10, 0., 10., 1, 0., 5.);
00288 meg05_[ism-1]->setAxisTitle("pseudo-strip", 1);
00289 meg05_[ism-1]->setAxisTitle("channel", 2);
00290 }
00291 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 2) != laserWavelengths_.end() ) {
00292 if ( meg06_[ism-1] ) dqmStore_->removeElement( meg06_[ism-1]->getName() );
00293 sprintf(histo, "EBLT laser quality L2 PNs G01 %s", Numbers::sEB(ism).c_str());
00294 meg06_[ism-1] = dqmStore_->book2D(histo, histo, 10, 0., 10., 1, 0., 5.);
00295 meg06_[ism-1]->setAxisTitle("pseudo-strip", 1);
00296 meg06_[ism-1]->setAxisTitle("channel", 2);
00297 }
00298 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 3) != laserWavelengths_.end() ) {
00299 if ( meg07_[ism-1] ) dqmStore_->removeElement( meg07_[ism-1]->getName() );
00300 sprintf(histo, "EBLT laser quality L3 PNs G01 %s", Numbers::sEB(ism).c_str());
00301 meg07_[ism-1] = dqmStore_->book2D(histo, histo, 10, 0., 10., 1, 0., 5.);
00302 meg07_[ism-1]->setAxisTitle("pseudo-strip", 1);
00303 meg07_[ism-1]->setAxisTitle("channel", 2);
00304 }
00305 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 4) != laserWavelengths_.end() ) {
00306 if ( meg08_[ism-1] ) dqmStore_->removeElement( meg08_[ism-1]->getName() );
00307 sprintf(histo, "EBLT laser quality L4 PNs G01 %s", Numbers::sEB(ism).c_str());
00308 meg08_[ism-1] = dqmStore_->book2D(histo, histo, 10, 0., 10., 1, 0., 5.);
00309 meg08_[ism-1]->setAxisTitle("pseudo-strip", 1);
00310 meg08_[ism-1]->setAxisTitle("channel", 2);
00311 }
00312 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 1) != laserWavelengths_.end() ) {
00313 if ( meg09_[ism-1] ) dqmStore_->removeElement( meg09_[ism-1]->getName() );
00314 sprintf(histo, "EBLT laser quality L1 PNs G16 %s", Numbers::sEB(ism).c_str());
00315 meg09_[ism-1] = dqmStore_->book2D(histo, histo, 10, 0., 10., 1, 0., 5.);
00316 meg09_[ism-1]->setAxisTitle("pseudo-strip", 1);
00317 meg09_[ism-1]->setAxisTitle("channel", 2);
00318 }
00319 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 2) != laserWavelengths_.end() ) {
00320 if ( meg10_[ism-1] ) dqmStore_->removeElement( meg10_[ism-1]->getName() );
00321 sprintf(histo, "EBLT laser quality L2 PNs G16 %s", Numbers::sEB(ism).c_str());
00322 meg10_[ism-1] = dqmStore_->book2D(histo, histo, 10, 0., 10., 1, 0., 5.);
00323 meg10_[ism-1]->setAxisTitle("pseudo-strip", 1);
00324 meg10_[ism-1]->setAxisTitle("channel", 2);
00325 }
00326 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 3) != laserWavelengths_.end() ) {
00327 if ( meg11_[ism-1] ) dqmStore_->removeElement( meg11_[ism-1]->getName() );
00328 sprintf(histo, "EBLT laser quality L3 PNs G16 %s", Numbers::sEB(ism).c_str());
00329 meg11_[ism-1] = dqmStore_->book2D(histo, histo, 10, 0., 10., 1, 0., 5.);
00330 meg11_[ism-1]->setAxisTitle("pseudo-strip", 1);
00331 meg11_[ism-1]->setAxisTitle("channel", 2);
00332 }
00333 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 4) != laserWavelengths_.end() ) {
00334 if ( meg12_[ism-1] ) dqmStore_->removeElement( meg12_[ism-1]->getName() );
00335 sprintf(histo, "EBLT laser quality L4 PNs G16 %s", Numbers::sEB(ism).c_str());
00336 meg12_[ism-1] = dqmStore_->book2D(histo, histo, 10, 0., 10., 1, 0., 5.);
00337 meg12_[ism-1]->setAxisTitle("pseudo-strip", 1);
00338 meg12_[ism-1]->setAxisTitle("channel", 2);
00339 }
00340
00341 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 1) != laserWavelengths_.end() ) {
00342 if ( mea01_[ism-1] ) dqmStore_->removeElement( mea01_[ism-1]->getName() );;
00343 sprintf(histo, "EBLT amplitude L1 %s", Numbers::sEB(ism).c_str());
00344 mea01_[ism-1] = dqmStore_->book1D(histo, histo, 1700, 0., 1700.);
00345 mea01_[ism-1]->setAxisTitle("channel", 1);
00346 mea01_[ism-1]->setAxisTitle("amplitude", 2);
00347 }
00348 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 2) != laserWavelengths_.end() ) {
00349 if ( mea02_[ism-1] ) dqmStore_->removeElement( mea02_[ism-1]->getName() );
00350 sprintf(histo, "EBLT amplitude L2 %s", Numbers::sEB(ism).c_str());
00351 mea02_[ism-1] = dqmStore_->book1D(histo, histo, 1700, 0., 1700.);
00352 mea02_[ism-1]->setAxisTitle("channel", 1);
00353 mea02_[ism-1]->setAxisTitle("amplitude", 2);
00354 }
00355 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 3) != laserWavelengths_.end() ) {
00356 if ( mea03_[ism-1] ) dqmStore_->removeElement( mea03_[ism-1]->getName() );
00357 sprintf(histo, "EBLT amplitude L3 %s", Numbers::sEB(ism).c_str());
00358 mea03_[ism-1] = dqmStore_->book1D(histo, histo, 1700, 0., 1700.);
00359 mea03_[ism-1]->setAxisTitle("channel", 1);
00360 mea03_[ism-1]->setAxisTitle("amplitude", 2);
00361 }
00362 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 4) != laserWavelengths_.end() ) {
00363 if ( mea04_[ism-1] ) dqmStore_->removeElement( mea04_[ism-1]->getName() );
00364 sprintf(histo, "EBLT amplitude L4 %s", Numbers::sEB(ism).c_str());
00365 mea04_[ism-1] = dqmStore_->book1D(histo, histo, 1700, 0., 1700.);
00366 mea04_[ism-1]->setAxisTitle("channel", 1);
00367 mea04_[ism-1]->setAxisTitle("amplitude", 2);
00368 }
00369
00370 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 1) != laserWavelengths_.end() ) {
00371 if ( met01_[ism-1] ) dqmStore_->removeElement( met01_[ism-1]->getName() );
00372 sprintf(histo, "EBLT laser timing L1 %s", Numbers::sEB(ism).c_str());
00373 met01_[ism-1] = dqmStore_->book1D(histo, histo, 1700, 0., 1700.);
00374 met01_[ism-1]->setAxisTitle("channel", 1);
00375 met01_[ism-1]->setAxisTitle("jitter", 2);
00376 }
00377 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 2) != laserWavelengths_.end() ) {
00378 if ( met02_[ism-1] ) dqmStore_->removeElement( met02_[ism-1]->getName() );
00379 sprintf(histo, "EBLT laser timing L2 %s", Numbers::sEB(ism).c_str());
00380 met02_[ism-1] = dqmStore_->book1D(histo, histo, 1700, 0., 1700.);
00381 met02_[ism-1]->setAxisTitle("channel", 1);
00382 met02_[ism-1]->setAxisTitle("jitter", 2);
00383 }
00384 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 3) != laserWavelengths_.end() ) {
00385 if ( met03_[ism-1] ) dqmStore_->removeElement( met03_[ism-1]->getName() );
00386 sprintf(histo, "EBLT laser timing L3 %s", Numbers::sEB(ism).c_str());
00387 met03_[ism-1] = dqmStore_->book1D(histo, histo, 1700, 0., 1700.);
00388 met03_[ism-1]->setAxisTitle("channel", 1);
00389 met03_[ism-1]->setAxisTitle("jitter", 2);
00390 }
00391 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 4) != laserWavelengths_.end() ) {
00392 if ( met04_[ism-1] ) dqmStore_->removeElement( met04_[ism-1]->getName() );
00393 sprintf(histo, "EBLT laser timing L4 %s", Numbers::sEB(ism).c_str());
00394 met04_[ism-1] = dqmStore_->book1D(histo, histo, 1700, 0., 1700.);
00395 met04_[ism-1]->setAxisTitle("channel", 1);
00396 met04_[ism-1]->setAxisTitle("jitter", 2);
00397 }
00398
00399 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 1) != laserWavelengths_.end() ) {
00400 if ( metav01_[ism-1] ) dqmStore_->removeElement( metav01_[ism-1]->getName() );
00401 sprintf(histo, "EBLT laser timing mean L1 %s", Numbers::sEB(ism).c_str());
00402 metav01_[ism-1] = dqmStore_->book1D(histo, histo, 100, 0., 10.);
00403 metav01_[ism-1]->setAxisTitle("mean", 1);
00404 }
00405 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 2) != laserWavelengths_.end() ) {
00406 if ( metav02_[ism-1] ) dqmStore_->removeElement( metav02_[ism-1]->getName() );
00407 sprintf(histo, "EBLT laser timing mean L2 %s", Numbers::sEB(ism).c_str());
00408 metav02_[ism-1] = dqmStore_->book1D(histo, histo, 100, 0., 10.);
00409 metav02_[ism-1]->setAxisTitle("mean", 1);
00410 }
00411 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 3) != laserWavelengths_.end() ) {
00412 if ( metav03_[ism-1] ) dqmStore_->removeElement( metav03_[ism-1]->getName() );
00413 sprintf(histo, "EBLT laser timing mean L3 %s", Numbers::sEB(ism).c_str());
00414 metav03_[ism-1] = dqmStore_->book1D(histo, histo, 100, 0., 10.);
00415 metav03_[ism-1]->setAxisTitle("mean", 1);
00416 }
00417 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 4) != laserWavelengths_.end() ) {
00418 if ( metav04_[ism-1] ) dqmStore_->removeElement( metav04_[ism-1]->getName() );
00419 sprintf(histo, "EBLT laser timing mean L4 %s", Numbers::sEB(ism).c_str());
00420 metav04_[ism-1] = dqmStore_->book1D(histo, histo, 100, 0., 10.);
00421 metav04_[ism-1]->setAxisTitle("mean", 1);
00422 }
00423
00424 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 1) != laserWavelengths_.end() ) {
00425 if ( metrms01_[ism-1] ) dqmStore_->removeElement( metrms01_[ism-1]->getName() );
00426 sprintf(histo, "EBLT laser timing rms L1 %s", Numbers::sEB(ism).c_str());
00427 metrms01_[ism-1] = dqmStore_->book1D(histo, histo, 100, 0., 0.5);
00428 metrms01_[ism-1]->setAxisTitle("rms", 1);
00429 }
00430 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 2) != laserWavelengths_.end() ) {
00431 if ( metrms02_[ism-1] ) dqmStore_->removeElement( metrms02_[ism-1]->getName() );
00432 sprintf(histo, "EBLT laser timing rms L2 %s", Numbers::sEB(ism).c_str());
00433 metrms02_[ism-1] = dqmStore_->book1D(histo, histo, 100, 0., 0.5);
00434 metrms02_[ism-1]->setAxisTitle("rms", 1);
00435 }
00436 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 3) != laserWavelengths_.end() ) {
00437 if ( metrms03_[ism-1] ) dqmStore_->removeElement( metrms03_[ism-1]->getName() );
00438 sprintf(histo, "EBLT laser timing rms L3 %s", Numbers::sEB(ism).c_str());
00439 metrms03_[ism-1] = dqmStore_->book1D(histo, histo, 100, 0., 0.5);
00440 metrms03_[ism-1]->setAxisTitle("rms", 1);
00441 }
00442 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 4) != laserWavelengths_.end() ) {
00443 if ( metrms04_[ism-1] ) dqmStore_->removeElement( metrms04_[ism-1]->getName() );
00444 sprintf(histo, "EBLT laser timing rms L4 %s", Numbers::sEB(ism).c_str());
00445 metrms04_[ism-1] = dqmStore_->book1D(histo, histo, 100, 0., 0.5);
00446 metrms04_[ism-1]->setAxisTitle("rms", 1);
00447 }
00448
00449 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 1) != laserWavelengths_.end() ) {
00450 if ( meaopn01_[ism-1] ) dqmStore_->removeElement( meaopn01_[ism-1]->getName() );
00451 sprintf(histo, "EBLT amplitude over PN L1 %s", Numbers::sEB(ism).c_str());
00452 meaopn01_[ism-1] = dqmStore_->book1D(histo, histo, 1700, 0., 1700.);
00453 meaopn01_[ism-1]->setAxisTitle("channel", 1);
00454 meaopn01_[ism-1]->setAxisTitle("amplitude/PN", 2);
00455 }
00456 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 2) != laserWavelengths_.end() ) {
00457 if ( meaopn02_[ism-1] ) dqmStore_->removeElement( meaopn02_[ism-1]->getName() );
00458 sprintf(histo, "EBLT amplitude over PN L2 %s", Numbers::sEB(ism).c_str());
00459 meaopn02_[ism-1] = dqmStore_->book1D(histo, histo, 1700, 0., 1700.);
00460 meaopn02_[ism-1]->setAxisTitle("channel", 1);
00461 meaopn02_[ism-1]->setAxisTitle("amplitude/PN", 2);
00462 }
00463 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 3) != laserWavelengths_.end() ) {
00464 if ( meaopn03_[ism-1] ) dqmStore_->removeElement( meaopn03_[ism-1]->getName() );
00465 sprintf(histo, "EBLT amplitude over PN L3 %s", Numbers::sEB(ism).c_str());
00466 meaopn03_[ism-1] = dqmStore_->book1D(histo, histo, 1700, 0., 1700.);
00467 meaopn03_[ism-1]->setAxisTitle("channel", 1);
00468 meaopn03_[ism-1]->setAxisTitle("amplitude/PN", 2);
00469 }
00470 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 4) != laserWavelengths_.end() ) {
00471 if ( meaopn04_[ism-1] ) dqmStore_->removeElement( meaopn04_[ism-1]->getName() );
00472 sprintf(histo, "EBLT amplitude over PN L4 %s", Numbers::sEB(ism).c_str());
00473 meaopn04_[ism-1] = dqmStore_->book1D(histo, histo, 1700, 0., 1700.);
00474 meaopn04_[ism-1]->setAxisTitle("channel", 1);
00475 meaopn04_[ism-1]->setAxisTitle("amplitude/PN", 2);
00476 }
00477
00478 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 1) != laserWavelengths_.end() ) {
00479 if ( mepnprms01_[ism-1] ) dqmStore_->removeElement( mepnprms01_[ism-1]->getName() );
00480 sprintf(histo, "EBLT PNs pedestal rms %s G01 L1", Numbers::sEB(ism).c_str());
00481 mepnprms01_[ism-1] = dqmStore_->book1D(histo, histo, 100, 0., 10.);
00482 mepnprms01_[ism-1]->setAxisTitle("rms", 1);
00483 }
00484 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 2) != laserWavelengths_.end() ) {
00485 if ( mepnprms02_[ism-1] ) dqmStore_->removeElement( mepnprms02_[ism-1]->getName() );
00486 sprintf(histo, "EBLT PNs pedestal rms %s G01 L2", Numbers::sEB(ism).c_str());
00487 mepnprms02_[ism-1] = dqmStore_->book1D(histo, histo, 100, 0., 10.);
00488 mepnprms02_[ism-1]->setAxisTitle("rms", 1);
00489 }
00490 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 3) != laserWavelengths_.end() ) {
00491 if ( mepnprms03_[ism-1] ) dqmStore_->removeElement( mepnprms03_[ism-1]->getName() );
00492 sprintf(histo, "EBLT PNs pedestal rms %s G01 L3", Numbers::sEB(ism).c_str());
00493 mepnprms03_[ism-1] = dqmStore_->book1D(histo, histo, 100, 0., 10.);
00494 mepnprms03_[ism-1]->setAxisTitle("rms", 1);
00495 }
00496 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 4) != laserWavelengths_.end() ) {
00497 if ( mepnprms04_[ism-1] ) dqmStore_->removeElement( mepnprms04_[ism-1]->getName() );
00498 sprintf(histo, "EBLT PNs pedestal rms %s G01 L4", Numbers::sEB(ism).c_str());
00499 mepnprms04_[ism-1] = dqmStore_->book1D(histo, histo, 100, 0., 10.);
00500 mepnprms04_[ism-1]->setAxisTitle("rms", 1);
00501 }
00502 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 1) != laserWavelengths_.end() ) {
00503 if ( mepnprms05_[ism-1] ) dqmStore_->removeElement( mepnprms05_[ism-1]->getName() );
00504 sprintf(histo, "EBLT PNs pedestal rms %s G16 L1", Numbers::sEB(ism).c_str());
00505 mepnprms05_[ism-1] = dqmStore_->book1D(histo, histo, 100, 0., 10.);
00506 mepnprms05_[ism-1]->setAxisTitle("rms", 1);
00507 }
00508 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 2) != laserWavelengths_.end() ) {
00509 if ( mepnprms06_[ism-1] ) dqmStore_->removeElement( mepnprms06_[ism-1]->getName() );
00510 sprintf(histo, "EBLT PNs pedestal rms %s G16 L2", Numbers::sEB(ism).c_str());
00511 mepnprms06_[ism-1] = dqmStore_->book1D(histo, histo, 100, 0., 10.);
00512 mepnprms06_[ism-1]->setAxisTitle("rms", 1);
00513 }
00514 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 3) != laserWavelengths_.end() ) {
00515 if ( mepnprms07_[ism-1] ) dqmStore_->removeElement( mepnprms07_[ism-1]->getName() );
00516 sprintf(histo, "EBLT PNs pedestal rms %s G16 L3", Numbers::sEB(ism).c_str());
00517 mepnprms07_[ism-1] = dqmStore_->book1D(histo, histo, 100, 0., 10.);
00518 mepnprms07_[ism-1]->setAxisTitle("rms", 1);
00519 }
00520 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 4) != laserWavelengths_.end() ) {
00521 if ( mepnprms08_[ism-1] ) dqmStore_->removeElement( mepnprms08_[ism-1]->getName() );
00522 sprintf(histo, "EBLT PNs pedestal rms %s G16 L4", Numbers::sEB(ism).c_str());
00523 mepnprms08_[ism-1] = dqmStore_->book1D(histo, histo, 100, 0., 10.);
00524 mepnprms08_[ism-1]->setAxisTitle("rms", 1);
00525 }
00526 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 1) != laserWavelengths_.end() ) {
00527 if ( me_hs01_[ism-1] ) dqmStore_->removeElement( me_hs01_[ism-1]->getName() );
00528 sprintf(histo, "EBLT laser shape L1 %s", Numbers::sEB(ism).c_str());
00529 me_hs01_[ism-1] = dqmStore_->book1D(histo, histo, 10, 0., 10.);
00530 me_hs01_[ism-1]->setAxisTitle("sample", 1);
00531 me_hs01_[ism-1]->setAxisTitle("amplitude", 2);
00532 }
00533 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 2) != laserWavelengths_.end() ) {
00534 if ( me_hs02_[ism-1] ) dqmStore_->removeElement( me_hs02_[ism-1]->getName() );
00535 sprintf(histo, "EBLT laser shape L2 %s", Numbers::sEB(ism).c_str());
00536 me_hs02_[ism-1] = dqmStore_->book1D(histo, histo, 10, 0., 10.);
00537 me_hs02_[ism-1]->setAxisTitle("sample", 1);
00538 me_hs02_[ism-1]->setAxisTitle("amplitude", 2);
00539 }
00540 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 3) != laserWavelengths_.end() ) {
00541 if ( me_hs03_[ism-1] ) dqmStore_->removeElement( me_hs03_[ism-1]->getName() );
00542 sprintf(histo, "EBLT laser shape L3 %s", Numbers::sEB(ism).c_str());
00543 me_hs03_[ism-1] = dqmStore_->book1D(histo, histo, 10, 0., 10.);
00544 me_hs03_[ism-1]->setAxisTitle("sample", 1);
00545 me_hs03_[ism-1]->setAxisTitle("amplitude", 2);
00546 }
00547 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 4) != laserWavelengths_.end() ) {
00548 if ( me_hs04_[ism-1] ) dqmStore_->removeElement( me_hs04_[ism-1]->getName() );
00549 sprintf(histo, "EBLT laser shape L4 %s", Numbers::sEB(ism).c_str());
00550 me_hs04_[ism-1] = dqmStore_->book1D(histo, histo, 10, 0., 10.);
00551 me_hs04_[ism-1]->setAxisTitle("sample", 1);
00552 me_hs04_[ism-1]->setAxisTitle("amplitude", 2);
00553 }
00554
00555 }
00556
00557 for ( unsigned int i=0; i<superModules_.size(); i++ ) {
00558
00559 int ism = superModules_[i];
00560
00561 if ( meg01_[ism-1] ) meg01_[ism-1]->Reset();
00562 if ( meg02_[ism-1] ) meg02_[ism-1]->Reset();
00563 if ( meg03_[ism-1] ) meg03_[ism-1]->Reset();
00564 if ( meg04_[ism-1] ) meg04_[ism-1]->Reset();
00565
00566 if ( meg05_[ism-1] ) meg05_[ism-1]->Reset();
00567 if ( meg06_[ism-1] ) meg06_[ism-1]->Reset();
00568 if ( meg07_[ism-1] ) meg07_[ism-1]->Reset();
00569 if ( meg08_[ism-1] ) meg08_[ism-1]->Reset();
00570 if ( meg09_[ism-1] ) meg09_[ism-1]->Reset();
00571 if ( meg10_[ism-1] ) meg10_[ism-1]->Reset();
00572 if ( meg11_[ism-1] ) meg11_[ism-1]->Reset();
00573 if ( meg12_[ism-1] ) meg12_[ism-1]->Reset();
00574
00575 for ( int ie = 1; ie <= 85; ie++ ) {
00576 for ( int ip = 1; ip <= 20; ip++ ) {
00577
00578 if ( meg01_[ism-1] ) meg01_[ism-1]->setBinContent( ie, ip, 2. );
00579 if ( meg02_[ism-1] ) meg02_[ism-1]->setBinContent( ie, ip, 2. );
00580 if ( meg03_[ism-1] ) meg03_[ism-1]->setBinContent( ie, ip, 2. );
00581 if ( meg04_[ism-1] ) meg04_[ism-1]->setBinContent( ie, ip, 2. );
00582
00583 }
00584 }
00585
00586 for ( int i = 1; i <= 10; i++ ) {
00587
00588 if ( meg05_[ism-1] ) meg05_[ism-1]->setBinContent( i, 1, 2. );
00589 if ( meg06_[ism-1] ) meg06_[ism-1]->setBinContent( i, 1, 2. );
00590 if ( meg07_[ism-1] ) meg07_[ism-1]->setBinContent( i, 1, 2. );
00591 if ( meg08_[ism-1] ) meg08_[ism-1]->setBinContent( i, 1, 2. );
00592 if ( meg09_[ism-1] ) meg09_[ism-1]->setBinContent( i, 1, 2. );
00593 if ( meg10_[ism-1] ) meg10_[ism-1]->setBinContent( i, 1, 2. );
00594 if ( meg11_[ism-1] ) meg11_[ism-1]->setBinContent( i, 1, 2. );
00595 if ( meg12_[ism-1] ) meg12_[ism-1]->setBinContent( i, 1, 2. );
00596
00597 }
00598
00599 if ( mea01_[ism-1] ) mea01_[ism-1]->Reset();
00600 if ( mea02_[ism-1] ) mea02_[ism-1]->Reset();
00601 if ( mea03_[ism-1] ) mea03_[ism-1]->Reset();
00602 if ( mea04_[ism-1] ) mea04_[ism-1]->Reset();
00603
00604 if ( met01_[ism-1] ) met01_[ism-1]->Reset();
00605 if ( met02_[ism-1] ) met02_[ism-1]->Reset();
00606 if ( met03_[ism-1] ) met03_[ism-1]->Reset();
00607 if ( met04_[ism-1] ) met04_[ism-1]->Reset();
00608
00609 if ( metav01_[ism-1] ) metav01_[ism-1]->Reset();
00610 if ( metav02_[ism-1] ) metav02_[ism-1]->Reset();
00611 if ( metav03_[ism-1] ) metav03_[ism-1]->Reset();
00612 if ( metav04_[ism-1] ) metav04_[ism-1]->Reset();
00613
00614 if ( metrms01_[ism-1] ) metrms01_[ism-1]->Reset();
00615 if ( metrms02_[ism-1] ) metrms02_[ism-1]->Reset();
00616 if ( metrms03_[ism-1] ) metrms03_[ism-1]->Reset();
00617 if ( metrms04_[ism-1] ) metrms04_[ism-1]->Reset();
00618
00619 if ( meaopn01_[ism-1] ) meaopn01_[ism-1]->Reset();
00620 if ( meaopn02_[ism-1] ) meaopn02_[ism-1]->Reset();
00621 if ( meaopn03_[ism-1] ) meaopn03_[ism-1]->Reset();
00622 if ( meaopn04_[ism-1] ) meaopn04_[ism-1]->Reset();
00623
00624 if ( mepnprms01_[ism-1] ) mepnprms01_[ism-1]->Reset();
00625 if ( mepnprms02_[ism-1] ) mepnprms02_[ism-1]->Reset();
00626 if ( mepnprms03_[ism-1] ) mepnprms03_[ism-1]->Reset();
00627 if ( mepnprms04_[ism-1] ) mepnprms04_[ism-1]->Reset();
00628 if ( mepnprms05_[ism-1] ) mepnprms01_[ism-1]->Reset();
00629 if ( mepnprms06_[ism-1] ) mepnprms02_[ism-1]->Reset();
00630 if ( mepnprms07_[ism-1] ) mepnprms03_[ism-1]->Reset();
00631 if ( mepnprms08_[ism-1] ) mepnprms04_[ism-1]->Reset();
00632
00633 if ( me_hs01_[ism-1] ) me_hs01_[ism-1]->Reset();
00634 if ( me_hs02_[ism-1] ) me_hs02_[ism-1]->Reset();
00635 if ( me_hs03_[ism-1] ) me_hs03_[ism-1]->Reset();
00636 if ( me_hs04_[ism-1] ) me_hs04_[ism-1]->Reset();
00637
00638 }
00639
00640 }
00641
00642 void EBLaserClient::cleanup(void) {
00643
00644 if ( ! enableCleanup_ ) return;
00645
00646 for ( unsigned int i=0; i<superModules_.size(); i++ ) {
00647
00648 int ism = superModules_[i];
00649
00650 if ( cloneME_ ) {
00651 if ( h01_[ism-1] ) delete h01_[ism-1];
00652 if ( h02_[ism-1] ) delete h02_[ism-1];
00653 if ( h03_[ism-1] ) delete h03_[ism-1];
00654 if ( h04_[ism-1] ) delete h04_[ism-1];
00655 if ( h05_[ism-1] ) delete h05_[ism-1];
00656 if ( h06_[ism-1] ) delete h06_[ism-1];
00657 if ( h07_[ism-1] ) delete h07_[ism-1];
00658 if ( h08_[ism-1] ) delete h08_[ism-1];
00659
00660 if ( h09_[ism-1] ) delete h09_[ism-1];
00661 if ( h10_[ism-1] ) delete h10_[ism-1];
00662 if ( h11_[ism-1] ) delete h11_[ism-1];
00663 if ( h12_[ism-1] ) delete h12_[ism-1];
00664
00665 if ( hs01_[ism-1] ) delete hs01_[ism-1];
00666 if ( hs02_[ism-1] ) delete hs02_[ism-1];
00667 if ( hs03_[ism-1] ) delete hs03_[ism-1];
00668 if ( hs04_[ism-1] ) delete hs04_[ism-1];
00669
00670 if ( i01_[ism-1] ) delete i01_[ism-1];
00671 if ( i02_[ism-1] ) delete i02_[ism-1];
00672 if ( i03_[ism-1] ) delete i03_[ism-1];
00673 if ( i04_[ism-1] ) delete i04_[ism-1];
00674 if ( i05_[ism-1] ) delete i05_[ism-1];
00675 if ( i06_[ism-1] ) delete i06_[ism-1];
00676 if ( i07_[ism-1] ) delete i07_[ism-1];
00677 if ( i08_[ism-1] ) delete i08_[ism-1];
00678
00679 if ( i09_[ism-1] ) delete i09_[ism-1];
00680 if ( i10_[ism-1] ) delete i10_[ism-1];
00681 if ( i11_[ism-1] ) delete i11_[ism-1];
00682 if ( i12_[ism-1] ) delete i12_[ism-1];
00683 if ( i13_[ism-1] ) delete i13_[ism-1];
00684 if ( i14_[ism-1] ) delete i14_[ism-1];
00685 if ( i15_[ism-1] ) delete i15_[ism-1];
00686 if ( i16_[ism-1] ) delete i16_[ism-1];
00687 }
00688
00689 h01_[ism-1] = 0;
00690 h02_[ism-1] = 0;
00691 h03_[ism-1] = 0;
00692 h04_[ism-1] = 0;
00693 h05_[ism-1] = 0;
00694 h06_[ism-1] = 0;
00695 h07_[ism-1] = 0;
00696 h08_[ism-1] = 0;
00697
00698 h09_[ism-1] = 0;
00699 h10_[ism-1] = 0;
00700 h11_[ism-1] = 0;
00701 h12_[ism-1] = 0;
00702
00703 hs01_[ism-1] = 0;
00704 hs02_[ism-1] = 0;
00705 hs03_[ism-1] = 0;
00706 hs04_[ism-1] = 0;
00707
00708 i01_[ism-1] = 0;
00709 i02_[ism-1] = 0;
00710 i03_[ism-1] = 0;
00711 i04_[ism-1] = 0;
00712 i05_[ism-1] = 0;
00713 i06_[ism-1] = 0;
00714 i07_[ism-1] = 0;
00715 i08_[ism-1] = 0;
00716
00717 i09_[ism-1] = 0;
00718 i10_[ism-1] = 0;
00719 i11_[ism-1] = 0;
00720 i12_[ism-1] = 0;
00721 i13_[ism-1] = 0;
00722 i14_[ism-1] = 0;
00723 i15_[ism-1] = 0;
00724 i16_[ism-1] = 0;
00725
00726 }
00727
00728 for ( unsigned int i=0; i<superModules_.size(); i++ ) {
00729
00730 int ism = superModules_[i];
00731
00732 dqmStore_->setCurrentFolder( prefixME_ + "/EBLaserClient" );
00733
00734 if ( meg01_[ism-1] ) dqmStore_->removeElement( meg01_[ism-1]->getName() );
00735 meg01_[ism-1] = 0;
00736 if ( meg02_[ism-1] ) dqmStore_->removeElement( meg02_[ism-1]->getName() );
00737 meg02_[ism-1] = 0;
00738 if ( meg03_[ism-1] ) dqmStore_->removeElement( meg03_[ism-1]->getName() );
00739 meg03_[ism-1] = 0;
00740 if ( meg04_[ism-1] ) dqmStore_->removeElement( meg04_[ism-1]->getName() );
00741 meg04_[ism-1] = 0;
00742
00743 if ( meg05_[ism-1] ) dqmStore_->removeElement( meg05_[ism-1]->getName() );
00744 meg05_[ism-1] = 0;
00745 if ( meg06_[ism-1] ) dqmStore_->removeElement( meg06_[ism-1]->getName() );
00746 meg06_[ism-1] = 0;
00747 if ( meg07_[ism-1] ) dqmStore_->removeElement( meg07_[ism-1]->getName() );
00748 meg07_[ism-1] = 0;
00749 if ( meg08_[ism-1] ) dqmStore_->removeElement( meg08_[ism-1]->getName() );
00750 meg08_[ism-1] = 0;
00751 if ( meg09_[ism-1] ) dqmStore_->removeElement( meg09_[ism-1]->getName() );
00752 meg09_[ism-1] = 0;
00753 if ( meg10_[ism-1] ) dqmStore_->removeElement( meg10_[ism-1]->getName() );
00754 meg10_[ism-1] = 0;
00755 if ( meg11_[ism-1] ) dqmStore_->removeElement( meg11_[ism-1]->getName() );
00756 meg11_[ism-1] = 0;
00757 if ( meg12_[ism-1] ) dqmStore_->removeElement( meg12_[ism-1]->getName() );
00758 meg12_[ism-1] = 0;
00759
00760 if ( mea01_[ism-1] ) dqmStore_->removeElement( mea01_[ism-1]->getName() );
00761 mea01_[ism-1] = 0;
00762 if ( mea02_[ism-1] ) dqmStore_->removeElement( mea02_[ism-1]->getName() );
00763 mea02_[ism-1] = 0;
00764 if ( mea03_[ism-1] ) dqmStore_->removeElement( mea03_[ism-1]->getName() );
00765 mea03_[ism-1] = 0;
00766 if ( mea04_[ism-1] ) dqmStore_->removeElement( mea04_[ism-1]->getName() );
00767 mea04_[ism-1] = 0;
00768
00769 if ( met01_[ism-1] ) dqmStore_->removeElement( met01_[ism-1]->getName() );
00770 met01_[ism-1] = 0;
00771 if ( met02_[ism-1] ) dqmStore_->removeElement( met02_[ism-1]->getName() );
00772 met02_[ism-1] = 0;
00773 if ( met03_[ism-1] ) dqmStore_->removeElement( met03_[ism-1]->getName() );
00774 met03_[ism-1] = 0;
00775 if ( met04_[ism-1] ) dqmStore_->removeElement( met04_[ism-1]->getName() );
00776 met04_[ism-1] = 0;
00777
00778 if ( metav01_[ism-1] ) dqmStore_->removeElement( metav01_[ism-1]->getName() );
00779 metav01_[ism-1] = 0;
00780 if ( metav02_[ism-1] ) dqmStore_->removeElement( metav02_[ism-1]->getName() );
00781 metav02_[ism-1] = 0;
00782 if ( metav03_[ism-1] ) dqmStore_->removeElement( metav03_[ism-1]->getName() );
00783 metav03_[ism-1] = 0;
00784 if ( metav04_[ism-1] ) dqmStore_->removeElement( metav04_[ism-1]->getName() );
00785 metav04_[ism-1] = 0;
00786
00787 if ( metrms01_[ism-1] ) dqmStore_->removeElement( metrms01_[ism-1]->getName() );
00788 metrms01_[ism-1] = 0;
00789 if ( metrms02_[ism-1] ) dqmStore_->removeElement( metrms02_[ism-1]->getName() );
00790 metrms02_[ism-1] = 0;
00791 if ( metrms03_[ism-1] ) dqmStore_->removeElement( metrms03_[ism-1]->getName() );
00792 metrms03_[ism-1] = 0;
00793 if ( metrms04_[ism-1] ) dqmStore_->removeElement( metrms04_[ism-1]->getName() );
00794 metrms04_[ism-1] = 0;
00795
00796 if ( meaopn01_[ism-1] ) dqmStore_->removeElement( meaopn01_[ism-1]->getName() );
00797 meaopn01_[ism-1] = 0;
00798 if ( meaopn02_[ism-1] ) dqmStore_->removeElement( meaopn02_[ism-1]->getName() );
00799 meaopn02_[ism-1] = 0;
00800 if ( meaopn03_[ism-1] ) dqmStore_->removeElement( meaopn03_[ism-1]->getName() );
00801 meaopn03_[ism-1] = 0;
00802 if ( meaopn04_[ism-1] ) dqmStore_->removeElement( meaopn04_[ism-1]->getName() );
00803 meaopn04_[ism-1] = 0;
00804
00805 if ( mepnprms01_[ism-1] ) dqmStore_->removeElement( mepnprms01_[ism-1]->getName() );
00806 mepnprms01_[ism-1] = 0;
00807 if ( mepnprms02_[ism-1] ) dqmStore_->removeElement( mepnprms02_[ism-1]->getName() );
00808 mepnprms02_[ism-1] = 0;
00809 if ( mepnprms03_[ism-1] ) dqmStore_->removeElement( mepnprms03_[ism-1]->getName() );
00810 mepnprms03_[ism-1] = 0;
00811 if ( mepnprms04_[ism-1] ) dqmStore_->removeElement( mepnprms04_[ism-1]->getName() );
00812 mepnprms04_[ism-1] = 0;
00813 if ( mepnprms05_[ism-1] ) dqmStore_->removeElement( mepnprms05_[ism-1]->getName() );
00814 mepnprms05_[ism-1] = 0;
00815 if ( mepnprms06_[ism-1] ) dqmStore_->removeElement( mepnprms06_[ism-1]->getName() );
00816 mepnprms06_[ism-1] = 0;
00817 if ( mepnprms07_[ism-1] ) dqmStore_->removeElement( mepnprms07_[ism-1]->getName() );
00818 mepnprms07_[ism-1] = 0;
00819 if ( mepnprms08_[ism-1] ) dqmStore_->removeElement( mepnprms08_[ism-1]->getName() );
00820 mepnprms08_[ism-1] = 0;
00821
00822 if ( me_hs01_[ism-1] ) dqmStore_->removeElement( me_hs01_[ism-1]->getName() );
00823 me_hs01_[ism-1] = 0;
00824 if ( me_hs02_[ism-1] ) dqmStore_->removeElement( me_hs02_[ism-1]->getName() );
00825 me_hs02_[ism-1] = 0;
00826 if ( me_hs03_[ism-1] ) dqmStore_->removeElement( me_hs03_[ism-1]->getName() );
00827 me_hs03_[ism-1] = 0;
00828 if ( me_hs04_[ism-1] ) dqmStore_->removeElement( me_hs04_[ism-1]->getName() );
00829 me_hs04_[ism-1] = 0;
00830
00831 }
00832
00833 }
00834
00835 #ifdef WITH_ECAL_COND_DB
00836 bool EBLaserClient::writeDb(EcalCondDBInterface* econn, RunIOV* runiov, MonRunIOV* moniov, bool& status) {
00837
00838 status = true;
00839
00840 EcalLogicID ecid;
00841
00842 MonLaserBlueDat apd_bl;
00843 std::map<EcalLogicID, MonLaserBlueDat> dataset1_bl;
00844 MonLaserGreenDat apd_gr;
00845 std::map<EcalLogicID, MonLaserGreenDat> dataset1_gr;
00846 MonLaserIRedDat apd_ir;
00847 std::map<EcalLogicID, MonLaserIRedDat> dataset1_ir;
00848 MonLaserRedDat apd_rd;
00849 std::map<EcalLogicID, MonLaserRedDat> dataset1_rd;
00850
00851 for ( unsigned int i=0; i<superModules_.size(); i++ ) {
00852
00853 int ism = superModules_[i];
00854
00855 if ( verbose_ ) {
00856 std::cout << " " << Numbers::sEB(ism) << " (ism=" << ism << ")" << std::endl;
00857 std::cout << std::endl;
00858 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 1) != laserWavelengths_.end() ) {
00859 UtilsClient::printBadChannels(meg01_[ism-1], h01_[ism-1]);
00860 }
00861 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 2) != laserWavelengths_.end() ) {
00862 UtilsClient::printBadChannels(meg02_[ism-1], h03_[ism-1]);
00863 }
00864 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 3) != laserWavelengths_.end() ) {
00865 UtilsClient::printBadChannels(meg03_[ism-1], h05_[ism-1]);
00866 }
00867 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 4) != laserWavelengths_.end() ) {
00868 UtilsClient::printBadChannels(meg04_[ism-1], h07_[ism-1]);
00869 }
00870 }
00871
00872 for ( int ie = 1; ie <= 85; ie++ ) {
00873 for ( int ip = 1; ip <= 20; ip++ ) {
00874
00875 bool update01;
00876 bool update02;
00877 bool update03;
00878 bool update04;
00879 bool update05;
00880 bool update06;
00881 bool update07;
00882 bool update08;
00883
00884 float num01, num02, num03, num04, num05, num06, num07, num08;
00885 float mean01, mean02, mean03, mean04, mean05, mean06, mean07, mean08;
00886 float rms01, rms02, rms03, rms04, rms05, rms06, rms07, rms08;
00887
00888 update01 = UtilsClient::getBinStatistics(h01_[ism-1], ie, ip, num01, mean01, rms01);
00889 update02 = UtilsClient::getBinStatistics(h02_[ism-1], ie, ip, num02, mean02, rms02);
00890 update03 = UtilsClient::getBinStatistics(h03_[ism-1], ie, ip, num03, mean03, rms03);
00891 update04 = UtilsClient::getBinStatistics(h04_[ism-1], ie, ip, num04, mean04, rms04);
00892 update05 = UtilsClient::getBinStatistics(h05_[ism-1], ie, ip, num05, mean05, rms05);
00893 update06 = UtilsClient::getBinStatistics(h06_[ism-1], ie, ip, num06, mean06, rms06);
00894 update07 = UtilsClient::getBinStatistics(h07_[ism-1], ie, ip, num07, mean07, rms07);
00895 update08 = UtilsClient::getBinStatistics(h08_[ism-1], ie, ip, num08, mean08, rms08);
00896
00897 if ( update01 || update02 ) {
00898
00899 if ( Numbers::icEB(ism, ie, ip) == 1 ) {
00900
00901 if ( verbose_ ) {
00902 std::cout << "Preparing dataset for " << Numbers::sEB(ism) << " (ism=" << ism << ")" << std::endl;
00903 std::cout << "L1 (" << ie << "," << ip << ") " << num01 << " " << mean01 << " " << rms01 << std::endl;
00904 std::cout << std::endl;
00905 }
00906
00907 }
00908
00909 apd_bl.setAPDMean(mean01);
00910 apd_bl.setAPDRMS(rms01);
00911
00912 apd_bl.setAPDOverPNMean(mean02);
00913 apd_bl.setAPDOverPNRMS(rms02);
00914
00915 if ( UtilsClient::getBinStatus(meg01_[ism-1], ie, ip) ) {
00916 apd_bl.setTaskStatus(true);
00917 } else {
00918 apd_bl.setTaskStatus(false);
00919 }
00920
00921 status = status && UtilsClient::getBinQuality(meg01_[ism-1], ie, ip);
00922
00923 int ic = Numbers::indexEB(ism, ie, ip);
00924
00925 if ( econn ) {
00926 ecid = LogicID::getEcalLogicID("EB_crystal_number", Numbers::iSM(ism, EcalBarrel), ic);
00927 dataset1_bl[ecid] = apd_bl;
00928 }
00929
00930 }
00931
00932 if ( update03 || update04 ) {
00933
00934 if ( Numbers::icEB(ism, ie, ip) == 1 ) {
00935
00936 if ( verbose_ ) {
00937 std::cout << "Preparing dataset for " << Numbers::sEB(ism) << " (ism=" << ism << ")" << std::endl;
00938 std::cout << "L2 (" << ie << "," << ip << ") " << num03 << " " << mean03 << " " << rms03 << std::endl;
00939 std::cout << std::endl;
00940 }
00941
00942 }
00943
00944 apd_ir.setAPDMean(mean03);
00945 apd_ir.setAPDRMS(rms03);
00946
00947 apd_ir.setAPDOverPNMean(mean04);
00948 apd_ir.setAPDOverPNRMS(rms04);
00949
00950 if ( UtilsClient::getBinStatus(meg02_[ism-1], ie, ip) ) {
00951 apd_ir.setTaskStatus(true);
00952 } else {
00953 apd_ir.setTaskStatus(false);
00954 }
00955
00956 status = status && UtilsClient::getBinQuality(meg02_[ism-1], ie, ip);
00957
00958 int ic = Numbers::indexEB(ism, ie, ip);
00959
00960 if ( econn ) {
00961 ecid = LogicID::getEcalLogicID("EB_crystal_number", Numbers::iSM(ism, EcalBarrel), ic);
00962 dataset1_ir[ecid] = apd_ir;
00963 }
00964
00965 }
00966
00967 if ( update05 || update06 ) {
00968
00969 if ( Numbers::icEB(ism, ie, ip) == 1 ) {
00970
00971 if ( verbose_ ) {
00972 std::cout << "Preparing dataset for " << Numbers::sEB(ism) << " (ism=" << ism << ")" << std::endl;
00973 std::cout << "L3 (" << ie << "," << ip << ") " << num05 << " " << mean05 << " " << rms05 << std::endl;
00974 std::cout << std::endl;
00975 }
00976
00977 }
00978
00979 apd_gr.setAPDMean(mean05);
00980 apd_gr.setAPDRMS(rms05);
00981
00982 apd_gr.setAPDOverPNMean(mean06);
00983 apd_gr.setAPDOverPNRMS(rms06);
00984
00985 if ( UtilsClient::getBinStatus(meg03_[ism-1], ie, ip) ) {
00986 apd_gr.setTaskStatus(true);
00987 } else {
00988 apd_gr.setTaskStatus(false);
00989 }
00990
00991 status = status && UtilsClient::getBinQuality(meg03_[ism-1], ie, ip);
00992
00993 int ic = Numbers::indexEB(ism, ie, ip);
00994
00995 if ( econn ) {
00996 ecid = LogicID::getEcalLogicID("EB_crystal_number", Numbers::iSM(ism, EcalBarrel), ic);
00997 dataset1_gr[ecid] = apd_gr;
00998 }
00999
01000 }
01001
01002 if ( update07 || update08 ) {
01003
01004 if ( Numbers::icEB(ism, ie, ip) == 1 ) {
01005
01006 if ( verbose_ ) {
01007 std::cout << "Preparing dataset for " << Numbers::sEB(ism) << " (ism=" << ism << ")" << std::endl;
01008 std::cout << "L4 (" << ie << "," << ip << ") " << num07 << " " << mean07 << " " << rms07 << std::endl;
01009 std::cout << std::endl;
01010 }
01011
01012 }
01013
01014 apd_rd.setAPDMean(mean07);
01015 apd_rd.setAPDRMS(rms07);
01016
01017 apd_rd.setAPDOverPNMean(mean08);
01018 apd_rd.setAPDOverPNRMS(rms08);
01019
01020 if ( UtilsClient::getBinStatus(meg04_[ism-1], ie, ip) ) {
01021 apd_rd.setTaskStatus(true);
01022 } else {
01023 apd_rd.setTaskStatus(false);
01024 }
01025
01026 status = status && UtilsClient::getBinQuality(meg04_[ism-1], ie, ip);
01027
01028 int ic = Numbers::indexEB(ism, ie, ip);
01029
01030 if ( econn ) {
01031 ecid = LogicID::getEcalLogicID("EB_crystal_number", Numbers::iSM(ism, EcalBarrel), ic);
01032 dataset1_rd[ecid] = apd_rd;
01033 }
01034
01035 }
01036
01037 }
01038 }
01039
01040 }
01041
01042 if ( econn ) {
01043 try {
01044 if ( verbose_ ) std::cout << "Inserting MonLaserDat ..." << std::endl;
01045 if ( dataset1_bl.size() != 0 ) econn->insertDataArraySet(&dataset1_bl, moniov);
01046 if ( dataset1_ir.size() != 0 ) econn->insertDataArraySet(&dataset1_ir, moniov);
01047 if ( dataset1_gr.size() != 0 ) econn->insertDataArraySet(&dataset1_gr, moniov);
01048 if ( dataset1_rd.size() != 0 ) econn->insertDataArraySet(&dataset1_rd, moniov);
01049 if ( verbose_ ) std::cout << "done." << std::endl;
01050 } catch (std::runtime_error &e) {
01051 std::cerr << e.what() << std::endl;
01052 }
01053 }
01054
01055 if ( verbose_ ) std::cout << std::endl;
01056
01057 MonPNBlueDat pn_bl;
01058 std::map<EcalLogicID, MonPNBlueDat> dataset2_bl;
01059 MonPNGreenDat pn_gr;
01060 std::map<EcalLogicID, MonPNGreenDat> dataset2_gr;
01061 MonPNIRedDat pn_ir;
01062 std::map<EcalLogicID, MonPNIRedDat> dataset2_ir;
01063 MonPNRedDat pn_rd;
01064 std::map<EcalLogicID, MonPNRedDat> dataset2_rd;
01065
01066 for ( unsigned int i=0; i<superModules_.size(); i++ ) {
01067
01068 int ism = superModules_[i];
01069
01070 if ( verbose_ ) {
01071 std::cout << " " << Numbers::sEB(ism) << " (ism=" << ism << ")" << std::endl;
01072 std::cout << std::endl;
01073 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 1) != laserWavelengths_.end() ) {
01074 UtilsClient::printBadChannels(meg05_[ism-1], i01_[ism-1]);
01075 UtilsClient::printBadChannels(meg05_[ism-1], i05_[ism-1]);
01076 }
01077 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 2) != laserWavelengths_.end() ) {
01078 UtilsClient::printBadChannels(meg06_[ism-1], i02_[ism-1]);
01079 UtilsClient::printBadChannels(meg06_[ism-1], i06_[ism-1]);
01080 }
01081 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 3) != laserWavelengths_.end() ) {
01082 UtilsClient::printBadChannels(meg07_[ism-1], i03_[ism-1]);
01083 UtilsClient::printBadChannels(meg07_[ism-1], i07_[ism-1]);
01084 }
01085 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 4) != laserWavelengths_.end() ) {
01086 UtilsClient::printBadChannels(meg08_[ism-1], i04_[ism-1]);
01087 UtilsClient::printBadChannels(meg08_[ism-1], i08_[ism-1]);
01088 }
01089 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 1) != laserWavelengths_.end() ) {
01090 UtilsClient::printBadChannels(meg09_[ism-1], i09_[ism-1]);
01091 UtilsClient::printBadChannels(meg09_[ism-1], i13_[ism-1]);
01092 }
01093 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 2) != laserWavelengths_.end() ) {
01094 UtilsClient::printBadChannels(meg10_[ism-1], i10_[ism-1]);
01095 UtilsClient::printBadChannels(meg10_[ism-1], i14_[ism-1]);
01096 }
01097 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 3) != laserWavelengths_.end() ) {
01098 UtilsClient::printBadChannels(meg11_[ism-1], i11_[ism-1]);
01099 UtilsClient::printBadChannels(meg11_[ism-1], i15_[ism-1]);
01100 }
01101 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 4) != laserWavelengths_.end() ) {
01102 UtilsClient::printBadChannels(meg12_[ism-1], i12_[ism-1]);
01103 UtilsClient::printBadChannels(meg12_[ism-1], i16_[ism-1]);
01104 }
01105 }
01106
01107 for ( int i = 1; i <= 10; i++ ) {
01108
01109 bool update01;
01110 bool update02;
01111 bool update03;
01112 bool update04;
01113 bool update05;
01114 bool update06;
01115 bool update07;
01116 bool update08;
01117 bool update09;
01118 bool update10;
01119 bool update11;
01120 bool update12;
01121 bool update13;
01122 bool update14;
01123 bool update15;
01124 bool update16;
01125
01126 float num01, num02, num03, num04, num05, num06, num07, num08;
01127 float num09, num10, num11, num12, num13, num14, num15, num16;
01128 float mean01, mean02, mean03, mean04, mean05, mean06, mean07, mean08;
01129 float mean09, mean10, mean11, mean12, mean13, mean14, mean15, mean16;
01130 float rms01, rms02, rms03, rms04, rms05, rms06, rms07, rms08;
01131 float rms09, rms10, rms11, rms12, rms13, rms14, rms15, rms16;
01132
01133 update01 = UtilsClient::getBinStatistics(i01_[ism-1], i, 0, num01, mean01, rms01);
01134 update02 = UtilsClient::getBinStatistics(i02_[ism-1], i, 0, num02, mean02, rms02);
01135 update03 = UtilsClient::getBinStatistics(i03_[ism-1], i, 0, num03, mean03, rms03);
01136 update04 = UtilsClient::getBinStatistics(i04_[ism-1], i, 0, num04, mean04, rms04);
01137 update05 = UtilsClient::getBinStatistics(i05_[ism-1], i, 0, num05, mean05, rms05);
01138 update06 = UtilsClient::getBinStatistics(i06_[ism-1], i, 0, num06, mean06, rms06);
01139 update07 = UtilsClient::getBinStatistics(i07_[ism-1], i, 0, num07, mean07, rms07);
01140 update08 = UtilsClient::getBinStatistics(i08_[ism-1], i, 0, num08, mean08, rms08);
01141 update09 = UtilsClient::getBinStatistics(i09_[ism-1], i, 0, num09, mean09, rms09);
01142 update10 = UtilsClient::getBinStatistics(i10_[ism-1], i, 0, num10, mean10, rms10);
01143 update11 = UtilsClient::getBinStatistics(i11_[ism-1], i, 0, num11, mean11, rms11);
01144 update12 = UtilsClient::getBinStatistics(i12_[ism-1], i, 0, num12, mean12, rms12);
01145 update13 = UtilsClient::getBinStatistics(i13_[ism-1], i, 0, num13, mean13, rms13);
01146 update14 = UtilsClient::getBinStatistics(i14_[ism-1], i, 0, num14, mean14, rms14);
01147 update15 = UtilsClient::getBinStatistics(i15_[ism-1], i, 0, num15, mean15, rms15);
01148 update16 = UtilsClient::getBinStatistics(i16_[ism-1], i, 0, num16, mean16, rms16);
01149
01150 if ( update01 || update05 || update09 || update13 ) {
01151
01152 if ( i == 1 ) {
01153
01154 if ( verbose_ ) {
01155 std::cout << "Preparing dataset for " << Numbers::sEB(ism) << " (ism=" << ism << ")" << std::endl;
01156 std::cout << "PNs (" << i << ") L1 G01 " << num01 << " " << mean01 << " " << rms01 << std::endl;
01157 std::cout << "PNs (" << i << ") L1 G16 " << num09 << " " << mean09 << " " << rms09 << std::endl;
01158 std::cout << std::endl;
01159 }
01160
01161 }
01162
01163 pn_bl.setADCMeanG1(mean01);
01164 pn_bl.setADCRMSG1(rms01);
01165
01166 pn_bl.setPedMeanG1(mean05);
01167 pn_bl.setPedRMSG1(rms05);
01168
01169 pn_bl.setADCMeanG16(mean09);
01170 pn_bl.setADCRMSG16(rms09);
01171
01172 pn_bl.setPedMeanG16(mean13);
01173 pn_bl.setPedRMSG16(rms13);
01174
01175 if ( UtilsClient::getBinStatus(meg05_[ism-1], i, 1) ||
01176 UtilsClient::getBinStatus(meg09_[ism-1], i, 1) ) {
01177 pn_bl.setTaskStatus(true);
01178 } else {
01179 pn_bl.setTaskStatus(false);
01180 }
01181
01182 status = status && ( UtilsClient::getBinQuality(meg05_[ism-1], i, 1) ||
01183 UtilsClient::getBinQuality(meg09_[ism-1], i, 1) );
01184
01185 if ( econn ) {
01186 ecid = LogicID::getEcalLogicID("EB_LM_PN", Numbers::iSM(ism, EcalBarrel), i-1);
01187 dataset2_bl[ecid] = pn_bl;
01188 }
01189
01190 }
01191
01192 if ( update02 || update06 || update10 || update14 ) {
01193
01194 if ( i == 1 ) {
01195
01196 if ( verbose_ ) {
01197 std::cout << "Preparing dataset for " << Numbers::sEB(ism) << " (ism=" << ism << ")" << std::endl;
01198 std::cout << "PNs (" << i << ") L2 G01 " << num02 << " " << mean02 << " " << rms02 << std::endl;
01199 std::cout << "PNs (" << i << ") L2 G16 " << num10 << " " << mean10 << " " << rms10 << std::endl;
01200 std::cout << std::endl;
01201 }
01202
01203 }
01204
01205 pn_ir.setADCMeanG1(mean02);
01206 pn_ir.setADCRMSG1(rms02);
01207
01208 pn_ir.setPedMeanG1(mean06);
01209 pn_ir.setPedRMSG1(rms06);
01210
01211 pn_ir.setADCMeanG16(mean10);
01212 pn_ir.setADCRMSG16(rms10);
01213
01214 pn_ir.setPedMeanG16(mean14);
01215 pn_ir.setPedRMSG16(rms14);
01216
01217 if ( UtilsClient::getBinStatus(meg06_[ism-1], i, 1) ||
01218 UtilsClient::getBinStatus(meg10_[ism-1], i, 1) ) {
01219 pn_ir.setTaskStatus(true);
01220 } else {
01221 pn_ir.setTaskStatus(false);
01222 }
01223
01224 status = status && ( UtilsClient::getBinQuality(meg06_[ism-1], i, 1) ||
01225 UtilsClient::getBinQuality(meg10_[ism-1], i, 1) );
01226
01227 if ( econn ) {
01228 ecid = LogicID::getEcalLogicID("EB_LM_PN", Numbers::iSM(ism, EcalBarrel), i-1);
01229 dataset2_ir[ecid] = pn_ir;
01230 }
01231
01232 }
01233
01234 if ( update03 || update07 || update11 || update15 ) {
01235
01236 if ( i == 1 ) {
01237
01238 if ( verbose_ ) {
01239 std::cout << "Preparing dataset for " << Numbers::sEB(ism) << " (ism=" << ism << ")" << std::endl;
01240 std::cout << "PNs (" << i << ") L3 G01 " << num03 << " " << mean03 << " " << rms03 << std::endl;
01241 std::cout << "PNs (" << i << ") L3 G16 " << num11 << " " << mean11 << " " << rms11 << std::endl;
01242 std::cout << std::endl;
01243 }
01244
01245 }
01246
01247 pn_gr.setADCMeanG1(mean03);
01248 pn_gr.setADCRMSG1(rms03);
01249
01250 pn_gr.setPedMeanG1(mean07);
01251 pn_gr.setPedRMSG1(rms07);
01252
01253 pn_gr.setADCMeanG16(mean11);
01254 pn_gr.setADCRMSG16(rms11);
01255
01256 pn_gr.setPedMeanG16(mean15);
01257 pn_gr.setPedRMSG16(rms15);
01258
01259 if ( UtilsClient::getBinStatus(meg07_[ism-1], i, 1) ||
01260 UtilsClient::getBinStatus(meg11_[ism-1], i, 1) ) {
01261 pn_gr.setTaskStatus(true);
01262 } else {
01263 pn_gr.setTaskStatus(false);
01264 }
01265
01266 status = status && ( UtilsClient::getBinQuality(meg07_[ism-1], i, 1) ||
01267 UtilsClient::getBinQuality(meg11_[ism-1], i, 1) );
01268
01269 if ( econn ) {
01270 ecid = LogicID::getEcalLogicID("EB_LM_PN", Numbers::iSM(ism, EcalBarrel), i-1);
01271 dataset2_gr[ecid] = pn_gr;
01272 }
01273
01274 }
01275
01276 if ( update04 || update08 || update12 || update16 ) {
01277
01278 if ( i == 1 ) {
01279
01280 if ( verbose_ ) {
01281 std::cout << "Preparing dataset for " << Numbers::sEB(ism) << " (ism=" << ism << ")" << std::endl;
01282 std::cout << "PNs (" << i << ") L4 G01 " << num04 << " " << mean04 << " " << rms04 << std::endl;
01283 std::cout << "PNs (" << i << ") L4 G16 " << num12 << " " << mean12 << " " << rms12 << std::endl;
01284 std::cout << std::endl;
01285 }
01286
01287 }
01288
01289 pn_rd.setADCMeanG1(mean04);
01290 pn_rd.setADCRMSG1(rms04);
01291
01292 pn_rd.setPedMeanG1(mean08);
01293 pn_rd.setPedRMSG1(mean08);
01294
01295 pn_rd.setADCMeanG16(mean12);
01296 pn_rd.setADCRMSG16(rms12);
01297
01298 pn_rd.setPedMeanG16(mean16);
01299 pn_rd.setPedRMSG16(rms16);
01300
01301 if ( UtilsClient::getBinStatus(meg08_[ism-1], i, 1) ||
01302 UtilsClient::getBinStatus(meg12_[ism-1], i, 1) ) {
01303 pn_rd.setTaskStatus(true);
01304 } else {
01305 pn_rd.setTaskStatus(false);
01306 }
01307
01308 status = status && ( UtilsClient::getBinQuality(meg08_[ism-1], i, 1) ||
01309 UtilsClient::getBinQuality(meg12_[ism-1], i, 1) );
01310
01311 if ( econn ) {
01312 ecid = LogicID::getEcalLogicID("EB_LM_PN", Numbers::iSM(ism, EcalBarrel), i-1);
01313 dataset2_rd[ecid] = pn_rd;
01314 }
01315
01316 }
01317
01318 }
01319
01320 }
01321
01322 if ( econn ) {
01323 try {
01324 if ( verbose_ ) std::cout << "Inserting MonPnDat ..." << std::endl;
01325 if ( dataset2_bl.size() != 0 ) econn->insertDataArraySet(&dataset2_bl, moniov);
01326 if ( dataset2_ir.size() != 0 ) econn->insertDataArraySet(&dataset2_ir, moniov);
01327 if ( dataset2_gr.size() != 0 ) econn->insertDataArraySet(&dataset2_gr, moniov);
01328 if ( dataset2_rd.size() != 0 ) econn->insertDataArraySet(&dataset2_rd, moniov);
01329 if ( verbose_ ) std::cout << "done." << std::endl;
01330 } catch (std::runtime_error &e) {
01331 std::cerr << e.what() << std::endl;
01332 }
01333 }
01334
01335 if ( verbose_ ) std::cout << std::endl;
01336
01337 MonTimingLaserBlueCrystalDat t_bl;
01338 std::map<EcalLogicID, MonTimingLaserBlueCrystalDat> dataset3_bl;
01339 MonTimingLaserGreenCrystalDat t_gr;
01340 std::map<EcalLogicID, MonTimingLaserGreenCrystalDat> dataset3_gr;
01341 MonTimingLaserIRedCrystalDat t_ir;
01342 std::map<EcalLogicID, MonTimingLaserIRedCrystalDat> dataset3_ir;
01343 MonTimingLaserRedCrystalDat t_rd;
01344 std::map<EcalLogicID, MonTimingLaserRedCrystalDat> dataset3_rd;
01345
01346 for ( unsigned int i=0; i<superModules_.size(); i++ ) {
01347
01348 int ism = superModules_[i];
01349
01350 if ( verbose_ ) {
01351 std::cout << " " << Numbers::sEB(ism) << " (ism=" << ism << ")" << std::endl;
01352 std::cout << std::endl;
01353 }
01354
01355 for ( int ie = 1; ie <= 85; ie++ ) {
01356 for ( int ip = 1; ip <= 20; ip++ ) {
01357
01358 bool update01;
01359 bool update02;
01360 bool update03;
01361 bool update04;
01362
01363 float num01, num02, num03, num04;
01364 float mean01, mean02, mean03, mean04;
01365 float rms01, rms02, rms03, rms04;
01366
01367 update01 = UtilsClient::getBinStatistics(h09_[ism-1], ie, ip, num01, mean01, rms01);
01368 update02 = UtilsClient::getBinStatistics(h10_[ism-1], ie, ip, num02, mean02, rms02);
01369 update03 = UtilsClient::getBinStatistics(h11_[ism-1], ie, ip, num03, mean03, rms03);
01370 update04 = UtilsClient::getBinStatistics(h12_[ism-1], ie, ip, num04, mean04, rms04);
01371
01372 if ( update01 ) {
01373
01374 if ( Numbers::icEB(ism, ie, ip) == 1 ) {
01375
01376 if ( verbose_ ) {
01377 std::cout << "Preparing dataset for " << Numbers::sEB(ism) << " (ism=" << ism << ")" << std::endl;
01378 std::cout << "L1 crystal (" << ie << "," << ip << ") " << num01 << " " << mean01 << " " << rms01 << std::endl;
01379 std::cout << std::endl;
01380 }
01381
01382 }
01383
01384 t_bl.setTimingMean(mean01);
01385 t_bl.setTimingRMS(rms01);
01386
01387 if ( UtilsClient::getBinStatus(meg01_[ism-1], ie, ip) ) {
01388 t_bl.setTaskStatus(true);
01389 } else {
01390 t_bl.setTaskStatus(false);
01391 }
01392
01393 status = status && UtilsClient::getBinQuality(meg01_[ism-1], ie, ip);
01394
01395 int ic = Numbers::indexEB(ism, ie, ip);
01396
01397 if ( econn ) {
01398 ecid = LogicID::getEcalLogicID("EB_crystal_number", Numbers::iSM(ism, EcalBarrel), ic);
01399 dataset3_bl[ecid] = t_bl;
01400 }
01401
01402 }
01403
01404 if ( update02 ) {
01405
01406 if ( Numbers::icEB(ism, ie, ip) == 1 ) {
01407
01408 if ( verbose_ ) {
01409 std::cout << "Preparing dataset for " << Numbers::sEB(ism) << " (ism=" << ism << ")" << std::endl;
01410 std::cout << "L2 crystal (" << ie << "," << ip << ") " << num02 << " " << mean02 << " " << rms02 << std::endl;
01411 std::cout << std::endl;
01412 }
01413
01414 }
01415
01416 t_gr.setTimingMean(mean02);
01417 t_gr.setTimingRMS(rms02);
01418
01419 if ( UtilsClient::getBinStatus(meg02_[ism-1], ie, ip) ) {
01420 t_gr.setTaskStatus(true);
01421 } else {
01422 t_gr.setTaskStatus(false);
01423 }
01424
01425 status = status && UtilsClient::getBinQuality(meg02_[ism-1], ie, ip);
01426
01427 int ic = Numbers::indexEB(ism, ie, ip);
01428
01429 if ( econn ) {
01430 ecid = LogicID::getEcalLogicID("EB_crystal_number", Numbers::iSM(ism, EcalBarrel), ic);
01431 dataset3_gr[ecid] = t_gr;
01432 }
01433
01434 }
01435
01436 if ( update03 ) {
01437
01438 if ( Numbers::icEB(ism, ie, ip) == 1 ) {
01439
01440 if ( verbose_ ) {
01441 std::cout << "Preparing dataset for " << Numbers::sEB(ism) << " (ism=" << ism << ")" << std::endl;
01442 std::cout << "L3 crystal (" << ie << "," << ip << ") " << num03 << " " << mean03 << " " << rms03 << std::endl;
01443 std::cout << std::endl;
01444 }
01445
01446 }
01447
01448 t_ir.setTimingMean(mean03);
01449 t_ir.setTimingRMS(rms03);
01450
01451 if ( UtilsClient::getBinStatus(meg03_[ism-1], ie, ip) ) {
01452 t_ir.setTaskStatus(true);
01453 } else {
01454 t_ir.setTaskStatus(false);
01455 }
01456
01457 status = status && UtilsClient::getBinQuality(meg03_[ism-1], ie, ip);
01458
01459 int ic = Numbers::indexEB(ism, ie, ip);
01460
01461 if ( econn ) {
01462 ecid = LogicID::getEcalLogicID("EB_crystal_number", Numbers::iSM(ism, EcalBarrel), ic);
01463 dataset3_ir[ecid] = t_ir;
01464 }
01465
01466 }
01467
01468 if ( update04 ) {
01469
01470 if ( Numbers::icEB(ism, ie, ip) == 1 ) {
01471
01472 if ( verbose_ ) {
01473 std::cout << "Preparing dataset for " << Numbers::sEB(ism) << " (ism=" << ism << ")" << std::endl;
01474 std::cout << "L4 crystal (" << ie << "," << ip << ") " << num04 << " " << mean04 << " " << rms04 << std::endl;
01475 std::cout << std::endl;
01476 }
01477
01478 }
01479
01480 t_rd.setTimingMean(mean04);
01481 t_rd.setTimingRMS(rms04);
01482
01483 if ( UtilsClient::getBinStatus(meg04_[ism-1], ie, ip) ) {
01484 t_rd.setTaskStatus(true);
01485 } else {
01486 t_rd.setTaskStatus(false);
01487 }
01488
01489 status = status && UtilsClient::getBinQuality(meg04_[ism-1], ie, ip);
01490
01491 int ic = Numbers::indexEB(ism, ie, ip);
01492
01493 if ( econn ) {
01494 ecid = LogicID::getEcalLogicID("EB_crystal_number", Numbers::iSM(ism, EcalBarrel), ic);
01495 dataset3_rd[ecid] = t_rd;
01496 }
01497
01498 }
01499
01500 }
01501 }
01502
01503 }
01504
01505 if ( econn ) {
01506 try {
01507 if ( verbose_ ) std::cout << "Inserting MonTimingLaserCrystalDat ..." << std::endl;
01508 if ( dataset3_bl.size() != 0 ) econn->insertDataArraySet(&dataset3_bl, moniov);
01509 if ( dataset3_ir.size() != 0 ) econn->insertDataArraySet(&dataset3_ir, moniov);
01510 if ( dataset3_gr.size() != 0 ) econn->insertDataArraySet(&dataset3_gr, moniov);
01511 if ( dataset3_rd.size() != 0 ) econn->insertDataArraySet(&dataset3_rd, moniov);
01512 if ( verbose_ ) std::cout << "done." << std::endl;
01513 } catch (std::runtime_error &e) {
01514 std::cerr << e.what() << std::endl;
01515 }
01516 }
01517
01518 return true;
01519
01520 }
01521 #endif
01522
01523 void EBLaserClient::analyze(void) {
01524
01525 ievt_++;
01526 jevt_++;
01527 if ( ievt_ % 10 == 0 ) {
01528 if ( debug_ ) std::cout << "EBLaserClient: ievt/jevt = " << ievt_ << "/" << jevt_ << std::endl;
01529 }
01530
01531 uint32_t bits01 = 0;
01532 bits01 |= 1 << EcalDQMStatusHelper::LASER_MEAN_ERROR;
01533 bits01 |= 1 << EcalDQMStatusHelper::LASER_RMS_ERROR;
01534
01535 uint32_t bits02 = 0;
01536 bits02 |= 1 << EcalDQMStatusHelper::LASER_TIMING_MEAN_ERROR;
01537 bits02 |= 1 << EcalDQMStatusHelper::LASER_TIMING_RMS_ERROR;
01538
01539 uint32_t bits03 = 0;
01540 bits03 |= 1 << EcalDQMStatusHelper::PEDESTAL_LOW_GAIN_MEAN_ERROR;
01541 bits03 |= 1 << EcalDQMStatusHelper::PEDESTAL_LOW_GAIN_RMS_ERROR;
01542
01543 uint32_t bits04 = 0;
01544 bits04 |= 1 << EcalDQMStatusHelper::PEDESTAL_HIGH_GAIN_MEAN_ERROR;
01545 bits04 |= 1 << EcalDQMStatusHelper::PEDESTAL_HIGH_GAIN_RMS_ERROR;
01546
01547 char histo[200];
01548
01549 MonitorElement* me;
01550
01551 for ( unsigned int i=0; i<superModules_.size(); i++ ) {
01552
01553 int ism = superModules_[i];
01554
01555 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 1) != laserWavelengths_.end() ) {
01556
01557 sprintf(histo, (prefixME_ + "/EBLaserTask/Laser1/EBLT amplitude %s L1").c_str(), Numbers::sEB(ism).c_str());
01558 me = dqmStore_->get(histo);
01559 h01_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, h01_[ism-1] );
01560
01561 sprintf(histo, (prefixME_ + "/EBLaserTask/Laser1/EBLT amplitude over PN %s L1").c_str(), Numbers::sEB(ism).c_str());
01562 me = dqmStore_->get(histo);
01563 h02_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, h02_[ism-1] );
01564
01565 }
01566
01567 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 2) != laserWavelengths_.end() ) {
01568
01569 sprintf(histo, (prefixME_ + "/EBLaserTask/Laser2/EBLT amplitude %s L2").c_str(), Numbers::sEB(ism).c_str());
01570 me = dqmStore_->get(histo);
01571 h03_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, h03_[ism-1] );
01572
01573 sprintf(histo, (prefixME_ + "/EBLaserTask/Laser2/EBLT amplitude over PN %s L2").c_str(), Numbers::sEB(ism).c_str());
01574 me = dqmStore_->get(histo);
01575 h04_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, h04_[ism-1] );
01576
01577 }
01578
01579 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 3) != laserWavelengths_.end() ) {
01580
01581 sprintf(histo, (prefixME_ + "/EBLaserTask/Laser3/EBLT amplitude %s L3").c_str(), Numbers::sEB(ism).c_str());
01582 me = dqmStore_->get(histo);
01583 h05_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, h05_[ism-1] );
01584
01585 sprintf(histo, (prefixME_ + "/EBLaserTask/Laser3/EBLT amplitude over PN %s L3").c_str(), Numbers::sEB(ism).c_str());
01586 me = dqmStore_->get(histo);
01587 h06_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, h06_[ism-1] );
01588
01589 }
01590
01591 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 4) != laserWavelengths_.end() ) {
01592
01593 sprintf(histo, (prefixME_ + "/EBLaserTask/Laser4/EBLT amplitude %s L4").c_str(), Numbers::sEB(ism).c_str());
01594 me = dqmStore_->get(histo);
01595 h07_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, h07_[ism-1] );
01596
01597 sprintf(histo, (prefixME_ + "/EBLaserTask/Laser4/EBLT amplitude over PN %s L4").c_str(), Numbers::sEB(ism).c_str());
01598 me = dqmStore_->get(histo);
01599 h08_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, h08_[ism-1] );
01600
01601 }
01602
01603 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 1) != laserWavelengths_.end() ) {
01604
01605 sprintf(histo, (prefixME_ + "/EBLaserTask/Laser1/EBLT timing %s L1").c_str(), Numbers::sEB(ism).c_str());
01606 me = dqmStore_->get(histo);
01607 h09_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, h09_[ism-1] );
01608
01609 }
01610
01611 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 2) != laserWavelengths_.end() ) {
01612
01613 sprintf(histo, (prefixME_ + "/EBLaserTask/Laser2/EBLT timing %s L2").c_str(), Numbers::sEB(ism).c_str());
01614 me = dqmStore_->get(histo);
01615 h10_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, h10_[ism-1] );
01616
01617 }
01618
01619 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 3) != laserWavelengths_.end() ) {
01620
01621 sprintf(histo, (prefixME_ + "/EBLaserTask/Laser3/EBLT timing %s L3").c_str(), Numbers::sEB(ism).c_str());
01622 me = dqmStore_->get(histo);
01623 h11_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, h11_[ism-1] );
01624
01625 }
01626
01627 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 4) != laserWavelengths_.end() ) {
01628
01629 sprintf(histo, (prefixME_ + "/EBLaserTask/Laser4/EBLT timing %s L4").c_str(), Numbers::sEB(ism).c_str());
01630 me = dqmStore_->get(histo);
01631 h12_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, h12_[ism-1] );
01632
01633 }
01634
01635 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 1) != laserWavelengths_.end() ) {
01636
01637 sprintf(histo, (prefixME_ + "/EBLaserTask/Laser1/EBLT shape %s L1").c_str(), Numbers::sEB(ism).c_str());
01638 me = dqmStore_->get(histo);
01639 hs01_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, hs01_[ism-1] );
01640
01641 }
01642
01643 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 2) != laserWavelengths_.end() ) {
01644
01645 sprintf(histo, (prefixME_ + "/EBLaserTask/Laser2/EBLT shape %s L2").c_str(), Numbers::sEB(ism).c_str());
01646 me = dqmStore_->get(histo);
01647 hs02_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, hs02_[ism-1] );
01648
01649 }
01650
01651 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 3) != laserWavelengths_.end() ) {
01652
01653 sprintf(histo, (prefixME_ + "/EBLaserTask/Laser3/EBLT shape %s L3").c_str(), Numbers::sEB(ism).c_str());
01654 me = dqmStore_->get(histo);
01655 hs03_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, hs03_[ism-1] );
01656
01657 }
01658
01659 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 4) != laserWavelengths_.end() ) {
01660
01661 sprintf(histo, (prefixME_ + "/EBLaserTask/Laser4/EBLT shape %s L4").c_str(), Numbers::sEB(ism).c_str());
01662 me = dqmStore_->get(histo);
01663 hs04_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, hs04_[ism-1] );
01664
01665 }
01666
01667 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 1) != laserWavelengths_.end() ) {
01668
01669 sprintf(histo, (prefixME_ + "/EBLaserTask/Laser1/PN/Gain01/EBLT PNs amplitude %s G01 L1").c_str(), Numbers::sEB(ism).c_str());
01670 me = dqmStore_->get(histo);
01671 i01_[ism-1] = UtilsClient::getHisto<TProfile*>( me, cloneME_, i01_[ism-1] );
01672
01673 }
01674
01675
01676 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 2) != laserWavelengths_.end() ) {
01677
01678 sprintf(histo, (prefixME_ + "/EBLaserTask/Laser2/PN/Gain01/EBLT PNs amplitude %s G01 L2").c_str(), Numbers::sEB(ism).c_str());
01679 me = dqmStore_->get(histo);
01680 i02_[ism-1] = UtilsClient::getHisto<TProfile*>( me, cloneME_, i02_[ism-1] );
01681
01682 }
01683
01684 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 3) != laserWavelengths_.end() ) {
01685
01686 sprintf(histo, (prefixME_ + "/EBLaserTask/Laser3/PN/Gain01/EBLT PNs amplitude %s G01 L3").c_str(), Numbers::sEB(ism).c_str());
01687 me = dqmStore_->get(histo);
01688 i03_[ism-1] = UtilsClient::getHisto<TProfile*>( me, cloneME_, i03_[ism-1] );
01689
01690 }
01691
01692 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 4) != laserWavelengths_.end() ) {
01693
01694 sprintf(histo, (prefixME_ + "/EBLaserTask/Laser4/PN/Gain01/EBLT PNs amplitude %s G01 L4").c_str(), Numbers::sEB(ism).c_str());
01695 me = dqmStore_->get(histo);
01696 i04_[ism-1] = UtilsClient::getHisto<TProfile*>( me, cloneME_, i04_[ism-1] );
01697
01698 }
01699
01700 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 1) != laserWavelengths_.end() ) {
01701
01702 sprintf(histo, (prefixME_ + "/EBLaserTask/Laser1/PN/Gain01/EBLT PNs pedestal %s G01 L1").c_str(), Numbers::sEB(ism).c_str());
01703 me = dqmStore_->get(histo);
01704 i05_[ism-1] = UtilsClient::getHisto<TProfile*>( me, cloneME_, i05_[ism-1] );
01705
01706 }
01707
01708 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 2) != laserWavelengths_.end() ) {
01709
01710 sprintf(histo, (prefixME_ + "/EBLaserTask/Laser2/PN/Gain01/EBLT PNs pedestal %s G01 L2").c_str(), Numbers::sEB(ism).c_str());
01711 me = dqmStore_->get(histo);
01712 i06_[ism-1] = UtilsClient::getHisto<TProfile*>( me, cloneME_, i06_[ism-1] );
01713
01714 }
01715
01716 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 3) != laserWavelengths_.end() ) {
01717
01718 sprintf(histo, (prefixME_ + "/EBLaserTask/Laser3/PN/Gain01/EBLT PNs pedestal %s G01 L3").c_str(), Numbers::sEB(ism).c_str());
01719 me = dqmStore_->get(histo);
01720 i07_[ism-1] = UtilsClient::getHisto<TProfile*>( me, cloneME_, i07_[ism-1] );
01721
01722 }
01723
01724 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 4) != laserWavelengths_.end() ) {
01725
01726 sprintf(histo, (prefixME_ + "/EBLaserTask/Laser4/PN/Gain01/EBLT PNs pedestal %s G01 L4").c_str(), Numbers::sEB(ism).c_str());
01727 me = dqmStore_->get(histo);
01728 i08_[ism-1] = UtilsClient::getHisto<TProfile*>( me, cloneME_, i08_[ism-1] );
01729
01730 }
01731
01732 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 1) != laserWavelengths_.end() ) {
01733
01734 sprintf(histo, (prefixME_ + "/EBLaserTask/Laser1/PN/Gain16/EBLT PNs amplitude %s G16 L1").c_str(), Numbers::sEB(ism).c_str());
01735 me = dqmStore_->get(histo);
01736 i09_[ism-1] = UtilsClient::getHisto<TProfile*>( me, cloneME_, i09_[ism-1] );
01737
01738 }
01739
01740 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 2) != laserWavelengths_.end() ) {
01741
01742 sprintf(histo, (prefixME_ + "/EBLaserTask/Laser2/PN/Gain16/EBLT PNs amplitude %s G16 L2").c_str(), Numbers::sEB(ism).c_str());
01743 me = dqmStore_->get(histo);
01744 i10_[ism-1] = UtilsClient::getHisto<TProfile*>( me, cloneME_, i10_[ism-1] );
01745
01746 }
01747
01748 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 3) != laserWavelengths_.end() ) {
01749
01750 sprintf(histo, (prefixME_ + "/EBLaserTask/Laser3/PN/Gain16/EBLT PNs amplitude %s G16 L3").c_str(), Numbers::sEB(ism).c_str());
01751 me = dqmStore_->get(histo);
01752 i11_[ism-1] = UtilsClient::getHisto<TProfile*>( me, cloneME_, i11_[ism-1] );
01753
01754 }
01755
01756 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 4) != laserWavelengths_.end() ) {
01757
01758 sprintf(histo, (prefixME_ + "/EBLaserTask/Laser4/PN/Gain16/EBLT PNs amplitude %s G16 L4").c_str(), Numbers::sEB(ism).c_str());
01759 me = dqmStore_->get(histo);
01760 i12_[ism-1] = UtilsClient::getHisto<TProfile*>( me, cloneME_, i12_[ism-1] );
01761
01762 }
01763
01764 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 1) != laserWavelengths_.end() ) {
01765
01766 sprintf(histo, (prefixME_ + "/EBLaserTask/Laser1/PN/Gain16/EBLT PNs pedestal %s G16 L1").c_str(), Numbers::sEB(ism).c_str());
01767 me = dqmStore_->get(histo);
01768 i13_[ism-1] = UtilsClient::getHisto<TProfile*>( me, cloneME_, i13_[ism-1] );
01769
01770 }
01771
01772 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 2) != laserWavelengths_.end() ) {
01773
01774 sprintf(histo, (prefixME_ + "/EBLaserTask/Laser2/PN/Gain16/EBLT PNs pedestal %s G16 L2").c_str(), Numbers::sEB(ism).c_str());
01775 me = dqmStore_->get(histo);
01776 i14_[ism-1] = UtilsClient::getHisto<TProfile*>( me, cloneME_, i14_[ism-1] );
01777
01778 }
01779
01780 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 3) != laserWavelengths_.end() ) {
01781
01782 sprintf(histo, (prefixME_ + "/EBLaserTask/Laser3/PN/Gain16/EBLT PNs pedestal %s G16 L3").c_str(), Numbers::sEB(ism).c_str());
01783 me = dqmStore_->get(histo);
01784 i15_[ism-1] = UtilsClient::getHisto<TProfile*>( me, cloneME_, i15_[ism-1] );
01785
01786 }
01787
01788 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 4) != laserWavelengths_.end() ) {
01789
01790 sprintf(histo, (prefixME_ + "/EBLaserTask/Laser4/PN/Gain16/EBLT PNs pedestal %s G16 L4").c_str(), Numbers::sEB(ism).c_str());
01791 me = dqmStore_->get(histo);
01792 i16_[ism-1] = UtilsClient::getHisto<TProfile*>( me, cloneME_, i16_[ism-1] );
01793
01794 }
01795
01796 if ( meg01_[ism-1] ) meg01_[ism-1]->Reset();
01797 if ( meg02_[ism-1] ) meg02_[ism-1]->Reset();
01798 if ( meg03_[ism-1] ) meg03_[ism-1]->Reset();
01799 if ( meg04_[ism-1] ) meg04_[ism-1]->Reset();
01800
01801 if ( meg05_[ism-1] ) meg05_[ism-1]->Reset();
01802 if ( meg06_[ism-1] ) meg06_[ism-1]->Reset();
01803 if ( meg07_[ism-1] ) meg07_[ism-1]->Reset();
01804 if ( meg08_[ism-1] ) meg08_[ism-1]->Reset();
01805 if ( meg09_[ism-1] ) meg09_[ism-1]->Reset();
01806 if ( meg10_[ism-1] ) meg10_[ism-1]->Reset();
01807 if ( meg11_[ism-1] ) meg11_[ism-1]->Reset();
01808 if ( meg12_[ism-1] ) meg12_[ism-1]->Reset();
01809
01810 if ( mea01_[ism-1] ) mea01_[ism-1]->Reset();
01811 if ( mea02_[ism-1] ) mea02_[ism-1]->Reset();
01812 if ( mea03_[ism-1] ) mea03_[ism-1]->Reset();
01813 if ( mea04_[ism-1] ) mea04_[ism-1]->Reset();
01814
01815 if ( met01_[ism-1] ) met01_[ism-1]->Reset();
01816 if ( met02_[ism-1] ) met02_[ism-1]->Reset();
01817 if ( met03_[ism-1] ) met03_[ism-1]->Reset();
01818 if ( met04_[ism-1] ) met04_[ism-1]->Reset();
01819
01820 if ( metav01_[ism-1] ) metav01_[ism-1]->Reset();
01821 if ( metav02_[ism-1] ) metav02_[ism-1]->Reset();
01822 if ( metav03_[ism-1] ) metav03_[ism-1]->Reset();
01823 if ( metav04_[ism-1] ) metav04_[ism-1]->Reset();
01824
01825 if ( metrms01_[ism-1] ) metrms01_[ism-1]->Reset();
01826 if ( metrms02_[ism-1] ) metrms02_[ism-1]->Reset();
01827 if ( metrms03_[ism-1] ) metrms03_[ism-1]->Reset();
01828 if ( metrms04_[ism-1] ) metrms04_[ism-1]->Reset();
01829
01830 if ( meaopn01_[ism-1] ) meaopn01_[ism-1]->Reset();
01831 if ( meaopn02_[ism-1] ) meaopn02_[ism-1]->Reset();
01832 if ( meaopn03_[ism-1] ) meaopn03_[ism-1]->Reset();
01833 if ( meaopn04_[ism-1] ) meaopn04_[ism-1]->Reset();
01834
01835 if ( mepnprms01_[ism-1] ) mepnprms01_[ism-1]->Reset();
01836 if ( mepnprms02_[ism-1] ) mepnprms02_[ism-1]->Reset();
01837 if ( mepnprms03_[ism-1] ) mepnprms03_[ism-1]->Reset();
01838 if ( mepnprms04_[ism-1] ) mepnprms04_[ism-1]->Reset();
01839 if ( mepnprms05_[ism-1] ) mepnprms05_[ism-1]->Reset();
01840 if ( mepnprms06_[ism-1] ) mepnprms06_[ism-1]->Reset();
01841 if ( mepnprms07_[ism-1] ) mepnprms07_[ism-1]->Reset();
01842 if ( mepnprms08_[ism-1] ) mepnprms08_[ism-1]->Reset();
01843
01844 if ( me_hs01_[ism-1] ) me_hs01_[ism-1]->Reset();
01845 if ( me_hs02_[ism-1] ) me_hs02_[ism-1]->Reset();
01846 if ( me_hs03_[ism-1] ) me_hs03_[ism-1]->Reset();
01847 if ( me_hs04_[ism-1] ) me_hs04_[ism-1]->Reset();
01848
01849 float meanAmplL1, meanAmplL2, meanAmplL3, meanAmplL4;
01850
01851 int nCryL1, nCryL2, nCryL3, nCryL4;
01852
01853 meanAmplL1 = meanAmplL2 = meanAmplL3 = meanAmplL4 = 0.;
01854
01855 nCryL1 = nCryL2 = nCryL3 = nCryL4 = 0;
01856
01857 for ( int ie = 1; ie <= 85; ie++ ) {
01858 for ( int ip = 1; ip <= 20; ip++ ) {
01859
01860 bool update01;
01861 bool update02;
01862 bool update03;
01863 bool update04;
01864
01865 float num01, num02, num03, num04;
01866 float mean01, mean02, mean03, mean04;
01867 float rms01, rms02, rms03, rms04;
01868
01869 update01 = UtilsClient::getBinStatistics(h01_[ism-1], ie, ip, num01, mean01, rms01);
01870 update02 = UtilsClient::getBinStatistics(h03_[ism-1], ie, ip, num02, mean02, rms02);
01871 update03 = UtilsClient::getBinStatistics(h05_[ism-1], ie, ip, num03, mean03, rms03);
01872 update04 = UtilsClient::getBinStatistics(h07_[ism-1], ie, ip, num04, mean04, rms04);
01873
01874 float xmean01 = mean01;
01875 float xmean02 = mean02;
01876 float xmean03 = mean03;
01877 float xmean04 = mean04;
01878
01879
01880 if ( ism == 22 && ie <= 5 ) {
01881 xmean01 = xmean01 * 1.5;
01882 xmean02 = xmean02 * 1.5;
01883 xmean03 = xmean03 * 1.5;
01884 xmean04 = xmean04 * 1.5;
01885 }
01886
01887
01888 if ( ism == 27 && ie > 5 && ip <= 10 ) {
01889 xmean01 = xmean01 * 1.5;
01890 xmean02 = xmean02 * 1.5;
01891 xmean03 = xmean03 * 1.5;
01892 xmean04 = xmean04 * 1.5;
01893 }
01894
01895
01896 if ( ism == 36 && ie > 5 && ip <= 10 ) {
01897 xmean01 = xmean01 * 1.0;
01898 xmean02 = xmean02 * 1.0;
01899 xmean03 = xmean03 * 1.0;
01900 xmean04 = xmean04 * 2.0;
01901 }
01902
01903 if ( update01 ) {
01904 meanAmplL1 += xmean01;
01905 nCryL1++;
01906 }
01907
01908 if ( update02 ) {
01909 meanAmplL2 += xmean02;
01910 nCryL2++;
01911 }
01912
01913 if ( update03 ) {
01914 meanAmplL3 += xmean03;
01915 nCryL3++;
01916 }
01917
01918 if ( update04 ) {
01919 meanAmplL4 += xmean04;
01920 nCryL4++;
01921 }
01922
01923 }
01924 }
01925
01926 if ( nCryL1 > 0 ) meanAmplL1 /= float (nCryL1);
01927 if ( nCryL2 > 0 ) meanAmplL2 /= float (nCryL2);
01928 if ( nCryL3 > 0 ) meanAmplL3 /= float (nCryL3);
01929 if ( nCryL4 > 0 ) meanAmplL4 /= float (nCryL4);
01930
01931 for ( int ie = 1; ie <= 85; ie++ ) {
01932 for ( int ip = 1; ip <= 20; ip++ ) {
01933
01934 if ( meg01_[ism-1] ) meg01_[ism-1]->setBinContent( ie, ip, 2.);
01935 if ( meg02_[ism-1] ) meg02_[ism-1]->setBinContent( ie, ip, 2.);
01936 if ( meg03_[ism-1] ) meg03_[ism-1]->setBinContent( ie, ip, 2.);
01937 if ( meg04_[ism-1] ) meg04_[ism-1]->setBinContent( ie, ip, 2.);
01938
01939 bool update01;
01940 bool update02;
01941 bool update03;
01942 bool update04;
01943 bool update05;
01944 bool update06;
01945 bool update07;
01946 bool update08;
01947 bool update09;
01948 bool update10;
01949 bool update11;
01950 bool update12;
01951
01952 float num01, num02, num03, num04, num05, num06, num07, num08;
01953 float num09, num10, num11, num12;
01954 float mean01, mean02, mean03, mean04, mean05, mean06, mean07, mean08;
01955 float mean09, mean10, mean11, mean12;
01956 float rms01, rms02, rms03, rms04, rms05, rms06, rms07, rms08;
01957 float rms09, rms10, rms11, rms12;
01958
01959 update01 = UtilsClient::getBinStatistics(h01_[ism-1], ie, ip, num01, mean01, rms01);
01960 update02 = UtilsClient::getBinStatistics(h02_[ism-1], ie, ip, num02, mean02, rms02);
01961 update03 = UtilsClient::getBinStatistics(h03_[ism-1], ie, ip, num03, mean03, rms03);
01962 update04 = UtilsClient::getBinStatistics(h04_[ism-1], ie, ip, num04, mean04, rms04);
01963 update05 = UtilsClient::getBinStatistics(h05_[ism-1], ie, ip, num05, mean05, rms05);
01964 update06 = UtilsClient::getBinStatistics(h06_[ism-1], ie, ip, num06, mean06, rms06);
01965 update07 = UtilsClient::getBinStatistics(h07_[ism-1], ie, ip, num07, mean07, rms07);
01966 update08 = UtilsClient::getBinStatistics(h08_[ism-1], ie, ip, num08, mean08, rms08);
01967 update09 = UtilsClient::getBinStatistics(h09_[ism-1], ie, ip, num09, mean09, rms09);
01968 update10 = UtilsClient::getBinStatistics(h10_[ism-1], ie, ip, num10, mean10, rms10);
01969 update11 = UtilsClient::getBinStatistics(h11_[ism-1], ie, ip, num11, mean11, rms11);
01970 update12 = UtilsClient::getBinStatistics(h12_[ism-1], ie, ip, num12, mean12, rms12);
01971
01972 float xmean01 = mean01;
01973 float xmean03 = mean03;
01974 float xmean05 = mean05;
01975 float xmean07 = mean07;
01976
01977
01978 if ( ism == 22 && ie <= 5 ) {
01979 xmean01 = xmean01 * 1.5;
01980 xmean03 = xmean03 * 1.5;
01981 xmean05 = xmean05 * 1.5;
01982 xmean07 = xmean07 * 1.5;
01983 }
01984
01985
01986 if ( ism == 27 && ie > 5 && ip <= 10 ) {
01987 xmean01 = xmean01 * 1.5;
01988 xmean03 = xmean03 * 1.5;
01989 xmean05 = xmean05 * 1.5;
01990 xmean07 = xmean07 * 1.5;
01991 }
01992
01993
01994 if ( ism == 36 && ie > 5 && ip <= 10 ) {
01995 xmean01 = xmean01 * 1.0;
01996 xmean03 = xmean03 * 1.0;
01997 xmean05 = xmean05 * 1.0;
01998 xmean07 = xmean07 * 2.0;
01999 }
02000
02001 if ( update01 ) {
02002
02003 float val;
02004
02005 val = 1.;
02006 if ( std::abs(xmean01 - meanAmplL1) > std::abs(percentVariation_ * meanAmplL1) || xmean01 < amplitudeThreshold_ || rms01 > rmsThresholdRelative_ * mean01 )
02007 val = 0.;
02008 if ( meg01_[ism-1] ) meg01_[ism-1]->setBinContent( ie, ip, val );
02009
02010 int ic = Numbers::icEB(ism, ie, ip);
02011
02012 if ( mea01_[ism-1] ) {
02013 if ( mean01 > 0. ) {
02014 mea01_[ism-1]->setBinContent( ic, mean01 );
02015 mea01_[ism-1]->setBinError( ic, rms01 );
02016 } else {
02017 mea01_[ism-1]->setEntries( 1.+mea01_[ism-1]->getEntries() );
02018 }
02019 }
02020
02021 }
02022
02023 if ( update03 ) {
02024
02025 float val;
02026
02027 val = 1.;
02028 if ( std::abs(xmean03 - meanAmplL2) > std::abs(percentVariation_ * meanAmplL2) || xmean03 < amplitudeThreshold_ || rms03 > rmsThresholdRelative_ * mean03 )
02029 val = 0.;
02030 if ( meg02_[ism-1] ) meg02_[ism-1]->setBinContent( ie, ip, val );
02031
02032 int ic = Numbers::icEB(ism, ie, ip);
02033
02034 if ( mea02_[ism-1] ) {
02035 if ( mean03 > 0. ) {
02036 mea02_[ism-1]->setBinContent( ic, mean03 );
02037 mea02_[ism-1]->setBinError( ic, rms03 );
02038 } else {
02039 mea02_[ism-1]->setEntries( 1.+mea02_[ism-1]->getEntries() );
02040 }
02041 }
02042
02043 }
02044
02045 if ( update05 ) {
02046
02047 float val;
02048
02049 val = 1.;
02050 if ( std::abs(xmean05 - meanAmplL3) > std::abs(percentVariation_ * meanAmplL3) || xmean05 < amplitudeThreshold_ || rms05 > rmsThresholdRelative_ * mean05 )
02051 val = 0.;
02052 if ( meg03_[ism-1] ) meg03_[ism-1]->setBinContent( ie, ip, val );
02053
02054 int ic = Numbers::icEB(ism, ie, ip);
02055
02056 if ( mea03_[ism-1] ) {
02057 if ( mean05 > 0. ) {
02058 mea03_[ism-1]->setBinContent( ic, mean05 );
02059 mea03_[ism-1]->setBinError( ic, rms05 );
02060 } else {
02061 mea03_[ism-1]->setEntries( 1.+mea03_[ism-1]->getEntries() );
02062 }
02063 }
02064
02065 }
02066
02067 if ( update07 ) {
02068
02069 float val;
02070
02071 val = 1.;
02072 if ( std::abs(xmean07 - meanAmplL4) > std::abs(percentVariation_ * meanAmplL4) || xmean07 < amplitudeThreshold_ || rms07 > rmsThresholdRelative_ * mean07 )
02073 val = 0.;
02074 if ( meg04_[ism-1] ) meg04_[ism-1]->setBinContent( ie, ip, val );
02075
02076 int ic = Numbers::icEB(ism, ie, ip);
02077
02078 if ( mea04_[ism-1] ) {
02079 if ( mean07 > 0. ) {
02080 mea04_[ism-1]->setBinContent( ic, mean07 );
02081 mea04_[ism-1]->setBinError( ic, rms07 );
02082 } else {
02083 mea04_[ism-1]->setEntries( 1.+mea04_[ism-1]->getEntries() );
02084 }
02085 }
02086
02087 }
02088
02089 if ( Masks::maskChannel(ism, ie, ip, bits01, EcalBarrel) ) {
02090 UtilsClient::maskBinContent( meg01_[ism-1], ie, ip );
02091 UtilsClient::maskBinContent( meg02_[ism-1], ie, ip );
02092 UtilsClient::maskBinContent( meg03_[ism-1], ie, ip );
02093 UtilsClient::maskBinContent( meg04_[ism-1], ie, ip );
02094 }
02095
02096 if ( update02 ) {
02097
02098 int ic = Numbers::icEB(ism, ie, ip);
02099
02100 if ( meaopn01_[ism-1] ) {
02101 if ( mean02 > 0. ) {
02102 meaopn01_[ism-1]->setBinContent( ic, mean02 );
02103 meaopn01_[ism-1]->setBinError( ic, rms02 );
02104 } else {
02105 meaopn01_[ism-1]->setEntries( 1.+meaopn01_[ism-1]->getEntries() );
02106 }
02107 }
02108
02109 }
02110
02111 if ( update04 ) {
02112
02113 int ic = Numbers::icEB(ism, ie, ip);
02114
02115 if ( meaopn02_[ism-1] ) {
02116 if ( mean04 > 0. ) {
02117 meaopn02_[ism-1]->setBinContent( ic, mean04 );
02118 meaopn02_[ism-1]->setBinError( ic, rms04 );
02119 } else {
02120 meaopn02_[ism-1]->setEntries( 1.+meaopn02_[ism-1]->getEntries() );
02121 }
02122 }
02123
02124 }
02125
02126 if ( update06 ) {
02127
02128 int ic = Numbers::icEB(ism, ie, ip);
02129
02130 if ( meaopn03_[ism-1] ) {
02131 if ( mean06 > 0. ) {
02132 meaopn03_[ism-1]->setBinContent( ic, mean06 );
02133 meaopn03_[ism-1]->setBinError( ic, rms06 );
02134 } else {
02135 meaopn03_[ism-1]->setEntries( 1.+meaopn03_[ism-1]->getEntries() );
02136 }
02137 }
02138
02139 }
02140
02141 if ( update08 ) {
02142
02143 int ic = Numbers::icEB(ism, ie, ip);
02144
02145 if ( meaopn04_[ism-1] ) {
02146 if ( mean08 > 0. ) {
02147 meaopn04_[ism-1]->setBinContent( ic, mean08 );
02148 meaopn04_[ism-1]->setBinError( ic, rms08 );
02149 } else {
02150 meaopn04_[ism-1]->setEntries( 1.+meaopn04_[ism-1]->getEntries() );
02151 }
02152 }
02153
02154 }
02155
02156 if ( update09 ) {
02157
02158 int ic = Numbers::icEB(ism, ie, ip);
02159
02160 if ( met01_[ism-1] ) {
02161 if ( mean09 > 0. ) {
02162 met01_[ism-1]->setBinContent( ic, mean09 );
02163 met01_[ism-1]->setBinError( ic, rms09 );
02164 } else {
02165 met01_[ism-1]->setEntries(1.+met01_[ism-1]->getEntries());
02166 }
02167 }
02168
02169 if ( metav01_[ism-1] ) metav01_[ism-1] ->Fill(mean09);
02170 if ( metrms01_[ism-1] ) metrms01_[ism-1]->Fill(rms09);
02171
02172 }
02173
02174 if ( update10 ) {
02175
02176 int ic = Numbers::icEB(ism, ie, ip);
02177
02178 if ( met02_[ism-1] ) {
02179 if ( mean10 > 0. ) {
02180 met02_[ism-1]->setBinContent( ic, mean10 );
02181 met02_[ism-1]->setBinError( ic, rms10 );
02182 } else {
02183 met02_[ism-1]->setEntries(1.+met02_[ism-1]->getEntries());
02184 }
02185 }
02186
02187 if ( metav02_[ism-1] ) metav02_[ism-1] ->Fill(mean10);
02188 if ( metrms02_[ism-1] ) metrms02_[ism-1]->Fill(rms10);
02189
02190 }
02191
02192 if ( update11 ) {
02193
02194 int ic = Numbers::icEB(ism, ie, ip);
02195
02196 if ( met03_[ism-1] ) {
02197 if ( mean11 > 0. ) {
02198 met03_[ism-1]->setBinContent( ic, mean11 );
02199 met03_[ism-1]->setBinError( ic, rms11 );
02200 } else {
02201 met03_[ism-1]->setEntries(1.+met03_[ism-1]->getEntries());
02202 }
02203 }
02204
02205 if ( metav03_[ism-1] ) metav03_[ism-1] ->Fill(mean11);
02206 if ( metrms03_[ism-1] ) metrms03_[ism-1]->Fill(rms11);
02207
02208 }
02209
02210 if ( update12 ) {
02211
02212 int ic = Numbers::icEB(ism, ie, ip);
02213
02214 if ( met04_[ism-1] ) {
02215 if ( mean12 > 0. ) {
02216 met04_[ism-1]->setBinContent( ic, mean12 );
02217 met04_[ism-1]->setBinError( ic, rms12 );
02218 } else {
02219 met04_[ism-1]->setEntries(1.+met04_[ism-1]->getEntries());
02220 }
02221 }
02222
02223 if ( metav04_[ism-1] ) metav04_[ism-1] ->Fill(mean12);
02224 if ( metrms04_[ism-1] ) metrms04_[ism-1]->Fill(rms12);
02225
02226 }
02227
02228 }
02229 }
02230
02231 for ( int i = 1; i <= 10; i++ ) {
02232
02233 if ( meg05_[ism-1] ) meg05_[ism-1]->setBinContent( i, 1, 2. );
02234 if ( meg06_[ism-1] ) meg06_[ism-1]->setBinContent( i, 1, 2. );
02235 if ( meg07_[ism-1] ) meg07_[ism-1]->setBinContent( i, 1, 2. );
02236 if ( meg08_[ism-1] ) meg08_[ism-1]->setBinContent( i, 1, 2. );
02237 if ( meg09_[ism-1] ) meg09_[ism-1]->setBinContent( i, 1, 2. );
02238 if ( meg10_[ism-1] ) meg10_[ism-1]->setBinContent( i, 1, 2. );
02239 if ( meg11_[ism-1] ) meg11_[ism-1]->setBinContent( i, 1, 2. );
02240 if ( meg12_[ism-1] ) meg12_[ism-1]->setBinContent( i, 1, 2. );
02241
02242 bool update01;
02243 bool update02;
02244 bool update03;
02245 bool update04;
02246 bool update05;
02247 bool update06;
02248 bool update07;
02249 bool update08;
02250 bool update09;
02251 bool update10;
02252 bool update11;
02253 bool update12;
02254 bool update13;
02255 bool update14;
02256 bool update15;
02257 bool update16;
02258
02259 float num01, num02, num03, num04, num05, num06, num07, num08;
02260 float num09, num10, num11, num12, num13, num14, num15, num16;
02261 float mean01, mean02, mean03, mean04, mean05, mean06, mean07, mean08;
02262 float mean09, mean10, mean11, mean12, mean13, mean14, mean15, mean16;
02263 float rms01, rms02, rms03, rms04, rms05, rms06, rms07, rms08;
02264 float rms09, rms10, rms11, rms12, rms13, rms14, rms15, rms16;
02265
02266 update01 = UtilsClient::getBinStatistics(i01_[ism-1], i, 0, num01, mean01, rms01);
02267 update02 = UtilsClient::getBinStatistics(i02_[ism-1], i, 0, num02, mean02, rms02);
02268 update03 = UtilsClient::getBinStatistics(i03_[ism-1], i, 0, num03, mean03, rms03);
02269 update04 = UtilsClient::getBinStatistics(i04_[ism-1], i, 0, num04, mean04, rms04);
02270 update05 = UtilsClient::getBinStatistics(i05_[ism-1], i, 0, num05, mean05, rms05);
02271 update06 = UtilsClient::getBinStatistics(i06_[ism-1], i, 0, num06, mean06, rms06);
02272 update07 = UtilsClient::getBinStatistics(i07_[ism-1], i, 0, num07, mean07, rms07);
02273 update08 = UtilsClient::getBinStatistics(i08_[ism-1], i, 0, num08, mean08, rms08);
02274 update09 = UtilsClient::getBinStatistics(i09_[ism-1], i, 0, num09, mean09, rms09);
02275 update10 = UtilsClient::getBinStatistics(i10_[ism-1], i, 0, num10, mean10, rms10);
02276 update11 = UtilsClient::getBinStatistics(i11_[ism-1], i, 0, num11, mean11, rms11);
02277 update12 = UtilsClient::getBinStatistics(i12_[ism-1], i, 0, num12, mean12, rms12);
02278 update13 = UtilsClient::getBinStatistics(i13_[ism-1], i, 0, num13, mean13, rms13);
02279 update14 = UtilsClient::getBinStatistics(i14_[ism-1], i, 0, num14, mean14, rms14);
02280 update15 = UtilsClient::getBinStatistics(i15_[ism-1], i, 0, num15, mean15, rms15);
02281 update16 = UtilsClient::getBinStatistics(i16_[ism-1], i, 0, num16, mean16, rms16);
02282
02283 if ( update01 && update05 ) {
02284
02285 float val;
02286
02287 val = 1.;
02288 if ( mean01 < amplitudeThresholdPnG01_ )
02289 val = 0.;
02290 if ( mean05 < pedPnExpectedMean_[0] - pedPnDiscrepancyMean_[0] ||
02291 pedPnExpectedMean_[0] + pedPnDiscrepancyMean_[0] < mean05)
02292 val = 0.;
02293 if ( rms05 > pedPnRMSThreshold_[0] )
02294 val = 0.;
02295
02296 if ( meg05_[ism-1] ) meg05_[ism-1]->setBinContent(i, 1, val);
02297 if ( mepnprms01_[ism-1] ) mepnprms01_[ism-1]->Fill(rms05);
02298
02299 }
02300
02301 if ( update02 && update06 ) {
02302
02303 float val;
02304
02305 val = 1.;
02306 if ( mean02 < amplitudeThresholdPnG01_ )
02307 val = 0.;
02308 if ( mean06 < pedPnExpectedMean_[0] - pedPnDiscrepancyMean_[0] ||
02309 pedPnExpectedMean_[0] + pedPnDiscrepancyMean_[0] < mean06)
02310 val = 0.;
02311 if ( rms06 > pedPnRMSThreshold_[0] )
02312 val = 0.;
02313
02314 if ( meg06_[ism-1] ) meg06_[ism-1]->setBinContent(i, 1, val);
02315 if ( mepnprms02_[ism-1] ) mepnprms02_[ism-1]->Fill(rms06);
02316 }
02317
02318 if ( update03 && update07 ) {
02319
02320 float val;
02321
02322 val = 1.;
02323 if ( mean03 < amplitudeThresholdPnG01_ )
02324 val = 0.;
02325 if ( mean07 < pedPnExpectedMean_[0] - pedPnDiscrepancyMean_[0] ||
02326 pedPnExpectedMean_[0] + pedPnDiscrepancyMean_[0] < mean07)
02327 val = 0.;
02328 if ( rms07 > pedPnRMSThreshold_[0] )
02329 val = 0.;
02330
02331 if ( meg07_[ism-1] ) meg07_[ism-1]->setBinContent(i, 1, val);
02332 if ( mepnprms03_[ism-1] ) mepnprms03_[ism-1]->Fill(rms07);
02333 }
02334
02335 if ( update04 && update08 ) {
02336
02337 float val;
02338
02339 val = 1.;
02340 if ( mean04 < amplitudeThresholdPnG01_ )
02341 val = 0.;
02342 if ( mean08 < pedPnExpectedMean_[0] - pedPnDiscrepancyMean_[0] ||
02343 pedPnExpectedMean_[0] + pedPnDiscrepancyMean_[0] < mean08)
02344 val = 0.;
02345 if ( rms08 > pedPnRMSThreshold_[0] )
02346 val = 0.;
02347
02348 if ( meg08_[ism-1] ) meg08_[ism-1]->setBinContent(i, 1, val);
02349 if ( mepnprms04_[ism-1] ) mepnprms04_[ism-1]->Fill(rms08);
02350 }
02351
02352 if ( update09 && update13 ) {
02353
02354 float val;
02355
02356 val = 1.;
02357 if ( mean09 < amplitudeThresholdPnG16_ )
02358 val = 0.;
02359 if ( mean13 < pedPnExpectedMean_[1] - pedPnDiscrepancyMean_[1] ||
02360 pedPnExpectedMean_[1] + pedPnDiscrepancyMean_[1] < mean13)
02361 val = 0.;
02362 if ( rms13 > pedPnRMSThreshold_[1] )
02363 val = 0.;
02364
02365 if ( meg09_[ism-1] ) meg09_[ism-1]->setBinContent(i, 1, val);
02366 if ( mepnprms05_[ism-1] ) mepnprms05_[ism-1]->Fill(rms13);
02367 }
02368
02369 if ( update10 && update14 ) {
02370
02371 float val;
02372
02373 val = 1.;
02374 if ( mean10 < amplitudeThresholdPnG16_ )
02375 val = 0.;
02376 if ( mean14 < pedPnExpectedMean_[1] - pedPnDiscrepancyMean_[1] ||
02377 pedPnExpectedMean_[1] + pedPnDiscrepancyMean_[1] < mean14)
02378 val = 0.;
02379 if ( rms14 > pedPnRMSThreshold_[1] )
02380 val = 0.;
02381
02382 if ( meg10_[ism-1] ) meg10_[ism-1]->setBinContent(i, 1, val);
02383 if ( mepnprms06_[ism-1] ) mepnprms06_[ism-1]->Fill(rms14);
02384 }
02385
02386 if ( update11 && update15 ) {
02387
02388 float val;
02389
02390 val = 1.;
02391 if ( mean11 < amplitudeThresholdPnG16_ )
02392 val = 0.;
02393 if ( mean15 < pedPnExpectedMean_[1] - pedPnDiscrepancyMean_[1] ||
02394 pedPnExpectedMean_[1] + pedPnDiscrepancyMean_[1] < mean15)
02395 val = 0.;
02396 if ( rms15 > pedPnRMSThreshold_[1] )
02397 val = 0.;
02398
02399 if ( meg11_[ism-1] ) meg11_[ism-1]->setBinContent(i, 1, val);
02400 if ( mepnprms07_[ism-1] ) mepnprms07_[ism-1]->Fill(rms15);
02401 }
02402
02403 if ( update12 && update16 ) {
02404
02405 float val;
02406
02407 val = 1.;
02408 if ( mean12 < amplitudeThresholdPnG16_ )
02409 val = 0.;
02410 if ( mean16 < pedPnExpectedMean_[1] - pedPnDiscrepancyMean_[1] ||
02411 pedPnExpectedMean_[1] + pedPnDiscrepancyMean_[1] < mean16)
02412 val = 0.;
02413 if ( rms16 > pedPnRMSThreshold_[1] )
02414 val = 0.;
02415
02416 if ( meg12_[ism-1] ) meg12_[ism-1]->setBinContent(i, 1, val);
02417 if ( mepnprms08_[ism-1] ) mepnprms08_[ism-1]->Fill(rms16);
02418 }
02419
02420 if ( Masks::maskPn(ism, i, bits01|bits03, EcalBarrel) ) {
02421 UtilsClient::maskBinContent( meg05_[ism-1], i, 1 );
02422 UtilsClient::maskBinContent( meg06_[ism-1], i, 1 );
02423 UtilsClient::maskBinContent( meg07_[ism-1], i, 1 );
02424 UtilsClient::maskBinContent( meg08_[ism-1], i, 1 );
02425 }
02426
02427 if ( Masks::maskPn(ism, i, bits01|bits04, EcalBarrel) ) {
02428 UtilsClient::maskBinContent( meg09_[ism-1], i, 1 );
02429 UtilsClient::maskBinContent( meg10_[ism-1], i, 1 );
02430 UtilsClient::maskBinContent( meg11_[ism-1], i, 1 );
02431 UtilsClient::maskBinContent( meg12_[ism-1], i, 1 );
02432 }
02433
02434 }
02435
02436 for ( int i = 1; i <= 10; i++ ) {
02437
02438 if ( hs01_[ism-1] ) {
02439 int ic = UtilsClient::getFirstNonEmptyChannel( hs01_[ism-1] );
02440 if ( me_hs01_[ism-1] ) {
02441 me_hs01_[ism-1]->setBinContent( i, hs01_[ism-1]->GetBinContent(ic, i) );
02442 me_hs01_[ism-1]->setBinError( i, hs01_[ism-1]->GetBinError(ic, i) );
02443 }
02444 }
02445
02446 if ( hs02_[ism-1] ) {
02447 int ic = UtilsClient::getFirstNonEmptyChannel( hs02_[ism-1] );
02448 if ( me_hs02_[ism-1] ) {
02449 me_hs02_[ism-1]->setBinContent( i, hs02_[ism-1]->GetBinContent(ic, i) );
02450 me_hs02_[ism-1]->setBinError( i, hs02_[ism-1]->GetBinError(ic, i) );
02451 }
02452 }
02453
02454 if ( hs03_[ism-1] ) {
02455 int ic = UtilsClient::getFirstNonEmptyChannel( hs03_[ism-1] );
02456 if ( me_hs03_[ism-1] ) {
02457 me_hs03_[ism-1]->setBinContent( i, hs03_[ism-1]->GetBinContent(ic, i) );
02458 me_hs03_[ism-1]->setBinError( i, hs03_[ism-1]->GetBinError(ic, i) );
02459 }
02460 }
02461
02462 if ( hs04_[ism-1] ) {
02463 int ic = UtilsClient::getFirstNonEmptyChannel( hs04_[ism-1] );
02464 if ( me_hs04_[ism-1] ) {
02465 me_hs04_[ism-1]->setBinContent( i, hs04_[ism-1]->GetBinContent(ic, i) );
02466 me_hs04_[ism-1]->setBinError( i, hs04_[ism-1]->GetBinError(ic, i) );
02467 }
02468 }
02469
02470 }
02471
02472 }
02473
02474 }
02475