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/EEDetId.h"
00023 #include "DataFormats/EcalDigi/interface/EEDataFrame.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/EcalEndcapMonitorTasks/interface/EELaserTask.h>
00031
00032 using namespace cms;
00033 using namespace edm;
00034 using namespace std;
00035
00036 EELaserTask::EELaserTask(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 EEDigiCollection_ = ps.getParameter<edm::InputTag>("EEDigiCollection");
00050 EcalPnDiodeDigiCollection_ = ps.getParameter<edm::InputTag>("EcalPnDiodeDigiCollection");
00051 EcalUncalibratedRecHitCollection_ = ps.getParameter<edm::InputTag>("EcalUncalibratedRecHitCollection");
00052
00053 for (int i = 0; i < 18; 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 EELaserTask::~EELaserTask(){
00110
00111 }
00112
00113 void EELaserTask::beginJob(const EventSetup& c){
00114
00115 ievt_ = 0;
00116
00117 if ( dqmStore_ ) {
00118 dqmStore_->setCurrentFolder(prefixME_ + "/EELaserTask");
00119 dqmStore_->rmdir(prefixME_ + "/EELaserTask");
00120 }
00121
00122 Numbers::initGeometry(c, false);
00123
00124 }
00125
00126 void EELaserTask::beginRun(const Run& r, const EventSetup& c) {
00127
00128 if ( ! mergeRuns_ ) this->reset();
00129
00130 }
00131
00132 void EELaserTask::endRun(const Run& r, const EventSetup& c) {
00133
00134 }
00135
00136 void EELaserTask::reset(void) {
00137
00138 for (int i = 0; i < 18; 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 EELaserTask::setup(void){
00207
00208 init_ = true;
00209
00210 char histo[200];
00211
00212 if ( dqmStore_ ) {
00213 dqmStore_->setCurrentFolder(prefixME_ + "/EELaserTask");
00214
00215 dqmStore_->setCurrentFolder(prefixME_ + "/EELaserTask/Laser1");
00216 for (int i = 0; i < 18; i++) {
00217 sprintf(histo, "EELT shape %s L1A", Numbers::sEE(i+1).c_str());
00218 meShapeMapL1A_[i] = dqmStore_->bookProfile2D(histo, histo, 850, 0., 850., 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, "EELT amplitude %s L1A", Numbers::sEE(i+1).c_str());
00224 meAmplMapL1A_[i] = dqmStore_->bookProfile2D(histo, histo, 50, Numbers::ix0EE(i+1)+0., Numbers::ix0EE(i+1)+50., 50, Numbers::iy0EE(i+1)+0., Numbers::iy0EE(i+1)+50., 4096, 0., 4096.*12., "s");
00225 meAmplMapL1A_[i]->setAxisTitle("jx", 1);
00226 meAmplMapL1A_[i]->setAxisTitle("jy", 2);
00227 dqmStore_->tag(meAmplMapL1A_[i], i+1);
00228 sprintf(histo, "EELT timing %s L1A", Numbers::sEE(i+1).c_str());
00229 meTimeMapL1A_[i] = dqmStore_->bookProfile2D(histo, histo, 50, Numbers::ix0EE(i+1)+0., Numbers::ix0EE(i+1)+50., 50, Numbers::iy0EE(i+1)+0., Numbers::iy0EE(i+1)+50., 250, 0., 10., "s");
00230 meTimeMapL1A_[i]->setAxisTitle("jx", 1);
00231 meTimeMapL1A_[i]->setAxisTitle("jy", 2);
00232 dqmStore_->tag(meTimeMapL1A_[i], i+1);
00233 sprintf(histo, "EELT amplitude over PN %s L1A", Numbers::sEE(i+1).c_str());
00234 meAmplPNMapL1A_[i] = dqmStore_->bookProfile2D(histo, histo, 50, Numbers::ix0EE(i+1)+0., Numbers::ix0EE(i+1)+50., 50, Numbers::iy0EE(i+1)+0., Numbers::iy0EE(i+1)+50., 4096, 0., 4096.*12., "s");
00235 meAmplPNMapL1A_[i]->setAxisTitle("jx", 1);
00236 meAmplPNMapL1A_[i]->setAxisTitle("jy", 2);
00237 dqmStore_->tag(meAmplPNMapL1A_[i], i+1);
00238
00239 sprintf(histo, "EELT shape %s L1B", Numbers::sEE(i+1).c_str());
00240 meShapeMapL1B_[i] = dqmStore_->bookProfile2D(histo, histo, 850, 0., 850., 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, "EELT amplitude %s L1B", Numbers::sEE(i+1).c_str());
00246 meAmplMapL1B_[i] = dqmStore_->bookProfile2D(histo, histo, 50, Numbers::ix0EE(i+1)+0., Numbers::ix0EE(i+1)+50., 50, Numbers::iy0EE(i+1)+0., Numbers::iy0EE(i+1)+50., 4096, 0., 4096.*12., "s");
00247 meAmplMapL1B_[i]->setAxisTitle("jx", 1);
00248 meAmplMapL1B_[i]->setAxisTitle("jy", 2);
00249 dqmStore_->tag(meAmplMapL1B_[i], i+1);
00250 sprintf(histo, "EELT timing %s L1B", Numbers::sEE(i+1).c_str());
00251 meTimeMapL1B_[i] = dqmStore_->bookProfile2D(histo, histo, 50, Numbers::ix0EE(i+1)+0., Numbers::ix0EE(i+1)+50., 50, Numbers::iy0EE(i+1)+0., Numbers::iy0EE(i+1)+50., 250, 0., 10., "s");
00252 meTimeMapL1B_[i]->setAxisTitle("jx", 1);
00253 meTimeMapL1B_[i]->setAxisTitle("jy", 2);
00254 dqmStore_->tag(meTimeMapL1B_[i], i+1);
00255 sprintf(histo, "EELT amplitude over PN %s L1B", Numbers::sEE(i+1).c_str());
00256 meAmplPNMapL1B_[i] = dqmStore_->bookProfile2D(histo, histo, 50, Numbers::ix0EE(i+1)+0., Numbers::ix0EE(i+1)+50., 50, Numbers::iy0EE(i+1)+0., Numbers::iy0EE(i+1)+50., 4096, 0., 4096.*12., "s");
00257 meAmplPNMapL1B_[i]->setAxisTitle("jx", 1);
00258 meAmplPNMapL1B_[i]->setAxisTitle("jy", 2);
00259 dqmStore_->tag(meAmplPNMapL1B_[i], i+1);
00260 }
00261
00262 dqmStore_->setCurrentFolder(prefixME_ + "/EELaserTask/Laser2");
00263 for (int i = 0; i < 18; i++) {
00264 sprintf(histo, "EELT shape %s L2A", Numbers::sEE(i+1).c_str());
00265 meShapeMapL2A_[i] = dqmStore_->bookProfile2D(histo, histo, 850, 0., 850., 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, "EELT amplitude %s L2A", Numbers::sEE(i+1).c_str());
00271 meAmplMapL2A_[i] = dqmStore_->bookProfile2D(histo, histo, 50, Numbers::ix0EE(i+1)+0., Numbers::ix0EE(i+1)+50., 50, Numbers::iy0EE(i+1)+0., Numbers::iy0EE(i+1)+50., 4096, 0., 4096.*12., "s");
00272 meAmplMapL2A_[i]->setAxisTitle("jx", 1);
00273 meAmplMapL2A_[i]->setAxisTitle("jy", 2);
00274 dqmStore_->tag(meAmplMapL2A_[i], i+1);
00275 sprintf(histo, "EELT timing %s L2A", Numbers::sEE(i+1).c_str());
00276 meTimeMapL2A_[i] = dqmStore_->bookProfile2D(histo, histo, 50, Numbers::ix0EE(i+1)+0., Numbers::ix0EE(i+1)+50., 50, Numbers::iy0EE(i+1)+0., Numbers::iy0EE(i+1)+50., 250, 0., 10., "s");
00277 meTimeMapL2A_[i]->setAxisTitle("jx", 1);
00278 meTimeMapL2A_[i]->setAxisTitle("jy", 2);
00279 dqmStore_->tag(meTimeMapL2A_[i], i+1);
00280 sprintf(histo, "EELT amplitude over PN %s L2A", Numbers::sEE(i+1).c_str());
00281 meAmplPNMapL2A_[i] = dqmStore_->bookProfile2D(histo, histo, 50, Numbers::ix0EE(i+1)+0., Numbers::ix0EE(i+1)+50., 50, Numbers::iy0EE(i+1)+0., Numbers::iy0EE(i+1)+50., 4096, 0., 4096.*12., "s");
00282 meAmplPNMapL2A_[i]->setAxisTitle("jx", 1);
00283 meAmplPNMapL2A_[i]->setAxisTitle("jy", 2);
00284 dqmStore_->tag(meAmplPNMapL2A_[i], i+1);
00285
00286 sprintf(histo, "EELT shape %s L2B", Numbers::sEE(i+1).c_str());
00287 meShapeMapL2B_[i] = dqmStore_->bookProfile2D(histo, histo, 850, 0., 850., 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, "EELT amplitude %s L2B", Numbers::sEE(i+1).c_str());
00293 meAmplMapL2B_[i] = dqmStore_->bookProfile2D(histo, histo, 50, Numbers::ix0EE(i+1)+0., Numbers::ix0EE(i+1)+50., 50, Numbers::iy0EE(i+1)+0., Numbers::iy0EE(i+1)+50., 4096, 0., 4096.*12., "s");
00294 meAmplMapL2B_[i]->setAxisTitle("jx", 1);
00295 meAmplMapL2B_[i]->setAxisTitle("jy", 2);
00296 dqmStore_->tag(meAmplMapL2B_[i], i+1);
00297 sprintf(histo, "EELT timing %s L2B", Numbers::sEE(i+1).c_str());
00298 meTimeMapL2B_[i] = dqmStore_->bookProfile2D(histo, histo, 50, Numbers::ix0EE(i+1)+0., Numbers::ix0EE(i+1)+50., 50, Numbers::iy0EE(i+1)+0., Numbers::iy0EE(i+1)+50., 250, 0., 10., "s");
00299 meTimeMapL2B_[i]->setAxisTitle("jx", 1);
00300 meTimeMapL2B_[i]->setAxisTitle("jy", 2);
00301 dqmStore_->tag(meTimeMapL2B_[i], i+1);
00302 sprintf(histo, "EELT amplitude over PN %s L2B", Numbers::sEE(i+1).c_str());
00303 meAmplPNMapL2B_[i] = dqmStore_->bookProfile2D(histo, histo, 50, Numbers::ix0EE(i+1)+0., Numbers::ix0EE(i+1)+50., 50, Numbers::iy0EE(i+1)+0., Numbers::iy0EE(i+1)+50., 4096, 0., 4096.*12., "s");
00304 meAmplPNMapL2B_[i]->setAxisTitle("jx", 1);
00305 meAmplPNMapL2B_[i]->setAxisTitle("jy", 2);
00306 dqmStore_->tag(meAmplPNMapL2B_[i], i+1);
00307 }
00308
00309 dqmStore_->setCurrentFolder(prefixME_ + "/EELaserTask/Laser3");
00310 for (int i = 0; i < 18; i++) {
00311 sprintf(histo, "EELT shape %s L3A", Numbers::sEE(i+1).c_str());
00312 meShapeMapL3A_[i] = dqmStore_->bookProfile2D(histo, histo, 850, 0., 850., 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, "EELT amplitude %s L3A", Numbers::sEE(i+1).c_str());
00318 meAmplMapL3A_[i] = dqmStore_->bookProfile2D(histo, histo, 50, Numbers::ix0EE(i+1)+0., Numbers::ix0EE(i+1)+50., 50, Numbers::iy0EE(i+1)+0., Numbers::iy0EE(i+1)+50., 4096, 0., 4096.*12., "s");
00319 meAmplMapL3A_[i]->setAxisTitle("jx", 1);
00320 meAmplMapL3A_[i]->setAxisTitle("jy", 2);
00321 dqmStore_->tag(meAmplMapL3A_[i], i+1);
00322 sprintf(histo, "EELT timing %s L3A", Numbers::sEE(i+1).c_str());
00323 meTimeMapL3A_[i] = dqmStore_->bookProfile2D(histo, histo, 50, Numbers::ix0EE(i+1)+0., Numbers::ix0EE(i+1)+50., 50, Numbers::iy0EE(i+1)+0., Numbers::iy0EE(i+1)+50., 250, 0., 10., "s");
00324 meTimeMapL3A_[i]->setAxisTitle("jx", 1);
00325 meTimeMapL3A_[i]->setAxisTitle("jy", 2);
00326 dqmStore_->tag(meTimeMapL3A_[i], i+1);
00327 sprintf(histo, "EELT amplitude over PN %s L3A", Numbers::sEE(i+1).c_str());
00328 meAmplPNMapL3A_[i] = dqmStore_->bookProfile2D(histo, histo, 50, Numbers::ix0EE(i+1)+0., Numbers::ix0EE(i+1)+50., 50, Numbers::iy0EE(i+1)+0., Numbers::iy0EE(i+1)+50., 4096, 0., 4096.*12., "s");
00329 meAmplPNMapL3A_[i]->setAxisTitle("jx", 1);
00330 meAmplPNMapL3A_[i]->setAxisTitle("jy", 2);
00331 dqmStore_->tag(meAmplPNMapL3A_[i], i+1);
00332
00333 sprintf(histo, "EELT shape %s L3B", Numbers::sEE(i+1).c_str());
00334 meShapeMapL3B_[i] = dqmStore_->bookProfile2D(histo, histo, 850, 0., 850., 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, "EELT amplitude %s L3B", Numbers::sEE(i+1).c_str());
00340 meAmplMapL3B_[i] = dqmStore_->bookProfile2D(histo, histo, 50, Numbers::ix0EE(i+1)+0., Numbers::ix0EE(i+1)+50., 50, Numbers::iy0EE(i+1)+0., Numbers::iy0EE(i+1)+50., 4096, 0., 4096.*12., "s");
00341 meAmplMapL3B_[i]->setAxisTitle("jx", 1);
00342 meAmplMapL3B_[i]->setAxisTitle("jy", 2);
00343 dqmStore_->tag(meAmplMapL3B_[i], i+1);
00344 sprintf(histo, "EELT timing %s L3B", Numbers::sEE(i+1).c_str());
00345 meTimeMapL3B_[i] = dqmStore_->bookProfile2D(histo, histo, 50, Numbers::ix0EE(i+1)+0., Numbers::ix0EE(i+1)+50., 50, Numbers::iy0EE(i+1)+0., Numbers::iy0EE(i+1)+50., 250, 0., 10., "s");
00346 meTimeMapL3B_[i]->setAxisTitle("jx", 1);
00347 meTimeMapL3B_[i]->setAxisTitle("jy", 2);
00348 dqmStore_->tag(meTimeMapL3B_[i], i+1);
00349 sprintf(histo, "EELT amplitude over PN %s L3B", Numbers::sEE(i+1).c_str());
00350 meAmplPNMapL3B_[i] = dqmStore_->bookProfile2D(histo, histo, 50, Numbers::ix0EE(i+1)+0., Numbers::ix0EE(i+1)+50., 50, Numbers::iy0EE(i+1)+0., Numbers::iy0EE(i+1)+50., 4096, 0., 4096.*12., "s");
00351 meAmplPNMapL3B_[i]->setAxisTitle("jx", 1);
00352 meAmplPNMapL3B_[i]->setAxisTitle("jy", 2);
00353 dqmStore_->tag(meAmplPNMapL3B_[i], i+1);
00354 }
00355
00356 dqmStore_->setCurrentFolder(prefixME_ + "/EELaserTask/Laser4");
00357 for (int i = 0; i < 18; i++) {
00358 sprintf(histo, "EELT shape %s L4A", Numbers::sEE(i+1).c_str());
00359 meShapeMapL4A_[i] = dqmStore_->bookProfile2D(histo, histo, 850, 0., 850., 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, "EELT amplitude %s L4A", Numbers::sEE(i+1).c_str());
00365 meAmplMapL4A_[i] = dqmStore_->bookProfile2D(histo, histo, 50, Numbers::ix0EE(i+1)+0., Numbers::ix0EE(i+1)+50., 50, Numbers::iy0EE(i+1)+0., Numbers::iy0EE(i+1)+50., 4096, 0., 4096.*12., "s");
00366 meAmplMapL4A_[i]->setAxisTitle("jx", 1);
00367 meAmplMapL4A_[i]->setAxisTitle("jy", 2);
00368 dqmStore_->tag(meAmplMapL4A_[i], i+1);
00369 sprintf(histo, "EELT timing %s L4A", Numbers::sEE(i+1).c_str());
00370 meTimeMapL4A_[i] = dqmStore_->bookProfile2D(histo, histo, 50, Numbers::ix0EE(i+1)+0., Numbers::ix0EE(i+1)+50., 50, Numbers::iy0EE(i+1)+0., Numbers::iy0EE(i+1)+50., 250, 0., 10., "s");
00371 meTimeMapL4A_[i]->setAxisTitle("jx", 1);
00372 meTimeMapL4A_[i]->setAxisTitle("jy", 2);
00373 dqmStore_->tag(meTimeMapL4A_[i], i+1);
00374 sprintf(histo, "EELT amplitude over PN %s L4A", Numbers::sEE(i+1).c_str());
00375 meAmplPNMapL4A_[i] = dqmStore_->bookProfile2D(histo, histo, 50, Numbers::ix0EE(i+1)+0., Numbers::ix0EE(i+1)+50., 50, Numbers::iy0EE(i+1)+0., Numbers::iy0EE(i+1)+50., 4096, 0., 4096.*12., "s");
00376 meAmplPNMapL4A_[i]->setAxisTitle("jx", 1);
00377 meAmplPNMapL4A_[i]->setAxisTitle("jy", 2);
00378 dqmStore_->tag(meAmplPNMapL4A_[i], i+1);
00379
00380 sprintf(histo, "EELT shape %s L4B", Numbers::sEE(i+1).c_str());
00381 meShapeMapL4B_[i] = dqmStore_->bookProfile2D(histo, histo, 850, 0., 850., 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, "EELT amplitude %s L4B", Numbers::sEE(i+1).c_str());
00387 meAmplMapL4B_[i] = dqmStore_->bookProfile2D(histo, histo, 50, Numbers::ix0EE(i+1)+0., Numbers::ix0EE(i+1)+50., 50, Numbers::iy0EE(i+1)+0., Numbers::iy0EE(i+1)+50., 4096, 0., 4096.*12., "s");
00388 meAmplMapL4B_[i]->setAxisTitle("jx", 1);
00389 meAmplMapL4B_[i]->setAxisTitle("jy", 2);
00390 dqmStore_->tag(meAmplMapL4B_[i], i+1);
00391 sprintf(histo, "EELT timing %s L4B", Numbers::sEE(i+1).c_str());
00392 meTimeMapL4B_[i] = dqmStore_->bookProfile2D(histo, histo, 50, Numbers::ix0EE(i+1)+0., Numbers::ix0EE(i+1)+50., 50, Numbers::iy0EE(i+1)+0., Numbers::iy0EE(i+1)+50., 250, 0., 10., "s");
00393 meTimeMapL4B_[i]->setAxisTitle("jx", 1);
00394 meTimeMapL4B_[i]->setAxisTitle("jy", 2);
00395 dqmStore_->tag(meTimeMapL4B_[i], i+1);
00396 sprintf(histo, "EELT amplitude over PN %s L4B", Numbers::sEE(i+1).c_str());
00397 meAmplPNMapL4B_[i] = dqmStore_->bookProfile2D(histo, histo, 50, Numbers::ix0EE(i+1)+0., Numbers::ix0EE(i+1)+50., 50, Numbers::iy0EE(i+1)+0., Numbers::iy0EE(i+1)+50., 4096, 0., 4096.*12., "s");
00398 meAmplPNMapL4B_[i]->setAxisTitle("jx", 1);
00399 meAmplPNMapL4B_[i]->setAxisTitle("jy", 2);
00400 dqmStore_->tag(meAmplPNMapL4B_[i], i+1);
00401 }
00402
00403 dqmStore_->setCurrentFolder(prefixME_ + "/EELaserTask/Laser1/PN");
00404
00405 dqmStore_->setCurrentFolder(prefixME_ + "/EELaserTask/Laser1/PN/Gain01");
00406 for (int i = 0; i < 18; i++) {
00407 sprintf(histo, "EEPDT PNs amplitude %s G01 L1", Numbers::sEE(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, "EEPDT PNs pedestal %s G01 L1", Numbers::sEE(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_ + "/EELaserTask/Laser1/PN/Gain16");
00420 for (int i = 0; i < 18; i++) {
00421 sprintf(histo, "EEPDT PNs amplitude %s G16 L1", Numbers::sEE(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, "EEPDT PNs pedestal %s G16 L1", Numbers::sEE(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_ + "/EELaserTask/Laser2/PN");
00434
00435 dqmStore_->setCurrentFolder(prefixME_ + "/EELaserTask/Laser2/PN/Gain01");
00436 for (int i = 0; i < 18; i++) {
00437 sprintf(histo, "EEPDT PNs amplitude %s G01 L2", Numbers::sEE(i+1).c_str());
00438 mePnAmplMapG01L2_[i] = dqmStore_->bookProfile(histo, histo, 10, 0., 10., 4096, 0., 4096., "s");
00439 mePnAmplMapG01L2_[i]->setAxisTitle("amplitude", 2);
00440 mePnAmplMapG01L2_[i]->setAxisTitle("channel", 1);
00441 dqmStore_->tag(mePnAmplMapG01L2_[i], i+1);
00442 sprintf(histo, "EEPDT PNs pedestal %s G01 L2", Numbers::sEE(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_ + "/EELaserTask/Laser2/PN/Gain16");
00450 for (int i = 0; i < 18; i++) {
00451 sprintf(histo, "EEPDT PNs amplitude %s G16 L2", Numbers::sEE(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, "EEPDT PNs pedestal %s G16 L2", Numbers::sEE(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_ + "/EELaserTask/Laser3/PN");
00464
00465 dqmStore_->setCurrentFolder(prefixME_ + "/EELaserTask/Laser3/PN/Gain01");
00466 for (int i = 0; i < 18; i++) {
00467 sprintf(histo, "EEPDT PNs amplitude %s G01 L3", Numbers::sEE(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, "EEPDT PNs pedestal %s G01 L3", Numbers::sEE(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_ + "/EELaserTask/Laser3/PN/Gain16");
00480 for (int i = 0; i < 18; i++) {
00481 sprintf(histo, "EEPDT PNs amplitude %s G16 L3", Numbers::sEE(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, "EEPDT PNs pedestal %s G16 L3", Numbers::sEE(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_ + "/EELaserTask/Laser4/PN");
00494
00495 dqmStore_->setCurrentFolder(prefixME_ + "/EELaserTask/Laser4/PN/Gain01");
00496 for (int i = 0; i < 18; i++) {
00497 sprintf(histo, "EEPDT PNs amplitude %s G01 L4", Numbers::sEE(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, "EEPDT PNs pedestal %s G01 L4", Numbers::sEE(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_ + "/EELaserTask/Laser4/PN/Gain16");
00510 for (int i = 0; i < 18; i++) {
00511 sprintf(histo, "EEPDT PNs amplitude %s G16 L4", Numbers::sEE(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, "EEPDT PNs pedestal %s G16 L4", Numbers::sEE(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 EELaserTask::cleanup(void){
00528
00529 if ( ! init_ ) return;
00530
00531 if ( dqmStore_ ) {
00532 dqmStore_->setCurrentFolder(prefixME_ + "/EELaserTask");
00533
00534 dqmStore_->setCurrentFolder(prefixME_ + "/EELaserTask/Laser1");
00535 for (int i = 0; i < 18; 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_ + "/EELaserTask/Laser2");
00556 for (int i = 0; i < 18; 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_ + "/EELaserTask/Laser3");
00577 for (int i = 0; i < 18; 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_ + "/EELaserTask/Laser4");
00598 for (int i = 0; i < 18; 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_ + "/EELaserTask/Laser1/PN");
00619
00620 dqmStore_->setCurrentFolder(prefixME_ + "/EELaserTask/Laser1/PN/Gain01");
00621 for (int i = 0; i < 18; 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_ + "/EELaserTask/Laser1/PN/Gain16");
00629 for (int i = 0; i < 18; 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_ + "/EELaserTask/Laser2/PN");
00637
00638 dqmStore_->setCurrentFolder(prefixME_ + "/EELaserTask/Laser2/PN/Gain01");
00639 for (int i = 0; i < 18; 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_ + "/EELaserTask/Laser2/PN/Gain16");
00647 for (int i = 0; i < 18; 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_ + "/EELaserTask/Laser3/PN");
00655
00656 dqmStore_->setCurrentFolder(prefixME_ + "/EELaserTask/Laser3/PN/Gain01");
00657 for (int i = 0; i < 18; 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_ + "/EELaserTask/Laser3/PN/Gain16");
00665 for (int i = 0; i < 18; 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_ + "/EELaserTask/Laser4/PN");
00673
00674 dqmStore_->setCurrentFolder(prefixME_ + "/EELaserTask/Laser4/PN/Gain01");
00675 for (int i = 0; i < 18; 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_ + "/EELaserTask/Laser4/PN/Gain16");
00683 for (int i = 0; i < 18; 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 EELaserTask::endJob(void){
00697
00698 LogInfo("EELaserTask") << "analyzed " << ievt_ << " events";
00699
00700 if ( enableCleanup_ ) this->cleanup();
00701
00702 }
00703
00704 void EELaserTask::analyze(const Event& e, const EventSetup& c){
00705
00706 bool enable = false;
00707 int runType[18] = { -1 };
00708 int rtHalf[18] = { -1 };
00709 int waveLength[18] = { -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 ) != EcalEndcap ) continue;
00718
00719 int ism = Numbers::iSM( *dcchItr, EcalEndcap );
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("EELaserTask") << EcalRawDataCollection_ << " not available";
00733
00734 }
00735
00736 if ( ! enable ) return;
00737
00738 if ( ! init_ ) this->setup();
00739
00740 ievt_++;
00741
00742 Handle<EEDigiCollection> digis;
00743
00744 if ( e.getByLabel(EEDigiCollection_, digis) ) {
00745
00746 int need = digis->size();
00747 LogDebug("EELaserTask") << "event " << ievt_ << " digi collection size " << need;
00748
00749 for ( EEDigiCollection::const_iterator digiItr = digis->begin(); digiItr != digis->end(); ++digiItr ) {
00750
00751 EEDetId id = digiItr->id();
00752
00753 int ix = id.ix();
00754 int iy = id.iy();
00755
00756 int ism = Numbers::iSM( id );
00757
00758 if ( ! ( runType[ism-1] == EcalDCCHeaderBlock::LASER_STD ||
00759 runType[ism-1] == EcalDCCHeaderBlock::LASER_GAP ) ) continue;
00760
00761 if ( rtHalf[ism-1] != Numbers::RtHalf(id) ) continue;
00762
00763 LogDebug("EELaserTask") << " det id = " << id;
00764 LogDebug("EELaserTask") << " sm, ix, iy " << ism << " " << ix << " " << iy;
00765
00766 int ic = Numbers::icEE(ism, ix, iy);
00767
00768 EEDataFrame dataframe = (*digiItr);
00769
00770 for (int i = 0; i < 10; i++) {
00771
00772 int adc = dataframe.sample(i).adc();
00773 float gain = 1.;
00774
00775 MonitorElement* meShapeMap = 0;
00776
00777 if ( dataframe.sample(i).gainId() == 1 ) gain = 1./12.;
00778 if ( dataframe.sample(i).gainId() == 2 ) gain = 1./ 6.;
00779 if ( dataframe.sample(i).gainId() == 3 ) gain = 1./ 1.;
00780
00781 if ( rtHalf[ism-1] == 0 ) {
00782
00783 if ( waveLength[ism-1] == 0 ) meShapeMap = meShapeMapL1A_[ism-1];
00784 if ( waveLength[ism-1] == 1 ) meShapeMap = meShapeMapL2A_[ism-1];
00785 if ( waveLength[ism-1] == 2 ) meShapeMap = meShapeMapL3A_[ism-1];
00786 if ( waveLength[ism-1] == 3 ) meShapeMap = meShapeMapL4A_[ism-1];
00787
00788 } else if ( rtHalf[ism-1] == 1 ) {
00789
00790 if ( waveLength[ism-1] == 0 ) meShapeMap = meShapeMapL1B_[ism-1];
00791 if ( waveLength[ism-1] == 1 ) meShapeMap = meShapeMapL2B_[ism-1];
00792 if ( waveLength[ism-1] == 2 ) meShapeMap = meShapeMapL3B_[ism-1];
00793 if ( waveLength[ism-1] == 3 ) meShapeMap = meShapeMapL4B_[ism-1];
00794
00795 } else {
00796
00797 LogWarning("EELaserTask") << " RtHalf = " << rtHalf[ism-1];
00798
00799 }
00800
00801
00802 float xval = float(adc);
00803
00804 if ( meShapeMap ) meShapeMap->Fill(ic - 0.5, i + 0.5, xval);
00805
00806 }
00807
00808 }
00809
00810 } else {
00811
00812 LogWarning("EELaserTask") << EEDigiCollection_ << " not available";
00813
00814 }
00815
00816 float adcA[18];
00817 float adcB[18];
00818
00819 for ( int i = 0; i < 18; i++ ) {
00820 adcA[i] = 0.;
00821 adcB[i] = 0.;
00822 }
00823
00824 Handle<EcalPnDiodeDigiCollection> pns;
00825
00826 if ( e.getByLabel(EcalPnDiodeDigiCollection_, pns) ) {
00827
00828 int nep = pns->size();
00829 LogDebug("EELaserTask") << "event " << ievt_ << " pns collection size " << nep;
00830
00831 for ( EcalPnDiodeDigiCollection::const_iterator pnItr = pns->begin(); pnItr != pns->end(); ++pnItr ) {
00832
00833 if ( Numbers::subDet( pnItr->id() ) != EcalEndcap ) continue;
00834
00835 int ism = Numbers::iSM( pnItr->id() );
00836
00837 int num = pnItr->id().iPnId();
00838
00839 if ( ! ( runType[ism-1] == EcalDCCHeaderBlock::LASER_STD ||
00840 runType[ism-1] == EcalDCCHeaderBlock::LASER_GAP ) ) continue;
00841
00842 LogDebug("EELaserTask") << " det id = " << pnItr->id();
00843 LogDebug("EELaserTask") << " sm, num " << ism << " " << num;
00844
00845 float xvalped = 0.;
00846
00847 for (int i = 0; i < 4; i++) {
00848
00849 int adc = pnItr->sample(i).adc();
00850
00851 MonitorElement* mePNPed = 0;
00852
00853 if ( pnItr->sample(i).gainId() == 0 ) {
00854 if ( waveLength[ism-1] == 0 ) mePNPed = mePnPedMapG01L1_[ism-1];
00855 if ( waveLength[ism-1] == 1 ) mePNPed = mePnPedMapG01L2_[ism-1];
00856 if ( waveLength[ism-1] == 2 ) mePNPed = mePnPedMapG01L3_[ism-1];
00857 if ( waveLength[ism-1] == 3 ) mePNPed = mePnPedMapG01L4_[ism-1];
00858 }
00859 if ( pnItr->sample(i).gainId() == 1 ) {
00860 if ( waveLength[ism-1] == 0 ) mePNPed = mePnPedMapG16L1_[ism-1];
00861 if ( waveLength[ism-1] == 1 ) mePNPed = mePnPedMapG16L2_[ism-1];
00862 if ( waveLength[ism-1] == 2 ) mePNPed = mePnPedMapG16L3_[ism-1];
00863 if ( waveLength[ism-1] == 3 ) mePNPed = mePnPedMapG16L4_[ism-1];
00864 }
00865
00866 float xval = float(adc);
00867
00868 if ( mePNPed ) mePNPed->Fill(num - 0.5, xval);
00869
00870 xvalped = xvalped + xval;
00871
00872 }
00873
00874 xvalped = xvalped / 4;
00875
00876 float xvalmax = 0.;
00877
00878 MonitorElement* mePN = 0;
00879
00880 for (int i = 0; i < 50; i++) {
00881
00882 int adc = pnItr->sample(i).adc();
00883
00884 float xval = float(adc);
00885
00886 if ( xval >= xvalmax ) xvalmax = xval;
00887
00888 }
00889
00890 xvalmax = xvalmax - xvalped;
00891
00892 if ( pnItr->sample(0).gainId() == 0 ) {
00893 if ( waveLength[ism-1] == 0 ) mePN = mePnAmplMapG01L1_[ism-1];
00894 if ( waveLength[ism-1] == 1 ) mePN = mePnAmplMapG01L2_[ism-1];
00895 if ( waveLength[ism-1] == 2 ) mePN = mePnAmplMapG01L3_[ism-1];
00896 if ( waveLength[ism-1] == 3 ) mePN = mePnAmplMapG01L4_[ism-1];
00897 }
00898 if ( pnItr->sample(0).gainId() == 1 ) {
00899 if ( waveLength[ism-1] == 0 ) mePN = mePnAmplMapG16L1_[ism-1];
00900 if ( waveLength[ism-1] == 1 ) mePN = mePnAmplMapG16L2_[ism-1];
00901 if ( waveLength[ism-1] == 2 ) mePN = mePnAmplMapG16L3_[ism-1];
00902 if ( waveLength[ism-1] == 3 ) mePN = mePnAmplMapG16L4_[ism-1];
00903 }
00904
00905 if ( mePN ) mePN->Fill(num - 0.5, xvalmax);
00906
00907 if ( num == 1 ) adcA[ism-1] = xvalmax;
00908 if ( num == 6 ) adcB[ism-1] = xvalmax;
00909
00910 }
00911
00912 } else {
00913
00914 LogWarning("EELaserTask") << EcalPnDiodeDigiCollection_ << " not available";
00915
00916 }
00917
00918 Handle<EcalUncalibratedRecHitCollection> hits;
00919
00920 if ( e.getByLabel(EcalUncalibratedRecHitCollection_, hits) ) {
00921
00922 int neh = hits->size();
00923 LogDebug("EELaserTask") << "event " << ievt_ << " hits collection size " << neh;
00924
00925 for ( EcalUncalibratedRecHitCollection::const_iterator hitItr = hits->begin(); hitItr != hits->end(); ++hitItr ) {
00926
00927 EEDetId id = hitItr->id();
00928
00929 int ix = id.ix();
00930 int iy = id.iy();
00931
00932 int ism = Numbers::iSM( id );
00933
00934 if ( ism >= 1 && ism <= 9 ) ix = 101 - ix;
00935
00936 float xix = ix - 0.5;
00937 float xiy = iy - 0.5;
00938
00939 if ( ! ( runType[ism-1] == EcalDCCHeaderBlock::LASER_STD ||
00940 runType[ism-1] == EcalDCCHeaderBlock::LASER_GAP ) ) continue;
00941
00942 if ( rtHalf[ism-1] != Numbers::RtHalf(id) ) continue;
00943
00944 LogDebug("EELaserTask") << " det id = " << id;
00945 LogDebug("EELaserTask") << " sm, ix, iy " << ism << " " << ix << " " << iy;
00946
00947 MonitorElement* meAmplMap = 0;
00948 MonitorElement* meTimeMap = 0;
00949 MonitorElement* meAmplPNMap = 0;
00950
00951 if ( rtHalf[ism-1] == 0 ) {
00952
00953 if ( waveLength[ism-1] == 0 ) {
00954 meAmplMap = meAmplMapL1A_[ism-1];
00955 meTimeMap = meTimeMapL1A_[ism-1];
00956 meAmplPNMap = meAmplPNMapL1A_[ism-1];
00957 }
00958 if ( waveLength[ism-1] == 1 ) {
00959 meAmplMap = meAmplMapL2A_[ism-1];
00960 meTimeMap = meTimeMapL2A_[ism-1];
00961 meAmplPNMap = meAmplPNMapL2A_[ism-1];
00962 }
00963 if ( waveLength[ism-1] == 2 ) {
00964 meAmplMap = meAmplMapL3A_[ism-1];
00965 meTimeMap = meTimeMapL3A_[ism-1];
00966 meAmplPNMap = meAmplPNMapL3A_[ism-1];
00967 }
00968 if ( waveLength[ism-1] == 3 ) {
00969 meAmplMap = meAmplMapL4A_[ism-1];
00970 meTimeMap = meTimeMapL4A_[ism-1];
00971 meAmplPNMap = meAmplPNMapL4A_[ism-1];
00972 }
00973
00974 } else if ( rtHalf[ism-1] == 1 ) {
00975
00976 if ( waveLength[ism-1] == 0 ) {
00977 meAmplMap = meAmplMapL1B_[ism-1];
00978 meTimeMap = meTimeMapL1B_[ism-1];
00979 meAmplPNMap = meAmplPNMapL1B_[ism-1];
00980 }
00981 if ( waveLength[ism-1] == 1 ) {
00982 meAmplMap = meAmplMapL2B_[ism-1];
00983 meTimeMap = meTimeMapL2B_[ism-1];
00984 meAmplPNMap = meAmplPNMapL2B_[ism-1];
00985 }
00986 if ( waveLength[ism-1] == 2 ) {
00987 meAmplMap = meAmplMapL3B_[ism-1];
00988 meTimeMap = meTimeMapL3B_[ism-1];
00989 meAmplPNMap = meAmplPNMapL3B_[ism-1];
00990 }
00991 if ( waveLength[ism-1] == 3 ) {
00992 meAmplMap = meAmplMapL4B_[ism-1];
00993 meTimeMap = meTimeMapL4B_[ism-1];
00994 meAmplPNMap = meAmplPNMapL4B_[ism-1];
00995 }
00996
00997 } else {
00998
00999 LogWarning("EELaserTask") << " RtHalf = " << rtHalf[ism-1];
01000
01001 }
01002
01003 float xval = hitItr->amplitude();
01004 if ( xval <= 0. ) xval = 0.0;
01005 float yval = hitItr->jitter() + 5.0;
01006 if ( yval <= 0. ) yval = 0.0;
01007 float zval = hitItr->pedestal();
01008 if ( zval <= 0. ) zval = 0.0;
01009
01010 LogDebug("EELaserTask") << " hit amplitude " << xval;
01011 LogDebug("EELaserTask") << " hit jitter " << yval;
01012 LogDebug("EELaserTask") << " hit pedestal " << zval;
01013
01014 if ( meAmplMap ) meAmplMap->Fill(xix, xiy, xval);
01015
01016 if ( xval > 16. ) {
01017 if ( meTimeMap ) meTimeMap->Fill(xix, xiy, yval);
01018 }
01019
01020 float wval = 0.;
01021
01022 if ( rtHalf[ism-1] == 0 ) {
01023
01024 if ( adcA[ism-1] != 0. ) wval = xval / adcA[ism-1];
01025
01026 } else if ( rtHalf[ism-1] == 1 ) {
01027
01028 if ( adcB[ism-1] != 0. ) wval = xval / adcB[ism-1];
01029
01030 } else {
01031
01032 LogWarning("EELaserTask") << " RtHalf = " << rtHalf[ism-1];
01033
01034 }
01035
01036 LogDebug("EELaserTask") << " hit amplitude over PN " << wval;
01037
01038 if ( meAmplPNMap ) meAmplPNMap->Fill(xix, xiy, wval);
01039
01040 }
01041
01042 } else {
01043
01044 LogWarning("EELaserTask") << EcalUncalibratedRecHitCollection_ << " not available";
01045
01046 }
01047
01048 }
01049