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