CMS 3D CMS Logo

EEOccupancyTask.cc

Go to the documentation of this file.
00001 /*
00002  * \file EEOccupancyTask.cc
00003  *
00004  * $Date: 2008/12/03 12:55:50 $
00005  * $Revision: 1.55 $
00006  * \author G. Della Ricca
00007  * \author G. Franzoni
00008  *
00009 */
00010 
00011 #include <iostream>
00012 #include <fstream>
00013 #include <vector>
00014 
00015 #include "FWCore/ServiceRegistry/interface/Service.h"
00016 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00017 
00018 #include "DQMServices/Core/interface/MonitorElement.h"
00019 
00020 #include "DQMServices/Core/interface/DQMStore.h"
00021 
00022 #include "DataFormats/EcalRawData/interface/EcalRawDataCollections.h"
00023 #include "DataFormats/EcalDetId/interface/EEDetId.h"
00024 #include "DataFormats/EcalDigi/interface/EEDataFrame.h"
00025 #include "DataFormats/EcalDigi/interface/EcalDigiCollections.h"
00026 #include "DataFormats/EcalRecHit/interface/EcalUncalibratedRecHit.h"
00027 #include "DataFormats/EcalRecHit/interface/EcalRecHitCollections.h"
00028 
00029 #include <DQM/EcalCommon/interface/Numbers.h>
00030 
00031 #include <DQM/EcalEndcapMonitorTasks/interface/EEOccupancyTask.h>
00032 
00033 using namespace cms;
00034 using namespace edm;
00035 using namespace std;
00036 
00037 EEOccupancyTask::EEOccupancyTask(const ParameterSet& ps){
00038 
00039   init_ = false;
00040 
00041   dqmStore_ = Service<DQMStore>().operator->();
00042 
00043   prefixME_ = ps.getUntrackedParameter<string>("prefixME", "");
00044 
00045   enableCleanup_ = ps.getUntrackedParameter<bool>("enableCleanup", false);
00046 
00047   mergeRuns_ = ps.getUntrackedParameter<bool>("mergeRuns", false);
00048 
00049   EcalRawDataCollection_ = ps.getParameter<edm::InputTag>("EcalRawDataCollection");
00050   EEDigiCollection_ = ps.getParameter<edm::InputTag>("EEDigiCollection");
00051   EcalPnDiodeDigiCollection_ = ps.getParameter<edm::InputTag>("EcalPnDiodeDigiCollection");
00052   EcalRecHitCollection_ = ps.getParameter<edm::InputTag>("EcalRecHitCollection");
00053   EcalTrigPrimDigiCollection_ = ps.getParameter<edm::InputTag>("EcalTrigPrimDigiCollection");
00054 
00055   for (int i = 0; i < 18; i++) {
00056     meOccupancy_[i]    = 0;
00057     meOccupancyMem_[i] = 0;
00058   }
00059 
00060   meEEDigiOccupancy_[0] = 0;
00061   meEEDigiOccupancyProR_[0] = 0;
00062   meEEDigiOccupancyProPhi_[0] = 0;
00063   meEEDigiOccupancy_[1] = 0;
00064   meEEDigiOccupancyProR_[1] = 0;
00065   meEEDigiOccupancyProPhi_[1] = 0;
00066 
00067   meEERecHitOccupancy_[0] = 0;
00068   meEERecHitOccupancyProR_[0] = 0;
00069   meEERecHitOccupancyProPhi_[0] = 0;
00070   meEERecHitOccupancy_[1] = 0;
00071   meEERecHitOccupancyProR_[1] = 0;
00072   meEERecHitOccupancyProPhi_[1] = 0;
00073 
00074   meEERecHitOccupancyThr_[0] = 0;
00075   meEERecHitOccupancyProRThr_[0] = 0;
00076   meEERecHitOccupancyProPhiThr_[0] = 0;
00077   meEERecHitOccupancyThr_[1] = 0;
00078   meEERecHitOccupancyProRThr_[1] = 0;
00079   meEERecHitOccupancyProPhiThr_[1] = 0;
00080 
00081   meEETrigPrimDigiOccupancy_[0] = 0;
00082   meEETrigPrimDigiOccupancyProR_[0] = 0;
00083   meEETrigPrimDigiOccupancyProPhi_[0] = 0;
00084   meEETrigPrimDigiOccupancy_[1] = 0;
00085   meEETrigPrimDigiOccupancyProR_[1] = 0;
00086   meEETrigPrimDigiOccupancyProPhi_[1] = 0;
00087 
00088   meEETrigPrimDigiOccupancyThr_[0] = 0;
00089   meEETrigPrimDigiOccupancyProRThr_[0] = 0;
00090   meEETrigPrimDigiOccupancyProPhiThr_[0] = 0;
00091   meEETrigPrimDigiOccupancyThr_[1] = 0;
00092   meEETrigPrimDigiOccupancyProRThr_[1] = 0;
00093   meEETrigPrimDigiOccupancyProPhiThr_[1] = 0;
00094 
00095   meEETestPulseDigiOccupancy_[0] = 0;
00096   meEETestPulseDigiOccupancy_[1] = 0;
00097 
00098   meEELaserDigiOccupancy_[0] = 0;
00099   meEELaserDigiOccupancy_[1] = 0;
00100 
00101   meEELedDigiOccupancy_[0] = 0;
00102   meEELedDigiOccupancy_[1] = 0;
00103 
00104   meEEPedestalDigiOccupancy_[0] = 0;
00105   meEEPedestalDigiOccupancy_[1] = 0;
00106 
00107   recHitEnergyMin_ = 1.;
00108   trigPrimEtMin_ = 5.;
00109 
00110 }
00111 
00112 EEOccupancyTask::~EEOccupancyTask(){
00113 
00114 }
00115 
00116 void EEOccupancyTask::beginJob(const EventSetup& c){
00117 
00118   ievt_ = 0;
00119 
00120   if ( dqmStore_ ) {
00121     dqmStore_->setCurrentFolder(prefixME_ + "/EEOccupancyTask");
00122     dqmStore_->rmdir(prefixME_ + "/EEOccupancyTask");
00123   }
00124 
00125   Numbers::initGeometry(c, false);
00126 
00127 }
00128 
00129 void EEOccupancyTask::beginRun(const Run& r, const EventSetup& c) {
00130 
00131   if ( ! mergeRuns_ ) this->reset();
00132 
00133 }
00134 
00135 void EEOccupancyTask::endRun(const Run& r, const EventSetup& c) {
00136 
00137 }
00138 
00139 void EEOccupancyTask::reset(void) {
00140 
00141   for (int i = 0; i < 18; i++) {
00142     if ( meOccupancy_[i] ) meOccupancy_[i]->Reset();
00143     if ( meOccupancyMem_[i] ) meOccupancyMem_[i]->Reset();
00144   }
00145 
00146   if ( meEEDigiOccupancy_[0] ) meEEDigiOccupancy_[0]->Reset();
00147   if ( meEEDigiOccupancyProR_[0] ) meEEDigiOccupancyProR_[0]->Reset();
00148   if ( meEEDigiOccupancyProPhi_[0] ) meEEDigiOccupancyProPhi_[0]->Reset();
00149   if ( meEEDigiOccupancy_[1] ) meEEDigiOccupancy_[1]->Reset();
00150   if ( meEEDigiOccupancyProR_[1] ) meEEDigiOccupancyProR_[1]->Reset();
00151   if ( meEEDigiOccupancyProPhi_[1] ) meEEDigiOccupancyProPhi_[1]->Reset();
00152 
00153   if ( meEERecHitOccupancy_[0] ) meEERecHitOccupancy_[0]->Reset();
00154   if ( meEERecHitOccupancyProR_[0] ) meEERecHitOccupancyProR_[0]->Reset();
00155   if ( meEERecHitOccupancyProPhi_[0] ) meEERecHitOccupancyProPhi_[0]->Reset();
00156   if ( meEERecHitOccupancy_[1] ) meEERecHitOccupancy_[1]->Reset();
00157   if ( meEERecHitOccupancyProR_[1] ) meEERecHitOccupancyProR_[1]->Reset();
00158   if ( meEERecHitOccupancyProPhi_[1] ) meEERecHitOccupancyProPhi_[1]->Reset();
00159 
00160   if ( meEERecHitOccupancyThr_[0] ) meEERecHitOccupancyThr_[0]->Reset();
00161   if ( meEERecHitOccupancyProRThr_[0] ) meEERecHitOccupancyProRThr_[0]->Reset();
00162   if ( meEERecHitOccupancyProPhiThr_[0] ) meEERecHitOccupancyProPhiThr_[0]->Reset();
00163   if ( meEERecHitOccupancyThr_[1] ) meEERecHitOccupancyThr_[1]->Reset();
00164   if ( meEERecHitOccupancyProRThr_[1] ) meEERecHitOccupancyProRThr_[1]->Reset();
00165   if ( meEERecHitOccupancyProPhiThr_[1] ) meEERecHitOccupancyProPhiThr_[1]->Reset();
00166 
00167   if ( meEETrigPrimDigiOccupancy_[0] ) meEETrigPrimDigiOccupancy_[0]->Reset();
00168   if ( meEETrigPrimDigiOccupancyProR_[0] ) meEETrigPrimDigiOccupancyProR_[0]->Reset();
00169   if ( meEETrigPrimDigiOccupancyProPhi_[0] ) meEETrigPrimDigiOccupancyProPhi_[0]->Reset();
00170   if ( meEETrigPrimDigiOccupancy_[1] ) meEETrigPrimDigiOccupancy_[1]->Reset();
00171   if ( meEETrigPrimDigiOccupancyProR_[1] ) meEETrigPrimDigiOccupancyProR_[1]->Reset();
00172   if ( meEETrigPrimDigiOccupancyProPhi_[1] ) meEETrigPrimDigiOccupancyProPhi_[1]->Reset();
00173 
00174   if ( meEETrigPrimDigiOccupancyThr_[0] ) meEETrigPrimDigiOccupancyThr_[0]->Reset();
00175   if ( meEETrigPrimDigiOccupancyProRThr_[0] ) meEETrigPrimDigiOccupancyProRThr_[0]->Reset();
00176   if ( meEETrigPrimDigiOccupancyProPhiThr_[0] ) meEETrigPrimDigiOccupancyProPhiThr_[0]->Reset();
00177   if ( meEETrigPrimDigiOccupancyThr_[1] ) meEETrigPrimDigiOccupancyThr_[1]->Reset();
00178   if ( meEETrigPrimDigiOccupancyProRThr_[1] ) meEETrigPrimDigiOccupancyProRThr_[1]->Reset();
00179   if ( meEETrigPrimDigiOccupancyProPhiThr_[1] ) meEETrigPrimDigiOccupancyProPhiThr_[1]->Reset();
00180 
00181   if ( meEETestPulseDigiOccupancy_[0] ) meEETestPulseDigiOccupancy_[0]->Reset();
00182   if ( meEETestPulseDigiOccupancy_[1] ) meEETestPulseDigiOccupancy_[1]->Reset();
00183 
00184   if ( meEELaserDigiOccupancy_[0] ) meEELaserDigiOccupancy_[0]->Reset();
00185   if ( meEELaserDigiOccupancy_[1] ) meEELaserDigiOccupancy_[1]->Reset();
00186 
00187   if ( meEELedDigiOccupancy_[0] ) meEELedDigiOccupancy_[0]->Reset();
00188   if ( meEELedDigiOccupancy_[1] ) meEELedDigiOccupancy_[1]->Reset();
00189 
00190   if ( meEEPedestalDigiOccupancy_[0] ) meEEPedestalDigiOccupancy_[0]->Reset();
00191   if ( meEEPedestalDigiOccupancy_[1] ) meEEPedestalDigiOccupancy_[1]->Reset();
00192 
00193 }
00194 
00195 void EEOccupancyTask::setup(void){
00196 
00197   init_ = true;
00198 
00199   char histo[200];
00200 
00201   if ( dqmStore_ ) {
00202     dqmStore_->setCurrentFolder(prefixME_ + "/EEOccupancyTask");
00203 
00204     for (int i = 0; i < 18; i++) {
00205       sprintf(histo, "EEOT digi occupancy %s", Numbers::sEE(i+1).c_str());
00206       meOccupancy_[i] = dqmStore_->book2D(histo, histo, 50, Numbers::ix0EE(i+1)+0., Numbers::ix0EE(i+1)+50., 50, Numbers::iy0EE(i+1)+0., Numbers::iy0EE(i+1)+50.);
00207       meOccupancy_[i]->setAxisTitle("jx", 1);
00208       meOccupancy_[i]->setAxisTitle("jy", 2);
00209       dqmStore_->tag(meOccupancy_[i], i+1);
00210     }
00211     for (int i = 0; i < 18; i++) {
00212       sprintf(histo, "EEOT MEM digi occupancy %s", Numbers::sEE(i+1).c_str());
00213       meOccupancyMem_[i] = dqmStore_->book2D(histo, histo, 10, 0., 10., 5, 0., 5.);
00214       meOccupancyMem_[i]->setAxisTitle("pseudo-strip", 1);
00215       meOccupancyMem_[i]->setAxisTitle("channel", 2);
00216       dqmStore_->tag(meOccupancyMem_[i], i+1);
00217     }
00218 
00219     sprintf(histo, "EEOT digi occupancy EE -");
00220     meEEDigiOccupancy_[0] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00221     meEEDigiOccupancy_[0]->setAxisTitle("jx", 1);
00222     meEEDigiOccupancy_[0]->setAxisTitle("jy", 2);
00223     sprintf(histo, "EEOT digi occupancy EE - projection R");
00224     meEEDigiOccupancyProR_[0] = dqmStore_->book1D(histo, histo, 22, 0., 55.);
00225     meEEDigiOccupancyProR_[0]->setAxisTitle("r", 1);
00226     meEEDigiOccupancyProR_[0]->setAxisTitle("number of digis", 2);
00227     sprintf(histo, "EEOT digi occupancy EE - projection phi");
00228     meEEDigiOccupancyProPhi_[0] = dqmStore_->book1D(histo, histo, 50, -M_PI, M_PI);
00229     meEEDigiOccupancyProPhi_[0]->setAxisTitle("phi'", 1);
00230     meEEDigiOccupancyProPhi_[0]->setAxisTitle("number of digis", 2);
00231 
00232     sprintf(histo, "EEOT digi occupancy EE +");
00233     meEEDigiOccupancy_[1] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00234     meEEDigiOccupancy_[1]->setAxisTitle("jx", 1);
00235     meEEDigiOccupancy_[1]->setAxisTitle("jy", 2);
00236     sprintf(histo, "EEOT digi occupancy EE + projection R");
00237     meEEDigiOccupancyProR_[1] = dqmStore_->book1D(histo, histo, 22, 0., 55.);
00238     meEEDigiOccupancyProR_[1]->setAxisTitle("r", 1);
00239     meEEDigiOccupancyProR_[1]->setAxisTitle("number of digis", 2);
00240     sprintf(histo, "EEOT digi occupancy EE + projection phi");
00241     meEEDigiOccupancyProPhi_[1] = dqmStore_->book1D(histo, histo, 50, -M_PI, M_PI);
00242     meEEDigiOccupancyProPhi_[1]->setAxisTitle("phi'", 1);
00243     meEEDigiOccupancyProPhi_[1]->setAxisTitle("number of digis", 2);
00244 
00245     sprintf(histo, "EEOT rec hit occupancy EE -");
00246     meEERecHitOccupancy_[0] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00247     meEERecHitOccupancy_[0]->setAxisTitle("jx", 1);
00248     meEERecHitOccupancy_[0]->setAxisTitle("jy", 2);
00249     sprintf(histo, "EEOT rec hit occupancy EE - projection R");
00250     meEERecHitOccupancyProR_[0] = dqmStore_->book1D(histo, histo, 22, 0., 55.);
00251     meEERecHitOccupancyProR_[0]->setAxisTitle("r", 1);
00252     meEERecHitOccupancyProR_[0]->setAxisTitle("number of hits", 2);
00253     sprintf(histo, "EEOT rec hit occupancy EE - projection phi");
00254     meEERecHitOccupancyProPhi_[0] = dqmStore_->book1D(histo, histo, 50, -M_PI, M_PI);
00255     meEERecHitOccupancyProPhi_[0]->setAxisTitle("phi'", 1);
00256     meEERecHitOccupancyProPhi_[0]->setAxisTitle("number of hits", 2);
00257 
00258     sprintf(histo, "EEOT rec hit occupancy EE +");
00259     meEERecHitOccupancy_[1] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00260     meEERecHitOccupancy_[1]->setAxisTitle("jx", 1);
00261     meEERecHitOccupancy_[1]->setAxisTitle("jy", 2);
00262     sprintf(histo, "EEOT rec hit occupancy EE + projection R");
00263     meEERecHitOccupancyProR_[1] = dqmStore_->book1D(histo, histo, 22, 0., 55.);
00264     meEERecHitOccupancyProR_[1]->setAxisTitle("r", 1);
00265     meEERecHitOccupancyProR_[1]->setAxisTitle("number of hits", 2);
00266     sprintf(histo, "EEOT rec hit occupancy EE + projection phi");
00267     meEERecHitOccupancyProPhi_[1] = dqmStore_->book1D(histo, histo, 50, -M_PI, M_PI);
00268     meEERecHitOccupancyProPhi_[1]->setAxisTitle("phi'", 1);
00269     meEERecHitOccupancyProPhi_[1]->setAxisTitle("number of hits", 2);
00270 
00271     sprintf(histo, "EEOT rec hit thr occupancy EE -");
00272     meEERecHitOccupancyThr_[0] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00273     meEERecHitOccupancyThr_[0]->setAxisTitle("jx", 1);
00274     meEERecHitOccupancyThr_[0]->setAxisTitle("jy", 2);
00275     sprintf(histo, "EEOT rec hit thr occupancy EE - projection R");
00276     meEERecHitOccupancyProRThr_[0] = dqmStore_->book1D(histo, histo, 22, 0., 55.);
00277     meEERecHitOccupancyProRThr_[0]->setAxisTitle("r", 1);
00278     meEERecHitOccupancyProRThr_[0]->setAxisTitle("number of hits", 2);
00279     sprintf(histo, "EEOT rec hit thr occupancy EE - projection phi");
00280     meEERecHitOccupancyProPhiThr_[0] = dqmStore_->book1D(histo, histo, 50, -M_PI, M_PI);
00281     meEERecHitOccupancyProPhiThr_[0]->setAxisTitle("phi'", 1);
00282     meEERecHitOccupancyProPhiThr_[0]->setAxisTitle("number of hits", 2);
00283 
00284     sprintf(histo, "EEOT rec hit thr occupancy EE +");
00285     meEERecHitOccupancyThr_[1] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00286     meEERecHitOccupancyThr_[1]->setAxisTitle("jx", 1);
00287     meEERecHitOccupancyThr_[1]->setAxisTitle("jy", 2);
00288     sprintf(histo, "EEOT rec hit thr occupancy EE + projection R");
00289     meEERecHitOccupancyProRThr_[1] = dqmStore_->book1D(histo, histo, 22, 0., 55.);
00290     meEERecHitOccupancyProRThr_[1]->setAxisTitle("r", 1);
00291     meEERecHitOccupancyProRThr_[1]->setAxisTitle("number of hits", 2);
00292     sprintf(histo, "EEOT rec hit thr occupancy EE + projection phi");
00293     meEERecHitOccupancyProPhiThr_[1] = dqmStore_->book1D(histo, histo, 50, -M_PI, M_PI);
00294     meEERecHitOccupancyProPhiThr_[1]->setAxisTitle("phi'", 1);
00295     meEERecHitOccupancyProPhiThr_[1]->setAxisTitle("number of hits", 2);
00296 
00297     sprintf(histo, "EEOT TP digi occupancy EE -");
00298     meEETrigPrimDigiOccupancy_[0] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00299     meEETrigPrimDigiOccupancy_[0]->setAxisTitle("jx", 1);
00300     meEETrigPrimDigiOccupancy_[0]->setAxisTitle("jy", 2);
00301     sprintf(histo, "EEOT TP digi occupancy EE - projection R");
00302     meEETrigPrimDigiOccupancyProR_[0] = dqmStore_->book1D(histo, histo, 22, 0., 55.);
00303     meEETrigPrimDigiOccupancyProR_[0]->setAxisTitle("r", 1);
00304     meEETrigPrimDigiOccupancyProR_[0]->setAxisTitle("number of TP digis", 2);
00305     sprintf(histo, "EEOT TP digi occupancy EE - projection phi");
00306     meEETrigPrimDigiOccupancyProPhi_[0] = dqmStore_->book1D(histo, histo, 50, -M_PI, M_PI);
00307     meEETrigPrimDigiOccupancyProPhi_[0]->setAxisTitle("phi'", 1);
00308     meEETrigPrimDigiOccupancyProPhi_[0]->setAxisTitle("number of TP digis", 2);
00309 
00310     sprintf(histo, "EEOT TP digi occupancy EE +");
00311     meEETrigPrimDigiOccupancy_[1] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00312     meEETrigPrimDigiOccupancy_[1]->setAxisTitle("jx", 1);
00313     meEETrigPrimDigiOccupancy_[1]->setAxisTitle("jy", 2);
00314     sprintf(histo, "EEOT TP digi occupancy EE + projection R");
00315     meEETrigPrimDigiOccupancyProR_[1] = dqmStore_->book1D(histo, histo, 22, 0., 55.);
00316     meEETrigPrimDigiOccupancyProR_[1]->setAxisTitle("r", 1);
00317     meEETrigPrimDigiOccupancyProR_[1]->setAxisTitle("number of TP digis", 2);
00318     sprintf(histo, "EEOT TP digi occupancy EE + projection phi");
00319     meEETrigPrimDigiOccupancyProPhi_[1] = dqmStore_->book1D(histo, histo, 50, -M_PI, M_PI);
00320     meEETrigPrimDigiOccupancyProPhi_[1]->setAxisTitle("phi'", 1);
00321     meEETrigPrimDigiOccupancyProPhi_[1]->setAxisTitle("number of TP digis", 2);
00322 
00323     sprintf(histo, "EEOT TP digi thr occupancy EE -");
00324     meEETrigPrimDigiOccupancyThr_[0] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00325     meEETrigPrimDigiOccupancyThr_[0]->setAxisTitle("jx", 1);
00326     meEETrigPrimDigiOccupancyThr_[0]->setAxisTitle("jy", 2);
00327     sprintf(histo, "EEOT TP digi thr occupancy EE - projection R");
00328     meEETrigPrimDigiOccupancyProRThr_[0] = dqmStore_->book1D(histo, histo, 22, 0., 55.);
00329     meEETrigPrimDigiOccupancyProRThr_[0]->setAxisTitle("r", 1);
00330     meEETrigPrimDigiOccupancyProRThr_[0]->setAxisTitle("number of TP digis", 2);
00331     sprintf(histo, "EEOT TP digi thr occupancy EE - projection phi");
00332     meEETrigPrimDigiOccupancyProPhiThr_[0] = dqmStore_->book1D(histo, histo, 50, -M_PI, M_PI);
00333     meEETrigPrimDigiOccupancyProPhiThr_[0]->setAxisTitle("phi'", 1);
00334     meEETrigPrimDigiOccupancyProPhiThr_[0]->setAxisTitle("number of TP digis", 2);
00335 
00336     sprintf(histo, "EEOT TP digi thr occupancy EE +");
00337     meEETrigPrimDigiOccupancyThr_[1] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00338     meEETrigPrimDigiOccupancyThr_[1]->setAxisTitle("jx", 1);
00339     meEETrigPrimDigiOccupancyThr_[1]->setAxisTitle("jy", 2);
00340     sprintf(histo, "EEOT TP digi thr occupancy EE + projection R");
00341     meEETrigPrimDigiOccupancyProRThr_[1] = dqmStore_->book1D(histo, histo, 22, 0., 55.);
00342     meEETrigPrimDigiOccupancyProRThr_[1]->setAxisTitle("r", 1);
00343     meEETrigPrimDigiOccupancyProRThr_[1]->setAxisTitle("number of TP digis", 2);
00344     sprintf(histo, "EEOT TP digi thr occupancy EE + projection phi");
00345     meEETrigPrimDigiOccupancyProPhiThr_[1] = dqmStore_->book1D(histo, histo, 50, -M_PI, M_PI);
00346     meEETrigPrimDigiOccupancyProPhiThr_[1]->setAxisTitle("phi'", 1);
00347     meEETrigPrimDigiOccupancyProPhiThr_[1]->setAxisTitle("number of TP digis", 2);
00348 
00349     sprintf(histo, "EEOT test pulse digi occupancy EE -");
00350     meEETestPulseDigiOccupancy_[0] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00351     meEETestPulseDigiOccupancy_[0]->setAxisTitle("jx'", 1);
00352     meEETestPulseDigiOccupancy_[0]->setAxisTitle("jy'", 2);
00353 
00354     sprintf(histo, "EEOT test pulse digi occupancy EE +");
00355     meEETestPulseDigiOccupancy_[1] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00356     meEETestPulseDigiOccupancy_[1]->setAxisTitle("jx'", 1);
00357     meEETestPulseDigiOccupancy_[1]->setAxisTitle("jy'", 2);
00358 
00359     sprintf(histo, "EEOT led digi occupancy EE -");
00360     meEELedDigiOccupancy_[0] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00361     meEELedDigiOccupancy_[0]->setAxisTitle("jx'", 1);
00362     meEELedDigiOccupancy_[0]->setAxisTitle("jy'", 2);
00363 
00364     sprintf(histo, "EEOT led digi occupancy EE +");
00365     meEELedDigiOccupancy_[1] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00366     meEELedDigiOccupancy_[1]->setAxisTitle("jx'", 1);
00367     meEELedDigiOccupancy_[1]->setAxisTitle("jy'", 2);
00368 
00369     sprintf(histo, "EEOT laser digi occupancy EE -");
00370     meEELaserDigiOccupancy_[0] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00371     meEELaserDigiOccupancy_[0]->setAxisTitle("jx'", 1);
00372     meEELaserDigiOccupancy_[0]->setAxisTitle("jy'", 2);
00373 
00374     sprintf(histo, "EEOT laser digi occupancy EE +");
00375     meEELaserDigiOccupancy_[1] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00376     meEELaserDigiOccupancy_[1]->setAxisTitle("jx'", 1);
00377     meEELaserDigiOccupancy_[1]->setAxisTitle("jy'", 2);
00378 
00379     sprintf(histo, "EEOT pedestal digi occupancy EE -");
00380     meEEPedestalDigiOccupancy_[0] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00381     meEEPedestalDigiOccupancy_[0]->setAxisTitle("jx'", 1);
00382     meEEPedestalDigiOccupancy_[0]->setAxisTitle("jy'", 2);
00383 
00384     sprintf(histo, "EEOT pedestal digi occupancy EE +");
00385     meEEPedestalDigiOccupancy_[1] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00386     meEEPedestalDigiOccupancy_[1]->setAxisTitle("jx'", 1);
00387     meEEPedestalDigiOccupancy_[1]->setAxisTitle("jy'", 2);
00388 
00389   }
00390 
00391 }
00392 
00393 void EEOccupancyTask::cleanup(void){
00394 
00395   if ( ! init_ ) return;
00396 
00397   if ( dqmStore_ ) {
00398     dqmStore_->setCurrentFolder(prefixME_ + "/EEOccupancyTask");
00399 
00400     for (int i = 0; i < 18; i++) {
00401       if ( meOccupancy_[i] ) dqmStore_->removeElement( meOccupancy_[i]->getName() );
00402       meOccupancy_[i] = 0;
00403       if ( meOccupancyMem_[i] ) dqmStore_->removeElement( meOccupancyMem_[i]->getName() );
00404       meOccupancyMem_[i] = 0;
00405     }
00406 
00407     if ( meEEDigiOccupancy_[0] ) dqmStore_->removeElement( meEEDigiOccupancy_[0]->getName() );
00408     meEEDigiOccupancy_[0] = 0;
00409     if ( meEEDigiOccupancyProR_[0] ) dqmStore_->removeElement( meEEDigiOccupancyProR_[0]->getName() );
00410     meEEDigiOccupancyProR_[0] = 0;
00411     if ( meEEDigiOccupancyProPhi_[0] ) dqmStore_->removeElement( meEEDigiOccupancyProPhi_[0]->getName() );
00412     meEEDigiOccupancyProPhi_[0] = 0;
00413 
00414     if ( meEEDigiOccupancy_[1] ) dqmStore_->removeElement( meEEDigiOccupancy_[1]->getName() );
00415     meEEDigiOccupancy_[1] = 0;
00416     if ( meEEDigiOccupancyProR_[1] ) dqmStore_->removeElement( meEEDigiOccupancyProR_[1]->getName() );
00417     meEEDigiOccupancyProR_[1] = 0;
00418     if ( meEEDigiOccupancyProPhi_[1] ) dqmStore_->removeElement( meEEDigiOccupancyProPhi_[1]->getName() );
00419     meEEDigiOccupancyProPhi_[1] = 0;
00420 
00421     if ( meEERecHitOccupancy_[0] ) dqmStore_->removeElement( meEERecHitOccupancy_[0]->getName() );
00422     meEERecHitOccupancy_[0] = 0;
00423     if ( meEERecHitOccupancyProR_[0] ) dqmStore_->removeElement( meEERecHitOccupancyProR_[0]->getName() );
00424     meEERecHitOccupancyProR_[0] = 0;
00425     if ( meEERecHitOccupancyProPhi_[0] ) dqmStore_->removeElement( meEERecHitOccupancyProPhi_[0]->getName() );
00426     meEERecHitOccupancyProPhi_[0] = 0;
00427 
00428     if ( meEERecHitOccupancy_[1] ) dqmStore_->removeElement( meEERecHitOccupancy_[1]->getName() );
00429     meEERecHitOccupancy_[1] = 0;
00430     if ( meEERecHitOccupancyProR_[1] ) dqmStore_->removeElement( meEERecHitOccupancyProR_[1]->getName() );
00431     meEERecHitOccupancyProR_[1] = 0;
00432     if ( meEERecHitOccupancyProPhi_[1] ) dqmStore_->removeElement( meEERecHitOccupancyProPhi_[1]->getName() );
00433     meEERecHitOccupancyProPhi_[1] = 0;
00434 
00435     if ( meEERecHitOccupancyThr_[0] ) dqmStore_->removeElement( meEERecHitOccupancyThr_[0]->getName() );
00436     meEERecHitOccupancyThr_[0] = 0;
00437     if ( meEERecHitOccupancyProRThr_[0] ) dqmStore_->removeElement( meEERecHitOccupancyProRThr_[0]->getName() );
00438     meEERecHitOccupancyProRThr_[0] = 0;
00439     if ( meEERecHitOccupancyProPhiThr_[0] ) dqmStore_->removeElement( meEERecHitOccupancyProPhiThr_[0]->getName() );
00440     meEERecHitOccupancyProPhiThr_[0] = 0;
00441 
00442     if ( meEERecHitOccupancyThr_[1] ) dqmStore_->removeElement( meEERecHitOccupancyThr_[1]->getName() );
00443     meEERecHitOccupancyThr_[1] = 0;
00444     if ( meEERecHitOccupancyProRThr_[1] ) dqmStore_->removeElement( meEERecHitOccupancyProRThr_[1]->getName() );
00445     meEERecHitOccupancyProRThr_[1] = 0;
00446     if ( meEERecHitOccupancyProPhiThr_[1] ) dqmStore_->removeElement( meEERecHitOccupancyProPhiThr_[1]->getName() );
00447     meEERecHitOccupancyProPhiThr_[1] = 0;
00448 
00449     if ( meEETrigPrimDigiOccupancy_[0] ) dqmStore_->removeElement( meEETrigPrimDigiOccupancy_[0]->getName() );
00450     meEETrigPrimDigiOccupancy_[0] = 0;
00451     if ( meEETrigPrimDigiOccupancyProR_[0] ) dqmStore_->removeElement( meEETrigPrimDigiOccupancyProR_[0]->getName() );
00452     meEETrigPrimDigiOccupancyProR_[0] = 0;
00453     if ( meEETrigPrimDigiOccupancyProPhi_[0] ) dqmStore_->removeElement( meEETrigPrimDigiOccupancyProPhi_[0]->getName() );
00454     meEETrigPrimDigiOccupancyProPhi_[0] = 0;
00455 
00456     if ( meEETrigPrimDigiOccupancy_[1] ) dqmStore_->removeElement( meEETrigPrimDigiOccupancy_[1]->getName() );
00457     meEETrigPrimDigiOccupancy_[1] = 0;
00458     if ( meEETrigPrimDigiOccupancyProR_[1] ) dqmStore_->removeElement( meEETrigPrimDigiOccupancyProR_[1]->getName() );
00459     meEETrigPrimDigiOccupancyProR_[1] = 0;
00460     if ( meEETrigPrimDigiOccupancyProPhi_[1] ) dqmStore_->removeElement( meEETrigPrimDigiOccupancyProPhi_[1]->getName() );
00461     meEETrigPrimDigiOccupancyProPhi_[1] = 0;
00462 
00463     if ( meEETrigPrimDigiOccupancyThr_[0] ) dqmStore_->removeElement( meEETrigPrimDigiOccupancyThr_[0]->getName() );
00464     meEETrigPrimDigiOccupancyThr_[0] = 0;
00465     if ( meEETrigPrimDigiOccupancyProRThr_[0] ) dqmStore_->removeElement( meEETrigPrimDigiOccupancyProRThr_[0]->getName() );
00466     meEETrigPrimDigiOccupancyProRThr_[0] = 0;
00467     if ( meEETrigPrimDigiOccupancyProPhiThr_[0] ) dqmStore_->removeElement( meEETrigPrimDigiOccupancyProPhiThr_[0]->getName() );
00468     meEETrigPrimDigiOccupancyProPhiThr_[0] = 0;
00469 
00470     if ( meEETrigPrimDigiOccupancyThr_[1] ) dqmStore_->removeElement( meEETrigPrimDigiOccupancyThr_[1]->getName() );
00471     meEETrigPrimDigiOccupancyThr_[1] = 0;
00472     if ( meEETrigPrimDigiOccupancyProRThr_[1] ) dqmStore_->removeElement( meEETrigPrimDigiOccupancyProRThr_[1]->getName() );
00473     meEETrigPrimDigiOccupancyProRThr_[1] = 0;
00474     if ( meEETrigPrimDigiOccupancyProPhiThr_[1] ) dqmStore_->removeElement( meEETrigPrimDigiOccupancyProPhiThr_[1]->getName() );
00475     meEETrigPrimDigiOccupancyProPhiThr_[1] = 0;
00476 
00477     if ( meEETestPulseDigiOccupancy_[0] ) dqmStore_->removeElement( meEETestPulseDigiOccupancy_[0]->getName() );
00478     meEETestPulseDigiOccupancy_[0] = 0;
00479     if ( meEETestPulseDigiOccupancy_[1] ) dqmStore_->removeElement( meEETestPulseDigiOccupancy_[1]->getName() );
00480     meEETestPulseDigiOccupancy_[1] = 0;
00481 
00482     if ( meEELaserDigiOccupancy_[0] ) dqmStore_->removeElement( meEELaserDigiOccupancy_[0]->getName() );
00483     meEELaserDigiOccupancy_[0] = 0;
00484     if ( meEELaserDigiOccupancy_[1] ) dqmStore_->removeElement( meEELaserDigiOccupancy_[1]->getName() );
00485     meEELaserDigiOccupancy_[1] = 0;
00486 
00487     if ( meEELedDigiOccupancy_[0] ) dqmStore_->removeElement( meEELedDigiOccupancy_[0]->getName() );
00488     meEELedDigiOccupancy_[0] = 0;
00489     if ( meEELedDigiOccupancy_[1] ) dqmStore_->removeElement( meEELedDigiOccupancy_[1]->getName() );
00490     meEELedDigiOccupancy_[1] = 0;
00491 
00492     if ( meEEPedestalDigiOccupancy_[0] ) dqmStore_->removeElement( meEEPedestalDigiOccupancy_[0]->getName() );
00493     meEEPedestalDigiOccupancy_[0] = 0;
00494     if ( meEEPedestalDigiOccupancy_[1] ) dqmStore_->removeElement( meEEPedestalDigiOccupancy_[1]->getName() );
00495     meEEPedestalDigiOccupancy_[1] = 0;
00496 
00497   }
00498 
00499   init_ = false;
00500 
00501 }
00502 
00503 void EEOccupancyTask::endJob(void) {
00504 
00505   LogInfo("EEOccupancyTask") << "analyzed " << ievt_ << " events";
00506 
00507   if ( enableCleanup_ ) this->cleanup();
00508 
00509 }
00510 
00511 void EEOccupancyTask::analyze(const Event& e, const EventSetup& c){
00512 
00513   if ( ! init_ ) this->setup();
00514 
00515   ievt_++;
00516 
00517   Handle<EcalRawDataCollection> dcchs;
00518 
00519   if ( ! e.getByLabel(EcalRawDataCollection_, dcchs) ) {
00520     LogWarning("EBOccupancyTask") << EcalRawDataCollection_ << " not available";
00521   }
00522 
00523   Handle<EEDigiCollection> digis;
00524 
00525   if ( e.getByLabel(EEDigiCollection_, digis) ) {
00526 
00527     int need = digis->size();
00528     LogDebug("EEOccupancyTask") << "event " << ievt_ << " digi collection size " << need;
00529 
00530     for ( EEDigiCollection::const_iterator digiItr = digis->begin(); digiItr != digis->end(); ++digiItr ) {
00531 
00532       EEDetId id = digiItr->id();
00533 
00534       int ix = id.ix();
00535       int iy = id.iy();
00536 
00537       int ism = Numbers::iSM( id );
00538 
00539       if ( ism >= 1 && ism <= 9 ) ix = 101 - ix;
00540 
00541       float xix = ix - 0.5;
00542       float xiy = iy - 0.5;
00543 
00544       LogDebug("EEOccupancyTask") << " det id = " << id;
00545       LogDebug("EEOccupancyTask") << " sm, ix, iy " << ism << " " << ix << " " << iy;
00546 
00547       if ( xix <= 0. || xix >= 100. || xiy <= 0. || xiy >= 100. ) {
00548         LogWarning("EEOccupancyTask") << " det id = " << id;
00549         LogWarning("EEOccupancyTask") << " sm, ix, iw " << ism << " " << ix << " " << iy;
00550         LogWarning("EEOccupancyTask") << " xix, xiy " << xix << " " << xiy;
00551       }
00552 
00553       if ( meOccupancy_[ism-1] ) meOccupancy_[ism-1]->Fill( xix, xiy );
00554 
00555       int eex = id.ix();
00556       int eey = id.iy();
00557 
00558       float xeex = eex - 0.5;
00559       float xeey = eey - 0.5;
00560 
00561       if ( ism >=1 && ism <= 9 ) {
00562         if ( meEEDigiOccupancy_[0] ) meEEDigiOccupancy_[0]->Fill( xeex, xeey );
00563         if ( meEEDigiOccupancyProR_[0] ) meEEDigiOccupancyProR_[0]->Fill( sqrt(pow(xeex-50.,2)+pow(xeey-50.,2)) );
00564         if ( meEEDigiOccupancyProPhi_[0] ) meEEDigiOccupancyProPhi_[0]->Fill( atan2(xeey-50.,xeex-50.) );
00565       } else {
00566         if ( meEEDigiOccupancy_[1] ) meEEDigiOccupancy_[1]->Fill( xeex, xeey );
00567         if ( meEEDigiOccupancyProR_[1] ) meEEDigiOccupancyProR_[1]->Fill( sqrt(pow(xeex-50.,2)+pow(xeey-50.,2)) );
00568         if ( meEEDigiOccupancyProPhi_[1] ) meEEDigiOccupancyProPhi_[1]->Fill( atan2(xeey-50.,xeex-50.) );
00569       }
00570 
00571       if ( dcchs.isValid() ) {
00572 
00573         for ( EcalRawDataCollection::const_iterator dcchItr = dcchs->begin(); dcchItr != dcchs->end(); ++dcchItr ) {
00574 
00575           if ( Numbers::subDet( *dcchItr ) != EcalEndcap ) continue;
00576 
00577           if ( Numbers::iSM( *dcchItr, EcalEndcap ) != ism ) continue;
00578 
00579           if ( dcchItr->getRunType() == EcalDCCHeaderBlock::TESTPULSE_MGPA ||
00580                dcchItr->getRunType() == EcalDCCHeaderBlock::TESTPULSE_GAP ) {
00581 
00582             if ( ism >=1 && ism <= 9 ) {
00583               if ( meEETestPulseDigiOccupancy_[0] ) meEETestPulseDigiOccupancy_[0]->Fill( xeex, xeey );
00584             } else {
00585               if ( meEETestPulseDigiOccupancy_[1] ) meEETestPulseDigiOccupancy_[1]->Fill( xeex, xeey );
00586             }
00587 
00588           }
00589 
00590           if ( dcchItr->getRunType() == EcalDCCHeaderBlock::LASER_STD ||
00591                dcchItr->getRunType() == EcalDCCHeaderBlock::LASER_GAP ) {
00592 
00593             if ( ism >=1 && ism <= 9 ) {
00594               if ( meEELaserDigiOccupancy_[0] ) meEELaserDigiOccupancy_[0]->Fill( xeex, xeey );
00595             } else {
00596               if ( meEELaserDigiOccupancy_[1] ) meEELaserDigiOccupancy_[1]->Fill( xeex, xeey );
00597             }
00598 
00599           }
00600 
00601           if ( dcchItr->getRunType() == EcalDCCHeaderBlock::LED_STD ||
00602                dcchItr->getRunType() == EcalDCCHeaderBlock::LED_GAP ) {
00603 
00604             if ( ism >=1 && ism <= 9 ) {
00605               if ( meEELedDigiOccupancy_[0] ) meEELedDigiOccupancy_[0]->Fill( xeex, xeey );
00606             } else {
00607               if ( meEELedDigiOccupancy_[1] ) meEELedDigiOccupancy_[1]->Fill( xeex, xeey );
00608             }
00609 
00610           }
00611 
00612           if ( dcchItr->getRunType() == EcalDCCHeaderBlock::PEDESTAL_STD ||
00613                dcchItr->getRunType() == EcalDCCHeaderBlock::PEDESTAL_GAP ) {
00614 
00615             if ( ism >=1 && ism <= 9 ) {
00616               if ( meEEPedestalDigiOccupancy_[0] ) meEEPedestalDigiOccupancy_[0]->Fill( xeex, xeey );
00617             } else {
00618               if ( meEEPedestalDigiOccupancy_[1] ) meEEPedestalDigiOccupancy_[1]->Fill( xeex, xeey );
00619             }
00620 
00621           }
00622 
00623         }
00624 
00625       }
00626 
00627     }
00628 
00629   } else {
00630 
00631     LogWarning("EEOccupancyTask") << EEDigiCollection_ << " not available";
00632 
00633   }
00634 
00635   Handle<EcalPnDiodeDigiCollection> PNs;
00636 
00637   if ( e.getByLabel(EcalPnDiodeDigiCollection_, PNs) ) {
00638 
00639     // filling mem occupancy only for the 5 channels belonging
00640     // to a fully reconstructed PN's
00641 
00642     for ( EcalPnDiodeDigiCollection::const_iterator pnItr = PNs->begin(); pnItr != PNs->end(); ++pnItr ) {
00643 
00644       if ( Numbers::subDet( pnItr->id() ) != EcalEndcap ) continue;
00645 
00646       int   ism   = Numbers::iSM( pnItr->id() );
00647 
00648       float PnId  = pnItr->id().iPnId();
00649 
00650       PnId        = PnId - 0.5;
00651       float st    = 0.0;
00652 
00653       for (int chInStrip = 1; chInStrip <= 5; chInStrip++){
00654         if ( meOccupancyMem_[ism-1] ) {
00655            st = chInStrip - 0.5;
00656            meOccupancyMem_[ism-1]->Fill(PnId, st);
00657         }
00658       }
00659 
00660     }
00661 
00662   } else {
00663 
00664     LogWarning("EEOccupancyTask") << EcalPnDiodeDigiCollection_ << " not available";
00665 
00666   }
00667 
00668   Handle<EcalRecHitCollection> rechits;
00669 
00670   if ( e.getByLabel(EcalRecHitCollection_, rechits) ) {
00671 
00672     int nebrh = rechits->size();
00673     LogDebug("EEOccupancyTask") << "event " << ievt_ << " rec hits collection size " << nebrh;
00674 
00675     for ( EcalRecHitCollection::const_iterator rechitItr = rechits->begin(); rechitItr != rechits->end(); ++rechitItr ) {
00676 
00677       EEDetId id = rechitItr->id();
00678 
00679       int eex = id.ix();
00680       int eey = id.iy();
00681 
00682       int ism = Numbers::iSM( id );
00683 
00684       float xeex = eex - 0.5;
00685       float xeey = eey - 0.5;
00686 
00687       if ( ism >= 1 && ism <= 9 ) {
00688         if ( meEERecHitOccupancy_[0] ) meEERecHitOccupancy_[0]->Fill( xeex, xeey );
00689         if ( meEERecHitOccupancyProR_[0] ) meEERecHitOccupancyProR_[0]->Fill( sqrt(pow(xeex-50.,2)+pow(xeey-50.,2)) );
00690         if ( meEERecHitOccupancyProPhi_[0] ) meEERecHitOccupancyProPhi_[0]->Fill( atan2(xeey-50.,xeex-50.) );
00691       } else {
00692         if ( meEERecHitOccupancy_[1] ) meEERecHitOccupancy_[1]->Fill( xeex, xeey );
00693         if ( meEERecHitOccupancyProR_[1] ) meEERecHitOccupancyProR_[1]->Fill( sqrt(pow(xeex-50.,2)+pow(xeey-50.,2)) );
00694         if ( meEERecHitOccupancyProPhi_[1] ) meEERecHitOccupancyProPhi_[1]->Fill( atan2(xeey-50.,xeex-50.) );
00695       }
00696 
00697       if ( rechitItr->energy() > recHitEnergyMin_ ) {
00698 
00699         if ( ism >= 1 && ism <= 9 ) {
00700           if ( meEERecHitOccupancyThr_[0] ) meEERecHitOccupancyThr_[0]->Fill( xeex, xeey );
00701           if ( meEERecHitOccupancyProRThr_[0] ) meEERecHitOccupancyProRThr_[0]->Fill( sqrt(pow(xeex-50.,2)+pow(xeey-50.,2)) );
00702           if ( meEERecHitOccupancyProPhiThr_[0] ) meEERecHitOccupancyProPhiThr_[0]->Fill( atan2(xeey-50.,xeex-50.) );
00703         } else {
00704           if ( meEERecHitOccupancyThr_[1] ) meEERecHitOccupancyThr_[1]->Fill( xeex, xeey );
00705           if ( meEERecHitOccupancyProRThr_[1] ) meEERecHitOccupancyProRThr_[1]->Fill( sqrt(pow(xeex-50.,2)+pow(xeey-50.,2)) );
00706           if ( meEERecHitOccupancyProPhiThr_[1] ) meEERecHitOccupancyProPhiThr_[1]->Fill( atan2(xeey-50.,xeex-50.) );
00707         }
00708 
00709       }
00710 
00711     }
00712 
00713   } else {
00714 
00715     LogWarning("EEOccupancyTask") << EcalRecHitCollection_ << " not available";
00716 
00717   }
00718 
00719   Handle<EcalTrigPrimDigiCollection> trigPrimDigis;
00720 
00721   if ( e.getByLabel(EcalTrigPrimDigiCollection_, trigPrimDigis) ) {
00722 
00723     int nebtpg = trigPrimDigis->size();
00724     LogDebug("EEOccupancyTask") << "event " << ievt_ << " trigger primitives digis collection size " << nebtpg;
00725 
00726     for ( EcalTrigPrimDigiCollection::const_iterator tpdigiItr = trigPrimDigis->begin(); tpdigiItr != trigPrimDigis->end(); ++tpdigiItr ) {
00727 
00728       if ( Numbers::subDet( tpdigiItr->id() ) != EcalEndcap ) continue;
00729 
00730       int ismt = Numbers::iSM( tpdigiItr->id() );
00731 
00732       vector<DetId> crystals = Numbers::crystals( tpdigiItr->id() );
00733 
00734       for ( unsigned int i=0; i<crystals.size(); i++ ) {
00735 
00736         EEDetId id = crystals[i];
00737 
00738         int eex = id.ix();
00739         int eey = id.iy();
00740 
00741         float xeex = eex - 0.5;
00742         float xeey = eey - 0.5;
00743 
00744         if ( ismt >= 1 && ismt <= 9 ) {
00745           if ( meEETrigPrimDigiOccupancy_[0] ) meEETrigPrimDigiOccupancy_[0]->Fill( xeex, xeey );
00746           if ( meEETrigPrimDigiOccupancyProR_[0] ) meEETrigPrimDigiOccupancyProR_[0]->Fill( sqrt(pow(xeex-50.,2)+pow(xeey-50.,2)) );
00747           if ( meEETrigPrimDigiOccupancyProPhi_[0] ) meEETrigPrimDigiOccupancyProPhi_[0]->Fill( atan2(xeey-50.,xeex-50.) );
00748         } else {
00749           if ( meEETrigPrimDigiOccupancy_[1] ) meEETrigPrimDigiOccupancy_[1]->Fill( xeex, xeey );
00750           if ( meEETrigPrimDigiOccupancyProR_[1] ) meEETrigPrimDigiOccupancyProR_[1]->Fill( sqrt(pow(xeex-50.,2)+pow(xeey-50.,2)) );
00751           if ( meEETrigPrimDigiOccupancyProPhi_[1] ) meEETrigPrimDigiOccupancyProPhi_[1]->Fill( atan2(xeey-50.,xeex-50.) );
00752         }
00753 
00754         if ( tpdigiItr->compressedEt() > trigPrimEtMin_ ) {
00755 
00756           if ( ismt >= 1 && ismt <= 9 ) {
00757             if ( meEETrigPrimDigiOccupancyThr_[0] ) meEETrigPrimDigiOccupancyThr_[0]->Fill( xeex, xeey );
00758             if ( meEETrigPrimDigiOccupancyProRThr_[0] ) meEETrigPrimDigiOccupancyProRThr_[0]->Fill( sqrt(pow(xeex-50.,2)+pow(xeey-50.,2)) );
00759             if ( meEETrigPrimDigiOccupancyProPhiThr_[0] ) meEETrigPrimDigiOccupancyProPhiThr_[0]->Fill( atan2(xeey-50.,xeex-50.) );
00760           } else {
00761             if ( meEETrigPrimDigiOccupancyThr_[1] ) meEETrigPrimDigiOccupancyThr_[1]->Fill( xeex, xeey );
00762             if ( meEETrigPrimDigiOccupancyProRThr_[1] ) meEETrigPrimDigiOccupancyProRThr_[1]->Fill( sqrt(pow(xeex-50.,2)+pow(xeey-50.,2)) );
00763             if ( meEETrigPrimDigiOccupancyProPhiThr_[1] ) meEETrigPrimDigiOccupancyProPhiThr_[1]->Fill( atan2(xeey-50.,xeex-50.) );
00764           }
00765 
00766         }
00767 
00768       }
00769 
00770     }
00771 
00772   } else {
00773 
00774     LogWarning("EEOccupancyTask") << EcalTrigPrimDigiCollection_ << " not available";
00775 
00776   }
00777 
00778 }
00779 

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