00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #include <iostream>
00011 #include <fstream>
00012 #include <vector>
00013
00014 #include "FWCore/ServiceRegistry/interface/Service.h"
00015 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00016
00017 #include "DQMServices/Core/interface/MonitorElement.h"
00018
00019 #include "DQMServices/Core/interface/DQMStore.h"
00020
00021 #include "DataFormats/EcalDetId/interface/EBDetId.h"
00022
00023 #include "DataFormats/EcalRawData/interface/EcalRawDataCollections.h"
00024 #include "DataFormats/EcalDetId/interface/EcalDetIdCollections.h"
00025
00026 #include <DQM/EcalCommon/interface/Numbers.h>
00027
00028 #include <DQM/EcalBarrelMonitorTasks/interface/EBIntegrityTask.h>
00029
00030 using namespace cms;
00031 using namespace edm;
00032 using namespace std;
00033
00034 EBIntegrityTask::EBIntegrityTask(const ParameterSet& ps){
00035
00036 init_ = false;
00037
00038 dqmStore_ = Service<DQMStore>().operator->();
00039
00040 prefixME_ = ps.getUntrackedParameter<string>("prefixME", "");
00041
00042 enableCleanup_ = ps.getUntrackedParameter<bool>("enableCleanup", false);
00043
00044 mergeRuns_ = ps.getUntrackedParameter<bool>("mergeRuns", false);
00045
00046 EBDetIdCollection0_ = ps.getParameter<edm::InputTag>("EBDetIdCollection0");
00047 EBDetIdCollection1_ = ps.getParameter<edm::InputTag>("EBDetIdCollection1");
00048 EBDetIdCollection2_ = ps.getParameter<edm::InputTag>("EBDetIdCollection2");
00049 EBDetIdCollection3_ = ps.getParameter<edm::InputTag>("EBDetIdCollection3");
00050 EcalElectronicsIdCollection1_ = ps.getParameter<edm::InputTag>("EcalElectronicsIdCollection1");
00051 EcalElectronicsIdCollection2_ = ps.getParameter<edm::InputTag>("EcalElectronicsIdCollection2");
00052 EcalElectronicsIdCollection3_ = ps.getParameter<edm::InputTag>("EcalElectronicsIdCollection3");
00053 EcalElectronicsIdCollection4_ = ps.getParameter<edm::InputTag>("EcalElectronicsIdCollection4");
00054 EcalElectronicsIdCollection5_ = ps.getParameter<edm::InputTag>("EcalElectronicsIdCollection5");
00055 EcalElectronicsIdCollection6_ = ps.getParameter<edm::InputTag>("EcalElectronicsIdCollection6");
00056
00057 meIntegrityDCCSize = 0;
00058 for (int i = 0; i < 36; i++) {
00059 meIntegrityGain[i] = 0;
00060 meIntegrityChId[i] = 0;
00061 meIntegrityGainSwitch[i] = 0;
00062 meIntegrityTTId[i] = 0;
00063 meIntegrityTTBlockSize[i] = 0;
00064 meIntegrityMemChId[i] = 0;
00065 meIntegrityMemGain[i] = 0;
00066 meIntegrityMemTTId[i] = 0;
00067 meIntegrityMemTTBlockSize[i] = 0;
00068 }
00069
00070 }
00071
00072
00073 EBIntegrityTask::~EBIntegrityTask(){
00074
00075 }
00076
00077 void EBIntegrityTask::beginJob(const EventSetup& c){
00078
00079 ievt_ = 0;
00080
00081 if ( dqmStore_ ) {
00082 dqmStore_->setCurrentFolder(prefixME_ + "/EBIntegrityTask");
00083 dqmStore_->rmdir(prefixME_ + "/EBIntegrityTask");
00084 }
00085
00086 Numbers::initGeometry(c, false);
00087
00088 }
00089
00090 void EBIntegrityTask::beginRun(const Run& r, const EventSetup& c) {
00091
00092 if ( ! mergeRuns_ ) this->reset();
00093
00094 }
00095
00096 void EBIntegrityTask::endRun(const Run& r, const EventSetup& c) {
00097
00098 }
00099
00100 void EBIntegrityTask::reset(void) {
00101
00102 if ( meIntegrityDCCSize ) meIntegrityDCCSize->Reset();
00103 for (int i = 0; i < 36; i++) {
00104 if ( meIntegrityGain[i] ) meIntegrityGain[i]->Reset();
00105 if ( meIntegrityChId[i] ) meIntegrityChId[i]->Reset();
00106 if ( meIntegrityGainSwitch[i] ) meIntegrityGainSwitch[i]->Reset();
00107 if ( meIntegrityTTId[i] ) meIntegrityTTId[i]->Reset();
00108 if ( meIntegrityTTBlockSize[i] ) meIntegrityTTBlockSize[i]->Reset();
00109 if ( meIntegrityMemChId[i] ) meIntegrityMemChId[i]->Reset();
00110 if ( meIntegrityMemGain[i] ) meIntegrityMemGain[i]->Reset();
00111 if ( meIntegrityMemTTId[i] ) meIntegrityMemTTId[i]->Reset();
00112 if ( meIntegrityMemTTBlockSize[i] ) meIntegrityMemTTBlockSize[i]->Reset();
00113 }
00114
00115 }
00116
00117 void EBIntegrityTask::setup(void){
00118
00119 init_ = true;
00120
00121 char histo[200];
00122
00123 if ( dqmStore_ ) {
00124 dqmStore_->setCurrentFolder(prefixME_ + "/EBIntegrityTask");
00125
00126
00127 sprintf(histo, "EBIT DCC size error");
00128 meIntegrityDCCSize = dqmStore_->book1D(histo, histo, 36, 1, 37.);
00129 for (int i = 0; i < 36; i++) {
00130 meIntegrityDCCSize->setBinLabel(i+1, Numbers::sEB(i+1).c_str(), 1);
00131 }
00132
00133
00134 dqmStore_->setCurrentFolder(prefixME_ + "/EBIntegrityTask/Gain");
00135 for (int i = 0; i < 36; i++) {
00136 sprintf(histo, "EBIT gain %s", Numbers::sEB(i+1).c_str());
00137 meIntegrityGain[i] = dqmStore_->book2D(histo, histo, 85, 0., 85., 20, 0., 20.);
00138 meIntegrityGain[i]->setAxisTitle("ieta", 1);
00139 meIntegrityGain[i]->setAxisTitle("iphi", 2);
00140 dqmStore_->tag(meIntegrityGain[i], i+1);
00141 }
00142
00143
00144 dqmStore_->setCurrentFolder(prefixME_ + "/EBIntegrityTask/ChId");
00145 for (int i = 0; i < 36; i++) {
00146 sprintf(histo, "EBIT ChId %s", Numbers::sEB(i+1).c_str());
00147 meIntegrityChId[i] = dqmStore_->book2D(histo, histo, 85, 0., 85., 20, 0., 20.);
00148 meIntegrityChId[i]->setAxisTitle("ieta", 1);
00149 meIntegrityChId[i]->setAxisTitle("iphi", 2);
00150 dqmStore_->tag(meIntegrityChId[i], i+1);
00151 }
00152
00153
00154 dqmStore_->setCurrentFolder(prefixME_ + "/EBIntegrityTask/GainSwitch");
00155 for (int i = 0; i < 36; i++) {
00156 sprintf(histo, "EBIT gain switch %s", Numbers::sEB(i+1).c_str());
00157 meIntegrityGainSwitch[i] = dqmStore_->book2D(histo, histo, 85, 0., 85., 20, 0., 20.);
00158 meIntegrityGainSwitch[i]->setAxisTitle("ieta", 1);
00159 meIntegrityGainSwitch[i]->setAxisTitle("iphi", 2);
00160 dqmStore_->tag(meIntegrityGainSwitch[i], i+1);
00161 }
00162
00163
00164 dqmStore_->setCurrentFolder(prefixME_ + "/EBIntegrityTask/TTId");
00165 for (int i = 0; i < 36; i++) {
00166 sprintf(histo, "EBIT TTId %s", Numbers::sEB(i+1).c_str());
00167 meIntegrityTTId[i] = dqmStore_->book2D(histo, histo, 17, 0., 17., 4, 0., 4.);
00168 meIntegrityTTId[i]->setAxisTitle("ieta'", 1);
00169 meIntegrityTTId[i]->setAxisTitle("iphi'", 2);
00170 dqmStore_->tag(meIntegrityTTId[i], i+1);
00171 }
00172
00173
00174 dqmStore_->setCurrentFolder(prefixME_ + "/EBIntegrityTask/TTBlockSize");
00175 for (int i = 0; i < 36; i++) {
00176 sprintf(histo, "EBIT TTBlockSize %s", Numbers::sEB(i+1).c_str());
00177 meIntegrityTTBlockSize[i] = dqmStore_->book2D(histo, histo, 17, 0., 17., 4, 0., 4.);
00178 meIntegrityTTBlockSize[i]->setAxisTitle("ieta'", 1);
00179 meIntegrityTTBlockSize[i]->setAxisTitle("iphi'", 2);
00180 dqmStore_->tag(meIntegrityTTBlockSize[i], i+1);
00181 }
00182
00183
00184 dqmStore_->setCurrentFolder(prefixME_ + "/EBIntegrityTask/MemChId");
00185 for (int i = 0; i < 36; i++) {
00186 sprintf(histo, "EBIT MemChId %s", Numbers::sEB(i+1).c_str());
00187 meIntegrityMemChId[i] = dqmStore_->book2D(histo, histo, 10, 0., 10., 5, 0., 5.);
00188 meIntegrityMemChId[i]->setAxisTitle("pseudo-strip", 1);
00189 meIntegrityMemChId[i]->setAxisTitle("channel", 2);
00190 dqmStore_->tag(meIntegrityMemChId[i], i+1);
00191 }
00192
00193
00194
00195
00196 dqmStore_->setCurrentFolder(prefixME_ + "/EBIntegrityTask/MemGain");
00197 for (int i = 0; i < 36; i++) {
00198 sprintf(histo, "EBIT MemGain %s", Numbers::sEB(i+1).c_str());
00199 meIntegrityMemGain[i] = dqmStore_->book2D(histo, histo, 10, 0., 10., 5, 0., 5.);
00200 meIntegrityMemGain[i]->setAxisTitle("pseudo-strip", 1);
00201 meIntegrityMemGain[i]->setAxisTitle("channel", 2);
00202 dqmStore_->tag(meIntegrityMemGain[i], i+1);
00203 }
00204
00205
00206 dqmStore_->setCurrentFolder(prefixME_ + "/EBIntegrityTask/MemTTId");
00207 for (int i = 0; i < 36; i++) {
00208 sprintf(histo, "EBIT MemTTId %s", Numbers::sEB(i+1).c_str());
00209 meIntegrityMemTTId[i] = dqmStore_->book2D(histo, histo, 2, 0., 2., 1, 0., 1.);
00210 meIntegrityMemTTId[i]->setAxisTitle("pseudo-strip", 1);
00211 meIntegrityMemTTId[i]->setAxisTitle("channel", 2);
00212 dqmStore_->tag(meIntegrityMemTTId[i], i+1);
00213 }
00214
00215
00216 dqmStore_->setCurrentFolder(prefixME_ + "/EBIntegrityTask/MemSize");
00217 for (int i = 0; i < 36; i++) {
00218 sprintf(histo, "EBIT MemSize %s", Numbers::sEB(i+1).c_str());
00219 meIntegrityMemTTBlockSize[i] = dqmStore_->book2D(histo, histo, 2, 0., 2., 1, 0., 1.);
00220 meIntegrityMemTTBlockSize[i]->setAxisTitle("pseudo-strip", 1);
00221 meIntegrityMemTTId[i]->setAxisTitle("pseudo-strip", 1);
00222 meIntegrityMemTTId[i]->setAxisTitle("channel", 2);
00223 dqmStore_->tag(meIntegrityMemTTBlockSize[i], i+1);
00224 }
00225
00226 }
00227
00228 }
00229
00230 void EBIntegrityTask::cleanup(void){
00231
00232 if ( ! init_ ) return;
00233
00234 if ( dqmStore_ ) {
00235 dqmStore_->setCurrentFolder(prefixME_ + "/EBIntegrityTask");
00236
00237 if ( meIntegrityDCCSize ) dqmStore_->removeElement( meIntegrityDCCSize->getName() );
00238 meIntegrityDCCSize = 0;
00239
00240 dqmStore_->setCurrentFolder(prefixME_ + "/EBIntegrityTask/Gain");
00241 for (int i = 0; i < 36; i++) {
00242 if ( meIntegrityGain[i] ) dqmStore_->removeElement( meIntegrityGain[i]->getName() );
00243 meIntegrityGain[i] = 0;
00244 }
00245
00246 dqmStore_->setCurrentFolder(prefixME_ + "/EBIntegrityTask/ChId");
00247 for (int i = 0; i < 36; i++) {
00248 if ( meIntegrityChId[i] ) dqmStore_->removeElement( meIntegrityChId[i]->getName() );
00249 meIntegrityChId[i] = 0;
00250 }
00251
00252 dqmStore_->setCurrentFolder(prefixME_ + "/EBIntegrityTask/GainSwitch");
00253 for (int i = 0; i < 36; i++) {
00254 if ( meIntegrityGainSwitch[i] ) dqmStore_->removeElement( meIntegrityGainSwitch[i]->getName() );
00255 meIntegrityGainSwitch[i] = 0;
00256 }
00257
00258 dqmStore_->setCurrentFolder(prefixME_ + "/EBIntegrityTask/TTId");
00259 for (int i = 0; i < 36; i++) {
00260 if ( meIntegrityTTId[i] ) dqmStore_->removeElement( meIntegrityTTId[i]->getName() );
00261 meIntegrityTTId[i] = 0;
00262 }
00263
00264 dqmStore_->setCurrentFolder(prefixME_ + "/EBIntegrityTask/TTBlockSize");
00265 for (int i = 0; i < 36; i++) {
00266 if ( meIntegrityTTBlockSize[i] ) dqmStore_->removeElement( meIntegrityTTBlockSize[i]->getName() );
00267 meIntegrityTTBlockSize[i] = 0;
00268 }
00269
00270 dqmStore_->setCurrentFolder(prefixME_ + "/EBIntegrityTask/MemChId");
00271 for (int i = 0; i < 36; i++) {
00272 if ( meIntegrityMemChId[i] ) dqmStore_->removeElement( meIntegrityMemChId[i]->getName() );
00273 meIntegrityMemChId[i] = 0;
00274 }
00275
00276 dqmStore_->setCurrentFolder(prefixME_ + "/EBIntegrityTask/MemGain");
00277 for (int i = 0; i < 36; i++) {
00278 if ( meIntegrityMemGain[i] ) dqmStore_->removeElement( meIntegrityMemGain[i]->getName() );
00279 meIntegrityMemGain[i] = 0;
00280 }
00281
00282 dqmStore_->setCurrentFolder(prefixME_ + "/EBIntegrityTask/MemTTId");
00283 for (int i = 0; i < 36; i++) {
00284 if ( meIntegrityMemTTId[i] ) dqmStore_->removeElement( meIntegrityMemTTId[i]->getName() );
00285 meIntegrityMemTTId[i] = 0;
00286 }
00287
00288 dqmStore_->setCurrentFolder(prefixME_ + "/EBIntegrityTask/MemSize");
00289 for (int i = 0; i < 36; i++) {
00290 if ( meIntegrityMemTTBlockSize[i] ) dqmStore_->removeElement( meIntegrityMemTTBlockSize[i]->getName() );
00291 meIntegrityMemTTBlockSize[i] = 0;
00292 }
00293
00294 }
00295
00296 init_ = false;
00297
00298 }
00299
00300 void EBIntegrityTask::endJob(void){
00301
00302 LogInfo("EBIntegrityTask") << "analyzed " << ievt_ << " events";
00303
00304 if ( enableCleanup_ ) this->cleanup();
00305
00306 }
00307
00308 void EBIntegrityTask::analyze(const Event& e, const EventSetup& c){
00309
00310 if ( ! init_ ) this->setup();
00311
00312 ievt_++;
00313
00314 Handle<EBDetIdCollection> ids0;
00315
00316 if ( e.getByLabel(EBDetIdCollection0_, ids0) ) {
00317
00318 for ( EBDetIdCollection::const_iterator idItr = ids0->begin(); idItr != ids0->end(); ++idItr ) {
00319
00320 int ism = Numbers::iSM( *idItr );
00321
00322 float xism = ism - 0.5;
00323
00324 if ( meIntegrityDCCSize ) meIntegrityDCCSize->Fill(xism);
00325
00326 }
00327
00328 } else {
00329
00330
00331
00332 }
00333
00334 Handle<EBDetIdCollection> ids1;
00335
00336 if ( e.getByLabel(EBDetIdCollection1_, ids1) ) {
00337
00338 for ( EBDetIdCollection::const_iterator idItr = ids1->begin(); idItr != ids1->end(); ++idItr ) {
00339
00340 EBDetId id = (*idItr);
00341
00342 int ic = id.ic();
00343 int ie = (ic-1)/20 + 1;
00344 int ip = (ic-1)%20 + 1;
00345
00346 int ism = Numbers::iSM( id );
00347
00348 float xie = ie - 0.5;
00349 float xip = ip - 0.5;
00350
00351 if ( meIntegrityGain[ism-1] ) meIntegrityGain[ism-1]->Fill(xie, xip);
00352
00353 }
00354
00355 } else {
00356
00357 LogWarning("EBIntegrityTask") << EBDetIdCollection1_ << " not available";
00358
00359 }
00360
00361 Handle<EBDetIdCollection> ids2;
00362
00363 if ( e.getByLabel(EBDetIdCollection2_, ids2) ) {
00364
00365 for ( EBDetIdCollection::const_iterator idItr = ids2->begin(); idItr != ids2->end(); ++idItr ) {
00366
00367 EBDetId id = (*idItr);
00368
00369 int ic = id.ic();
00370 int ie = (ic-1)/20 + 1;
00371 int ip = (ic-1)%20 + 1;
00372
00373 int ism = Numbers::iSM( id );
00374
00375 float xie = ie - 0.5;
00376 float xip = ip - 0.5;
00377
00378 if ( meIntegrityChId[ism-1] ) meIntegrityChId[ism-1]->Fill(xie, xip);
00379
00380 }
00381
00382 } else {
00383
00384 LogWarning("EBIntegrityTask") << EBDetIdCollection2_ << " not available";
00385
00386 }
00387
00388 Handle<EBDetIdCollection> ids3;
00389
00390 if ( e.getByLabel(EBDetIdCollection3_, ids3) ) {
00391
00392 for ( EBDetIdCollection::const_iterator idItr = ids3->begin(); idItr != ids3->end(); ++idItr ) {
00393
00394 EBDetId id = (*idItr);
00395
00396 int ic = id.ic();
00397 int ie = (ic-1)/20 + 1;
00398 int ip = (ic-1)%20 + 1;
00399
00400 int ism = Numbers::iSM( id );
00401
00402 float xie = ie - 0.5;
00403 float xip = ip - 0.5;
00404
00405 if ( meIntegrityGainSwitch[ism-1] ) meIntegrityGainSwitch[ism-1]->Fill(xie, xip);
00406
00407 }
00408
00409 } else {
00410
00411 LogWarning("EBIntegrityTask") << EBDetIdCollection3_ << " not available";
00412
00413 }
00414
00415 Handle<EcalElectronicsIdCollection> ids4;
00416
00417 if ( e.getByLabel(EcalElectronicsIdCollection1_, ids4) ) {
00418
00419 for ( EcalElectronicsIdCollection::const_iterator idItr = ids4->begin(); idItr != ids4->end(); ++idItr ) {
00420
00421 if ( Numbers::subDet( *idItr ) != EcalBarrel ) continue;
00422
00423 int itt = idItr->towerId();
00424
00425 int iet = (itt-1)/4 + 1;
00426 int ipt = (itt-1)%4 + 1;
00427
00428 int ismt = Numbers::iSM( *idItr );
00429
00430 float xiet = iet - 0.5;
00431 float xipt = ipt - 0.5;
00432
00433 if ( meIntegrityTTId[ismt-1] ) meIntegrityTTId[ismt-1]->Fill(xiet, xipt);
00434
00435 }
00436
00437 } else {
00438
00439 LogWarning("EBIntegrityTask") << EcalElectronicsIdCollection1_ << " not available";
00440
00441 }
00442
00443 Handle<EcalElectronicsIdCollection> ids5;
00444
00445 if ( e.getByLabel(EcalElectronicsIdCollection2_, ids5) ) {
00446
00447 for ( EcalElectronicsIdCollection::const_iterator idItr = ids5->begin(); idItr != ids5->end(); ++idItr ) {
00448
00449 if ( Numbers::subDet( *idItr ) != EcalBarrel ) continue;
00450
00451 int itt = idItr->towerId();
00452
00453 int iet = (itt-1)/4 + 1;
00454 int ipt = (itt-1)%4 + 1;
00455
00456 int ismt = Numbers::iSM( *idItr );
00457
00458 float xiet = iet - 0.5;
00459 float xipt = ipt - 0.5;
00460
00461 if ( meIntegrityTTBlockSize[ismt-1] ) meIntegrityTTBlockSize[ismt-1]->Fill(xiet, xipt);
00462
00463 }
00464
00465 } else {
00466
00467 LogWarning("EBIntegrityTask") << EcalElectronicsIdCollection2_ << " not available";
00468
00469 }
00470
00471 Handle<EcalElectronicsIdCollection> ids6;
00472
00473 if ( e.getByLabel(EcalElectronicsIdCollection3_, ids6) ) {
00474
00475 for ( EcalElectronicsIdCollection::const_iterator idItr = ids6->begin(); idItr != ids6->end(); ++idItr ) {
00476
00477 if ( Numbers::subDet( *idItr ) != EcalBarrel ) continue;
00478
00479 int ism = Numbers::iSM( *idItr );
00480
00481 int itt = idItr->towerId();
00482 float iTt = itt + 0.5 - 69;
00483
00484 if ( meIntegrityMemTTId[ism-1] ) meIntegrityMemTTId[ism-1]->Fill(iTt,0);
00485
00486 }
00487
00488 } else {
00489
00490 LogWarning("EBIntegrityTask") << EcalElectronicsIdCollection3_ << " not available";
00491
00492 }
00493
00494 Handle<EcalElectronicsIdCollection> ids7;
00495
00496 if ( e.getByLabel(EcalElectronicsIdCollection4_, ids7) ) {
00497
00498 for ( EcalElectronicsIdCollection::const_iterator idItr = ids7->begin(); idItr != ids7->end(); ++idItr ) {
00499
00500 if ( Numbers::subDet( *idItr ) != EcalBarrel ) continue;
00501
00502 int ism = Numbers::iSM( *idItr );
00503
00504 int itt = idItr->towerId();
00505 float iTt = itt + 0.5 - 69;
00506
00507 if ( meIntegrityMemTTBlockSize[ism-1] ) meIntegrityMemTTBlockSize[ism-1]->Fill(iTt,0);
00508
00509 }
00510
00511 } else {
00512
00513 LogWarning("EBIntegrityTask") << EcalElectronicsIdCollection4_ << " not available";
00514
00515 }
00516
00517 Handle<EcalElectronicsIdCollection> ids8;
00518
00519 if ( e.getByLabel(EcalElectronicsIdCollection5_, ids8) ) {
00520
00521 for ( EcalElectronicsIdCollection::const_iterator idItr = ids8->begin(); idItr != ids8->end(); ++idItr ) {
00522
00523 if ( Numbers::subDet( *idItr ) != EcalBarrel ) continue;
00524
00525 int ism = Numbers::iSM( *idItr );
00526
00527 int chid = idItr->channelId();
00528 int ie = EBIntegrityTask::chMemAbscissa[chid-1];
00529 int ip = EBIntegrityTask::chMemOrdinate[chid-1];
00530
00531 int itt = idItr->towerId();
00532 ie += (itt-69)*5;
00533
00534 float xie = ie - 0.5;
00535 float xip = ip - 0.5;
00536
00537 if ( meIntegrityMemChId[ism-1] ) meIntegrityMemChId[ism-1]->Fill(xie,xip);
00538
00539 }
00540
00541 } else {
00542
00543 LogWarning("EBIntegrityTask") << EcalElectronicsIdCollection5_ << " not available";
00544
00545 }
00546
00547 Handle<EcalElectronicsIdCollection> ids9;
00548
00549 if ( e.getByLabel(EcalElectronicsIdCollection6_, ids9) ) {
00550
00551 for ( EcalElectronicsIdCollection::const_iterator idItr = ids9->begin(); idItr != ids9->end(); ++idItr ) {
00552
00553 if ( Numbers::subDet( *idItr ) != EcalBarrel ) continue;
00554
00555 int ism = Numbers::iSM( *idItr );
00556
00557 int chid = idItr->channelId();
00558 int ie = EBIntegrityTask::chMemAbscissa[chid-1];
00559 int ip = EBIntegrityTask::chMemOrdinate[chid-1];
00560
00561 int itt = idItr->towerId();
00562 ie += (itt-69)*5;
00563
00564 float xie = ie - 0.5;
00565 float xip = ip - 0.5;
00566
00567 if ( meIntegrityMemGain[ism-1] ) meIntegrityMemGain[ism-1]->Fill(xie,xip);
00568
00569 }
00570
00571 } else {
00572
00573 LogWarning("EBIntegrityTask") << EcalElectronicsIdCollection6_ << " not available";
00574
00575 }
00576
00577 }
00578
00579 const int EBIntegrityTask::chMemAbscissa [25] = {
00580 1, 1, 1, 1, 1,
00581 2, 2, 2, 2, 2,
00582 3, 3, 3, 3, 3,
00583 4, 4, 4, 4, 4,
00584 5, 5, 5, 5, 5
00585 };
00586
00587 const int EBIntegrityTask::chMemOrdinate [25] = {
00588 1, 2, 3, 4, 5,
00589 5, 4, 3, 2, 1,
00590 1, 2, 3, 4, 5,
00591 5, 4, 3, 2, 1,
00592 1, 2, 3, 4, 5
00593 };
00594