00001
00002
00003
00004
00005
00006
00007
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
00640
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