00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #include <memory>
00011 #include <iostream>
00012 #include <fstream>
00013 #include <iomanip>
00014
00015 #include "FWCore/ServiceRegistry/interface/Service.h"
00016
00017 #include "DQMServices/Core/interface/DQMStore.h"
00018 #include "DQMServices/Core/interface/MonitorElement.h"
00019
00020 #ifdef WITH_ECAL_COND_DB
00021 #include "OnlineDB/EcalCondDB/interface/RunTag.h"
00022 #include "OnlineDB/EcalCondDB/interface/RunIOV.h"
00023 #endif
00024
00025 #include "DQM/EcalCommon/interface/UtilsClient.h"
00026 #include "DQM/EcalCommon/interface/Numbers.h"
00027 #include "DQM/EcalCommon/interface/Masks.h"
00028
00029 #include "DQM/EcalBarrelMonitorClient/interface/EBStatusFlagsClient.h"
00030 #include "DQM/EcalBarrelMonitorClient/interface/EBIntegrityClient.h"
00031 #include "DQM/EcalBarrelMonitorClient/interface/EBOccupancyClient.h"
00032 #include "DQM/EcalBarrelMonitorClient/interface/EBLaserClient.h"
00033 #include "DQM/EcalBarrelMonitorClient/interface/EBPedestalClient.h"
00034 #include "DQM/EcalBarrelMonitorClient/interface/EBPedestalOnlineClient.h"
00035 #include "DQM/EcalBarrelMonitorClient/interface/EBTestPulseClient.h"
00036 #include "DQM/EcalBarrelMonitorClient/interface/EBBeamCaloClient.h"
00037 #include "DQM/EcalBarrelMonitorClient/interface/EBBeamHodoClient.h"
00038 #include "DQM/EcalBarrelMonitorClient/interface/EBTriggerTowerClient.h"
00039 #include "DQM/EcalBarrelMonitorClient/interface/EBClusterClient.h"
00040 #include "DQM/EcalBarrelMonitorClient/interface/EBTimingClient.h"
00041
00042 #include "DQM/EcalBarrelMonitorClient/interface/EBSummaryClient.h"
00043
00044 EBSummaryClient::EBSummaryClient(const edm::ParameterSet& ps) {
00045
00046
00047 cloneME_ = ps.getUntrackedParameter<bool>("cloneME", true);
00048
00049
00050 verbose_ = ps.getUntrackedParameter<bool>("verbose", true);
00051
00052
00053 debug_ = ps.getUntrackedParameter<bool>("debug", false);
00054
00055
00056 prefixME_ = ps.getUntrackedParameter<std::string>("prefixME", "");
00057
00058
00059 enableCleanup_ = ps.getUntrackedParameter<bool>("enableCleanup", false);
00060
00061 produceReports_ = ps.getUntrackedParameter<bool>("produceReports", true);
00062
00063
00064 superModules_.reserve(36);
00065 for ( unsigned int i = 1; i <= 36; i++ ) superModules_.push_back(i);
00066 superModules_ = ps.getUntrackedParameter<std::vector<int> >("superModules", superModules_);
00067
00068 laserWavelengths_.reserve(4);
00069 for ( unsigned int i = 1; i <= 4; i++ ) laserWavelengths_.push_back(i);
00070 laserWavelengths_ = ps.getUntrackedParameter<std::vector<int> >("laserWavelengths", laserWavelengths_);
00071
00072 MGPAGains_.reserve(3);
00073 for ( unsigned int i = 1; i <= 3; i++ ) MGPAGains_.push_back(i);
00074 MGPAGains_ = ps.getUntrackedParameter<std::vector<int> >("MGPAGains", MGPAGains_);
00075
00076 MGPAGainsPN_.reserve(2);
00077 for ( unsigned int i = 1; i <= 3; i++ ) MGPAGainsPN_.push_back(i);
00078 MGPAGainsPN_ = ps.getUntrackedParameter<std::vector<int> >("MGPAGainsPN", MGPAGainsPN_);
00079
00080
00081 meIntegrity_ = 0;
00082 meIntegrityPN_ = 0;
00083 meOccupancy_ = 0;
00084 meOccupancyPN_ = 0;
00085 meStatusFlags_ = 0;
00086 mePedestalOnline_ = 0;
00087 mePedestalOnlineRMSMap_ = 0;
00088 mePedestalOnlineMean_ = 0;
00089 mePedestalOnlineRMS_ = 0;
00090
00091 meLaserL1_ = 0;
00092 meLaserL1PN_ = 0;
00093 meLaserL1Ampl_ = 0;
00094 meLaserL1Timing_ = 0;
00095 meLaserL1AmplOverPN_ = 0;
00096
00097 meLaserL2_ = 0;
00098 meLaserL2PN_ = 0;
00099 meLaserL2Ampl_ = 0;
00100 meLaserL2Timing_ = 0;
00101 meLaserL2AmplOverPN_ = 0;
00102
00103 meLaserL3_ = 0;
00104 meLaserL3PN_ = 0;
00105 meLaserL3Ampl_ = 0;
00106 meLaserL3Timing_ = 0;
00107 meLaserL3AmplOverPN_ = 0;
00108
00109 meLaserL4_ = 0;
00110 meLaserL4PN_ = 0;
00111 meLaserL4Ampl_ = 0;
00112 meLaserL4Timing_ = 0;
00113 meLaserL4AmplOverPN_ = 0;
00114
00115 mePedestalG01_ = 0;
00116 mePedestalG06_ = 0;
00117 mePedestalG12_ = 0;
00118 mePedestalPNG01_ = 0;
00119 mePedestalPNG16_ = 0;
00120 meTestPulseG01_ = 0;
00121 meTestPulseG06_ = 0;
00122 meTestPulseG12_ = 0;
00123 meTestPulsePNG01_ = 0;
00124 meTestPulsePNG16_ = 0;
00125 meTestPulseAmplG01_ = 0;
00126 meTestPulseAmplG06_ = 0;
00127 meTestPulseAmplG12_ = 0;
00128 meGlobalSummary_ = 0;
00129
00130 meRecHitEnergy_ = 0;
00131 meTiming_ = 0;
00132 meTimingMean1D_ = 0;
00133 meTimingRMS1D_ = 0;
00134 meTimingMean_ = 0;
00135 meTimingRMS_ = 0;
00136 meTriggerTowerEt_ = 0;
00137 meTriggerTowerEmulError_ = 0;
00138 meTriggerTowerTiming_ = 0;
00139 meTriggerTowerNonSingleTiming_ = 0;
00140
00141
00142 meIntegrityErr_ = 0;
00143 meOccupancy1D_ = 0;
00144 meStatusFlagsErr_ = 0;
00145 mePedestalOnlineErr_ = 0;
00146 meLaserL1Err_ = 0;
00147 meLaserL1PNErr_ = 0;
00148 meLaserL2Err_ = 0;
00149 meLaserL2PNErr_ = 0;
00150 meLaserL3Err_ = 0;
00151 meLaserL3PNErr_ = 0;
00152 meLaserL4Err_ = 0;
00153 meLaserL4PNErr_ = 0;
00154
00155
00156 for ( unsigned int i=0; i<superModules_.size(); i++ ) {
00157
00158 int ism = superModules_[i];
00159
00160 hpot01_[ism-1] = 0;
00161 httt01_[ism-1] = 0;
00162 htmt01_[ism-1] = 0;
00163
00164 }
00165
00166 synchErrorThreshold_ = 0.0;
00167
00168 }
00169
00170 EBSummaryClient::~EBSummaryClient() {
00171
00172 }
00173
00174 void EBSummaryClient::beginJob(void) {
00175
00176 dqmStore_ = edm::Service<DQMStore>().operator->();
00177
00178 if ( debug_ ) std::cout << "EBSummaryClient: beginJob" << std::endl;
00179
00180 ievt_ = 0;
00181 jevt_ = 0;
00182
00183 }
00184
00185 void EBSummaryClient::beginRun(void) {
00186
00187 if ( debug_ ) std::cout << "EBSummaryClient: beginRun" << std::endl;
00188
00189 jevt_ = 0;
00190
00191 this->setup();
00192
00193 }
00194
00195 void EBSummaryClient::endJob(void) {
00196
00197 if ( debug_ ) std::cout << "EBSummaryClient: endJob, ievt = " << ievt_ << std::endl;
00198
00199 this->cleanup();
00200
00201 }
00202
00203 void EBSummaryClient::endRun(void) {
00204
00205 if ( debug_ ) std::cout << "EBSummaryClient: endRun, jevt = " << jevt_ << std::endl;
00206
00207 this->cleanup();
00208
00209 }
00210
00211 void EBSummaryClient::setup(void) {
00212
00213 bool integrityClient(false);
00214 bool occupancyClient(false);
00215 bool statusFlagsClient(false);
00216 bool pedestalOnlineClient(false);
00217 bool laserClient(false);
00218 bool pedestalClient(false);
00219 bool testPulseClient(false);
00220 bool timingClient(false);
00221 bool triggerTowerClient(false);
00222
00223 for(unsigned i = 0; i < clients_.size(); i++){
00224
00225 if(dynamic_cast<EBIntegrityClient*>(clients_[i])) integrityClient = true;
00226 if(dynamic_cast<EBOccupancyClient*>(clients_[i])) occupancyClient = true;
00227 if(dynamic_cast<EBStatusFlagsClient*>(clients_[i])) statusFlagsClient = true;
00228 if(dynamic_cast<EBPedestalOnlineClient*>(clients_[i])) pedestalOnlineClient = true;
00229 if(dynamic_cast<EBLaserClient*>(clients_[i])) laserClient = true;
00230 if(dynamic_cast<EBPedestalClient*>(clients_[i])) pedestalClient = true;
00231 if(dynamic_cast<EBTestPulseClient*>(clients_[i])) testPulseClient = true;
00232 if(dynamic_cast<EBTimingClient*>(clients_[i])) timingClient = true;
00233 if(dynamic_cast<EBTriggerTowerClient*>(clients_[i])) triggerTowerClient = true;
00234
00235 }
00236
00237 std::string name;
00238
00239 dqmStore_->setCurrentFolder( prefixME_ + "/EBSummaryClient" );
00240
00241 if(integrityClient){
00242 if(produceReports_){
00243 if ( meIntegrity_ ) dqmStore_->removeElement( meIntegrity_->getName() );
00244 name = "EBIT integrity quality summary";
00245 meIntegrity_ = dqmStore_->book2D(name, name, 360, 0., 360., 170, -85., 85.);
00246 meIntegrity_->setAxisTitle("jphi", 1);
00247 meIntegrity_->setAxisTitle("jeta", 2);
00248
00249 if ( meIntegrityErr_ ) dqmStore_->removeElement( meIntegrityErr_->getName() );
00250 name = "EBIT integrity quality errors summary";
00251 meIntegrityErr_ = dqmStore_->book1D(name, name, 36, 1, 37);
00252 for (int i = 0; i < 36; i++) {
00253 meIntegrityErr_->setBinLabel(i+1, Numbers::sEB(i+1).c_str(), 1);
00254 }
00255 }
00256 else{
00257 if ( meIntegrityPN_ ) dqmStore_->removeElement( meIntegrityPN_->getName() );
00258 name = "EBIT PN integrity quality summary";
00259 meIntegrityPN_ = dqmStore_->book2D(name, name, 90, 0., 90., 20, -10., 10.);
00260 meIntegrityPN_->setAxisTitle("jchannel", 1);
00261 meIntegrityPN_->setAxisTitle("jpseudo-strip", 2);
00262 }
00263 }
00264
00265 if(occupancyClient){
00266 if(produceReports_){
00267 if ( meOccupancy_ ) dqmStore_->removeElement( meOccupancy_->getName() );
00268 name = "EBOT digi occupancy summary";
00269 meOccupancy_ = dqmStore_->book2D(name, name, 360, 0., 360., 170, -85., 85.);
00270 meOccupancy_->setAxisTitle("jphi", 1);
00271 meOccupancy_->setAxisTitle("jeta", 2);
00272
00273 if ( meOccupancy1D_ ) dqmStore_->removeElement( meOccupancy1D_->getName() );
00274 name = "EBOT digi occupancy summary 1D";
00275 meOccupancy1D_ = dqmStore_->book1D(name, name, 36, 1, 37);
00276 for (int i = 0; i < 36; i++) {
00277 meOccupancy1D_->setBinLabel(i+1, Numbers::sEB(i+1).c_str(), 1);
00278 }
00279
00280 if( meRecHitEnergy_ ) dqmStore_->removeElement( meRecHitEnergy_->getName() );
00281 name = "EBOT energy summary";
00282 meRecHitEnergy_ = dqmStore_->book2D(name, name, 360, 0., 360., 170, -85., 85.);
00283 meRecHitEnergy_->setAxisTitle("jphi", 1);
00284 meRecHitEnergy_->setAxisTitle("jeta", 2);
00285 }
00286 else{
00287 if ( meOccupancyPN_ ) dqmStore_->removeElement( meOccupancyPN_->getName() );
00288 name = "EBOT PN digi occupancy summary";
00289 meOccupancyPN_ = dqmStore_->book2D(name, name, 90, 0., 90., 20, -10., 10.);
00290 meOccupancyPN_->setAxisTitle("jchannel", 1);
00291 meOccupancyPN_->setAxisTitle("jpseudo-strip", 2);
00292 }
00293
00294 }
00295
00296 if(statusFlagsClient){
00297 if ( meStatusFlags_ ) dqmStore_->removeElement( meStatusFlags_->getName() );
00298 name = "EBSFT front-end status summary";
00299 meStatusFlags_ = dqmStore_->book2D(name, name, 72, 0., 72., 34, -17., 17.);
00300 meStatusFlags_->setAxisTitle("jphi'", 1);
00301 meStatusFlags_->setAxisTitle("jeta'", 2);
00302
00303 if ( meStatusFlagsErr_ ) dqmStore_->removeElement( meStatusFlagsErr_->getName() );
00304 name = "EBSFT front-end status errors summary";
00305 meStatusFlagsErr_ = dqmStore_->book1D(name, name, 36, 1, 37);
00306 for (int i = 0; i < 36; i++) {
00307 meStatusFlagsErr_->setBinLabel(i+1, Numbers::sEB(i+1).c_str(), 1);
00308 }
00309 }
00310
00311 if(pedestalOnlineClient){
00312 if ( mePedestalOnline_ ) dqmStore_->removeElement( mePedestalOnline_->getName() );
00313 name = "EBPOT pedestal quality summary G12";
00314 mePedestalOnline_ = dqmStore_->book2D(name, name, 360, 0., 360., 170, -85., 85.);
00315 mePedestalOnline_->setAxisTitle("jphi", 1);
00316 mePedestalOnline_->setAxisTitle("jeta", 2);
00317
00318 if ( mePedestalOnlineErr_ ) dqmStore_->removeElement( mePedestalOnlineErr_->getName() );
00319 name = "EBPOT pedestal quality errors summary G12";
00320 mePedestalOnlineErr_ = dqmStore_->book1D(name, name, 36, 1, 37);
00321 for (int i = 0; i < 36; i++) {
00322 mePedestalOnlineErr_->setBinLabel(i+1, Numbers::sEB(i+1).c_str(), 1);
00323 }
00324
00325 if ( mePedestalOnlineRMSMap_ ) dqmStore_->removeElement( mePedestalOnlineRMSMap_->getName() );
00326 name = "EBPOT pedestal G12 RMS map";
00327 mePedestalOnlineRMSMap_ = dqmStore_->book2D(name, name, 360, 0., 360., 170, -85., 85.);
00328 mePedestalOnlineRMSMap_->setAxisTitle("jphi", 1);
00329 mePedestalOnlineRMSMap_->setAxisTitle("jeta", 2);
00330
00331 if ( mePedestalOnlineMean_ ) dqmStore_->removeElement( mePedestalOnlineMean_->getName() );
00332 name = "EBPOT pedestal G12 mean";
00333 mePedestalOnlineMean_ = dqmStore_->bookProfile(name, name, 36, 1, 37, 100, 150., 250.);
00334 for (int i = 0; i < 36; i++) {
00335 mePedestalOnlineMean_->setBinLabel(i+1, Numbers::sEB(i+1).c_str(), 1);
00336 }
00337
00338 if ( mePedestalOnlineRMS_ ) dqmStore_->removeElement( mePedestalOnlineRMS_->getName() );
00339 name = "EBPOT pedestal G12 rms";
00340 mePedestalOnlineRMS_ = dqmStore_->bookProfile(name, name, 36, 1, 37, 100, 0., 10.);
00341 for (int i = 0; i < 36; i++) {
00342 mePedestalOnlineRMS_->setBinLabel(i+1, Numbers::sEB(i+1).c_str(), 1);
00343 }
00344 }
00345
00346 if(laserClient){
00347
00348 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 1) != laserWavelengths_.end() ) {
00349
00350 if ( meLaserL1_ ) dqmStore_->removeElement( meLaserL1_->getName() );
00351 name = "EBLT laser quality summary L1";
00352 meLaserL1_ = dqmStore_->book2D(name, name, 360, 0., 360., 170, -85., 85.);
00353 meLaserL1_->setAxisTitle("jphi", 1);
00354 meLaserL1_->setAxisTitle("jeta", 2);
00355
00356 if ( meLaserL1Err_ ) dqmStore_->removeElement( meLaserL1Err_->getName() );
00357 name = "EBLT laser quality errors summary L1";
00358 meLaserL1Err_ = dqmStore_->book1D(name, name, 36, 1, 37);
00359 for (int i = 0; i < 36; i++) {
00360 meLaserL1Err_->setBinLabel(i+1, Numbers::sEB(i+1).c_str(), 1);
00361 }
00362
00363 if ( meLaserL1PN_ ) dqmStore_->removeElement( meLaserL1PN_->getName() );
00364 name = "EBLT PN laser quality summary L1";
00365 meLaserL1PN_ = dqmStore_->book2D(name, name, 90, 0., 90., 20, -10., 10.);
00366 meLaserL1PN_->setAxisTitle("jchannel", 1);
00367 meLaserL1PN_->setAxisTitle("jpseudo-strip", 2);
00368
00369 if ( meLaserL1PNErr_ ) dqmStore_->removeElement( meLaserL1PNErr_->getName() );
00370 name = "EBLT PN laser quality errors summary L1";
00371 meLaserL1PNErr_ = dqmStore_->book1D(name, name, 36, 1, 37);
00372 for (int i = 0; i < 36; i++) {
00373 meLaserL1PNErr_->setBinLabel(i+1, Numbers::sEB(i+1).c_str(), 1);
00374 }
00375
00376 if ( meLaserL1Ampl_ ) dqmStore_->removeElement( meLaserL1Ampl_->getName() );
00377 name = "EBLT laser L1 amplitude summary";
00378 meLaserL1Ampl_ = dqmStore_->bookProfile(name, name, 36, 1, 37, 4096, 0., 4096., "s");
00379 for (int i = 0; i < 36; i++) {
00380 meLaserL1Ampl_->setBinLabel(i+1, Numbers::sEB(i+1).c_str(), 1);
00381 }
00382
00383 if ( meLaserL1Timing_ ) dqmStore_->removeElement( meLaserL1Timing_->getName() );
00384 name = "EBLT laser L1 timing summary";
00385 meLaserL1Timing_ = dqmStore_->bookProfile(name, name, 36, 1, 37, 100, 0., 10., "s");
00386 for (int i = 0; i < 36; i++) {
00387 meLaserL1Timing_->setBinLabel(i+1, Numbers::sEB(i+1).c_str(), 1);
00388 }
00389
00390 if ( meLaserL1AmplOverPN_ ) dqmStore_->removeElement( meLaserL1AmplOverPN_->getName() );
00391 name = "EBLT laser L1 amplitude over PN summary";
00392 meLaserL1AmplOverPN_ = dqmStore_->bookProfile(name, name, 36, 1, 37, 4096, 0., 4096.*12., "s");
00393 for (int i = 0; i < 36; i++) {
00394 meLaserL1AmplOverPN_->setBinLabel(i+1, Numbers::sEB(i+1).c_str(), 1);
00395 }
00396
00397 }
00398
00399 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 2) != laserWavelengths_.end() ) {
00400
00401 if ( meLaserL2_ ) dqmStore_->removeElement( meLaserL2_->getName() );
00402 name = "EBLT laser quality summary L2";
00403 meLaserL2_ = dqmStore_->book2D(name, name, 360, 0., 360., 170, -85., 85.);
00404 meLaserL2_->setAxisTitle("jphi", 1);
00405 meLaserL2_->setAxisTitle("jeta", 2);
00406
00407 if ( meLaserL2Err_ ) dqmStore_->removeElement( meLaserL2Err_->getName() );
00408 name = "EBLT laser quality errors summary L2";
00409 meLaserL2Err_ = dqmStore_->book1D(name, name, 36, 1, 37);
00410 for (int i = 0; i < 36; i++) {
00411 meLaserL2Err_->setBinLabel(i+1, Numbers::sEB(i+1).c_str(), 1);
00412 }
00413
00414 if ( meLaserL2PN_ ) dqmStore_->removeElement( meLaserL2PN_->getName() );
00415 name = "EBLT PN laser quality summary L2";
00416 meLaserL2PN_ = dqmStore_->book2D(name, name, 90, 0., 90., 20, -10., 10.);
00417 meLaserL2PN_->setAxisTitle("jchannel", 1);
00418 meLaserL2PN_->setAxisTitle("jpseudo-strip", 2);
00419
00420 if ( meLaserL2PNErr_ ) dqmStore_->removeElement( meLaserL2PNErr_->getName() );
00421 name = "EBLT PN laser quality errors summary L2";
00422 meLaserL2PNErr_ = dqmStore_->book1D(name, name, 36, 1, 37);
00423 for (int i = 0; i < 36; i++) {
00424 meLaserL2PNErr_->setBinLabel(i+1, Numbers::sEB(i+1).c_str(), 1);
00425 }
00426
00427 if ( meLaserL2Ampl_ ) dqmStore_->removeElement( meLaserL2Ampl_->getName() );
00428 name = "EBLT laser L2 amplitude summary";
00429 meLaserL2Ampl_ = dqmStore_->bookProfile(name, name, 36, 1, 37, 4096, 0., 4096., "s");
00430 for (int i = 0; i < 36; i++) {
00431 meLaserL2Ampl_->setBinLabel(i+1, Numbers::sEB(i+1).c_str(), 1);
00432 }
00433
00434 if ( meLaserL2Timing_ ) dqmStore_->removeElement( meLaserL2Timing_->getName() );
00435 name = "EBLT laser L2 timing summary";
00436 meLaserL2Timing_ = dqmStore_->bookProfile(name, name, 36, 1, 37, 100, 0., 10., "s");
00437 for (int i = 0; i < 36; i++) {
00438 meLaserL2Timing_->setBinLabel(i+1, Numbers::sEB(i+1).c_str(), 1);
00439 }
00440
00441 if ( meLaserL2AmplOverPN_ ) dqmStore_->removeElement( meLaserL2AmplOverPN_->getName() );
00442 name = "EBLT laser L2 amplitude over PN summary";
00443 meLaserL2AmplOverPN_ = dqmStore_->bookProfile(name, name, 36, 1, 37, 4096, 0., 4096.*12., "s");
00444 for (int i = 0; i < 36; i++) {
00445 meLaserL2AmplOverPN_->setBinLabel(i+1, Numbers::sEB(i+1).c_str(), 1);
00446 }
00447
00448 }
00449
00450 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 3) != laserWavelengths_.end() ) {
00451
00452 if ( meLaserL3_ ) dqmStore_->removeElement( meLaserL3_->getName() );
00453 name = "EBLT laser quality summary L3";
00454 meLaserL3_ = dqmStore_->book2D(name, name, 360, 0., 360., 170, -85., 85.);
00455 meLaserL3_->setAxisTitle("jphi", 1);
00456 meLaserL3_->setAxisTitle("jeta", 2);
00457
00458 if ( meLaserL3Err_ ) dqmStore_->removeElement( meLaserL3Err_->getName() );
00459 name = "EBLT laser quality errors summary L3";
00460 meLaserL3Err_ = dqmStore_->book1D(name, name, 36, 1, 37);
00461 for (int i = 0; i < 36; i++) {
00462 meLaserL3Err_->setBinLabel(i+1, Numbers::sEB(i+1).c_str(), 1);
00463 }
00464
00465 if ( meLaserL3PN_ ) dqmStore_->removeElement( meLaserL3PN_->getName() );
00466 name = "EBLT PN laser quality summary L3";
00467 meLaserL3PN_ = dqmStore_->book2D(name, name, 90, 0., 90., 20, -10., 10.);
00468 meLaserL3PN_->setAxisTitle("jchannel", 1);
00469 meLaserL3PN_->setAxisTitle("jpseudo-strip", 2);
00470
00471 if ( meLaserL3PNErr_ ) dqmStore_->removeElement( meLaserL3PNErr_->getName() );
00472 name = "EBLT PN laser quality errors summary L3";
00473 meLaserL3PNErr_ = dqmStore_->book1D(name, name, 36, 1, 37);
00474 for (int i = 0; i < 36; i++) {
00475 meLaserL3PNErr_->setBinLabel(i+1, Numbers::sEB(i+1).c_str(), 1);
00476 }
00477
00478 if ( meLaserL3Ampl_ ) dqmStore_->removeElement( meLaserL3Ampl_->getName() );
00479 name = "EBLT laser L3 amplitude summary";
00480 meLaserL3Ampl_ = dqmStore_->bookProfile(name, name, 36, 1, 37, 4096, 0., 4096., "s");
00481 for (int i = 0; i < 36; i++) {
00482 meLaserL3Ampl_->setBinLabel(i+1, Numbers::sEB(i+1).c_str(), 1);
00483 }
00484
00485 if ( meLaserL3Timing_ ) dqmStore_->removeElement( meLaserL3Timing_->getName() );
00486 name = "EBLT laser L3 timing summary";
00487 meLaserL3Timing_ = dqmStore_->bookProfile(name, name, 36, 1, 37, 100, 0., 10., "s");
00488 for (int i = 0; i < 36; i++) {
00489 meLaserL3Timing_->setBinLabel(i+1, Numbers::sEB(i+1).c_str(), 1);
00490 }
00491
00492 if ( meLaserL3AmplOverPN_ ) dqmStore_->removeElement( meLaserL3AmplOverPN_->getName() );
00493 name = "EBLT laser L3 amplitude over PN summary";
00494 meLaserL3AmplOverPN_ = dqmStore_->bookProfile(name, name, 36, 1, 37, 4096, 0., 4096.*12., "s");
00495 for (int i = 0; i < 36; i++) {
00496 meLaserL3AmplOverPN_->setBinLabel(i+1, Numbers::sEB(i+1).c_str(), 1);
00497 }
00498
00499 }
00500
00501 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 4) != laserWavelengths_.end() ) {
00502
00503 if ( meLaserL4_ ) dqmStore_->removeElement( meLaserL4_->getName() );
00504 name = "EBLT laser quality summary L4";
00505 meLaserL4_ = dqmStore_->book2D(name, name, 360, 0., 360., 170, -85., 85.);
00506 meLaserL4_->setAxisTitle("jphi", 1);
00507 meLaserL4_->setAxisTitle("jeta", 2);
00508
00509 if ( meLaserL4Err_ ) dqmStore_->removeElement( meLaserL4Err_->getName() );
00510 name = "EBLT laser quality errors summary L4";
00511 meLaserL4Err_ = dqmStore_->book1D(name, name, 36, 1, 37);
00512 for (int i = 0; i < 36; i++) {
00513 meLaserL4Err_->setBinLabel(i+1, Numbers::sEB(i+1).c_str(), 1);
00514 }
00515
00516 if ( meLaserL4PN_ ) dqmStore_->removeElement( meLaserL4PN_->getName() );
00517 name = "EBLT PN laser quality summary L4";
00518 meLaserL4PN_ = dqmStore_->book2D(name, name, 90, 0., 90., 20, -10., 10.);
00519 meLaserL4PN_->setAxisTitle("jchannel", 1);
00520 meLaserL4PN_->setAxisTitle("jpseudo-strip", 2);
00521
00522 if ( meLaserL4PNErr_ ) dqmStore_->removeElement( meLaserL4PNErr_->getName() );
00523 name = "EBLT PN laser quality errors summary L4";
00524 meLaserL4PNErr_ = dqmStore_->book1D(name, name, 36, 1, 37);
00525 for (int i = 0; i < 36; i++) {
00526 meLaserL4PNErr_->setBinLabel(i+1, Numbers::sEB(i+1).c_str(), 1);
00527 }
00528
00529 if ( meLaserL4Ampl_ ) dqmStore_->removeElement( meLaserL4Ampl_->getName() );
00530 name = "EBLT laser L4 amplitude summary";
00531 meLaserL4Ampl_ = dqmStore_->bookProfile(name, name, 36, 1, 37, 4096, 0., 4096., "s");
00532 for (int i = 0; i < 36; i++) {
00533 meLaserL4Ampl_->setBinLabel(i+1, Numbers::sEB(i+1).c_str(), 1);
00534 }
00535
00536 if ( meLaserL4Timing_ ) dqmStore_->removeElement( meLaserL4Timing_->getName() );
00537 name = "EBLT laser L4 timing summary";
00538 meLaserL4Timing_ = dqmStore_->bookProfile(name, name, 36, 1, 37, 100, 0., 10., "s");
00539 for (int i = 0; i < 36; i++) {
00540 meLaserL4Timing_->setBinLabel(i+1, Numbers::sEB(i+1).c_str(), 1);
00541 }
00542
00543 if ( meLaserL4AmplOverPN_ ) dqmStore_->removeElement( meLaserL4AmplOverPN_->getName() );
00544 name = "EBLT laser L4 amplitude over PN summary";
00545 meLaserL4AmplOverPN_ = dqmStore_->bookProfile(name, name, 36, 1, 37, 4096, 0., 4096.*12., "s");
00546 for (int i = 0; i < 36; i++) {
00547 meLaserL4AmplOverPN_->setBinLabel(i+1, Numbers::sEB(i+1).c_str(), 1);
00548 }
00549
00550 }
00551 }
00552
00553 if(pedestalClient){
00554 if (find(MGPAGains_.begin(), MGPAGains_.end(), 1) != MGPAGains_.end() ) {
00555
00556 if( mePedestalG01_ ) dqmStore_->removeElement( mePedestalG01_->getName() );
00557 name = "EBPT pedestal quality G01 summary";
00558 mePedestalG01_ = dqmStore_->book2D(name, name, 360, 0., 360., 170, -85., 85.);
00559 mePedestalG01_->setAxisTitle("jphi", 1);
00560 mePedestalG01_->setAxisTitle("jeta", 2);
00561
00562 }
00563
00564 if (find(MGPAGains_.begin(), MGPAGains_.end(), 6) != MGPAGains_.end() ) {
00565
00566 if( mePedestalG06_ ) dqmStore_->removeElement( mePedestalG06_->getName() );
00567 name = "EBPT pedestal quality G06 summary";
00568 mePedestalG06_ = dqmStore_->book2D(name, name, 360, 0., 360., 170, -85., 85.);
00569 mePedestalG06_->setAxisTitle("jphi", 1);
00570 mePedestalG06_->setAxisTitle("jeta", 2);
00571
00572 }
00573
00574 if (find(MGPAGains_.begin(), MGPAGains_.end(), 12) != MGPAGains_.end() ) {
00575
00576 if( mePedestalG12_ ) dqmStore_->removeElement( mePedestalG12_->getName() );
00577 name = "EBPT pedestal quality G12 summary";
00578 mePedestalG12_ = dqmStore_->book2D(name, name, 360, 0., 360., 170, -85., 85.);
00579 mePedestalG12_->setAxisTitle("jphi", 1);
00580 mePedestalG12_->setAxisTitle("jeta", 2);
00581
00582 }
00583
00584 if (find(MGPAGainsPN_.begin(), MGPAGainsPN_.end(), 1) != MGPAGainsPN_.end() ) {
00585
00586 if( mePedestalPNG01_ ) dqmStore_->removeElement( mePedestalPNG01_->getName() );
00587 name = "EBPT PN pedestal quality G01 summary";
00588 mePedestalPNG01_ = dqmStore_->book2D(name, name, 90, 0., 90., 20, -10, 10.);
00589 mePedestalPNG01_->setAxisTitle("jchannel", 1);
00590 mePedestalPNG01_->setAxisTitle("jpseudo-strip", 2);
00591
00592 }
00593
00594 if (find(MGPAGainsPN_.begin(), MGPAGainsPN_.end(), 16) != MGPAGainsPN_.end() ) {
00595
00596 if( mePedestalPNG16_ ) dqmStore_->removeElement( mePedestalPNG16_->getName() );
00597 name = "EBPT PN pedestal quality G16 summary";
00598 mePedestalPNG16_ = dqmStore_->book2D(name, name, 90, 0., 90., 20, -10, 10.);
00599 mePedestalPNG16_->setAxisTitle("jchannel", 1);
00600 mePedestalPNG16_->setAxisTitle("jpseudo-strip", 2);
00601
00602 }
00603 }
00604
00605 if(testPulseClient){
00606 if (find(MGPAGains_.begin(), MGPAGains_.end(), 1) != MGPAGains_.end() ) {
00607
00608 if( meTestPulseG01_ ) dqmStore_->removeElement( meTestPulseG01_->getName() );
00609 name = "EBTPT test pulse quality G01 summary";
00610 meTestPulseG01_ = dqmStore_->book2D(name, name, 360, 0., 360., 170, -85., 85.);
00611 meTestPulseG01_->setAxisTitle("jphi", 1);
00612 meTestPulseG01_->setAxisTitle("jeta", 2);
00613
00614 }
00615
00616 if (find(MGPAGains_.begin(), MGPAGains_.end(), 6) != MGPAGains_.end() ) {
00617
00618 if( meTestPulseG06_ ) dqmStore_->removeElement( meTestPulseG06_->getName() );
00619 name = "EBTPT test pulse quality G06 summary";
00620 meTestPulseG06_ = dqmStore_->book2D(name, name, 360, 0., 360., 170, -85., 85.);
00621 meTestPulseG06_->setAxisTitle("jphi", 1);
00622 meTestPulseG06_->setAxisTitle("jeta", 2);
00623
00624 }
00625
00626 if (find(MGPAGains_.begin(), MGPAGains_.end(), 12) != MGPAGains_.end() ) {
00627
00628 if( meTestPulseG12_ ) dqmStore_->removeElement( meTestPulseG12_->getName() );
00629 name = "EBTPT test pulse quality G12 summary";
00630 meTestPulseG12_ = dqmStore_->book2D(name, name, 360, 0., 360., 170, -85., 85.);
00631 meTestPulseG12_->setAxisTitle("jphi", 1);
00632 meTestPulseG12_->setAxisTitle("jeta", 2);
00633
00634 }
00635
00636 if (find(MGPAGainsPN_.begin(), MGPAGainsPN_.end(), 1) != MGPAGainsPN_.end() ) {
00637
00638 if( meTestPulsePNG01_ ) dqmStore_->removeElement( meTestPulsePNG01_->getName() );
00639 name = "EBTPT PN test pulse quality G01 summary";
00640 meTestPulsePNG01_ = dqmStore_->book2D(name, name, 90, 0., 90., 20, -10., 10.);
00641 meTestPulsePNG01_->setAxisTitle("jchannel", 1);
00642 meTestPulsePNG01_->setAxisTitle("jpseudo-strip", 2);
00643
00644 }
00645
00646 if (find(MGPAGainsPN_.begin(), MGPAGainsPN_.end(), 16) != MGPAGainsPN_.end() ) {
00647
00648 if( meTestPulsePNG16_ ) dqmStore_->removeElement( meTestPulsePNG16_->getName() );
00649 name = "EBTPT PN test pulse quality G16 summary";
00650 meTestPulsePNG16_ = dqmStore_->book2D(name, name, 90, 0., 90., 20, -10., 10.);
00651 meTestPulsePNG16_->setAxisTitle("jchannel", 1);
00652 meTestPulsePNG16_->setAxisTitle("jpseudo-strip", 2);
00653
00654 }
00655
00656 if (find(MGPAGains_.begin(), MGPAGains_.end(), 1) != MGPAGains_.end() ) {
00657
00658 if( meTestPulseAmplG01_ ) dqmStore_->removeElement( meTestPulseAmplG01_->getName() );
00659 name = "EBTPT test pulse amplitude G01 summary";
00660 meTestPulseAmplG01_ = dqmStore_->bookProfile(name, name, 36, 1, 37, 4096, 0., 4096.*12., "s");
00661 for (int i = 0; i < 36; i++) {
00662 meTestPulseAmplG01_->setBinLabel(i+1, Numbers::sEB(i+1).c_str(), 1);
00663 }
00664
00665 }
00666
00667 if (find(MGPAGains_.begin(), MGPAGains_.end(), 6) != MGPAGains_.end() ) {
00668
00669 if( meTestPulseAmplG06_ ) dqmStore_->removeElement( meTestPulseAmplG06_->getName() );
00670 name = "EBTPT test pulse amplitude G06 summary";
00671 meTestPulseAmplG06_ = dqmStore_->bookProfile(name, name, 36, 1, 37, 4096, 0., 4096.*12., "s");
00672 for (int i = 0; i < 36; i++) {
00673 meTestPulseAmplG06_->setBinLabel(i+1, Numbers::sEB(i+1).c_str(), 1);
00674 }
00675
00676 }
00677
00678 if (find(MGPAGains_.begin(), MGPAGains_.end(), 12) != MGPAGains_.end() ) {
00679
00680 if( meTestPulseAmplG12_ ) dqmStore_->removeElement( meTestPulseAmplG12_->getName() );
00681 name = "EBTPT test pulse amplitude G12 summary";
00682 meTestPulseAmplG12_ = dqmStore_->bookProfile(name, name, 36, 1, 37, 4096, 0., 4096.*12., "s");
00683 for (int i = 0; i < 36; i++) {
00684 meTestPulseAmplG12_->setBinLabel(i+1, Numbers::sEB(i+1).c_str(), 1);
00685 }
00686
00687 }
00688 }
00689
00690 if(timingClient){
00691 if( meTiming_ ) dqmStore_->removeElement( meTiming_->getName() );
00692 name = "EBTMT timing quality summary";
00693 meTiming_ = dqmStore_->book2D(name, name, 72, 0., 360., 34, -85., 85.);
00694 meTiming_->setAxisTitle("jphi", 1);
00695 meTiming_->setAxisTitle("jeta", 2);
00696
00697 if( meTimingMean1D_ ) dqmStore_->removeElement( meTimingMean1D_->getName() );
00698 name = "EBTMT timing mean 1D summary";
00699 meTimingMean1D_ = dqmStore_->book1D(name, name, 100, -25., 25.);
00700 meTimingMean1D_->setAxisTitle("mean (ns)", 1);
00701
00702 if( meTimingRMS1D_ ) dqmStore_->removeElement( meTimingRMS1D_->getName() );
00703 name = "EBTMT timing rms 1D summary";
00704 meTimingRMS1D_ = dqmStore_->book1D(name, name, 100, 0.0, 10.0);
00705 meTimingRMS1D_->setAxisTitle("rms (ns)", 1);
00706
00707 if ( meTimingMean_ ) dqmStore_->removeElement( meTimingMean_->getName() );
00708 name = "EBTMT timing mean";
00709 meTimingMean_ = dqmStore_->bookProfile(name, name, 36, 1, 37, -20., 20.,"");
00710 for (int i = 0; i < 36; i++) {
00711 meTimingMean_->setBinLabel(i+1, Numbers::sEB(i+1).c_str(), 1);
00712 }
00713 meTimingMean_->setAxisTitle("mean (ns)", 2);
00714
00715 if ( meTimingRMS_ ) dqmStore_->removeElement( meTimingRMS_->getName() );
00716 name = "EBTMT timing rms";
00717 meTimingRMS_ = dqmStore_->bookProfile(name, name, 36, 1, 37, 100, 0., 10.,"");
00718 for (int i = 0; i < 36; i++) {
00719 meTimingRMS_->setBinLabel(i+1, Numbers::sEB(i+1).c_str(), 1);
00720 }
00721 meTimingRMS_->setAxisTitle("rms (ns)", 2);
00722 }
00723
00724 if(triggerTowerClient){
00725 if( meTriggerTowerEt_ ) dqmStore_->removeElement( meTriggerTowerEt_->getName() );
00726 name = "EBTTT Et trigger tower summary";
00727 meTriggerTowerEt_ = dqmStore_->book2D(name, name, 72, 0., 72., 34, -17., 17.);
00728 meTriggerTowerEt_->setAxisTitle("jphi'", 1);
00729 meTriggerTowerEt_->setAxisTitle("jeta'", 2);
00730
00731 if( meTriggerTowerEmulError_ ) dqmStore_->removeElement( meTriggerTowerEmulError_->getName() );
00732 name = "EBTTT emulator error quality summary";
00733 meTriggerTowerEmulError_ = dqmStore_->book2D(name, name, 72, 0., 72., 34, -17., 17.);
00734 meTriggerTowerEmulError_->setAxisTitle("jphi'", 1);
00735 meTriggerTowerEmulError_->setAxisTitle("jeta'", 2);
00736
00737 if( meTriggerTowerTiming_ ) dqmStore_->removeElement( meTriggerTowerTiming_->getName() );
00738 name = "EBTTT Trigger Primitives Timing summary";
00739 meTriggerTowerTiming_ = dqmStore_->book2D(name, name, 72, 0., 72., 34, -17., 17.);
00740 meTriggerTowerTiming_->setAxisTitle("jphi'", 1);
00741 meTriggerTowerTiming_->setAxisTitle("jeta'", 2);
00742 meTriggerTowerTiming_->setAxisTitle("TP data matching emulator", 3);
00743
00744 if( meTriggerTowerNonSingleTiming_ ) dqmStore_->removeElement( meTriggerTowerNonSingleTiming_->getName() );
00745 name = "EBTTT Trigger Primitives Non Single Timing summary";
00746 meTriggerTowerNonSingleTiming_ = dqmStore_->book2D(name, name, 72, 0., 72., 34, -17., 17.);
00747 meTriggerTowerNonSingleTiming_->setAxisTitle("jphi'", 1);
00748 meTriggerTowerNonSingleTiming_->setAxisTitle("jeta'", 2);
00749 meTriggerTowerNonSingleTiming_->setAxisTitle("fraction", 3);
00750 }
00751
00752 if(meIntegrity_ && mePedestalOnline_ && meTiming_ && meStatusFlags_ && meTriggerTowerEmulError_){
00753 if( meGlobalSummary_ ) dqmStore_->removeElement( meGlobalSummary_->getName() );
00754 name = "EB global summary";
00755 meGlobalSummary_ = dqmStore_->book2D(name, name, 360, 0., 360., 170, -85., 85.);
00756 meGlobalSummary_->setAxisTitle("jphi", 1);
00757 meGlobalSummary_->setAxisTitle("jeta", 2);
00758 }
00759 }
00760
00761 void EBSummaryClient::cleanup(void) {
00762
00763 if ( ! enableCleanup_ ) return;
00764
00765 for ( unsigned int i=0; i<superModules_.size(); i++ ) {
00766
00767 int ism = superModules_[i];
00768
00769 if ( cloneME_ ) {
00770 if ( hpot01_[ism-1] ) delete hpot01_[ism-1];
00771 if ( httt01_[ism-1] ) delete httt01_[ism-1];
00772 }
00773
00774 hpot01_[ism-1] = 0;
00775 httt01_[ism-1] = 0;
00776
00777 }
00778
00779 dqmStore_->setCurrentFolder( prefixME_ + "/EBSummaryClient" );
00780
00781 if ( meIntegrity_ ) dqmStore_->removeElement( meIntegrity_->getName() );
00782 meIntegrity_ = 0;
00783
00784 if ( meIntegrityErr_ ) dqmStore_->removeElement( meIntegrityErr_->getName() );
00785 meIntegrityErr_ = 0;
00786
00787 if ( meIntegrityPN_ ) dqmStore_->removeElement( meIntegrityPN_->getName() );
00788 meIntegrityPN_ = 0;
00789
00790 if ( meOccupancy_ ) dqmStore_->removeElement( meOccupancy_->getName() );
00791 meOccupancy_ = 0;
00792
00793 if ( meOccupancy1D_ ) dqmStore_->removeElement( meOccupancy1D_->getName() );
00794 meOccupancy1D_ = 0;
00795
00796 if ( meOccupancyPN_ ) dqmStore_->removeElement( meOccupancyPN_->getName() );
00797 meOccupancyPN_ = 0;
00798
00799 if ( meStatusFlags_ ) dqmStore_->removeElement( meStatusFlags_->getName() );
00800 meStatusFlags_ = 0;
00801
00802 if ( meStatusFlagsErr_ ) dqmStore_->removeElement( meStatusFlagsErr_->getName() );
00803 meStatusFlagsErr_ = 0;
00804
00805 if ( mePedestalOnline_ ) dqmStore_->removeElement( mePedestalOnline_->getName() );
00806 mePedestalOnline_ = 0;
00807
00808 if ( mePedestalOnlineErr_ ) dqmStore_->removeElement( mePedestalOnlineErr_->getName() );
00809 mePedestalOnlineErr_ = 0;
00810
00811 if ( mePedestalOnlineMean_ ) dqmStore_->removeElement( mePedestalOnlineMean_->getName() );
00812 mePedestalOnlineMean_ = 0;
00813
00814 if ( mePedestalOnlineRMS_ ) dqmStore_->removeElement( mePedestalOnlineRMS_->getName() );
00815 mePedestalOnlineRMS_ = 0;
00816
00817 if ( mePedestalOnlineRMSMap_ ) dqmStore_->removeElement( mePedestalOnlineRMSMap_->getName() );
00818 mePedestalOnlineRMSMap_ = 0;
00819
00820 if ( meLaserL1_ ) dqmStore_->removeElement( meLaserL1_->getName() );
00821 meLaserL1_ = 0;
00822
00823 if ( meLaserL1Err_ ) dqmStore_->removeElement( meLaserL1Err_->getName() );
00824 meLaserL1Err_ = 0;
00825
00826 if ( meLaserL1Ampl_ ) dqmStore_->removeElement( meLaserL1Ampl_->getName() );
00827 meLaserL1Ampl_ = 0;
00828
00829 if ( meLaserL1Timing_ ) dqmStore_->removeElement( meLaserL1Timing_->getName() );
00830 meLaserL1Timing_ = 0;
00831
00832 if ( meLaserL1AmplOverPN_ ) dqmStore_->removeElement( meLaserL1AmplOverPN_->getName() );
00833 meLaserL1AmplOverPN_ = 0;
00834
00835 if ( meLaserL1PN_ ) dqmStore_->removeElement( meLaserL1PN_->getName() );
00836 meLaserL1PN_ = 0;
00837
00838 if ( meLaserL1PNErr_ ) dqmStore_->removeElement( meLaserL1PNErr_->getName() );
00839 meLaserL1PNErr_ = 0;
00840
00841 if ( meLaserL2_ ) dqmStore_->removeElement( meLaserL2_->getName() );
00842 meLaserL2_ = 0;
00843
00844 if ( meLaserL2Err_ ) dqmStore_->removeElement( meLaserL2Err_->getName() );
00845 meLaserL2Err_ = 0;
00846
00847 if ( meLaserL2Ampl_ ) dqmStore_->removeElement( meLaserL2Ampl_->getName() );
00848 meLaserL2Ampl_ = 0;
00849
00850 if ( meLaserL2Timing_ ) dqmStore_->removeElement( meLaserL2Timing_->getName() );
00851 meLaserL2Timing_ = 0;
00852
00853 if ( meLaserL2AmplOverPN_ ) dqmStore_->removeElement( meLaserL2AmplOverPN_->getName() );
00854 meLaserL2AmplOverPN_ = 0;
00855
00856 if ( meLaserL2PN_ ) dqmStore_->removeElement( meLaserL2PN_->getName() );
00857 meLaserL2PN_ = 0;
00858
00859 if ( meLaserL2PNErr_ ) dqmStore_->removeElement( meLaserL2PNErr_->getName() );
00860 meLaserL2PNErr_ = 0;
00861
00862 if ( meLaserL3_ ) dqmStore_->removeElement( meLaserL3_->getName() );
00863 meLaserL3_ = 0;
00864
00865 if ( meLaserL3Err_ ) dqmStore_->removeElement( meLaserL3Err_->getName() );
00866 meLaserL3Err_ = 0;
00867
00868 if ( meLaserL3Ampl_ ) dqmStore_->removeElement( meLaserL3Ampl_->getName() );
00869 meLaserL3Ampl_ = 0;
00870
00871 if ( meLaserL3Timing_ ) dqmStore_->removeElement( meLaserL3Timing_->getName() );
00872 meLaserL3Timing_ = 0;
00873
00874 if ( meLaserL3AmplOverPN_ ) dqmStore_->removeElement( meLaserL3AmplOverPN_->getName() );
00875 meLaserL3AmplOverPN_ = 0;
00876
00877 if ( meLaserL3PN_ ) dqmStore_->removeElement( meLaserL3PN_->getName() );
00878 meLaserL3PN_ = 0;
00879
00880 if ( meLaserL3PNErr_ ) dqmStore_->removeElement( meLaserL3PNErr_->getName() );
00881 meLaserL3PNErr_ = 0;
00882
00883 if ( meLaserL4_ ) dqmStore_->removeElement( meLaserL4_->getName() );
00884 meLaserL4_ = 0;
00885
00886 if ( meLaserL4Err_ ) dqmStore_->removeElement( meLaserL4Err_->getName() );
00887 meLaserL4Err_ = 0;
00888
00889 if ( meLaserL4Ampl_ ) dqmStore_->removeElement( meLaserL4Ampl_->getName() );
00890 meLaserL4Ampl_ = 0;
00891
00892 if ( meLaserL4Timing_ ) dqmStore_->removeElement( meLaserL4Timing_->getName() );
00893 meLaserL4Timing_ = 0;
00894
00895 if ( meLaserL4AmplOverPN_ ) dqmStore_->removeElement( meLaserL4AmplOverPN_->getName() );
00896 meLaserL4AmplOverPN_ = 0;
00897
00898 if ( meLaserL4PN_ ) dqmStore_->removeElement( meLaserL4PN_->getName() );
00899 meLaserL4PN_ = 0;
00900
00901 if ( meLaserL4PNErr_ ) dqmStore_->removeElement( meLaserL4PNErr_->getName() );
00902 meLaserL4PNErr_ = 0;
00903
00904 if ( mePedestalG01_ ) dqmStore_->removeElement( mePedestalG01_->getName() );
00905 mePedestalG01_ = 0;
00906
00907 if ( mePedestalG06_ ) dqmStore_->removeElement( mePedestalG06_->getName() );
00908 mePedestalG06_ = 0;
00909
00910 if ( mePedestalG12_ ) dqmStore_->removeElement( mePedestalG12_->getName() );
00911 mePedestalG12_ = 0;
00912
00913 if ( meTestPulseG01_ ) dqmStore_->removeElement( meTestPulseG01_->getName() );
00914 meTestPulseG01_ = 0;
00915
00916 if ( meTestPulseG06_ ) dqmStore_->removeElement( meTestPulseG06_->getName() );
00917 meTestPulseG06_ = 0;
00918
00919 if ( meTestPulseG12_ ) dqmStore_->removeElement( meTestPulseG12_->getName() );
00920 meTestPulseG12_ = 0;
00921
00922 if ( meTestPulseG01_ ) dqmStore_->removeElement( meTestPulseG01_->getName() );
00923 meTestPulseG01_ = 0;
00924
00925 if ( meTestPulseAmplG01_ ) dqmStore_->removeElement( meTestPulseAmplG01_->getName() );
00926 meTestPulseAmplG01_ = 0;
00927
00928 if ( meTestPulseAmplG06_ ) dqmStore_->removeElement( meTestPulseAmplG06_->getName() );
00929 meTestPulseAmplG06_ = 0;
00930
00931 if ( meTestPulseAmplG12_ ) dqmStore_->removeElement( meTestPulseAmplG12_->getName() );
00932 meTestPulseAmplG12_ = 0;
00933
00934 if ( meRecHitEnergy_ ) dqmStore_->removeElement( meRecHitEnergy_->getName() );
00935 meRecHitEnergy_ = 0;
00936
00937 if ( meTiming_ ) dqmStore_->removeElement( meTiming_->getName() );
00938 meTiming_ = 0;
00939
00940 if ( meTimingMean1D_ ) dqmStore_->removeElement( meTimingMean1D_->getName() );
00941 meTimingMean1D_ = 0;
00942
00943 if ( meTimingRMS1D_ ) dqmStore_->removeElement( meTimingRMS1D_->getName() );
00944 meTimingRMS1D_ = 0;
00945
00946 if ( meTimingMean_ ) dqmStore_->removeElement( meTimingMean_->getName() );
00947 meTimingMean_ = 0;
00948
00949 if ( meTimingRMS_ ) dqmStore_->removeElement( meTimingRMS_->getName() );
00950 meTimingRMS_ = 0;
00951
00952 if ( meTriggerTowerEt_ ) dqmStore_->removeElement( meTriggerTowerEt_->getName() );
00953 meTriggerTowerEt_ = 0;
00954
00955 if ( meTriggerTowerEmulError_ ) dqmStore_->removeElement( meTriggerTowerEmulError_->getName() );
00956 meTriggerTowerEmulError_ = 0;
00957
00958 if ( meTriggerTowerTiming_ ) dqmStore_->removeElement( meTriggerTowerTiming_->getName() );
00959 meTriggerTowerTiming_ = 0;
00960
00961 if ( meTriggerTowerNonSingleTiming_ ) dqmStore_->removeElement( meTriggerTowerNonSingleTiming_->getName() );
00962 meTriggerTowerNonSingleTiming_ = 0;
00963
00964 if ( meGlobalSummary_ ) dqmStore_->removeElement( meGlobalSummary_->getName() );
00965 meGlobalSummary_ = 0;
00966
00967 }
00968
00969 #ifdef WITH_ECAL_COND_DB
00970 bool EBSummaryClient::writeDb(EcalCondDBInterface* econn, RunIOV* runiov, MonRunIOV* moniov, bool& status) {
00971
00972 status = true;
00973
00974 return true;
00975
00976 }
00977 #endif
00978
00979 void EBSummaryClient::analyze(void) {
00980
00981 ievt_++;
00982 jevt_++;
00983 if ( ievt_ % 10 == 0 ) {
00984 if ( debug_ ) std::cout << "EBSummaryClient: ievt/jevt = " << ievt_ << "/" << jevt_ << std::endl;
00985 }
00986
00987 uint32_t chWarnBit = 1 << EcalDQMStatusHelper::PHYSICS_BAD_CHANNEL_WARNING;
00988
00989 for ( int iex = 1; iex <= 170; iex++ ) {
00990 for ( int ipx = 1; ipx <= 360; ipx++ ) {
00991
00992 if ( meIntegrity_ ) meIntegrity_->setBinContent( ipx, iex, 6. );
00993 if ( meOccupancy_ ) meOccupancy_->setBinContent( ipx, iex, 0. );
00994 if ( meStatusFlags_ ) meStatusFlags_->setBinContent( ipx, iex, 6. );
00995 if ( mePedestalOnline_ ) mePedestalOnline_->setBinContent( ipx, iex, 6. );
00996 if ( mePedestalOnlineRMSMap_ ) mePedestalOnlineRMSMap_->setBinContent( ipx, iex, -1.);
00997 if ( meLaserL1_ ) meLaserL1_->setBinContent( ipx, iex, 6. );
00998 if ( meLaserL2_ ) meLaserL2_->setBinContent( ipx, iex, 6. );
00999 if ( meLaserL3_ ) meLaserL3_->setBinContent( ipx, iex, 6. );
01000 if ( meLaserL4_ ) meLaserL4_->setBinContent( ipx, iex, 6. );
01001 if ( mePedestalG01_ ) mePedestalG01_->setBinContent( ipx, iex, 6. );
01002 if ( mePedestalG06_ ) mePedestalG06_->setBinContent( ipx, iex, 6. );
01003 if ( mePedestalG12_ ) mePedestalG12_->setBinContent( ipx, iex, 6. );
01004 if ( meTestPulseG01_ ) meTestPulseG01_->setBinContent( ipx, iex, 6. );
01005 if ( meTestPulseG06_ ) meTestPulseG06_->setBinContent( ipx, iex, 6. );
01006 if ( meTestPulseG12_ ) meTestPulseG12_->setBinContent( ipx, iex, 6. );
01007
01008 if ( meRecHitEnergy_ ) meRecHitEnergy_->setBinContent( ipx, iex, 0. );
01009
01010 if(meIntegrity_ && mePedestalOnline_ && meTiming_ && meStatusFlags_ && meTriggerTowerEmulError_ && meGlobalSummary_ ) meGlobalSummary_->setBinContent( ipx, iex, 6. );
01011
01012 }
01013 }
01014
01015 for ( int iex = 1; iex <= 20; iex++ ) {
01016 for ( int ipx = 1; ipx <= 90; ipx++ ) {
01017
01018 if ( meIntegrityPN_ ) meIntegrityPN_->setBinContent( ipx, iex, 6. );
01019 if ( meOccupancyPN_ ) meOccupancyPN_->setBinContent( ipx, iex, 0. );
01020 if ( meLaserL1PN_ ) meLaserL1PN_->setBinContent( ipx, iex, 6. );
01021 if ( meLaserL2PN_ ) meLaserL2PN_->setBinContent( ipx, iex, 6. );
01022 if ( meLaserL3PN_ ) meLaserL3PN_->setBinContent( ipx, iex, 6. );
01023 if ( meLaserL4PN_ ) meLaserL4PN_->setBinContent( ipx, iex, 6. );
01024 if ( mePedestalPNG01_ ) mePedestalPNG01_->setBinContent( ipx, iex, 6. );
01025 if ( mePedestalPNG16_ ) mePedestalPNG16_->setBinContent( ipx, iex, 6. );
01026 if ( meTestPulsePNG01_ ) meTestPulsePNG01_->setBinContent( ipx, iex, 6. );
01027 if ( meTestPulsePNG16_ ) meTestPulsePNG16_->setBinContent( ipx, iex, 6. );
01028
01029 }
01030 }
01031
01032 for ( int iex = 1; iex <= 34; iex++ ) {
01033 for ( int ipx = 1; ipx <= 72; ipx++ ) {
01034 if ( meTriggerTowerEt_ ) meTriggerTowerEt_->setBinContent( ipx, iex, 0. );
01035 if ( meTriggerTowerEmulError_ ) meTriggerTowerEmulError_->setBinContent( ipx, iex, 6. );
01036 if ( meTriggerTowerTiming_ ) meTriggerTowerTiming_->setBinContent( ipx, iex, 0. );
01037 if ( meTriggerTowerNonSingleTiming_ ) meTriggerTowerNonSingleTiming_->setBinContent( ipx, iex, -1. );
01038 if ( meTiming_ ) meTiming_->setBinContent( ipx, iex, 6. );
01039 }
01040 }
01041
01042 if ( meIntegrity_ ) meIntegrity_->setEntries( 0 );
01043 if ( meIntegrityErr_ ) meIntegrityErr_->Reset();
01044 if ( meIntegrityPN_ ) meIntegrityPN_->setEntries( 0 );
01045 if ( meOccupancy_ ) meOccupancy_->setEntries( 0 );
01046 if ( meOccupancy1D_ ) meOccupancy1D_->Reset();
01047 if ( meOccupancyPN_ ) meOccupancyPN_->setEntries( 0 );
01048 if ( meStatusFlags_ ) meStatusFlags_->setEntries( 0 );
01049 if ( meStatusFlagsErr_ ) meStatusFlagsErr_->Reset();
01050 if ( mePedestalOnline_ ) mePedestalOnline_->setEntries( 0 );
01051 if ( mePedestalOnlineErr_ ) mePedestalOnlineErr_->Reset();
01052 if ( mePedestalOnlineMean_ ) mePedestalOnlineMean_->Reset();
01053 if ( mePedestalOnlineRMS_ ) mePedestalOnlineRMS_->Reset();
01054 if ( mePedestalOnlineRMSMap_ ) mePedestalOnlineRMSMap_->Reset();
01055
01056 if ( meLaserL1_ ) meLaserL1_->setEntries( 0 );
01057 if ( meLaserL1Err_ ) meLaserL1Err_->Reset();
01058 if ( meLaserL1Ampl_ ) meLaserL1Ampl_->Reset();
01059 if ( meLaserL1Timing_ ) meLaserL1Timing_->Reset();
01060 if ( meLaserL1AmplOverPN_ ) meLaserL1AmplOverPN_->Reset();
01061 if ( meLaserL1PN_ ) meLaserL1PN_->setEntries( 0 );
01062 if ( meLaserL1PNErr_ ) meLaserL1PNErr_->Reset();
01063
01064 if ( meLaserL2_ ) meLaserL2_->setEntries( 0 );
01065 if ( meLaserL2Err_ ) meLaserL2Err_->Reset();
01066 if ( meLaserL2Ampl_ ) meLaserL2Ampl_->Reset();
01067 if ( meLaserL2Timing_ ) meLaserL2Timing_->Reset();
01068 if ( meLaserL2AmplOverPN_ ) meLaserL2AmplOverPN_->Reset();
01069 if ( meLaserL2PN_ ) meLaserL2PN_->setEntries( 0 );
01070 if ( meLaserL2PNErr_ ) meLaserL2PNErr_->Reset();
01071
01072 if ( meLaserL3_ ) meLaserL3_->setEntries( 0 );
01073 if ( meLaserL3Err_ ) meLaserL3Err_->Reset();
01074 if ( meLaserL3Ampl_ ) meLaserL3Ampl_->Reset();
01075 if ( meLaserL3Timing_ ) meLaserL3Timing_->Reset();
01076 if ( meLaserL3AmplOverPN_ ) meLaserL3AmplOverPN_->Reset();
01077 if ( meLaserL3PN_ ) meLaserL3PN_->setEntries( 0 );
01078 if ( meLaserL3PNErr_ ) meLaserL3PNErr_->Reset();
01079
01080 if ( meLaserL4_ ) meLaserL4_->setEntries( 0 );
01081 if ( meLaserL4Err_ ) meLaserL4Err_->Reset();
01082 if ( meLaserL4Ampl_ ) meLaserL4Ampl_->Reset();
01083 if ( meLaserL4Timing_ ) meLaserL4Timing_->Reset();
01084 if ( meLaserL4AmplOverPN_ ) meLaserL4AmplOverPN_->Reset();
01085 if ( meLaserL4PN_ ) meLaserL4PN_->setEntries( 0 );
01086 if ( meLaserL4PNErr_ ) meLaserL4PNErr_->Reset();
01087
01088 if ( mePedestalG01_ ) mePedestalG01_->setEntries( 0 );
01089 if ( mePedestalG06_ ) mePedestalG06_->setEntries( 0 );
01090 if ( mePedestalG12_ ) mePedestalG12_->setEntries( 0 );
01091 if ( mePedestalPNG01_ ) mePedestalPNG01_->setEntries( 0 );
01092 if ( mePedestalPNG16_ ) mePedestalPNG16_->setEntries( 0 );
01093 if ( meTestPulseG01_ ) meTestPulseG01_->setEntries( 0 );
01094 if ( meTestPulseG06_ ) meTestPulseG06_->setEntries( 0 );
01095 if ( meTestPulseG12_ ) meTestPulseG12_->setEntries( 0 );
01096 if ( meTestPulsePNG01_ ) meTestPulsePNG01_->setEntries( 0 );
01097 if ( meTestPulsePNG16_ ) meTestPulsePNG16_->setEntries( 0 );
01098 if ( meTestPulseAmplG01_ ) meTestPulseAmplG01_->Reset();
01099 if ( meTestPulseAmplG06_ ) meTestPulseAmplG06_->Reset();
01100 if ( meTestPulseAmplG12_ ) meTestPulseAmplG12_->Reset();
01101
01102 if ( meRecHitEnergy_ ) meRecHitEnergy_->setEntries( 0 );
01103 if ( meTiming_ ) meTiming_->setEntries( 0 );
01104 if ( meTimingMean1D_ ) meTimingMean1D_->Reset();
01105 if ( meTimingRMS1D_ ) meTimingRMS1D_->Reset();
01106 if ( meTimingMean_ ) meTimingMean_->Reset();
01107 if ( meTimingRMS_ ) meTimingRMS_->Reset();
01108 if ( meTriggerTowerEt_ ) meTriggerTowerEt_->setEntries( 0 );
01109 if ( meTriggerTowerEmulError_ ) meTriggerTowerEmulError_->setEntries( 0 );
01110 if ( meTriggerTowerTiming_ ) meTriggerTowerTiming_->setEntries( 0 );
01111 if ( meTriggerTowerNonSingleTiming_ ) meTriggerTowerNonSingleTiming_->setEntries( 0 );
01112
01113 if(meIntegrity_ && mePedestalOnline_ && meTiming_ && meStatusFlags_ && meTriggerTowerEmulError_ && meGlobalSummary_ ) meGlobalSummary_->setEntries( 0 );
01114
01115 for ( unsigned int i=0; i<clients_.size(); i++ ) {
01116
01117 EBIntegrityClient* ebic = dynamic_cast<EBIntegrityClient*>(clients_[i]);
01118 EBStatusFlagsClient* ebsfc = dynamic_cast<EBStatusFlagsClient*>(clients_[i]);
01119 EBPedestalOnlineClient* ebpoc = dynamic_cast<EBPedestalOnlineClient*>(clients_[i]);
01120
01121 EBLaserClient* eblc = dynamic_cast<EBLaserClient*>(clients_[i]);
01122 EBPedestalClient* ebpc = dynamic_cast<EBPedestalClient*>(clients_[i]);
01123 EBTestPulseClient* ebtpc = dynamic_cast<EBTestPulseClient*>(clients_[i]);
01124
01125 EBTimingClient* ebtmc = dynamic_cast<EBTimingClient*>(clients_[i]);
01126 EBTriggerTowerClient* ebtttc = dynamic_cast<EBTriggerTowerClient*>(clients_[i]);
01127
01128 MonitorElement *me;
01129 MonitorElement *me_01, *me_02, *me_03;
01130 MonitorElement *me_04, *me_05;
01131
01132 TH2F* h2;
01133 TH2F* h3;
01134
01135 for ( unsigned int i=0; i<superModules_.size(); i++ ) {
01136
01137 int ism = superModules_[i];
01138
01139 me = dqmStore_->get( prefixME_ + "/EBOccupancyTask/EBOT rec hit energy " + Numbers::sEB(ism) );
01140 hot01_[ism-1] = UtilsClient::getHisto( me, cloneME_, hot01_[ism-1] );
01141
01142 me = dqmStore_->get( prefixME_ + "/EBPedestalOnlineTask/Gain12/EBPOT pedestal " + Numbers::sEB(ism) + " G12" );
01143 hpot01_[ism-1] = UtilsClient::getHisto( me, cloneME_, hpot01_[ism-1] );
01144
01145 me = dqmStore_->get( prefixME_ + "/EBTriggerTowerTask/EBTTT Et map Real Digis " + Numbers::sEB(ism) );
01146 httt01_[ism-1] = UtilsClient::getHisto( me, cloneME_, httt01_[ism-1] );
01147
01148 me = dqmStore_->get( prefixME_ + "/EBTimingTask/EBTMT timing " + Numbers::sEB(ism) );
01149 htmt01_[ism-1] = UtilsClient::getHisto( me, cloneME_, htmt01_[ism-1] );
01150
01151 me = dqmStore_->get( prefixME_ + "/EcalInfo/EBMM DCC" );
01152 norm01_ = UtilsClient::getHisto( me, cloneME_, norm01_ );
01153
01154 me = dqmStore_->get( prefixME_ + "/EBRawDataTask/EBRDT L1A FE errors" );
01155 synch01_ = UtilsClient::getHisto( me, cloneME_, synch01_ );
01156
01157 for ( int ie = 1; ie <= 85; ie++ ) {
01158 for ( int ip = 1; ip <= 20; ip++ ) {
01159
01160 if ( ebic ) {
01161
01162 me = ebic->meg01_[ism-1];
01163
01164 if ( me ) {
01165
01166 float xval = me->getBinContent( ie, ip );
01167
01168 int iex;
01169 int ipx;
01170
01171 if ( ism <= 18 ) {
01172 iex = 1+(85-ie);
01173 ipx = ip+20*(ism-1);
01174 } else {
01175 iex = 85+ie;
01176 ipx = 1+(20-ip)+20*(ism-19);
01177 }
01178
01179 if(meIntegrity_) meIntegrity_->setBinContent( ipx, iex, xval );
01180 if( xval == 0 && meIntegrityErr_) meIntegrityErr_->Fill( ism );
01181
01182 }
01183
01184 h2 = ebic->h_[ism-1];
01185
01186 if ( h2 ) {
01187
01188 float xval = h2->GetBinContent( ie, ip );
01189
01190 int iex;
01191 int ipx;
01192
01193 if ( ism <= 18 ) {
01194 iex = 1+(85-ie);
01195 ipx = ip+20*(ism-1);
01196 } else {
01197 iex = 85+ie;
01198 ipx = 1+(20-ip)+20*(ism-19);
01199 }
01200
01201 if(meOccupancy_) meOccupancy_->setBinContent( ipx, iex, xval );
01202 if ( xval != 0 && meOccupancy1D_) meOccupancy1D_->Fill( ism, xval );
01203
01204 }
01205
01206 }
01207
01208 if ( ebpoc ) {
01209
01210 me = ebpoc->meg03_[ism-1];
01211
01212 if ( me ) {
01213
01214 int iex;
01215 int ipx;
01216
01217 if ( ism <= 18 ) {
01218 iex = 1+(85-ie);
01219 ipx = ip+20*(ism-1);
01220 } else {
01221 iex = 85+ie;
01222 ipx = 1+(20-ip)+20*(ism-19);
01223 }
01224
01225 float xval = me->getBinContent( ie, ip );
01226
01227 mePedestalOnline_->setBinContent( ipx, iex, xval );
01228 if ( xval == 0 ) mePedestalOnlineErr_->Fill( ism );
01229
01230 }
01231
01232 float num01, mean01, rms01;
01233 bool update01 = UtilsClient::getBinStatistics(hpot01_[ism-1], ie, ip, num01, mean01, rms01);
01234
01235 if ( update01 ) {
01236
01237 int iex;
01238 int ipx;
01239
01240 if ( ism <= 18 ) {
01241 iex = 1+(85-ie);
01242 ipx = ip+20*(ism-1);
01243 } else {
01244 iex = 85+ie;
01245 ipx = 1+(20-ip)+20*(ism-19);
01246 }
01247
01248 mePedestalOnlineRMSMap_->setBinContent( ipx, iex, rms01 );
01249
01250 mePedestalOnlineRMS_->Fill( ism, rms01 );
01251
01252 mePedestalOnlineMean_->Fill( ism, mean01 );
01253
01254 }
01255
01256 }
01257
01258 if ( eblc ) {
01259
01260 int iex;
01261 int ipx;
01262
01263 if ( ism <= 18 ) {
01264 iex = 1+(85-ie);
01265 ipx = ip+20*(ism-1);
01266 } else {
01267 iex = 85+ie;
01268 ipx = 1+(20-ip)+20*(ism-19);
01269 }
01270
01271 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 1) != laserWavelengths_.end() ) {
01272
01273 me = eblc->meg01_[ism-1];
01274
01275 if ( me ) {
01276
01277 float xval = me->getBinContent( ie, ip );
01278
01279 if ( me->getEntries() != 0 ) {
01280 meLaserL1_->setBinContent( ipx, iex, xval );
01281 if ( xval == 0 ) meLaserL1Err_->Fill( ism );
01282 }
01283
01284 }
01285
01286 }
01287
01288 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 2) != laserWavelengths_.end() ) {
01289
01290 me = eblc->meg02_[ism-1];
01291
01292 if ( me ) {
01293
01294 float xval = me->getBinContent( ie, ip );
01295
01296 if ( me->getEntries() != 0 ) {
01297 meLaserL2_->setBinContent( ipx, iex, xval );
01298 if ( xval == 0 ) meLaserL2Err_->Fill( ism );
01299 }
01300
01301 }
01302
01303 }
01304
01305 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 3) != laserWavelengths_.end() ) {
01306
01307 me = eblc->meg03_[ism-1];
01308
01309 if ( me ) {
01310
01311 float xval = me->getBinContent( ie, ip );
01312
01313 if ( me->getEntries() != 0 ) {
01314 meLaserL3_->setBinContent( ipx, iex, xval );
01315 if ( xval == 0 ) meLaserL3Err_->Fill( ism );
01316 }
01317
01318 }
01319
01320 }
01321
01322 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 4) != laserWavelengths_.end() ) {
01323
01324 me = eblc->meg04_[ism-1];
01325
01326 if ( me ) {
01327
01328 float xval = me->getBinContent( ie, ip );
01329
01330 if ( me->getEntries() != 0 ) {
01331 meLaserL4_->setBinContent( ipx, iex, xval );
01332 if ( xval == 0 ) meLaserL4Err_->Fill( ism );
01333 }
01334
01335 }
01336
01337 }
01338
01339 }
01340
01341 if ( ebpc ) {
01342
01343 me_01 = ebpc->meg01_[ism-1];
01344 me_02 = ebpc->meg02_[ism-1];
01345 me_03 = ebpc->meg03_[ism-1];
01346
01347 int iex;
01348 int ipx;
01349
01350 if ( ism <= 18 ) {
01351 iex = 1+(85-ie);
01352 ipx = ip+20*(ism-1);
01353 } else {
01354 iex = 85+ie;
01355 ipx = 1+(20-ip)+20*(ism-19);
01356 }
01357
01358 if ( me_01 ) {
01359 float val_01=me_01->getBinContent(ie,ip);
01360 if ( me_01->getEntries() != 0 ) mePedestalG01_->setBinContent( ipx, iex, val_01 );
01361 }
01362 if ( me_02 ) {
01363 float val_02=me_02->getBinContent(ie,ip);
01364 if ( me_02->getEntries() != 0 ) mePedestalG06_->setBinContent( ipx, iex, val_02 );
01365 }
01366 if ( me_03 ) {
01367 float val_03=me_03->getBinContent(ie,ip);
01368 if ( me_03->getEntries() != 0 ) mePedestalG12_->setBinContent( ipx, iex, val_03 );
01369 }
01370
01371 }
01372
01373 if ( ebtpc ) {
01374
01375 me_01 = ebtpc->meg01_[ism-1];
01376 me_02 = ebtpc->meg02_[ism-1];
01377 me_03 = ebtpc->meg03_[ism-1];
01378
01379 int iex;
01380 int ipx;
01381
01382 if ( ism <= 18 ) {
01383 iex = 1+(85-ie);
01384 ipx = ip+20*(ism-1);
01385 } else {
01386 iex = 85+ie;
01387 ipx = 1+(20-ip)+20*(ism-19);
01388 }
01389
01390 if ( me_01 ) {
01391
01392 float val_01=me_01->getBinContent(ie,ip);
01393
01394 if ( me_01->getEntries() != 0 ) meTestPulseG01_->setBinContent( ipx, iex, val_01 );
01395
01396 }
01397 if ( me_02 ) {
01398
01399 float val_02=me_02->getBinContent(ie,ip);
01400
01401 if ( me_02->getEntries() != 0 ) meTestPulseG06_->setBinContent( ipx, iex, val_02 );
01402
01403 }
01404 if ( me_03 ) {
01405
01406 float val_03=me_03->getBinContent(ie,ip);
01407
01408 if ( me_03->getEntries() != 0 ) meTestPulseG12_->setBinContent( ipx, iex, val_03 );
01409
01410 }
01411
01412
01413 }
01414
01415 if ( hot01_[ism-1] ) {
01416
01417 float xval = hot01_[ism-1]->GetBinContent( ie, ip );
01418
01419 int iex;
01420 int ipx;
01421
01422 if ( ism <= 18 ) {
01423 iex = 1+(85-ie);
01424 ipx = ip+20*(ism-1);
01425 } else {
01426 iex = 85+ie;
01427 ipx = 1+(20-ip)+20*(ism-19);
01428 }
01429
01430 if(meRecHitEnergy_) meRecHitEnergy_->setBinContent( ipx, iex, xval );
01431
01432 }
01433
01434 if ( ebtmc ) {
01435
01436 float num02, mean02, rms02;
01437
01438 bool update02 = UtilsClient::getBinStatistics(htmt01_[ism-1], ie, ip, num02, mean02, rms02, 3.);
01439
01440 if ( update02 ) {
01441
01442 mean02 -= 50.;
01443
01444 meTimingMean1D_->Fill(mean02);
01445
01446 meTimingRMS1D_->Fill(rms02);
01447
01448 meTimingMean_->Fill( ism, mean02 );
01449
01450 meTimingRMS_->Fill( ism, rms02 );
01451
01452 }
01453
01454 }
01455
01456 }
01457 }
01458
01459 for (int ie = 1; ie <= 17; ie++ ) {
01460 for (int ip = 1; ip <= 4; ip++ ) {
01461
01462 int iex;
01463 int ipx;
01464
01465 if ( ism <= 18 ) {
01466 iex = 1+(17-ie);
01467 ipx = ip+4*(ism-1);
01468 } else {
01469 iex = 17+ie;
01470 ipx = 1+(4-ip)+4*(ism-19);
01471 }
01472
01473 if ( ebsfc ) {
01474
01475 me = dqmStore_->get(prefixME_ + "/EcalInfo/EBMM DCC");
01476
01477 float xval = 6;
01478
01479 if ( me ) {
01480
01481 xval = 2;
01482 if ( me->getBinContent( ism ) > 0 ) xval = 1;
01483
01484 }
01485
01486 me = ebsfc->meh01_[ism-1];
01487
01488 if ( me ) {
01489
01490 if ( me->getBinContent( ie, ip ) > 0 ) xval = 0;
01491
01492 meStatusFlags_->setBinContent( ipx, iex, xval );
01493
01494 if ( me->getBinError( ie, ip ) > 0 && me->getBinError( ie, ip ) < 0.1 ) UtilsClient::maskBinContent( meStatusFlags_, ipx, iex );
01495
01496 if ( xval == 0 ) meStatusFlagsErr_->Fill( ism );
01497
01498 }
01499
01500 }
01501
01502 if ( ebtttc ) {
01503
01504 float mean01 = 0;
01505 bool hadNonZeroInterest = false;
01506
01507 if ( httt01_[ism-1] ) {
01508
01509 mean01 = httt01_[ism-1]->GetBinContent( ie, ip );
01510
01511 if ( mean01 != 0. ) {
01512 if ( meTriggerTowerEt_ ) meTriggerTowerEt_->setBinContent( ipx, iex, mean01 );
01513 }
01514
01515 }
01516
01517 me = ebtttc->me_o01_[ism-1];
01518
01519 if ( me ) {
01520
01521 float xval = me->getBinContent( ie, ip );
01522
01523 if ( xval != 0. ) {
01524 meTriggerTowerTiming_->setBinContent( ipx, iex, xval );
01525 hadNonZeroInterest = true;
01526 }
01527
01528 }
01529
01530 me = ebtttc->me_o02_[ism-1];
01531
01532 if ( me ) {
01533
01534 float xval = me->getBinContent( ie, ip );
01535
01536 if ( xval != 0. ) {
01537 meTriggerTowerNonSingleTiming_->setBinContent( ipx, iex, xval );
01538 }
01539
01540 }
01541
01542 float xval = 2;
01543 if( mean01 > 0. ) {
01544
01545 h2 = ebtttc->l01_[ism-1];
01546 h3 = ebtttc->l02_[ism-1];
01547
01548 if ( h2 && h3 ) {
01549
01550
01551 float emulErrorVal = h2->GetBinContent( ie, ip );
01552
01553 if( emulErrorVal!=0 && hadNonZeroInterest ) xval = 0;
01554
01555 }
01556
01557 if ( xval!=0 && hadNonZeroInterest ) xval = 1;
01558
01559 }
01560
01561 meTriggerTowerEmulError_->setBinContent( ipx, iex, xval );
01562
01563 }
01564
01565 if ( ebtmc ) {
01566
01567 if( htmt01_[ism-1] ){
01568
01569 float ent, cont, err;
01570 float num, sum, sumw2;
01571 num = sum = sumw2 = 0.;
01572 bool mask = false;
01573
01574 for(int ce=1; ce<=5; ce++){
01575 for(int cp=1; cp<=5; cp++){
01576
01577 int scie = (ie - 1) * 5 + ce;
01578 int scip = (ip - 1) * 5 + cp;
01579 int bin = htmt01_[ism-1]->GetBin( scie, scip );
01580
01581
01582 ent = htmt01_[ism-1]->GetBinEntries( bin );
01583 cont = htmt01_[ism-1]->GetBinContent( bin ) - 50.;
01584 err = htmt01_[ism-1]->GetBinError( bin );
01585
01586 num += ent;
01587 sum += cont * ent;
01588 sumw2 += (err * err + cont * cont) * ent;
01589
01590 if( ent > 3. && (std::abs(cont) > 2. || err > 6.) && Masks::maskChannel(ism, scie, scip, chWarnBit, EcalBarrel) ) mask = true;
01591 }
01592 }
01593
01594 float xval = 2.;
01595 if( num > 10. ){
01596
01597 float mean = sum / num;
01598 float rms = std::sqrt( sumw2 / num - mean * mean );
01599
01600 if( std::abs(mean) > 2. || rms > 6. ) xval = 0.;
01601 else xval = 1.;
01602
01603 }
01604
01605 meTiming_->setBinContent( ipx, iex, xval );
01606 if ( mask ) UtilsClient::maskBinContent( meTiming_, ipx, iex );
01607
01608 }
01609
01610 }
01611
01612 }
01613 }
01614
01615
01616 for( int i = 1; i <= 10; i++ ) {
01617 for( int j = 1; j <= 5; j++ ) {
01618
01619 int ichanx;
01620 int ipseudostripx;
01621
01622 if(ism<=18) {
01623 ichanx = i;
01624 ipseudostripx = j+5*(ism-1);
01625 } else {
01626 ichanx = i+10;
01627 ipseudostripx = j+5*(ism-19);
01628 }
01629
01630 if ( ebic ) {
01631
01632 me_04 = ebic->meg02_[ism-1];
01633 h2 = ebic->hmem_[ism-1];
01634
01635 if( me_04 ) {
01636
01637 float xval = me_04->getBinContent(i,j);
01638 if(meIntegrityPN_) meIntegrityPN_->setBinContent( ipseudostripx, ichanx, xval );
01639
01640 }
01641
01642 if ( h2 ) {
01643
01644 float xval = h2->GetBinContent(i,1);
01645 if(meOccupancyPN_) meOccupancyPN_->setBinContent( ipseudostripx, ichanx, xval );
01646
01647 }
01648
01649 }
01650
01651 if ( ebpc ) {
01652
01653 me_04 = ebpc->meg04_[ism-1];
01654 me_05 = ebpc->meg05_[ism-1];
01655
01656 if( me_04 ) {
01657 float val_04=me_04->getBinContent(i,1);
01658 mePedestalPNG01_->setBinContent( ipseudostripx, ichanx, val_04 );
01659 }
01660 if( me_05 ) {
01661 float val_05=me_05->getBinContent(i,1);
01662 mePedestalPNG16_->setBinContent( ipseudostripx, ichanx, val_05 );
01663 }
01664
01665 }
01666
01667 if ( ebtpc ) {
01668
01669 me_04 = ebtpc->meg04_[ism-1];
01670 me_05 = ebtpc->meg05_[ism-1];
01671
01672 if( me_04 ) {
01673 float val_04=me_04->getBinContent(i,1);
01674 meTestPulsePNG01_->setBinContent( ipseudostripx, ichanx, val_04 );
01675 }
01676 if( me_05 ) {
01677 float val_05=me_05->getBinContent(i,1);
01678 meTestPulsePNG16_->setBinContent( ipseudostripx, ichanx, val_05 );
01679 }
01680
01681 }
01682
01683 if ( eblc ) {
01684
01685 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 1) != laserWavelengths_.end() ) {
01686
01687 me = eblc->meg09_[ism-1];
01688
01689 if( me ) {
01690
01691 float xval = me->getBinContent(i,1);
01692
01693 if ( me->getEntries() != 0 && me->getEntries() != 0 ) {
01694 meLaserL1PN_->setBinContent( ipseudostripx, ichanx, xval );
01695 if ( xval == 0 ) meLaserL1PNErr_->Fill( ism );
01696 }
01697
01698 }
01699
01700 }
01701
01702 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 2) != laserWavelengths_.end() ) {
01703
01704 me = eblc->meg10_[ism-1];
01705
01706 if( me ) {
01707
01708 float xval = me->getBinContent(i,1);
01709
01710 if ( me->getEntries() != 0 && me->getEntries() != 0 ) {
01711 meLaserL2PN_->setBinContent( ipseudostripx, ichanx, xval );
01712 if ( xval == 0 ) meLaserL2PNErr_->Fill( ism );
01713 }
01714
01715 }
01716
01717 }
01718
01719 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 3) != laserWavelengths_.end() ) {
01720
01721 me = eblc->meg11_[ism-1];
01722
01723 if( me ) {
01724
01725 float xval = me->getBinContent(i,1);
01726
01727 if ( me->getEntries() != 0 && me->getEntries() != 0 ) {
01728 meLaserL3PN_->setBinContent( ipseudostripx, ichanx, xval );
01729 if ( xval == 0 ) meLaserL3PNErr_->Fill( ism );
01730 }
01731
01732 }
01733
01734 }
01735
01736 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 4) != laserWavelengths_.end() ) {
01737
01738 me = eblc->meg12_[ism-1];
01739
01740 if( me ) {
01741
01742 float xval = me->getBinContent(i,1);
01743
01744 if ( me->getEntries() != 0 && me->getEntries() != 0 ) {
01745 meLaserL4PN_->setBinContent( ipseudostripx, ichanx, xval );
01746 if ( xval == 0 ) meLaserL4PNErr_->Fill( ism );
01747 }
01748
01749 }
01750
01751 }
01752
01753 }
01754
01755 }
01756 }
01757
01758 for(int chan=0; chan<1700; chan++) {
01759
01760 int ie = (chan)/20 + 1;
01761 int ip = (chan)%20 + 1;
01762
01763
01764 if ( eblc ) {
01765
01766 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 1) != laserWavelengths_.end() ) {
01767
01768 MonitorElement *meg = eblc->meg01_[ism-1];
01769
01770 float xval = 2;
01771 if ( meg ) xval = meg->getBinContent( ie, ip );
01772
01773
01774 if( xval != 2 && xval != 5 ) {
01775
01776 MonitorElement* mea01 = eblc->mea01_[ism-1];
01777 MonitorElement* met01 = eblc->met01_[ism-1];
01778 MonitorElement* meaopn01 = eblc->meaopn01_[ism-1];
01779
01780 if( mea01 && met01 && meaopn01 ) {
01781 meLaserL1Ampl_->Fill( ism, mea01->getBinContent( chan+1 ) );
01782 if( met01->getBinContent( chan+1 ) > 0. ) meLaserL1Timing_->Fill( ism, met01->getBinContent( chan+1 ) );
01783 meLaserL1AmplOverPN_->Fill( ism, meaopn01->getBinContent( chan+1 ) );
01784 }
01785
01786 }
01787
01788 }
01789
01790 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 2) != laserWavelengths_.end() ) {
01791
01792 MonitorElement *meg = eblc->meg02_[ism-1];
01793
01794 float xval = 2;
01795 if ( meg ) xval = meg->getBinContent( ie, ip );
01796
01797
01798 if( xval != 2 && xval != 5 ) {
01799
01800 MonitorElement* mea02 = eblc->mea02_[ism-1];
01801 MonitorElement* met02 = eblc->met02_[ism-1];
01802 MonitorElement* meaopn02 = eblc->meaopn02_[ism-1];
01803
01804 if( mea02 && met02 && meaopn02 ) {
01805 meLaserL2Ampl_->Fill( ism, mea02->getBinContent( chan+1 ) );
01806 if( met02->getBinContent( chan+1 ) > 0. ) meLaserL2Timing_->Fill( ism, met02->getBinContent( chan+1 ) );
01807 meLaserL2AmplOverPN_->Fill( ism, meaopn02->getBinContent( chan+1 ) );
01808 }
01809
01810 }
01811
01812 }
01813
01814 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 3) != laserWavelengths_.end() ) {
01815
01816 MonitorElement *meg = eblc->meg03_[ism-1];
01817
01818 float xval = 2;
01819 if ( meg ) xval = meg->getBinContent( ie, ip );
01820
01821
01822 if( xval != 2 && xval != 5 ) {
01823
01824 MonitorElement* mea03 = eblc->mea03_[ism-1];
01825 MonitorElement* met03 = eblc->met03_[ism-1];
01826 MonitorElement* meaopn03 = eblc->meaopn03_[ism-1];
01827
01828 if( mea03 && met03 && meaopn03 ) {
01829 meLaserL3Ampl_->Fill( ism, mea03->getBinContent( chan+1 ) );
01830 if( met03->getBinContent( chan+1 ) > 0. ) meLaserL3Timing_->Fill( ism, met03->getBinContent( chan+1 ) );
01831 meLaserL3AmplOverPN_->Fill( ism, meaopn03->getBinContent( chan+1 ) );
01832 }
01833
01834 }
01835
01836 }
01837
01838 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 4) != laserWavelengths_.end() ) {
01839
01840 MonitorElement *meg = eblc->meg04_[ism-1];
01841
01842 float xval = 2;
01843 if ( meg ) xval = meg->getBinContent( ie, ip );
01844
01845
01846 if( xval != 2 && xval != 5 ) {
01847
01848 MonitorElement* mea04 = eblc->mea04_[ism-1];
01849 MonitorElement* met04 = eblc->met04_[ism-1];
01850 MonitorElement* meaopn04 = eblc->meaopn04_[ism-1];
01851
01852 if( mea04 && met04 && meaopn04 ) {
01853 meLaserL4Ampl_->Fill( ism, mea04->getBinContent( chan+1 ) );
01854 if( met04->getBinContent( chan+1 ) > 0. ) meLaserL4Timing_->Fill( ism, met04->getBinContent( chan+1 ) );
01855 meLaserL4AmplOverPN_->Fill( ism, meaopn04->getBinContent( chan+1 ) );
01856 }
01857
01858 }
01859
01860 }
01861
01862 }
01863
01864 if ( ebtpc ) {
01865
01866 MonitorElement *meg01 = ebtpc->meg01_[ism-1];
01867 MonitorElement *meg02 = ebtpc->meg02_[ism-1];
01868 MonitorElement *meg03 = ebtpc->meg03_[ism-1];
01869
01870 if ( meg01 ) {
01871
01872 float xval01 = meg01->getBinContent(ie,ip);
01873
01874 if ( xval01 != 2 && xval01 != 5 ) {
01875
01876 me = ebtpc->mea01_[ism-1];
01877
01878 if ( me ) {
01879
01880 meTestPulseAmplG01_->Fill( ism, me->getBinContent( chan+1 ) );
01881
01882 }
01883
01884 }
01885
01886 }
01887
01888 if ( meg02 ) {
01889
01890 float xval02 = meg02->getBinContent(ie,ip);
01891
01892 if ( xval02 != 2 && xval02 != 5 ) {
01893
01894 me = ebtpc->mea02_[ism-1];
01895
01896 if ( me ) {
01897
01898 meTestPulseAmplG06_->Fill( ism, me->getBinContent( chan+1 ) );
01899
01900 }
01901
01902 }
01903
01904 }
01905
01906 if ( meg03 ) {
01907
01908 float xval03 = meg03->getBinContent(ie,ip);
01909
01910 if ( xval03 != 2 && xval03 != 5 ) {
01911
01912 me = ebtpc->mea03_[ism-1];
01913
01914 if ( me ) {
01915
01916 meTestPulseAmplG12_->Fill( ism, me->getBinContent( chan+1 ) );
01917
01918 }
01919
01920 }
01921
01922 }
01923
01924 }
01925
01926 }
01927
01928 }
01929
01930 }
01931
01932
01933
01934 int nGlobalErrors = 0;
01935 int nGlobalErrorsEB[36];
01936 int nValidChannels = 0;
01937 int nValidChannelsEB[36];
01938
01939 for (int i = 0; i < 36; i++) {
01940 nGlobalErrorsEB[i] = 0;
01941 nValidChannelsEB[i] = 0;
01942 }
01943
01944 for ( int iex = 1; iex <= 170; iex++ ) {
01945 for ( int ipx = 1; ipx <= 360; ipx++ ) {
01946
01947 if(meIntegrity_ && mePedestalOnline_ && meTiming_ && meStatusFlags_ && meTriggerTowerEmulError_ && meGlobalSummary_) {
01948
01949 int ism = (ipx-1)/20 + 1 ;
01950 if ( iex>85 ) ism+=18;
01951
01952 int iet = (iex-1)/5 + 1;
01953 int ipt = (ipx-1)/5 + 1;
01954
01955 float xval = 6;
01956 float val_in = meIntegrity_->getBinContent(ipx,iex);
01957 float val_po = mePedestalOnline_->getBinContent(ipx,iex);
01958 float val_tm = meTiming_->getBinContent(ipt,iet);
01959 float val_sf = meStatusFlags_->getBinContent((ipx-1)/5+1,(iex-1)/5+1);
01960
01961 float val_ee = 1;
01962
01963
01964
01965 float val_ls_1=2, val_ls_2=2, val_ls_3=2, val_ls_4=2;
01966 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 1) != laserWavelengths_.end() ) {
01967 if ( meLaserL1_ ) val_ls_1 = meLaserL1_->getBinContent(ipx,iex);
01968 if(val_ls_1==2 || val_ls_1==3 || val_ls_1==4 || val_ls_1==5) val_ls_1=1;
01969 }
01970 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 2) != laserWavelengths_.end() ) {
01971 if ( meLaserL2_ ) val_ls_2 = meLaserL2_->getBinContent(ipx,iex);
01972 if(val_ls_2==2 || val_ls_2==3 || val_ls_2==4 || val_ls_2==5) val_ls_2=1;
01973 }
01974 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 3) != laserWavelengths_.end() ) {
01975 if ( meLaserL3_ ) val_ls_3 = meLaserL3_->getBinContent(ipx,iex);
01976 if(val_ls_3==2 || val_ls_3==3 || val_ls_3==4 || val_ls_3==5) val_ls_3=1;
01977 }
01978 if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 4) != laserWavelengths_.end() ) {
01979 if ( meLaserL4_ ) val_ls_4 = meLaserL4_->getBinContent(ipx,iex);
01980 if(val_ls_4==2 || val_ls_4==3 || val_ls_4==4 || val_ls_4==5) val_ls_4=1;
01981 }
01982
01983 float val_ls = 1;
01984 if (val_ls_1 == 0 || val_ls_2==0 || val_ls_3==0 || val_ls_4==0) val_ls=0;
01985
01986
01987 val_ls = 1;
01988
01989
01990
01991
01992
01993
01994
01995
01996
01997
01998 if( val_in==3 || val_in==4 || val_in==5) val_in=1;
01999 if(val_po==2 || val_po==3 || val_po==4 || val_po==5) val_po=1;
02000 if(val_tm==2 || val_tm==3 || val_tm==4 || val_tm==5) val_tm=1;
02001 if( val_sf==3 || val_sf==4 || val_sf==5) val_sf=1;
02002 if(val_ee==2 || val_ee==3 || val_ee==4 || val_ee==5) val_ee=1;
02003
02004 if(val_in==6) xval=6;
02005 else if(val_in==0) xval=0;
02006 else if(val_po==0 || val_ls==0 || val_tm==0 || val_sf==0 || val_ee==0) xval=0;
02007 else if(val_po==2 || val_ls==2 || val_tm==2 || val_sf==2 || val_ee==2) xval=2;
02008 else xval=1;
02009
02010
02011
02012 float iEntries=0;
02013
02014 if(norm01_ && synch01_) {
02015 float frac_synch_errors = 0.;
02016 float norm = norm01_->GetBinContent(ism);
02017 if(norm > 0) frac_synch_errors = float(synch01_->GetBinContent(ism))/float(norm);
02018 float val_sy = (frac_synch_errors <= synchErrorThreshold_);
02019 if(val_sy==0) xval=0;
02020 }
02021
02022 std::vector<int>::iterator iter = find(superModules_.begin(), superModules_.end(), ism);
02023 if (iter != superModules_.end()) {
02024 for ( unsigned int i=0; i<clients_.size(); i++ ) {
02025 EBIntegrityClient* ebic = dynamic_cast<EBIntegrityClient*>(clients_[i]);
02026 if ( ebic ) {
02027 TH2F* h2 = ebic->h_[ism-1];
02028 if ( h2 ) {
02029 iEntries = h2->GetEntries();
02030 }
02031 }
02032 }
02033 }
02034
02035 if ( iEntries==0 ) {
02036 xval=2;
02037 }
02038
02039 meGlobalSummary_->setBinContent( ipx, iex, xval );
02040
02041 if ( xval >= 0 && xval <= 5 ) {
02042 if ( xval != 2 && xval != 5 ) ++nValidChannels;
02043 if ( iex <= 85 ) {
02044 if ( xval != 2 && xval != 5 ) ++nValidChannelsEB[(ipx-1)/20];
02045 } else {
02046 if ( xval != 2 && xval != 5 ) ++nValidChannelsEB[18+(ipx-1)/20];
02047 }
02048 if ( xval == 0 ) ++nGlobalErrors;
02049 if ( iex <= 85 ) {
02050 if ( xval == 0 ) ++nGlobalErrorsEB[(ipx-1)/20];
02051 } else {
02052 if ( xval == 0 ) ++nGlobalErrorsEB[18+(ipx-1)/20];
02053 }
02054 }
02055
02056 }
02057
02058 }
02059 }
02060
02061 MonitorElement* me;
02062
02063 float reportSummary = -1.0;
02064 if ( nValidChannels != 0 )
02065 reportSummary = 1.0 - float(nGlobalErrors)/float(nValidChannels);
02066 me = dqmStore_->get(prefixME_ + "/EventInfo/reportSummary");
02067 if ( me )
02068 me->Fill(reportSummary);
02069
02070 for (int i = 0; i < 36; i++) {
02071 float reportSummaryEB = -1.0;
02072 if ( nValidChannelsEB[i] != 0 )
02073 reportSummaryEB = 1.0 - float(nGlobalErrorsEB[i])/float(nValidChannelsEB[i]);
02074 me = dqmStore_->get(prefixME_ + "/EventInfo/reportSummaryContents/EcalBarrel_" + Numbers::sEB(i+1));
02075 if ( me ) me->Fill(reportSummaryEB);
02076 }
02077
02078 if(meGlobalSummary_){
02079
02080 me = dqmStore_->get(prefixME_ + "/EventInfo/reportSummaryMap");
02081 if ( me ) {
02082
02083 int nValidChannelsTT[72][34];
02084 int nGlobalErrorsTT[72][34];
02085 for ( int iettx = 0; iettx < 34; iettx++ ) {
02086 for ( int ipttx = 0; ipttx < 72; ipttx++ ) {
02087 nValidChannelsTT[ipttx][iettx] = 0;
02088 nGlobalErrorsTT[ipttx][iettx] = 0;
02089 }
02090 }
02091
02092 for ( int iex = 1; iex <= 170; iex++ ) {
02093 for ( int ipx = 1; ipx <= 360; ipx++ ) {
02094
02095 int iettx = (iex-1)/5+1;
02096 int ipttx = (ipx-1)/5+1;
02097
02098 float xval = meGlobalSummary_->getBinContent( ipx, iex );
02099
02100 if ( xval >= 0 && xval <= 5 ) {
02101 if ( xval != 2 && xval != 5 ) ++nValidChannelsTT[ipttx-1][iettx-1];
02102 if ( xval == 0 ) ++nGlobalErrorsTT[ipttx-1][iettx-1];
02103 }
02104
02105 }
02106 }
02107
02108 for ( int iettx = 0; iettx < 34; iettx++ ) {
02109 for ( int ipttx = 0; ipttx < 72; ipttx++ ) {
02110
02111 float xval = -1.0;
02112 if ( nValidChannelsTT[ipttx][iettx] != 0 )
02113 xval = 1.0 - float(nGlobalErrorsTT[ipttx][iettx])/float(nValidChannelsTT[ipttx][iettx]);
02114
02115 me->setBinContent( ipttx+1, iettx+1, xval );
02116 }
02117 }
02118
02119 }
02120
02121 }
02122
02123 }
02124