00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #include <iostream>
00011 #include <fstream>
00012 #include <vector>
00013
00014 #include "FWCore/ServiceRegistry/interface/Service.h"
00015 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00016
00017 #include "DQMServices/Core/interface/MonitorElement.h"
00018
00019 #include "DQMServices/Core/interface/DQMStore.h"
00020
00021 #include "DataFormats/EcalRawData/interface/EcalRawDataCollections.h"
00022 #include "DataFormats/EcalDetId/interface/EBDetId.h"
00023 #include "DataFormats/EcalDigi/interface/EBDataFrame.h"
00024 #include "DataFormats/EcalDigi/interface/EcalDigiCollections.h"
00025 #include "DataFormats/EcalRecHit/interface/EcalUncalibratedRecHit.h"
00026 #include "DataFormats/EcalRecHit/interface/EcalRecHitCollections.h"
00027
00028 #include <DQM/EcalCommon/interface/Numbers.h>
00029
00030 #include <DQM/EcalBarrelMonitorTasks/interface/EBLaserTask.h>
00031
00032 using namespace cms;
00033 using namespace edm;
00034 using namespace std;
00035
00036 EBLaserTask::EBLaserTask(const ParameterSet& ps){
00037
00038 init_ = false;
00039
00040 dqmStore_ = Service<DQMStore>().operator->();
00041
00042 prefixME_ = ps.getUntrackedParameter<string>("prefixME", "");
00043
00044 enableCleanup_ = ps.getUntrackedParameter<bool>("enableCleanup", false);
00045
00046 mergeRuns_ = ps.getUntrackedParameter<bool>("mergeRuns", false);
00047
00048 EcalRawDataCollection_ = ps.getParameter<edm::InputTag>("EcalRawDataCollection");
00049 EBDigiCollection_ = ps.getParameter<edm::InputTag>("EBDigiCollection");
00050 EcalPnDiodeDigiCollection_ = ps.getParameter<edm::InputTag>("EcalPnDiodeDigiCollection");
00051 EcalUncalibratedRecHitCollection_ = ps.getParameter<edm::InputTag>("EcalUncalibratedRecHitCollection");
00052
00053 for (int i = 0; i < 36; i++) {
00054 meShapeMapL1A_[i] = 0;
00055 meAmplMapL1A_[i] = 0;
00056 meTimeMapL1A_[i] = 0;
00057 meAmplPNMapL1A_[i] = 0;
00058 meShapeMapL1B_[i] = 0;
00059 meAmplMapL1B_[i] = 0;
00060 meTimeMapL1B_[i] = 0;
00061 meAmplPNMapL1B_[i] = 0;
00062 mePnAmplMapG01L1_[i] = 0;
00063 mePnPedMapG01L1_[i] = 0;
00064 mePnAmplMapG16L1_[i] = 0;
00065 mePnPedMapG16L1_[i] = 0;
00066
00067 meShapeMapL2A_[i] = 0;
00068 meAmplMapL2A_[i] = 0;
00069 meTimeMapL2A_[i] = 0;
00070 meAmplPNMapL2A_[i] = 0;
00071 meShapeMapL2B_[i] = 0;
00072 meAmplMapL2B_[i] = 0;
00073 meTimeMapL2B_[i] = 0;
00074 meAmplPNMapL2B_[i] = 0;
00075 mePnAmplMapG01L2_[i] = 0;
00076 mePnPedMapG01L2_[i] = 0;
00077 mePnAmplMapG16L2_[i] = 0;
00078 mePnPedMapG16L2_[i] = 0;
00079
00080 meShapeMapL3A_[i] = 0;
00081 meAmplMapL3A_[i] = 0;
00082 meTimeMapL3A_[i] = 0;
00083 meAmplPNMapL3A_[i] = 0;
00084 meShapeMapL3B_[i] = 0;
00085 meAmplMapL3B_[i] = 0;
00086 meTimeMapL3B_[i] = 0;
00087 meAmplPNMapL3B_[i] = 0;
00088 mePnAmplMapG01L3_[i] = 0;
00089 mePnPedMapG01L3_[i] = 0;
00090 mePnAmplMapG16L3_[i] = 0;
00091 mePnPedMapG16L3_[i] = 0;
00092
00093 meShapeMapL4A_[i] = 0;
00094 meAmplMapL4A_[i] = 0;
00095 meTimeMapL4A_[i] = 0;
00096 meAmplPNMapL4A_[i] = 0;
00097 meShapeMapL4B_[i] = 0;
00098 meAmplMapL4B_[i] = 0;
00099 meTimeMapL4B_[i] = 0;
00100 meAmplPNMapL4B_[i] = 0;
00101 mePnAmplMapG01L4_[i] = 0;
00102 mePnPedMapG01L4_[i] = 0;
00103 mePnAmplMapG16L4_[i] = 0;
00104 mePnPedMapG16L4_[i] = 0;
00105 }
00106
00107 }
00108
00109 EBLaserTask::~EBLaserTask(){
00110
00111 }
00112
00113 void EBLaserTask::beginJob(const EventSetup& c){
00114
00115 ievt_ = 0;
00116
00117 if ( dqmStore_ ) {
00118 dqmStore_->setCurrentFolder(prefixME_ + "/EBLaserTask");
00119 dqmStore_->rmdir(prefixME_ + "/EBLaserTask");
00120 }
00121
00122 Numbers::initGeometry(c, false);
00123
00124 }
00125
00126 void EBLaserTask::beginRun(const Run& r, const EventSetup& c) {
00127
00128 if ( ! mergeRuns_ ) this->reset();
00129
00130 }
00131
00132 void EBLaserTask::endRun(const Run& r, const EventSetup& c) {
00133
00134 }
00135
00136 void EBLaserTask::reset(void) {
00137
00138 for (int i = 0; i < 36; i++) {
00139 if ( meShapeMapL1A_[i] ) meShapeMapL1A_[i]->Reset();
00140 if ( meAmplMapL1A_[i] ) meAmplMapL1A_[i]->Reset();
00141 if ( meTimeMapL1A_[i] ) meTimeMapL1A_[i]->Reset();
00142 if ( meAmplPNMapL1A_[i] ) meAmplPNMapL1A_[i]->Reset();
00143
00144 if ( meShapeMapL1B_[i] ) meShapeMapL1B_[i]->Reset();
00145 if ( meAmplMapL1B_[i] ) meAmplMapL1B_[i]->Reset();
00146 if ( meTimeMapL1B_[i] ) meTimeMapL1B_[i]->Reset();
00147 if ( meAmplPNMapL1B_[i] ) meAmplPNMapL1B_[i]->Reset();
00148
00149 if ( meShapeMapL2A_[i] ) meShapeMapL2A_[i]->Reset();
00150 if ( meAmplMapL2A_[i] ) meAmplMapL2A_[i]->Reset();
00151 if ( meTimeMapL2A_[i] ) meTimeMapL2A_[i]->Reset();
00152 if ( meAmplPNMapL2A_[i] ) meAmplPNMapL2A_[i]->Reset();
00153
00154 if ( meShapeMapL2B_[i] ) meShapeMapL2B_[i]->Reset();
00155 if ( meAmplMapL2B_[i] ) meAmplMapL2B_[i]->Reset();
00156 if ( meTimeMapL2B_[i] ) meTimeMapL2B_[i]->Reset();
00157 if ( meAmplPNMapL2B_[i] ) meAmplPNMapL2B_[i]->Reset();
00158
00159 if ( meShapeMapL3A_[i] ) meShapeMapL3A_[i]->Reset();
00160 if ( meAmplMapL3A_[i] ) meAmplMapL3A_[i]->Reset();
00161 if ( meTimeMapL3A_[i] ) meTimeMapL3A_[i]->Reset();
00162 if ( meAmplPNMapL3A_[i] ) meAmplPNMapL3A_[i]->Reset();
00163
00164 if ( meShapeMapL3B_[i] ) meShapeMapL3B_[i]->Reset();
00165 if ( meAmplMapL3B_[i] ) meAmplMapL3B_[i]->Reset();
00166 if ( meTimeMapL3B_[i] ) meTimeMapL3B_[i]->Reset();
00167 if ( meAmplPNMapL3B_[i] ) meAmplPNMapL3B_[i]->Reset();
00168
00169 if ( meShapeMapL4A_[i] ) meShapeMapL4A_[i]->Reset();
00170 if ( meAmplMapL4A_[i] ) meAmplMapL4A_[i]->Reset();
00171 if ( meTimeMapL4A_[i] ) meTimeMapL4A_[i]->Reset();
00172 if ( meAmplPNMapL4A_[i] ) meAmplPNMapL4A_[i]->Reset();
00173
00174 if ( meShapeMapL4B_[i] ) meShapeMapL4B_[i]->Reset();
00175 if ( meAmplMapL4B_[i] ) meAmplMapL4B_[i]->Reset();
00176 if ( meTimeMapL4B_[i] ) meTimeMapL4B_[i]->Reset();
00177 if ( meAmplPNMapL4B_[i] ) meAmplPNMapL4B_[i]->Reset();
00178
00179 if ( mePnAmplMapG01L1_[i] ) mePnAmplMapG01L1_[i]->Reset();
00180 if ( mePnPedMapG01L1_[i] ) mePnPedMapG01L1_[i]->Reset();
00181
00182 if ( mePnAmplMapG16L1_[i] ) mePnAmplMapG16L1_[i]->Reset();
00183 if ( mePnPedMapG16L1_[i] ) mePnPedMapG16L1_[i]->Reset();
00184
00185 if ( mePnAmplMapG01L2_[i] ) mePnAmplMapG01L2_[i]->Reset();
00186 if ( mePnPedMapG01L2_[i] ) mePnPedMapG01L2_[i]->Reset();
00187
00188 if ( mePnAmplMapG16L2_[i] ) mePnAmplMapG16L2_[i]->Reset();
00189 if ( mePnPedMapG16L2_[i] ) mePnPedMapG16L2_[i]->Reset();
00190
00191 if ( mePnAmplMapG01L3_[i] ) mePnAmplMapG01L3_[i]->Reset();
00192 if ( mePnPedMapG01L3_[i] ) mePnPedMapG01L3_[i]->Reset();
00193
00194 if ( mePnAmplMapG16L3_[i] ) mePnAmplMapG16L3_[i]->Reset();
00195 if ( mePnPedMapG16L3_[i] ) mePnPedMapG16L3_[i]->Reset();
00196
00197 if ( mePnAmplMapG01L4_[i] ) mePnAmplMapG01L4_[i]->Reset();
00198 if ( mePnPedMapG01L4_[i] ) mePnPedMapG01L4_[i]->Reset();
00199
00200 if ( mePnAmplMapG16L4_[i] ) mePnAmplMapG16L4_[i]->Reset();
00201 if ( mePnPedMapG16L4_[i] ) mePnPedMapG16L4_[i]->Reset();
00202 }
00203
00204 }
00205
00206 void EBLaserTask::setup(void){
00207
00208 init_ = true;
00209
00210 char histo[200];
00211
00212 if ( dqmStore_ ) {
00213 dqmStore_->setCurrentFolder(prefixME_ + "/EBLaserTask");
00214
00215 dqmStore_->setCurrentFolder(prefixME_ + "/EBLaserTask/Laser1");
00216 for (int i = 0; i < 36; i++) {
00217 sprintf(histo, "EBLT shape %s L1A", Numbers::sEB(i+1).c_str());
00218 meShapeMapL1A_[i] = dqmStore_->bookProfile2D(histo, histo, 1700, 0., 1700., 10, 0., 10., 4096, 0., 4096., "s");
00219 meShapeMapL1A_[i]->setAxisTitle("channel", 1);
00220 meShapeMapL1A_[i]->setAxisTitle("sample", 2);
00221 meShapeMapL1A_[i]->setAxisTitle("amplitude", 3);
00222 dqmStore_->tag(meShapeMapL1A_[i], i+1);
00223 sprintf(histo, "EBLT amplitude %s L1A", Numbers::sEB(i+1).c_str());
00224 meAmplMapL1A_[i] = dqmStore_->bookProfile2D(histo, histo, 85, 0., 85., 20, 0., 20., 4096, 0., 4096.*12., "s");
00225 meAmplMapL1A_[i]->setAxisTitle("ieta", 1);
00226 meAmplMapL1A_[i]->setAxisTitle("iphi", 2);
00227 dqmStore_->tag(meAmplMapL1A_[i], i+1);
00228 sprintf(histo, "EBLT timing %s L1A", Numbers::sEB(i+1).c_str());
00229 meTimeMapL1A_[i] = dqmStore_->bookProfile2D(histo, histo, 85, 0., 85., 20, 0., 20., 250, 0., 10., "s");
00230 meTimeMapL1A_[i]->setAxisTitle("ieta", 1);
00231 meTimeMapL1A_[i]->setAxisTitle("iphi", 2);
00232 dqmStore_->tag(meTimeMapL1A_[i], i+1);
00233 sprintf(histo, "EBLT amplitude over PN %s L1A", Numbers::sEB(i+1).c_str());
00234 meAmplPNMapL1A_[i] = dqmStore_->bookProfile2D(histo, histo, 85, 0., 85., 20, 0., 20., 4096, 0., 4096.*12., "s");
00235 meAmplPNMapL1A_[i]->setAxisTitle("ieta", 1);
00236 meAmplPNMapL1A_[i]->setAxisTitle("iphi", 2);
00237 dqmStore_->tag(meAmplPNMapL1A_[i], i+1);
00238
00239 sprintf(histo, "EBLT shape %s L1B", Numbers::sEB(i+1).c_str());
00240 meShapeMapL1B_[i] = dqmStore_->bookProfile2D(histo, histo, 1700, 0., 1700., 10, 0., 10., 4096, 0., 4096., "s");
00241 meShapeMapL1B_[i]->setAxisTitle("channel", 1);
00242 meShapeMapL1B_[i]->setAxisTitle("sample", 2);
00243 meShapeMapL1B_[i]->setAxisTitle("amplitude", 3);
00244 dqmStore_->tag(meShapeMapL1B_[i], i+1);
00245 sprintf(histo, "EBLT amplitude %s L1B", Numbers::sEB(i+1).c_str());
00246 meAmplMapL1B_[i] = dqmStore_->bookProfile2D(histo, histo, 85, 0., 85., 20, 0., 20., 4096, 0., 4096.*12., "s");
00247 meAmplMapL1B_[i]->setAxisTitle("ieta", 1);
00248 meAmplMapL1B_[i]->setAxisTitle("iphi", 2);
00249 dqmStore_->tag(meAmplMapL1B_[i], i+1);
00250 sprintf(histo, "EBLT timing %s L1B", Numbers::sEB(i+1).c_str());
00251 meTimeMapL1B_[i] = dqmStore_->bookProfile2D(histo, histo, 85, 0., 85., 20, 0., 20., 250, 0., 10., "s");
00252 meTimeMapL1B_[i]->setAxisTitle("ieta", 1);
00253 meTimeMapL1B_[i]->setAxisTitle("iphi", 2);
00254 dqmStore_->tag(meTimeMapL1B_[i], i+1);
00255 sprintf(histo, "EBLT amplitude over PN %s L1B", Numbers::sEB(i+1).c_str());
00256 meAmplPNMapL1B_[i] = dqmStore_->bookProfile2D(histo, histo, 85, 0., 85., 20, 0., 20., 4096, 0., 4096.*12., "s");
00257 meAmplPNMapL1B_[i]->setAxisTitle("ieta", 1);
00258 meAmplPNMapL1B_[i]->setAxisTitle("iphi", 2);
00259 dqmStore_->tag(meAmplPNMapL1B_[i], i+1);
00260 }
00261
00262 dqmStore_->setCurrentFolder(prefixME_ + "/EBLaserTask/Laser2");
00263 for (int i = 0; i < 36; i++) {
00264 sprintf(histo, "EBLT shape %s L2A", Numbers::sEB(i+1).c_str());
00265 meShapeMapL2A_[i] = dqmStore_->bookProfile2D(histo, histo, 1700, 0., 1700., 10, 0., 10., 4096, 0., 4096., "s");
00266 meShapeMapL2A_[i]->setAxisTitle("channel", 1);
00267 meShapeMapL2A_[i]->setAxisTitle("sample", 2);
00268 meShapeMapL2A_[i]->setAxisTitle("amplitude", 3);
00269 dqmStore_->tag(meShapeMapL2A_[i], i+1);
00270 sprintf(histo, "EBLT amplitude %s L2A", Numbers::sEB(i+1).c_str());
00271 meAmplMapL2A_[i] = dqmStore_->bookProfile2D(histo, histo, 85, 0., 85., 20, 0., 20., 4096, 0., 4096.*12., "s");
00272 meAmplMapL2A_[i]->setAxisTitle("ieta", 1);
00273 meAmplMapL2A_[i]->setAxisTitle("iphi", 2);
00274 dqmStore_->tag(meAmplMapL2A_[i], i+1);
00275 sprintf(histo, "EBLT timing %s L2A", Numbers::sEB(i+1).c_str());
00276 meTimeMapL2A_[i] = dqmStore_->bookProfile2D(histo, histo, 85, 0., 85., 20, 0., 20., 250, 0., 10., "s");
00277 meTimeMapL2A_[i]->setAxisTitle("ieta", 1);
00278 meTimeMapL2A_[i]->setAxisTitle("iphi", 2);
00279 dqmStore_->tag(meTimeMapL2A_[i], i+1);
00280 sprintf(histo, "EBLT amplitude over PN %s L2A", Numbers::sEB(i+1).c_str());
00281 meAmplPNMapL2A_[i] = dqmStore_->bookProfile2D(histo, histo, 85, 0., 85., 20, 0., 20., 4096, 0., 4096.*12., "s");
00282 meAmplPNMapL2A_[i]->setAxisTitle("ieta", 1);
00283 meAmplPNMapL2A_[i]->setAxisTitle("iphi", 2);
00284 dqmStore_->tag(meAmplPNMapL2A_[i], i+1);
00285
00286 sprintf(histo, "EBLT shape %s L2B", Numbers::sEB(i+1).c_str());
00287 meShapeMapL2B_[i] = dqmStore_->bookProfile2D(histo, histo, 1700, 0., 1700., 10, 0., 10., 4096, 0., 4096., "s");
00288 meShapeMapL2B_[i]->setAxisTitle("channel", 1);
00289 meShapeMapL2B_[i]->setAxisTitle("sample", 2);
00290 meShapeMapL2B_[i]->setAxisTitle("amplitude", 3);
00291 dqmStore_->tag(meShapeMapL2B_[i], i+1);
00292 sprintf(histo, "EBLT amplitude %s L2B", Numbers::sEB(i+1).c_str());
00293 meAmplMapL2B_[i] = dqmStore_->bookProfile2D(histo, histo, 85, 0., 85., 20, 0., 20., 4096, 0., 4096.*12., "s");
00294 meAmplMapL2B_[i]->setAxisTitle("ieta", 1);
00295 meAmplMapL2B_[i]->setAxisTitle("iphi", 2);
00296 dqmStore_->tag(meAmplMapL2B_[i], i+1);
00297 sprintf(histo, "EBLT timing %s L2B", Numbers::sEB(i+1).c_str());
00298 meTimeMapL2B_[i] = dqmStore_->bookProfile2D(histo, histo, 85, 0., 85., 20, 0., 20., 250, 0., 10., "s");
00299 meTimeMapL2B_[i]->setAxisTitle("ieta", 1);
00300 meTimeMapL2B_[i]->setAxisTitle("iphi", 2);
00301 dqmStore_->tag(meTimeMapL2B_[i], i+1);
00302 sprintf(histo, "EBLT amplitude over PN %s L2B", Numbers::sEB(i+1).c_str());
00303 meAmplPNMapL2B_[i] = dqmStore_->bookProfile2D(histo, histo, 85, 0., 85., 20, 0., 20., 4096, 0., 4096.*12., "s");
00304 meAmplPNMapL2B_[i]->setAxisTitle("ieta", 1);
00305 meAmplPNMapL2B_[i]->setAxisTitle("iphi", 2);
00306 dqmStore_->tag(meAmplPNMapL2B_[i], i+1);
00307 }
00308
00309 dqmStore_->setCurrentFolder(prefixME_ + "/EBLaserTask/Laser3");
00310 for (int i = 0; i < 36; i++) {
00311 sprintf(histo, "EBLT shape %s L3A", Numbers::sEB(i+1).c_str());
00312 meShapeMapL3A_[i] = dqmStore_->bookProfile2D(histo, histo, 1700, 0., 1700., 10, 0., 10., 4096, 0., 4096., "s");
00313 meShapeMapL3A_[i]->setAxisTitle("channel", 1);
00314 meShapeMapL3A_[i]->setAxisTitle("sample", 2);
00315 meShapeMapL3A_[i]->setAxisTitle("amplitude", 3);
00316 dqmStore_->tag(meShapeMapL3A_[i], i+1);
00317 sprintf(histo, "EBLT amplitude %s L3A", Numbers::sEB(i+1).c_str());
00318 meAmplMapL3A_[i] = dqmStore_->bookProfile2D(histo, histo, 85, 0., 85., 20, 0., 20., 4096, 0., 4096.*12., "s");
00319 meAmplMapL3A_[i]->setAxisTitle("ieta", 1);
00320 meAmplMapL3A_[i]->setAxisTitle("iphi", 2);
00321 dqmStore_->tag(meAmplMapL3A_[i], i+1);
00322 sprintf(histo, "EBLT timing %s L3A", Numbers::sEB(i+1).c_str());
00323 meTimeMapL3A_[i] = dqmStore_->bookProfile2D(histo, histo, 85, 0., 85., 20, 0., 20., 250, 0., 10., "s");
00324 meTimeMapL3A_[i]->setAxisTitle("ieta", 1);
00325 meTimeMapL3A_[i]->setAxisTitle("iphi", 2);
00326 dqmStore_->tag(meTimeMapL3A_[i], i+1);
00327 sprintf(histo, "EBLT amplitude over PN %s L3A", Numbers::sEB(i+1).c_str());
00328 meAmplPNMapL3A_[i] = dqmStore_->bookProfile2D(histo, histo, 85, 0., 85., 20, 0., 20., 4096, 0., 4096.*12., "s");
00329 meAmplPNMapL3A_[i]->setAxisTitle("ieta", 1);
00330 meAmplPNMapL3A_[i]->setAxisTitle("iphi", 2);
00331 dqmStore_->tag(meAmplPNMapL3A_[i], i+1);
00332
00333 sprintf(histo, "EBLT shape %s L3B", Numbers::sEB(i+1).c_str());
00334 meShapeMapL3B_[i] = dqmStore_->bookProfile2D(histo, histo, 1700, 0., 1700., 10, 0., 10., 4096, 0., 4096., "s");
00335 meShapeMapL3B_[i]->setAxisTitle("channel", 1);
00336 meShapeMapL3B_[i]->setAxisTitle("sample", 2);
00337 meShapeMapL3B_[i]->setAxisTitle("amplitude", 3);
00338 dqmStore_->tag(meShapeMapL3B_[i], i+1);
00339 sprintf(histo, "EBLT amplitude %s L3B", Numbers::sEB(i+1).c_str());
00340 meAmplMapL3B_[i] = dqmStore_->bookProfile2D(histo, histo, 85, 0., 85., 20, 0., 20., 4096, 0., 4096.*12., "s");
00341 meAmplMapL3B_[i]->setAxisTitle("ieta", 1);
00342 meAmplMapL3B_[i]->setAxisTitle("iphi", 2);
00343 dqmStore_->tag(meAmplMapL3B_[i], i+1);
00344 sprintf(histo, "EBLT timing %s L3B", Numbers::sEB(i+1).c_str());
00345 meTimeMapL3B_[i] = dqmStore_->bookProfile2D(histo, histo, 85, 0., 85., 20, 0., 20., 250, 0., 10., "s");
00346 meTimeMapL3B_[i]->setAxisTitle("ieta", 1);
00347 meTimeMapL3B_[i]->setAxisTitle("iphi", 2);
00348 dqmStore_->tag(meTimeMapL3B_[i], i+1);
00349 sprintf(histo, "EBLT amplitude over PN %s L3B", Numbers::sEB(i+1).c_str());
00350 meAmplPNMapL3B_[i] = dqmStore_->bookProfile2D(histo, histo, 85, 0., 85., 20, 0., 20., 4096, 0., 4096.*12., "s");
00351 meAmplPNMapL3B_[i]->setAxisTitle("ieta", 1);
00352 meAmplPNMapL3B_[i]->setAxisTitle("iphi", 2);
00353 dqmStore_->tag(meAmplPNMapL3B_[i], i+1);
00354 }
00355
00356 dqmStore_->setCurrentFolder(prefixME_ + "/EBLaserTask/Laser4");
00357 for (int i = 0; i < 36; i++) {
00358 sprintf(histo, "EBLT shape %s L4A", Numbers::sEB(i+1).c_str());
00359 meShapeMapL4A_[i] = dqmStore_->bookProfile2D(histo, histo, 1700, 0., 1700., 10, 0., 10., 4096, 0., 4096., "s");
00360 meShapeMapL4A_[i]->setAxisTitle("channel", 1);
00361 meShapeMapL4A_[i]->setAxisTitle("sample", 2);
00362 meShapeMapL4A_[i]->setAxisTitle("amplitude", 3);
00363 dqmStore_->tag(meShapeMapL4A_[i], i+1);
00364 sprintf(histo, "EBLT amplitude %s L4A", Numbers::sEB(i+1).c_str());
00365 meAmplMapL4A_[i] = dqmStore_->bookProfile2D(histo, histo, 85, 0., 85., 20, 0., 20., 4096, 0., 4096.*12., "s");
00366 meAmplMapL4A_[i]->setAxisTitle("ieta", 1);
00367 meAmplMapL4A_[i]->setAxisTitle("iphi", 2);
00368 dqmStore_->tag(meAmplMapL4A_[i], i+1);
00369 sprintf(histo, "EBLT timing %s L4A", Numbers::sEB(i+1).c_str());
00370 meTimeMapL4A_[i] = dqmStore_->bookProfile2D(histo, histo, 85, 0., 85., 20, 0., 20., 250, 0., 10., "s");
00371 meTimeMapL4A_[i]->setAxisTitle("ieta", 1);
00372 meTimeMapL4A_[i]->setAxisTitle("iphi", 2);
00373 dqmStore_->tag(meTimeMapL4A_[i], i+1);
00374 sprintf(histo, "EBLT amplitude over PN %s L4A", Numbers::sEB(i+1).c_str());
00375 meAmplPNMapL4A_[i] = dqmStore_->bookProfile2D(histo, histo, 85, 0., 85., 20, 0., 20., 4096, 0., 4096.*12., "s");
00376 meAmplPNMapL4A_[i]->setAxisTitle("ieta", 1);
00377 meAmplPNMapL4A_[i]->setAxisTitle("iphi", 2);
00378 dqmStore_->tag(meAmplPNMapL4A_[i], i+1);
00379
00380 sprintf(histo, "EBLT shape %s L4B", Numbers::sEB(i+1).c_str());
00381 meShapeMapL4B_[i] = dqmStore_->bookProfile2D(histo, histo, 1700, 0., 1700., 10, 0., 10., 4096, 0., 4096., "s");
00382 meShapeMapL4B_[i]->setAxisTitle("channel", 1);
00383 meShapeMapL4B_[i]->setAxisTitle("sample", 2);
00384 meShapeMapL4B_[i]->setAxisTitle("amplitude", 3);
00385 dqmStore_->tag(meShapeMapL4B_[i], i+1);
00386 sprintf(histo, "EBLT amplitude %s L4B", Numbers::sEB(i+1).c_str());
00387 meAmplMapL4B_[i] = dqmStore_->bookProfile2D(histo, histo, 85, 0., 85., 20, 0., 20., 4096, 0., 4096.*12., "s");
00388 meAmplMapL4B_[i]->setAxisTitle("ieta", 1);
00389 meAmplMapL4B_[i]->setAxisTitle("iphi", 2);
00390 dqmStore_->tag(meAmplMapL4B_[i], i+1);
00391 sprintf(histo, "EBLT timing %s L4B", Numbers::sEB(i+1).c_str());
00392 meTimeMapL4B_[i] = dqmStore_->bookProfile2D(histo, histo, 85, 0., 85., 20, 0., 20., 250, 0., 10., "s");
00393 meTimeMapL4B_[i]->setAxisTitle("ieta", 1);
00394 meTimeMapL4B_[i]->setAxisTitle("iphi", 2);
00395 dqmStore_->tag(meTimeMapL4B_[i], i+1);
00396 sprintf(histo, "EBLT amplitude over PN %s L4B", Numbers::sEB(i+1).c_str());
00397 meAmplPNMapL4B_[i] = dqmStore_->bookProfile2D(histo, histo, 85, 0., 85., 20, 0., 20., 4096, 0., 4096.*12., "s");
00398 meAmplPNMapL4B_[i]->setAxisTitle("ieta", 1);
00399 meAmplPNMapL4B_[i]->setAxisTitle("iphi", 2);
00400 dqmStore_->tag(meAmplPNMapL4B_[i], i+1);
00401 }
00402
00403 dqmStore_->setCurrentFolder(prefixME_ + "/EBLaserTask/Laser1/PN");
00404
00405 dqmStore_->setCurrentFolder(prefixME_ + "/EBLaserTask/Laser1/PN/Gain01");
00406 for (int i = 0; i < 36; i++) {
00407 sprintf(histo, "EBPDT PNs amplitude %s G01 L1", Numbers::sEB(i+1).c_str());
00408 mePnAmplMapG01L1_[i] = dqmStore_->bookProfile(histo, histo, 10, 0., 10., 4096, 0., 4096., "s");
00409 mePnAmplMapG01L1_[i]->setAxisTitle("channel", 1);
00410 mePnAmplMapG01L1_[i]->setAxisTitle("amplitude", 2);
00411 dqmStore_->tag(mePnAmplMapG01L1_[i], i+1);
00412 sprintf(histo, "EBPDT PNs pedestal %s G01 L1", Numbers::sEB(i+1).c_str());
00413 mePnPedMapG01L1_[i] = dqmStore_->bookProfile(histo, histo, 10, 0., 10., 4096, 0., 4096., "s");
00414 mePnPedMapG01L1_[i]->setAxisTitle("channel", 1);
00415 mePnPedMapG01L1_[i]->setAxisTitle("pedestal", 2);
00416 dqmStore_->tag(mePnPedMapG01L1_[i], i+1);
00417 }
00418
00419 dqmStore_->setCurrentFolder(prefixME_ + "/EBLaserTask/Laser1/PN/Gain16");
00420 for (int i = 0; i < 36; i++) {
00421 sprintf(histo, "EBPDT PNs amplitude %s G16 L1", Numbers::sEB(i+1).c_str());
00422 mePnAmplMapG16L1_[i] = dqmStore_->bookProfile(histo, histo, 10, 0., 10., 4096, 0., 4096., "s");
00423 mePnAmplMapG16L1_[i]->setAxisTitle("channel", 1);
00424 mePnAmplMapG16L1_[i]->setAxisTitle("amplitude", 2);
00425 dqmStore_->tag(mePnAmplMapG16L1_[i], i+1);
00426 sprintf(histo, "EBPDT PNs pedestal %s G16 L1", Numbers::sEB(i+1).c_str());
00427 mePnPedMapG16L1_[i] = dqmStore_->bookProfile(histo, histo, 10, 0., 10., 4096, 0., 4096., "s");
00428 mePnPedMapG16L1_[i]->setAxisTitle("channel", 1);
00429 mePnPedMapG16L1_[i]->setAxisTitle("pedestal", 2);
00430 dqmStore_->tag(mePnPedMapG16L1_[i], i+1);
00431 }
00432
00433 dqmStore_->setCurrentFolder(prefixME_ + "/EBLaserTask/Laser2/PN");
00434
00435 dqmStore_->setCurrentFolder(prefixME_ + "/EBLaserTask/Laser2/PN/Gain01");
00436 for (int i = 0; i < 36; i++) {
00437 sprintf(histo, "EBPDT PNs amplitude %s G01 L2", Numbers::sEB(i+1).c_str());
00438 mePnAmplMapG01L2_[i] = dqmStore_->bookProfile(histo, histo, 10, 0., 10., 4096, 0., 4096., "s");
00439 mePnAmplMapG01L2_[i]->setAxisTitle("channel", 1);
00440 mePnAmplMapG01L2_[i]->setAxisTitle("amplitude", 2);
00441 dqmStore_->tag(mePnAmplMapG01L2_[i], i+1);
00442 sprintf(histo, "EBPDT PNs pedestal %s G01 L2", Numbers::sEB(i+1).c_str());
00443 mePnPedMapG01L2_[i] = dqmStore_->bookProfile(histo, histo, 10, 0., 10., 4096, 0., 4096., "s");
00444 mePnPedMapG01L2_[i]->setAxisTitle("channel", 1);
00445 mePnPedMapG01L2_[i]->setAxisTitle("pedestal", 2);
00446 dqmStore_->tag(mePnPedMapG01L2_[i], i+1);
00447 }
00448
00449 dqmStore_->setCurrentFolder(prefixME_ + "/EBLaserTask/Laser2/PN/Gain16");
00450 for (int i = 0; i < 36; i++) {
00451 sprintf(histo, "EBPDT PNs amplitude %s G16 L2", Numbers::sEB(i+1).c_str());
00452 mePnAmplMapG16L2_[i] = dqmStore_->bookProfile(histo, histo, 10, 0., 10., 4096, 0., 4096., "s");
00453 mePnAmplMapG16L2_[i]->setAxisTitle("channel", 1);
00454 mePnAmplMapG16L2_[i]->setAxisTitle("amplitude", 2);
00455 dqmStore_->tag(mePnAmplMapG16L2_[i], i+1);
00456 sprintf(histo, "EBPDT PNs pedestal %s G16 L2", Numbers::sEB(i+1).c_str());
00457 mePnPedMapG16L2_[i] = dqmStore_->bookProfile(histo, histo, 10, 0., 10., 4096, 0., 4096., "s");
00458 mePnPedMapG16L2_[i]->setAxisTitle("channel", 1);
00459 mePnPedMapG16L2_[i]->setAxisTitle("pedestal", 2);
00460 dqmStore_->tag(mePnPedMapG16L2_[i], i+1);
00461 }
00462
00463 dqmStore_->setCurrentFolder(prefixME_ + "/EBLaserTask/Laser3/PN");
00464
00465 dqmStore_->setCurrentFolder(prefixME_ + "/EBLaserTask/Laser3/PN/Gain01");
00466 for (int i = 0; i < 36; i++) {
00467 sprintf(histo, "EBPDT PNs amplitude %s G01 L3", Numbers::sEB(i+1).c_str());
00468 mePnAmplMapG01L3_[i] = dqmStore_->bookProfile(histo, histo, 10, 0., 10., 4096, 0., 4096., "s");
00469 mePnAmplMapG01L3_[i]->setAxisTitle("channel", 1);
00470 mePnAmplMapG01L3_[i]->setAxisTitle("amplitude", 2);
00471 dqmStore_->tag(mePnAmplMapG01L3_[i], i+1);
00472 sprintf(histo, "EBPDT PNs pedestal %s G01 L3", Numbers::sEB(i+1).c_str());
00473 mePnPedMapG01L3_[i] = dqmStore_->bookProfile(histo, histo, 10, 0., 10., 4096, 0., 4096., "s");
00474 mePnPedMapG01L3_[i]->setAxisTitle("channel", 1);
00475 mePnPedMapG01L3_[i]->setAxisTitle("pedestal", 2);
00476 dqmStore_->tag(mePnPedMapG01L3_[i], i+1);
00477 }
00478
00479 dqmStore_->setCurrentFolder(prefixME_ + "/EBLaserTask/Laser3/PN/Gain16");
00480 for (int i = 0; i < 36; i++) {
00481 sprintf(histo, "EBPDT PNs amplitude %s G16 L3", Numbers::sEB(i+1).c_str());
00482 mePnAmplMapG16L3_[i] = dqmStore_->bookProfile(histo, histo, 10, 0., 10., 4096, 0., 4096., "s");
00483 mePnAmplMapG16L3_[i]->setAxisTitle("channel", 1);
00484 mePnAmplMapG16L3_[i]->setAxisTitle("amplitude", 2);
00485 dqmStore_->tag(mePnAmplMapG16L3_[i], i+1);
00486 sprintf(histo, "EBPDT PNs pedestal %s G16 L3", Numbers::sEB(i+1).c_str());
00487 mePnPedMapG16L3_[i] = dqmStore_->bookProfile(histo, histo, 10, 0., 10., 4096, 0., 4096., "s");
00488 mePnPedMapG16L3_[i]->setAxisTitle("channel", 1);
00489 mePnPedMapG16L3_[i]->setAxisTitle("pedestal", 2);
00490 dqmStore_->tag(mePnPedMapG16L3_[i], i+1);
00491 }
00492
00493 dqmStore_->setCurrentFolder(prefixME_ + "/EBLaserTask/Laser4/PN");
00494
00495 dqmStore_->setCurrentFolder(prefixME_ + "/EBLaserTask/Laser4/PN/Gain01");
00496 for (int i = 0; i < 36; i++) {
00497 sprintf(histo, "EBPDT PNs amplitude %s G01 L4", Numbers::sEB(i+1).c_str());
00498 mePnAmplMapG01L4_[i] = dqmStore_->bookProfile(histo, histo, 10, 0., 10., 4096, 0., 4096., "s");
00499 mePnAmplMapG01L4_[i]->setAxisTitle("channel", 1);
00500 mePnAmplMapG01L4_[i]->setAxisTitle("amplitude", 2);
00501 dqmStore_->tag(mePnAmplMapG01L4_[i], i+1);
00502 sprintf(histo, "EBPDT PNs pedestal %s G01 L4", Numbers::sEB(i+1).c_str());
00503 mePnPedMapG01L4_[i] = dqmStore_->bookProfile(histo, histo, 10, 0., 10., 4096, 0., 4096., "s");
00504 mePnPedMapG01L4_[i]->setAxisTitle("channel", 1);
00505 mePnPedMapG01L4_[i]->setAxisTitle("pedestal", 2);
00506 dqmStore_->tag(mePnPedMapG01L4_[i], i+1);
00507 }
00508
00509 dqmStore_->setCurrentFolder(prefixME_ + "/EBLaserTask/Laser4/PN/Gain16");
00510 for (int i = 0; i < 36; i++) {
00511 sprintf(histo, "EBPDT PNs amplitude %s G16 L4", Numbers::sEB(i+1).c_str());
00512 mePnAmplMapG16L4_[i] = dqmStore_->bookProfile(histo, histo, 10, 0., 10., 4096, 0., 4096., "s");
00513 mePnAmplMapG16L4_[i]->setAxisTitle("channel", 1);
00514 mePnAmplMapG16L4_[i]->setAxisTitle("amplitude", 2);
00515 dqmStore_->tag(mePnAmplMapG16L4_[i], i+1);
00516 sprintf(histo, "EBPDT PNs pedestal %s G16 L4", Numbers::sEB(i+1).c_str());
00517 mePnPedMapG16L4_[i] = dqmStore_->bookProfile(histo, histo, 10, 0., 10., 4096, 0., 4096., "s");
00518 mePnPedMapG16L4_[i]->setAxisTitle("channel", 1);
00519 mePnPedMapG16L4_[i]->setAxisTitle("pedestal", 2);
00520 dqmStore_->tag(mePnPedMapG16L4_[i], i+1);
00521 }
00522
00523 }
00524
00525 }
00526
00527 void EBLaserTask::cleanup(void){
00528
00529 if ( ! init_ ) return;
00530
00531 if ( dqmStore_ ) {
00532 dqmStore_->setCurrentFolder(prefixME_ + "/EBLaserTask");
00533
00534 dqmStore_->setCurrentFolder(prefixME_ + "/EBLaserTask/Laser1");
00535 for (int i = 0; i < 36; i++) {
00536 if ( meShapeMapL1A_[i] ) dqmStore_->removeElement( meShapeMapL1A_[i]->getName() );
00537 meShapeMapL1A_[i] = 0;
00538 if ( meAmplMapL1A_[i] ) dqmStore_->removeElement( meAmplMapL1A_[i]->getName() );
00539 meAmplMapL1A_[i] = 0;
00540 if ( meTimeMapL1A_[i] ) dqmStore_->removeElement( meTimeMapL1A_[i]->getName() );
00541 meTimeMapL1A_[i] = 0;
00542 if ( meAmplPNMapL1A_[i] ) dqmStore_->removeElement( meAmplPNMapL1A_[i]->getName() );
00543 meAmplPNMapL1A_[i] = 0;
00544
00545 if ( meShapeMapL1B_[i] ) dqmStore_->removeElement( meShapeMapL1B_[i]->getName() );
00546 meShapeMapL1B_[i] = 0;
00547 if ( meAmplMapL1B_[i] ) dqmStore_->removeElement( meAmplMapL1B_[i]->getName() );
00548 meAmplMapL1B_[i] = 0;
00549 if ( meTimeMapL1B_[i] ) dqmStore_->removeElement( meTimeMapL1B_[i]->getName() );
00550 meTimeMapL1B_[i] = 0;
00551 if ( meAmplPNMapL1B_[i] ) dqmStore_->removeElement( meAmplPNMapL1B_[i]->getName() );
00552 meAmplPNMapL1B_[i] = 0;
00553 }
00554
00555 dqmStore_->setCurrentFolder(prefixME_ + "/EBLaserTask/Laser2");
00556 for (int i = 0; i < 36; i++) {
00557 if ( meShapeMapL2A_[i] ) dqmStore_->removeElement( meShapeMapL2A_[i]->getName() );
00558 meShapeMapL2A_[i] = 0;
00559 if ( meAmplMapL2A_[i] ) dqmStore_->removeElement( meAmplMapL2A_[i]->getName() );
00560 meAmplMapL2A_[i] = 0;
00561 if ( meTimeMapL2A_[i] ) dqmStore_->removeElement( meTimeMapL2A_[i]->getName() );
00562 meTimeMapL2A_[i] = 0;
00563 if ( meAmplPNMapL2A_[i] ) dqmStore_->removeElement( meAmplPNMapL2A_[i]->getName() );
00564 meAmplPNMapL2A_[i] = 0;
00565
00566 if ( meShapeMapL2B_[i] ) dqmStore_->removeElement( meShapeMapL2B_[i]->getName() );
00567 meShapeMapL2B_[i] = 0;
00568 if ( meAmplMapL2B_[i] ) dqmStore_->removeElement( meAmplMapL2B_[i]->getName() );
00569 meAmplMapL2B_[i] = 0;
00570 if ( meTimeMapL2B_[i] ) dqmStore_->removeElement( meTimeMapL2B_[i]->getName() );
00571 meTimeMapL2B_[i] = 0;
00572 if ( meAmplPNMapL2B_[i] ) dqmStore_->removeElement( meAmplPNMapL2B_[i]->getName() );
00573 meAmplPNMapL2B_[i] = 0;
00574 }
00575
00576 dqmStore_->setCurrentFolder(prefixME_ + "/EBLaserTask/Laser3");
00577 for (int i = 0; i < 36; i++) {
00578 if ( meShapeMapL3A_[i] ) dqmStore_->removeElement( meShapeMapL3A_[i]->getName() );
00579 meShapeMapL3A_[i] = 0;
00580 if ( meAmplMapL3A_[i] ) dqmStore_->removeElement( meAmplMapL3A_[i]->getName() );
00581 meAmplMapL3A_[i] = 0;
00582 if ( meTimeMapL3A_[i] ) dqmStore_->removeElement( meTimeMapL3A_[i]->getName() );
00583 meTimeMapL3A_[i] = 0;
00584 if ( meAmplPNMapL3A_[i] ) dqmStore_->removeElement( meAmplPNMapL3A_[i]->getName() );
00585 meAmplPNMapL3A_[i] = 0;
00586
00587 if ( meShapeMapL3B_[i] ) dqmStore_->removeElement( meShapeMapL3B_[i]->getName() );
00588 meShapeMapL3B_[i] = 0;
00589 if ( meAmplMapL3B_[i] ) dqmStore_->removeElement( meAmplMapL3B_[i]->getName() );
00590 meAmplMapL3B_[i] = 0;
00591 if ( meTimeMapL3B_[i] ) dqmStore_->removeElement( meTimeMapL3B_[i]->getName() );
00592 meTimeMapL3B_[i] = 0;
00593 if ( meAmplPNMapL3B_[i] ) dqmStore_->removeElement( meAmplPNMapL3B_[i]->getName() );
00594 meAmplPNMapL3B_[i] = 0;
00595 }
00596
00597 dqmStore_->setCurrentFolder(prefixME_ + "/EBLaserTask/Laser4");
00598 for (int i = 0; i < 36; i++) {
00599 if ( meShapeMapL4A_[i] ) dqmStore_->removeElement( meShapeMapL4A_[i]->getName() );
00600 meShapeMapL4A_[i] = 0;
00601 if ( meAmplMapL4A_[i] ) dqmStore_->removeElement( meAmplMapL4A_[i]->getName() );
00602 meAmplMapL4A_[i] = 0;
00603 if ( meTimeMapL4A_[i] ) dqmStore_->removeElement( meTimeMapL4A_[i]->getName() );
00604 meTimeMapL4A_[i] = 0;
00605 if ( meAmplPNMapL4A_[i] ) dqmStore_->removeElement( meAmplPNMapL4A_[i]->getName() );
00606 meAmplPNMapL4A_[i] = 0;
00607
00608 if ( meShapeMapL4B_[i] ) dqmStore_->removeElement( meShapeMapL4B_[i]->getName() );
00609 meShapeMapL4B_[i] = 0;
00610 if ( meAmplMapL4B_[i] ) dqmStore_->removeElement( meAmplMapL4B_[i]->getName() );
00611 meAmplMapL4B_[i] = 0;
00612 if ( meTimeMapL4B_[i] ) dqmStore_->removeElement( meTimeMapL4B_[i]->getName() );
00613 meTimeMapL4B_[i] = 0;
00614 if ( meAmplPNMapL4B_[i] ) dqmStore_->removeElement( meAmplPNMapL4B_[i]->getName() );
00615 meAmplPNMapL4B_[i] = 0;
00616 }
00617
00618 dqmStore_->setCurrentFolder(prefixME_ + "/EBLaserTask/Laser1/PN");
00619
00620 dqmStore_->setCurrentFolder(prefixME_ + "/EBLaserTask/Laser1/PN/Gain01");
00621 for (int i = 0; i < 36; i++) {
00622 if ( mePnAmplMapG01L1_[i] ) dqmStore_->removeElement( mePnAmplMapG01L1_[i]->getName() );
00623 mePnAmplMapG01L1_[i] = 0;
00624 if ( mePnPedMapG01L1_[i] ) dqmStore_->removeElement( mePnPedMapG01L1_[i]->getName() );
00625 mePnPedMapG01L1_[i] = 0;
00626 }
00627
00628 dqmStore_->setCurrentFolder(prefixME_ + "/EBLaserTask/Laser1/PN/Gain16");
00629 for (int i = 0; i < 36; i++) {
00630 if ( mePnAmplMapG16L1_[i] ) dqmStore_->removeElement( mePnAmplMapG16L1_[i]->getName() );
00631 mePnAmplMapG16L1_[i] = 0;
00632 if ( mePnPedMapG16L1_[i] ) dqmStore_->removeElement( mePnPedMapG16L1_[i]->getName() );
00633 mePnPedMapG16L1_[i] = 0;
00634 }
00635
00636 dqmStore_->setCurrentFolder(prefixME_ + "/EBLaserTask/Laser2/PN");
00637
00638 dqmStore_->setCurrentFolder(prefixME_ + "/EBLaserTask/Laser2/PN/Gain01");
00639 for (int i = 0; i < 36; i++) {
00640 if ( mePnAmplMapG01L2_[i] ) dqmStore_->removeElement( mePnAmplMapG01L2_[i]->getName() );
00641 mePnAmplMapG01L2_[i] = 0;
00642 if ( mePnPedMapG01L2_[i] ) dqmStore_->removeElement( mePnPedMapG01L2_[i]->getName() );
00643 mePnPedMapG01L2_[i] = 0;
00644 }
00645
00646 dqmStore_->setCurrentFolder(prefixME_ + "/EBLaserTask/Laser2/PN/Gain16");
00647 for (int i = 0; i < 36; i++) {
00648 if ( mePnAmplMapG16L2_[i] ) dqmStore_->removeElement( mePnAmplMapG16L2_[i]->getName() );
00649 mePnAmplMapG16L2_[i] = 0;
00650 if ( mePnPedMapG16L2_[i] ) dqmStore_->removeElement( mePnPedMapG16L2_[i]->getName() );
00651 mePnPedMapG16L2_[i] = 0;
00652 }
00653
00654 dqmStore_->setCurrentFolder(prefixME_ + "/EBLaserTask/Laser3/PN");
00655
00656 dqmStore_->setCurrentFolder(prefixME_ + "/EBLaserTask/Laser3/PN/Gain01");
00657 for (int i = 0; i < 36; i++) {
00658 if ( mePnAmplMapG01L3_[i] ) dqmStore_->removeElement( mePnAmplMapG01L3_[i]->getName() );
00659 mePnAmplMapG01L3_[i] = 0;
00660 if ( mePnPedMapG01L3_[i] ) dqmStore_->removeElement( mePnPedMapG01L3_[i]->getName() );
00661 mePnPedMapG01L3_[i] = 0;
00662 }
00663
00664 dqmStore_->setCurrentFolder(prefixME_ + "/EBLaserTask/Laser3/PN/Gain16");
00665 for (int i = 0; i < 36; i++) {
00666 if ( mePnAmplMapG16L3_[i] ) dqmStore_->removeElement( mePnAmplMapG16L3_[i]->getName() );
00667 mePnAmplMapG16L3_[i] = 0;
00668 if ( mePnPedMapG16L3_[i] ) dqmStore_->removeElement( mePnPedMapG16L3_[i]->getName() );
00669 mePnPedMapG16L3_[i] = 0;
00670 }
00671
00672 dqmStore_->setCurrentFolder(prefixME_ + "/EBLaserTask/Laser4/PN");
00673
00674 dqmStore_->setCurrentFolder(prefixME_ + "/EBLaserTask/Laser4/PN/Gain01");
00675 for (int i = 0; i < 36; i++) {
00676 if ( mePnAmplMapG01L4_[i] ) dqmStore_->removeElement( mePnAmplMapG01L4_[i]->getName() );
00677 mePnAmplMapG01L4_[i] = 0;
00678 if ( mePnPedMapG01L4_[i] ) dqmStore_->removeElement( mePnPedMapG01L4_[i]->getName() );
00679 mePnPedMapG01L4_[i] = 0;
00680 }
00681
00682 dqmStore_->setCurrentFolder(prefixME_ + "/EBLaserTask/Laser4/PN/Gain16");
00683 for (int i = 0; i < 36; i++) {
00684 if ( mePnAmplMapG16L4_[i] ) dqmStore_->removeElement( mePnAmplMapG16L4_[i]->getName() );
00685 mePnAmplMapG16L4_[i] = 0;
00686 if ( mePnPedMapG16L4_[i] ) dqmStore_->removeElement( mePnPedMapG16L4_[i]->getName() );
00687 mePnPedMapG16L4_[i] = 0;
00688 }
00689
00690 }
00691
00692 init_ = false;
00693
00694 }
00695
00696 void EBLaserTask::endJob(void){
00697
00698 LogInfo("EBLaserTask") << "analyzed " << ievt_ << " events";
00699
00700 if ( enableCleanup_ ) this->cleanup();
00701
00702 }
00703
00704 void EBLaserTask::analyze(const Event& e, const EventSetup& c){
00705
00706 bool enable = false;
00707 int runType[36] = { -1 };
00708 int rtHalf[36] = { -1 };
00709 int waveLength[36] = { -1 };
00710
00711 Handle<EcalRawDataCollection> dcchs;
00712
00713 if ( e.getByLabel(EcalRawDataCollection_, dcchs) ) {
00714
00715 for ( EcalRawDataCollection::const_iterator dcchItr = dcchs->begin(); dcchItr != dcchs->end(); ++dcchItr ) {
00716
00717 if ( Numbers::subDet( *dcchItr ) != EcalBarrel ) continue;
00718
00719 int ism = Numbers::iSM( *dcchItr, EcalBarrel );
00720
00721 runType[ism-1] = dcchItr->getRunType();
00722 rtHalf[ism-1] = dcchItr->getRtHalf();
00723 waveLength[ism-1] = dcchItr->getEventSettings().wavelength;
00724
00725 if ( dcchItr->getRunType() == EcalDCCHeaderBlock::LASER_STD ||
00726 dcchItr->getRunType() == EcalDCCHeaderBlock::LASER_GAP ) enable = true;
00727
00728 }
00729
00730 } else {
00731
00732 LogWarning("EBLaserTask") << EcalRawDataCollection_ << " not available";
00733
00734 }
00735
00736 if ( ! enable ) return;
00737
00738 if ( ! init_ ) this->setup();
00739
00740 ievt_++;
00741
00742 Handle<EBDigiCollection> digis;
00743
00744 if ( e.getByLabel(EBDigiCollection_, digis) ) {
00745
00746 int nebd = digis->size();
00747 LogDebug("EBLaserTask") << "event " << ievt_ << " digi collection size " << nebd;
00748
00749 for ( EBDigiCollection::const_iterator digiItr = digis->begin(); digiItr != digis->end(); ++digiItr ) {
00750
00751 EBDetId id = digiItr->id();
00752
00753 int ic = id.ic();
00754 int ie = (ic-1)/20 + 1;
00755 int ip = (ic-1)%20 + 1;
00756
00757 int ism = Numbers::iSM( id );
00758
00759 if ( ! ( runType[ism-1] == EcalDCCHeaderBlock::LASER_STD ||
00760 runType[ism-1] == EcalDCCHeaderBlock::LASER_GAP ) ) continue;
00761
00762 if ( rtHalf[ism-1] != Numbers::RtHalf(id) ) continue;
00763
00764 LogDebug("EBLaserTask") << " det id = " << id;
00765 LogDebug("EBLaserTask") << " sm, ieta, iphi " << ism << " " << ie << " " << ip;
00766
00767 EBDataFrame dataframe = (*digiItr);
00768
00769 for (int i = 0; i < 10; i++) {
00770
00771 int adc = dataframe.sample(i).adc();
00772 float gain = 1.;
00773
00774 MonitorElement* meShapeMap = 0;
00775
00776 if ( dataframe.sample(i).gainId() == 1 ) gain = 1./12.;
00777 if ( dataframe.sample(i).gainId() == 2 ) gain = 1./ 6.;
00778 if ( dataframe.sample(i).gainId() == 3 ) gain = 1./ 1.;
00779
00780 if ( rtHalf[ism-1] == 0 ) {
00781
00782 if ( waveLength[ism-1] == 0 ) meShapeMap = meShapeMapL1A_[ism-1];
00783 if ( waveLength[ism-1] == 1 ) meShapeMap = meShapeMapL2A_[ism-1];
00784 if ( waveLength[ism-1] == 2 ) meShapeMap = meShapeMapL3A_[ism-1];
00785 if ( waveLength[ism-1] == 3 ) meShapeMap = meShapeMapL4A_[ism-1];
00786
00787 } else if ( rtHalf[ism-1] == 1 ) {
00788
00789 if ( waveLength[ism-1] == 0 ) meShapeMap = meShapeMapL1B_[ism-1];
00790 if ( waveLength[ism-1] == 1 ) meShapeMap = meShapeMapL2B_[ism-1];
00791 if ( waveLength[ism-1] == 2 ) meShapeMap = meShapeMapL3B_[ism-1];
00792 if ( waveLength[ism-1] == 3 ) meShapeMap = meShapeMapL4B_[ism-1];
00793
00794 } else {
00795
00796 LogWarning("EBLaserTask") << " RtHalf = " << rtHalf[ism-1];
00797
00798 }
00799
00800
00801 float xval = float(adc);
00802
00803 if ( meShapeMap ) meShapeMap->Fill(ic - 0.5, i + 0.5, xval);
00804
00805 }
00806
00807 }
00808
00809 } else {
00810
00811 LogWarning("EBLaserTask") << EBDigiCollection_ << " not available";
00812
00813 }
00814
00815 float adcA[36];
00816 float adcB[36];
00817
00818 for ( int i = 0; i < 36; i++ ) {
00819 adcA[i] = 0.;
00820 adcB[i] = 0.;
00821 }
00822
00823 Handle<EcalPnDiodeDigiCollection> pns;
00824
00825 if ( e.getByLabel(EcalPnDiodeDigiCollection_, pns) ) {
00826
00827 int nep = pns->size();
00828 LogDebug("EBLaserTask") << "event " << ievt_ << " pns collection size " << nep;
00829
00830 for ( EcalPnDiodeDigiCollection::const_iterator pnItr = pns->begin(); pnItr != pns->end(); ++pnItr ) {
00831
00832 if ( Numbers::subDet( pnItr->id() ) != EcalBarrel ) continue;
00833
00834 int ism = Numbers::iSM( pnItr->id() );
00835
00836 int num = pnItr->id().iPnId();
00837
00838 if ( ! ( runType[ism-1] == EcalDCCHeaderBlock::LASER_STD ||
00839 runType[ism-1] == EcalDCCHeaderBlock::LASER_GAP ) ) continue;
00840
00841 LogDebug("EBLaserTask") << " det id = " << pnItr->id();
00842 LogDebug("EBLaserTask") << " sm, num " << ism << " " << num;
00843
00844 float xvalped = 0.;
00845
00846 for (int i = 0; i < 4; i++) {
00847
00848 int adc = pnItr->sample(i).adc();
00849
00850 MonitorElement* mePNPed = 0;
00851
00852 if ( pnItr->sample(i).gainId() == 0 ) {
00853 if ( waveLength[ism-1] == 0 ) mePNPed = mePnPedMapG01L1_[ism-1];
00854 if ( waveLength[ism-1] == 1 ) mePNPed = mePnPedMapG01L2_[ism-1];
00855 if ( waveLength[ism-1] == 2 ) mePNPed = mePnPedMapG01L3_[ism-1];
00856 if ( waveLength[ism-1] == 3 ) mePNPed = mePnPedMapG01L4_[ism-1];
00857 }
00858 if ( pnItr->sample(i).gainId() == 1 ) {
00859 if ( waveLength[ism-1] == 0 ) mePNPed = mePnPedMapG16L1_[ism-1];
00860 if ( waveLength[ism-1] == 1 ) mePNPed = mePnPedMapG16L2_[ism-1];
00861 if ( waveLength[ism-1] == 2 ) mePNPed = mePnPedMapG16L3_[ism-1];
00862 if ( waveLength[ism-1] == 3 ) mePNPed = mePnPedMapG16L4_[ism-1];
00863 }
00864
00865 float xval = float(adc);
00866
00867 if ( mePNPed ) mePNPed->Fill(num - 0.5, xval);
00868
00869 xvalped = xvalped + xval;
00870
00871 }
00872
00873 xvalped = xvalped / 4;
00874
00875 float xvalmax = 0.;
00876
00877 MonitorElement* mePN = 0;
00878
00879 for (int i = 0; i < 50; i++) {
00880
00881 int adc = pnItr->sample(i).adc();
00882
00883 float xval = float(adc);
00884
00885 if ( xval >= xvalmax ) xvalmax = xval;
00886
00887 }
00888
00889 xvalmax = xvalmax - xvalped;
00890
00891 if ( pnItr->sample(0).gainId() == 0 ) {
00892 if ( waveLength[ism-1] == 0 ) mePN = mePnAmplMapG01L1_[ism-1];
00893 if ( waveLength[ism-1] == 1 ) mePN = mePnAmplMapG01L2_[ism-1];
00894 if ( waveLength[ism-1] == 2 ) mePN = mePnAmplMapG01L3_[ism-1];
00895 if ( waveLength[ism-1] == 3 ) mePN = mePnAmplMapG01L4_[ism-1];
00896 }
00897 if ( pnItr->sample(0).gainId() == 1 ) {
00898 if ( waveLength[ism-1] == 0 ) mePN = mePnAmplMapG16L1_[ism-1];
00899 if ( waveLength[ism-1] == 1 ) mePN = mePnAmplMapG16L2_[ism-1];
00900 if ( waveLength[ism-1] == 2 ) mePN = mePnAmplMapG16L3_[ism-1];
00901 if ( waveLength[ism-1] == 3 ) mePN = mePnAmplMapG16L4_[ism-1];
00902 }
00903
00904 if ( mePN ) mePN->Fill(num - 0.5, xvalmax);
00905
00906 if ( num == 1 ) adcA[ism-1] = xvalmax;
00907 if ( num == 6 ) adcB[ism-1] = xvalmax;
00908
00909 }
00910
00911 } else {
00912
00913 LogWarning("EBLaserTask") << EcalPnDiodeDigiCollection_ << " not available";
00914
00915 }
00916
00917 Handle<EcalUncalibratedRecHitCollection> hits;
00918
00919 if ( e.getByLabel(EcalUncalibratedRecHitCollection_, hits) ) {
00920
00921 int neh = hits->size();
00922 LogDebug("EBLaserTask") << "event " << ievt_ << " hits collection size " << neh;
00923
00924 for ( EcalUncalibratedRecHitCollection::const_iterator hitItr = hits->begin(); hitItr != hits->end(); ++hitItr ) {
00925
00926 EBDetId id = hitItr->id();
00927
00928 int ic = id.ic();
00929 int ie = (ic-1)/20 + 1;
00930 int ip = (ic-1)%20 + 1;
00931
00932 int ism = Numbers::iSM( id );
00933
00934 float xie = ie - 0.5;
00935 float xip = ip - 0.5;
00936
00937 if ( ! ( runType[ism-1] == EcalDCCHeaderBlock::LASER_STD ||
00938 runType[ism-1] == EcalDCCHeaderBlock::LASER_GAP ) ) continue;
00939
00940 if ( rtHalf[ism-1] != Numbers::RtHalf(id) ) continue;
00941
00942 LogDebug("EBLaserTask") << " det id = " << id;
00943 LogDebug("EBLaserTask") << " sm, ieta, iphi " << ism << " " << ie << " " << ip;
00944
00945 MonitorElement* meAmplMap = 0;
00946 MonitorElement* meTimeMap = 0;
00947 MonitorElement* meAmplPNMap = 0;
00948
00949 if ( rtHalf[ism-1] == 0 ) {
00950
00951 if ( waveLength[ism-1] == 0 ) {
00952 meAmplMap = meAmplMapL1A_[ism-1];
00953 meTimeMap = meTimeMapL1A_[ism-1];
00954 meAmplPNMap = meAmplPNMapL1A_[ism-1];
00955 }
00956 if ( waveLength[ism-1] == 1 ) {
00957 meAmplMap = meAmplMapL2A_[ism-1];
00958 meTimeMap = meTimeMapL2A_[ism-1];
00959 meAmplPNMap = meAmplPNMapL2A_[ism-1];
00960 }
00961 if ( waveLength[ism-1] == 2 ) {
00962 meAmplMap = meAmplMapL3A_[ism-1];
00963 meTimeMap = meTimeMapL3A_[ism-1];
00964 meAmplPNMap = meAmplPNMapL3A_[ism-1];
00965 }
00966 if ( waveLength[ism-1] == 3 ) {
00967 meAmplMap = meAmplMapL4A_[ism-1];
00968 meTimeMap = meTimeMapL4A_[ism-1];
00969 meAmplPNMap = meAmplPNMapL4A_[ism-1];
00970 }
00971
00972 } else if ( rtHalf[ism-1] == 1 ) {
00973
00974 if ( waveLength[ism-1] == 0 ) {
00975 meAmplMap = meAmplMapL1B_[ism-1];
00976 meTimeMap = meTimeMapL1B_[ism-1];
00977 meAmplPNMap = meAmplPNMapL1B_[ism-1];
00978 }
00979 if ( waveLength[ism-1] == 1 ) {
00980 meAmplMap = meAmplMapL2B_[ism-1];
00981 meTimeMap = meTimeMapL2B_[ism-1];
00982 meAmplPNMap = meAmplPNMapL2B_[ism-1];
00983 }
00984 if ( waveLength[ism-1] == 2 ) {
00985 meAmplMap = meAmplMapL3B_[ism-1];
00986 meTimeMap = meTimeMapL3B_[ism-1];
00987 meAmplPNMap = meAmplPNMapL3B_[ism-1];
00988 }
00989 if ( waveLength[ism-1] == 3 ) {
00990 meAmplMap = meAmplMapL4B_[ism-1];
00991 meTimeMap = meTimeMapL4B_[ism-1];
00992 meAmplPNMap = meAmplPNMapL4B_[ism-1];
00993 }
00994
00995 } else {
00996
00997 LogWarning("EBLaserTask") << " RtHalf = " << rtHalf[ism-1];
00998
00999 }
01000
01001 float xval = hitItr->amplitude();
01002 if ( xval <= 0. ) xval = 0.0;
01003 float yval = hitItr->jitter() + 5.0;
01004 if ( yval <= 0. ) yval = 0.0;
01005 float zval = hitItr->pedestal();
01006 if ( zval <= 0. ) zval = 0.0;
01007
01008 LogDebug("EBLaserTask") << " hit amplitude " << xval;
01009 LogDebug("EBLaserTask") << " hit jitter " << yval;
01010 LogDebug("EBLaserTask") << " hit pedestal " << zval;
01011
01012 if ( meAmplMap ) meAmplMap->Fill(xie, xip, xval);
01013
01014 if ( xval > 12. ) {
01015 if ( meTimeMap ) meTimeMap->Fill(xie, xip, yval);
01016 }
01017
01018 float wval = 0.;
01019
01020 if ( rtHalf[ism-1] == 0 ) {
01021
01022 if ( adcA[ism-1] != 0. ) wval = xval / adcA[ism-1];
01023
01024 } else if ( rtHalf[ism-1] == 1 ) {
01025
01026 if ( adcB[ism-1] != 0. ) wval = xval / adcB[ism-1];
01027
01028 } else {
01029
01030 LogWarning("EBLaserTask") << " RtHalf = " << rtHalf[ism-1];
01031
01032 }
01033
01034 LogDebug("EBLaserTask") << " hit amplitude over PN " << wval;
01035
01036 if ( meAmplPNMap ) meAmplPNMap->Fill(xie, xip, wval);
01037
01038 }
01039
01040 } else {
01041
01042 LogWarning("EBLaserTask") << EcalUncalibratedRecHitCollection_ << " not available";
01043
01044 }
01045
01046 }
01047