CMS 3D CMS Logo

EBLaserTask.cc

Go to the documentation of this file.
00001 /*
00002  * \file EBLaserTask.cc
00003  *
00004  * $Date: 2008/12/04 06:22:48 $
00005  * $Revision: 1.121 $
00006  * \author G. Della Ricca
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 //        float xval = float(adc) * gain;
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 

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