CMS 3D CMS Logo

EcalBarrelMonitorModule.cc

Go to the documentation of this file.
00001 /*
00002  * \file EcalBarrelMonitorModule.cc
00003  *
00004  * $Date: 2008/12/04 12:50:21 $
00005  * $Revision: 1.185 $
00006  * \author G. Della Ricca
00007  * \author G. Franzoni
00008  *
00009 */
00010 
00011 #include "FWCore/Framework/interface/Frameworkfwd.h"
00012 #include "FWCore/Framework/interface/MakerMacros.h"
00013 
00014 #include "DataFormats/EcalRawData/interface/EcalRawDataCollections.h"
00015 #include "DataFormats/EcalDetId/interface/EBDetId.h"
00016 #include "DataFormats/EcalDigi/interface/EBDataFrame.h"
00017 #include "DataFormats/EcalDigi/interface/EcalDigiCollections.h"
00018 #include "DataFormats/EcalRecHit/interface/EcalRecHitCollections.h"
00019 
00020 #include "DQMServices/Core/interface/MonitorElement.h"
00021 
00022 #include "FWCore/ServiceRegistry/interface/Service.h"
00023 #include "DQMServices/Core/interface/DQMStore.h"
00024 
00025 #include <DQM/EcalCommon/interface/Numbers.h>
00026 
00027 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00028 
00029 #include <memory>
00030 #include <iostream>
00031 #include <fstream>
00032 #include <vector>
00033 
00034 #include <DQM/EcalBarrelMonitorModule/interface/EcalBarrelMonitorModule.h>
00035 
00036 using namespace cms;
00037 using namespace edm;
00038 using namespace std;
00039 
00040 EcalBarrelMonitorModule::EcalBarrelMonitorModule(const ParameterSet& ps){
00041 
00042   // verbose switch
00043   verbose_ = ps.getUntrackedParameter<bool>("verbose", false);
00044 
00045   if ( verbose_ ) {
00046     cout << endl;
00047     cout << " *** Ecal Barrel Generic Monitor ***" << endl;
00048     cout << endl;
00049   }
00050 
00051   init_ = false;
00052 
00053   EcalRawDataCollection_ = ps.getParameter<edm::InputTag>("EcalRawDataCollection");
00054   EBDigiCollection_ = ps.getParameter<edm::InputTag>("EBDigiCollection");
00055   EcalRecHitCollection_ = ps.getParameter<edm::InputTag>("EcalRecHitCollection");
00056   EcalTrigPrimDigiCollection_ = ps.getParameter<edm::InputTag>("EcalTrigPrimDigiCollection");
00057 
00058   // this should come from the event header
00059   runNumber_ = ps.getUntrackedParameter<int>("runNumber", 0);
00060 
00061   fixedRunNumber_ = false;
00062   if ( runNumber_ != 0 ) fixedRunNumber_ = true;
00063 
00064   if ( fixedRunNumber_ ) {
00065     LogInfo("EcalBarrelMonitorModule") << " using fixed Run Number = " << runNumber_ << endl;
00066   }
00067 
00068   // this should come from the event header
00069   evtNumber_ = 0;
00070 
00071   // this should come from the EcalBarrel event header
00072   runType_ = ps.getUntrackedParameter<int>("runType", -1);
00073   evtType_ = runType_;
00074 
00075   fixedRunType_ = false;
00076   if ( runType_ != -1 ) fixedRunType_ = true;
00077 
00078   if ( fixedRunType_) {
00079     LogInfo("EcalBarrelMonitorModule") << " using fixed Run Type = " << runType_ << endl;
00080   }
00081 
00082   // debug switch
00083   debug_ = ps.getUntrackedParameter<bool>("debug", false);
00084 
00085   if ( debug_ ) {
00086     LogInfo("EcalBarrelMonitorModule") << " debug switch is ON";
00087   } else {
00088     LogInfo("EcalBarrelMonitorModule") << " debug switch is OFF";
00089   }
00090 
00091   // prefixME path
00092   prefixME_ = ps.getUntrackedParameter<string>("prefixME", "");
00093 
00094   // enableCleanup switch
00095   enableCleanup_ = ps.getUntrackedParameter<bool>("enableCleanup", false);
00096 
00097   // mergeRuns switch
00098   mergeRuns_ = ps.getUntrackedParameter<bool>("mergeRuns", false);
00099 
00100   if ( enableCleanup_ ) {
00101     LogInfo("EcalBarrelMonitorModule") << " enableCleanup switch is ON";
00102   } else {
00103     LogInfo("EcalBarrelMonitorModule") << " enableCleanup switch is OFF";
00104   }
00105 
00106   // EventDisplay switch
00107   enableEventDisplay_ = ps.getUntrackedParameter<bool>("enableEventDisplay", false);
00108 
00109   meStatus_ = 0;
00110   meRun_ = 0;
00111   meEvt_ = 0;
00112   meRunType_ = 0;
00113   meEvtType_ = 0;
00114 
00115   meEBDCC_ = 0;
00116 
00117   for (int i = 0; i < 2; i++) {
00118     meEBdigis_[i] = 0;
00119     meEBhits_[i] = 0;
00120     meEBtpdigis_[i] = 0;
00121   }
00122 
00123   for (int i = 0; i < 36; i++) {
00124     meEvent_[i] = 0;
00125   }
00126 
00127 }
00128 
00129 EcalBarrelMonitorModule::~EcalBarrelMonitorModule(){
00130 
00131 }
00132 
00133 void EcalBarrelMonitorModule::beginJob(const EventSetup& c){
00134 
00135   if ( debug_ ) cout << "EcalBarrelMonitorModule: beginJob" << endl;
00136 
00137   ievt_ = 0;
00138 
00139   dqmStore_ = Service<DQMStore>().operator->();
00140 
00141   if ( dqmStore_ ) {
00142     dqmStore_->setCurrentFolder(prefixME_ + "/EcalInfo");
00143     dqmStore_->rmdir(prefixME_ + "/EcalInfo");
00144     if ( enableEventDisplay_ ) {
00145       dqmStore_->setCurrentFolder(prefixME_ + "/EcalEvent");
00146       dqmStore_->rmdir(prefixME_ + "/EcalEvent");
00147     }
00148   }
00149 
00150 }
00151 
00152 void EcalBarrelMonitorModule::beginRun(const Run& r, const EventSetup& c) {
00153 
00154   if ( debug_ ) cout << "EcalBarrelMonitorModule: beginRun" << endl;
00155 
00156   if ( ! mergeRuns_ ) this->reset();
00157 
00158 }
00159 
00160 void EcalBarrelMonitorModule::endRun(const Run& r, const EventSetup& c) {
00161 
00162   if ( debug_ ) cout << "EcalBarrelMonitorModule: endRun" << endl;
00163 
00164 }
00165 
00166 void EcalBarrelMonitorModule::reset(void) {
00167 
00168   if ( meEvtType_ ) meEvtType_->Reset();
00169 
00170   if ( meEBDCC_ ) meEBDCC_->Reset();
00171     
00172   for (int i = 0; i < 2; i++) {
00173     if ( meEBdigis_[i] ) meEBdigis_[i]->Reset();
00174     
00175     if ( meEBhits_[i] ) meEBdigis_[i]->Reset();
00176     
00177     if ( meEBtpdigis_[i] ) meEBtpdigis_[i]->Reset();
00178   } 
00179 
00180   if ( enableEventDisplay_ ) {
00181     for (int i = 0; i < 18; i++) {
00182       if ( meEvent_[i] ) meEvent_[i]->Reset();
00183     }
00184   } 
00185 
00186 }
00187 
00188 void EcalBarrelMonitorModule::setup(void){
00189 
00190   init_ = true;
00191 
00192   if ( dqmStore_ ) {
00193     dqmStore_->setCurrentFolder(prefixME_ + "/EcalInfo");
00194 
00195     meStatus_ = dqmStore_->bookInt("STATUS");
00196 
00197     meRun_ = dqmStore_->bookInt("RUN");
00198     meEvt_ = dqmStore_->bookInt("EVT");
00199 
00200     meRunType_ = dqmStore_->bookInt("RUNTYPE");
00201     meEvtType_ = dqmStore_->book1D("EVTTYPE", "EVTTYPE", 31, -1., 30.);
00202     meEvtType_->setBinLabel(1, "UNKNOWN", 1);
00203     meEvtType_->setBinLabel(2+EcalDCCHeaderBlock::COSMIC, "COSMIC", 1);
00204     meEvtType_->setBinLabel(2+EcalDCCHeaderBlock::BEAMH4, "BEAMH4", 1);
00205     meEvtType_->setBinLabel(2+EcalDCCHeaderBlock::BEAMH2, "BEAMH2", 1);
00206     meEvtType_->setBinLabel(2+EcalDCCHeaderBlock::MTCC, "MTCC", 1);
00207     meEvtType_->setBinLabel(2+EcalDCCHeaderBlock::LASER_STD, "LASER_STD", 1);
00208     meEvtType_->setBinLabel(2+EcalDCCHeaderBlock::LASER_POWER_SCAN, "LASER_POWER_SCAN", 1);
00209     meEvtType_->setBinLabel(2+EcalDCCHeaderBlock::LASER_DELAY_SCAN, "LASER_DELAY_SCAN", 1);
00210     meEvtType_->setBinLabel(2+EcalDCCHeaderBlock::TESTPULSE_SCAN_MEM, "TESTPULSE_SCAN_MEM", 1);
00211     meEvtType_->setBinLabel(2+EcalDCCHeaderBlock::TESTPULSE_MGPA, "TESTPULSE_MGPA", 1);
00212     meEvtType_->setBinLabel(2+EcalDCCHeaderBlock::PEDESTAL_STD, "PEDESTAL_STD", 1);
00213     meEvtType_->setBinLabel(2+EcalDCCHeaderBlock::PEDESTAL_OFFSET_SCAN, "PEDESTAL_OFFSET_SCAN", 1);
00214     meEvtType_->setBinLabel(2+EcalDCCHeaderBlock::PEDESTAL_25NS_SCAN, "PEDESTAL_25NS_SCAN", 1);
00215     meEvtType_->setBinLabel(2+EcalDCCHeaderBlock::LED_STD, "LED_STD", 1);
00216     meEvtType_->setBinLabel(2+EcalDCCHeaderBlock::PHYSICS_GLOBAL, "PHYSICS_GLOBAL", 1);
00217     meEvtType_->setBinLabel(2+EcalDCCHeaderBlock::COSMICS_GLOBAL, "COSMICS_GLOBAL", 1);
00218     meEvtType_->setBinLabel(2+EcalDCCHeaderBlock::HALO_GLOBAL, "HALO_GLOBAL", 1);
00219     meEvtType_->setBinLabel(2+EcalDCCHeaderBlock::LASER_GAP, "LASER_GAP", 1);
00220     meEvtType_->setBinLabel(2+EcalDCCHeaderBlock::TESTPULSE_GAP, "TESTPULSE_GAP");
00221     meEvtType_->setBinLabel(2+EcalDCCHeaderBlock::PEDESTAL_GAP, "PEDESTAL_GAP");
00222     meEvtType_->setBinLabel(2+EcalDCCHeaderBlock::LED_GAP, "LED_GAP", 1);
00223     meEvtType_->setBinLabel(2+EcalDCCHeaderBlock::PHYSICS_LOCAL, "PHYSICS_LOCAL", 1);
00224     meEvtType_->setBinLabel(2+EcalDCCHeaderBlock::COSMICS_LOCAL, "COSMICS_LOCAL", 1);
00225     meEvtType_->setBinLabel(2+EcalDCCHeaderBlock::HALO_LOCAL, "HALO_LOCAL", 1);
00226   }
00227 
00228   // unknown
00229   if ( meStatus_ ) meStatus_->Fill(-1);
00230 
00231   if ( meRun_ ) meRun_->Fill(-1);
00232   if ( meEvt_ ) meEvt_->Fill(-1);
00233 
00234   if ( meRunType_ ) meRunType_->Fill(-1);
00235 
00236   char histo[20];
00237 
00238   if ( dqmStore_ ) {
00239     dqmStore_->setCurrentFolder(prefixME_ + "/EcalInfo");
00240 
00241     meEBDCC_ = dqmStore_->book1D("EBMM DCC", "EBMM DCC", 36, 1, 37.);
00242     for (int i = 0; i < 36; i++) {
00243       meEBDCC_->setBinLabel(i+1, Numbers::sEB(i+1).c_str(), 1);
00244     }
00245 
00246     meEBdigis_[0] = dqmStore_->book1D("EBMM digi number", "EBMM digi number", 100, 0., 61201.);
00247 
00248     meEBdigis_[1] = dqmStore_->bookProfile("EBMM digi number profile", "EBMM digi number profile", 36, 1, 37., 1700, 0., 1701., "s");
00249     for (int i = 0; i < 36; i++) {
00250       meEBdigis_[1]->setBinLabel(i+1, Numbers::sEB(i+1).c_str(), 1);
00251     }
00252 
00253     meEBhits_[0] = dqmStore_->book1D("EBMM hit number", "EBMM hit number", 100, 0., 61201.);
00254 
00255     meEBhits_[1] = dqmStore_->bookProfile("EBMM hit number profile", "EBMM hit number profile", 36, 1, 37., 1700, 0., 1701., "s");
00256     for (int i = 0; i < 36; i++) {
00257       meEBhits_[1]->setBinLabel(i+1, Numbers::sEB(i+1).c_str(), 1);
00258     }
00259 
00260     meEBtpdigis_[0] = dqmStore_->book1D("EBMM TP digi number", "EBMM TP digi number", 100, 0., 2449.);
00261 
00262     meEBtpdigis_[1] = dqmStore_->bookProfile("EBMM TP digi number profile", "EBMM TP digi number profile", 36, 1, 37., 68, 0., 69., "s");
00263     for (int i = 0; i < 36; i++) {
00264       meEBtpdigis_[1]->setBinLabel(i+1, Numbers::sEB(i+1).c_str(), 1);
00265     }
00266 
00267     if ( enableEventDisplay_ ) {
00268       dqmStore_->setCurrentFolder(prefixME_ + "/EcalEvent");
00269       for (int i = 0; i < 36; i++) {
00270         sprintf(histo, "EBMM event %s", Numbers::sEB(i+1).c_str());
00271         meEvent_[i] = dqmStore_->book2D(histo, histo, 85, 0., 85., 20, 0., 20.);
00272         meEvent_[i]->setAxisTitle("ieta", 1);
00273         meEvent_[i]->setAxisTitle("iphi", 2);
00274         dqmStore_->tag(meEvent_[i], i+1);
00275         if ( meEvent_[i] ) meEvent_[i]->setResetMe(true);
00276       }
00277     }
00278 
00279   }
00280 
00281 }
00282 
00283 void EcalBarrelMonitorModule::cleanup(void){
00284 
00285   if ( ! enableCleanup_ ) return;
00286 
00287   if ( dqmStore_ ) {
00288 
00289     dqmStore_->setCurrentFolder(prefixME_ + "/EcalInfo");
00290 
00291     if ( meStatus_ ) dqmStore_->removeElement( meStatus_->getName() );
00292     meStatus_ = 0;
00293 
00294     if ( meRun_ ) dqmStore_->removeElement( meRun_->getName() );
00295     meRun_ = 0;
00296 
00297     if ( meEvt_ ) dqmStore_->removeElement( meEvt_->getName() );
00298     meEvt_ = 0;
00299 
00300     if ( meRunType_ ) dqmStore_->removeElement( meRunType_->getName() );
00301     meRunType_ = 0;
00302 
00303     if ( meEvtType_ ) dqmStore_->removeElement( meEvtType_->getName() );
00304     meEvtType_ = 0;
00305 
00306     if ( meEBDCC_ ) dqmStore_->removeElement( meEBDCC_->getName() );
00307     meEBDCC_ = 0;
00308 
00309     for (int i = 0; i < 2; i++) {
00310 
00311       if ( meEBdigis_[i] ) dqmStore_->removeElement( meEBdigis_[i]->getName() );
00312       meEBdigis_[i] = 0;
00313 
00314       if ( meEBhits_[i] ) dqmStore_->removeElement( meEBhits_[i]->getName() );
00315       meEBhits_[i] = 0;
00316 
00317       if ( meEBtpdigis_[i] ) dqmStore_->removeElement( meEBtpdigis_[i]->getName() );
00318       meEBtpdigis_[i] = 0;
00319 
00320     }
00321 
00322     if ( enableEventDisplay_ ) {
00323 
00324       dqmStore_->setCurrentFolder(prefixME_ + "/EcalEvent");
00325 
00326       for (int i = 0; i < 36; i++) {
00327 
00328         if ( meEvent_[i] ) dqmStore_->removeElement( meEvent_[i]->getName() );
00329         meEvent_[i] = 0;
00330 
00331       }
00332 
00333     }
00334 
00335   }
00336 
00337   init_ = false;
00338 
00339 }
00340 
00341 void EcalBarrelMonitorModule::endJob(void) {
00342 
00343   if ( debug_ ) cout << "EcalBarrelMonitorModule: endJob, ievt = " << ievt_ << endl;
00344 
00345   // end-of-run
00346   if ( meStatus_ ) meStatus_->Fill(2);
00347 
00348   if ( meRun_ ) meRun_->Fill(runNumber_);
00349   if ( meEvt_ ) meEvt_->Fill(evtNumber_);
00350 
00351   if ( init_ ) this->cleanup();
00352 
00353 }
00354 
00355 void EcalBarrelMonitorModule::analyze(const Event& e, const EventSetup& c){
00356 
00357   Numbers::initGeometry(c, verbose_);
00358 
00359   if ( ! init_ ) this->setup();
00360 
00361   ievt_++;
00362 
00363   LogInfo("EcalBarrelMonitorModule") << "processing event " << ievt_;
00364 
00365   if ( ! fixedRunNumber_ ) runNumber_ = e.id().run();
00366 
00367   evtNumber_ = e.id().event();
00368 
00369   Handle<EcalRawDataCollection> dcchs;
00370 
00371   if ( e.getByLabel(EcalRawDataCollection_, dcchs) ) {
00372 
00373     if ( dcchs->size() == 0 ) {
00374       LogWarning("EcalBarrelMonitorModule") << EcalRawDataCollection_ << " is empty";
00375       return;
00376     }
00377 
00378     int nebc = 0;
00379 
00380     for ( EcalRawDataCollection::const_iterator dcchItr = dcchs->begin(); dcchItr != dcchs->end(); ++dcchItr ) {
00381 
00382       if ( Numbers::subDet( *dcchItr ) != EcalBarrel ) continue;
00383 
00384       nebc++;
00385 
00386       if ( meEBDCC_ ) meEBDCC_->Fill(Numbers::iSM( *dcchItr, EcalBarrel )+0.5);
00387 
00388       if ( ! fixedRunNumber_ ) {
00389         runNumber_ = dcchItr->getRunNumber();
00390       }
00391 
00392       evtNumber_ = dcchItr->getLV1();
00393 
00394       if ( ! fixedRunType_ ) {
00395         runType_ = dcchItr->getRunType();
00396         evtType_ = runType_;
00397       }
00398 
00399       if ( evtType_ < 0 || evtType_ > 22 ) evtType_ = -1;
00400       if ( meEvtType_ ) meEvtType_->Fill(evtType_+0.5, 1./36.);
00401 
00402     }
00403 
00404     LogDebug("EcalBarrelMonitorModule") << "event: " << ievt_ << " DCC headers collection size: " << nebc;
00405 
00406   } else {
00407 
00408     if ( evtType_ < 0 || evtType_ > 22 ) evtType_ = -1;
00409     if ( meEvtType_ ) meEvtType_->Fill(evtType_+0.5, 1./36.);
00410 
00411     LogWarning("EcalBarrelMonitorModule") << EcalRawDataCollection_ << " not available";
00412 
00413   }
00414 
00415   if ( meRunType_ ) meRunType_->Fill(runType_);
00416 
00417   if ( ievt_ == 1 ) {
00418     LogInfo("EcalBarrelMonitorModule") << "processing run " << runNumber_;
00419     // begin-of-run
00420     if ( meStatus_ ) meStatus_->Fill(0);
00421   } else {
00422     // running
00423     if ( meStatus_ ) meStatus_->Fill(1);
00424   }
00425 
00426   if ( meRun_ ) meRun_->Fill(runNumber_);
00427   if ( meEvt_ ) meEvt_->Fill(evtNumber_);
00428 
00429   Handle<EBDigiCollection> digis;
00430 
00431   if ( e.getByLabel(EBDigiCollection_, digis) ) {
00432 
00433     int counter[36] = { 0 };
00434 
00435     int nebd = digis->size();
00436     LogDebug("EcalBarrelMonitorModule") << "event " << ievt_ << " digi collection size " << nebd;
00437 
00438     if ( meEBdigis_[0] ) meEBdigis_[0]->Fill(float(nebd));
00439 
00440     for ( EBDigiCollection::const_iterator digiItr = digis->begin(); digiItr != digis->end(); ++digiItr ) {
00441 
00442       EBDataFrame dataframe = (*digiItr);
00443       EBDetId id = dataframe.id();
00444 
00445       int ic = id.ic();
00446       int ie = (ic-1)/20 + 1;
00447       int ip = (ic-1)%20 + 1;
00448 
00449       int ism = Numbers::iSM( id );
00450 
00451       counter[ism-1]++;
00452 
00453       LogDebug("EcalBarrelMonitorModule") << " det id = " << id;
00454       LogDebug("EcalBarrelMonitorModule") << " sm, ieta, iphi " << ism << " " << ie << " " << ip;
00455 
00456     }
00457 
00458     for (int i = 0; i < 36; i++) {
00459 
00460       if ( meEBdigis_[1] ) meEBdigis_[1]->Fill(i+1+0.5, counter[i]);
00461 
00462     }
00463 
00464   } else {
00465 
00466     LogWarning("EcalBarrelMonitorModule") << EBDigiCollection_ << " not available";
00467 
00468   }
00469 
00470   Handle<EcalRecHitCollection> hits;
00471 
00472   if ( e.getByLabel(EcalRecHitCollection_, hits) ) {
00473 
00474     int nebh = hits->size();
00475     LogDebug("EcalBarrelMonitorModule") << "event " << ievt_ << " hits collection size " << nebh;
00476 
00477     if ( meEBhits_[0] ) meEBhits_[0]->Fill(float(nebh));
00478 
00479     int counter[36] = { 0 };
00480 
00481     for ( EcalRecHitCollection::const_iterator hitItr = hits->begin(); hitItr != hits->end(); ++hitItr ) {
00482 
00483       EcalRecHit hit = (*hitItr);
00484       EBDetId id = hit.id();
00485 
00486       int ic = id.ic();
00487       int ie = (ic-1)/20 + 1;
00488       int ip = (ic-1)%20 + 1;
00489 
00490       int ism = Numbers::iSM( id );
00491 
00492       counter[ism-1]++;
00493 
00494       float xie = ie - 0.5;
00495       float xip = ip - 0.5;
00496 
00497       LogDebug("EcalBarrelMonitorModule") << " det id = " << id;
00498       LogDebug("EcalBarrelMonitorModule") << " sm, ieta, iphi " << ism << " " << ie << " " << ip;
00499 
00500       float xval = hit.energy();
00501 
00502       LogDebug("EcalBarrelMonitorModule") << " hit energy " << xval;
00503 
00504       if ( enableEventDisplay_ ) {
00505 
00506         if ( xval >= 10 ) {
00507           if ( meEvent_[ism-1] ) meEvent_[ism-1]->Fill(xie, xip, xval);
00508         }
00509 
00510       }
00511 
00512     }
00513 
00514     for (int i = 0; i < 36; i++) {
00515 
00516       if ( meEBhits_[1] ) meEBhits_[1]->Fill(i+1+0.5, counter[i]);
00517 
00518     }
00519 
00520   } else {
00521 
00522     LogWarning("EcalBarrelMonitorModule") << EcalRecHitCollection_ << " not available";
00523 
00524   }
00525 
00526   Handle<EcalTrigPrimDigiCollection> tpdigis;
00527 
00528   if ( e.getByLabel(EcalTrigPrimDigiCollection_, tpdigis) ) {
00529 
00530     int nebtpd = 0;
00531     int counter[36] = { 0 };
00532 
00533     for ( EcalTrigPrimDigiCollection::const_iterator tpdigiItr = tpdigis->begin();
00534           tpdigiItr != tpdigis->end(); ++tpdigiItr ) {
00535 
00536       EcalTriggerPrimitiveDigi data = (*tpdigiItr);
00537       EcalTrigTowerDetId idt = data.id();
00538 
00539       if ( Numbers::subDet( idt ) != EcalBarrel ) continue;
00540 
00541       int ismt = Numbers::iSM( idt );
00542 
00543       nebtpd++;
00544       counter[ismt-1]++;
00545 
00546     }
00547 
00548     LogDebug("EcalBarrelMonitorModule") << "event " << ievt_ << " TP digi collection size " << nebtpd;
00549     if ( meEBtpdigis_[0] ) meEBtpdigis_[0]->Fill(float(nebtpd));
00550 
00551     for (int i = 0; i < 36; i++) {
00552 
00553       if ( meEBtpdigis_[1] ) meEBtpdigis_[1]->Fill(i+1+0.5, counter[i]);
00554 
00555     }
00556 
00557   } else {
00558 
00559     LogWarning("EcalBarrelMonitorModule") << EcalTrigPrimDigiCollection_ << " not available";
00560 
00561   }
00562 
00563 }
00564 

Generated on Tue Jun 9 17:32:45 2009 for CMSSW by  doxygen 1.5.4