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