CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
EBLaserTask.cc
Go to the documentation of this file.
1 /*
2  * \file EBLaserTask.cc
3  *
4  * \author G. Della Ricca
5  *
6 */
7 
8 #include <iostream>
9 #include <fstream>
10 #include <vector>
11 #include <algorithm>
12 
15 
17 
19 
22 
24 
26 
28 
29  init_ = false;
30 
32 
33  prefixME_ = ps.getUntrackedParameter<std::string>("prefixME", "");
34 
35  enableCleanup_ = ps.getUntrackedParameter<bool>("enableCleanup", false);
36 
37  mergeRuns_ = ps.getUntrackedParameter<bool>("mergeRuns", false);
38 
39  EcalRawDataCollection_ = consumes<EcalRawDataCollection>(ps.getParameter<edm::InputTag>("EcalRawDataCollection"));
40  EBDigiCollection_ = consumes<EBDigiCollection>(ps.getParameter<edm::InputTag>("EBDigiCollection"));
41  EcalPnDiodeDigiCollection_ = consumes<EcalPnDiodeDigiCollection>(ps.getParameter<edm::InputTag>("EcalPnDiodeDigiCollection"));
42  EcalUncalibratedRecHitCollection_ = consumes<EcalUncalibratedRecHitCollection>(ps.getParameter<edm::InputTag>("EcalUncalibratedRecHitCollection"));
43 
44  // vector of enabled wavelengths (Default to all 4)
45  laserWavelengths_.reserve(4);
46  for ( unsigned int i = 1; i <= 4; i++ ) laserWavelengths_.push_back(i);
47  laserWavelengths_ = ps.getUntrackedParameter<std::vector<int> >("laserWavelengths", laserWavelengths_);
48 
49  for (int i = 0; i < 36; i++) {
50  meShapeMapL1_[i] = 0;
51  meAmplMapL1_[i] = 0;
52  meTimeMapL1_[i] = 0;
53  meAmplPNMapL1_[i] = 0;
54  mePnAmplMapG01L1_[i] = 0;
55  mePnPedMapG01L1_[i] = 0;
56  mePnAmplMapG16L1_[i] = 0;
57  mePnPedMapG16L1_[i] = 0;
58 
59  meShapeMapL2_[i] = 0;
60  meAmplMapL2_[i] = 0;
61  meTimeMapL2_[i] = 0;
62  meAmplPNMapL2_[i] = 0;
63  mePnAmplMapG01L2_[i] = 0;
64  mePnPedMapG01L2_[i] = 0;
65  mePnAmplMapG16L2_[i] = 0;
66  mePnPedMapG16L2_[i] = 0;
67 
68  meShapeMapL3_[i] = 0;
69  meAmplMapL3_[i] = 0;
70  meTimeMapL3_[i] = 0;
71  meAmplPNMapL3_[i] = 0;
72  mePnAmplMapG01L3_[i] = 0;
73  mePnPedMapG01L3_[i] = 0;
74  mePnAmplMapG16L3_[i] = 0;
75  mePnPedMapG16L3_[i] = 0;
76 
77  meShapeMapL4_[i] = 0;
78  meAmplMapL4_[i] = 0;
79  meTimeMapL4_[i] = 0;
80  meAmplPNMapL4_[i] = 0;
81  mePnAmplMapG01L4_[i] = 0;
82  mePnPedMapG01L4_[i] = 0;
83  mePnAmplMapG16L4_[i] = 0;
84  mePnPedMapG16L4_[i] = 0;
85  }
86 
91 
92 }
93 
95 
96 }
97 
99 
100  ievt_ = 0;
101 
102  if ( dqmStore_ ) {
103  dqmStore_->setCurrentFolder(prefixME_ + "/EBLaserTask");
104  dqmStore_->rmdir(prefixME_ + "/EBLaserTask");
105  }
106 
107 }
108 
110 
111  Numbers::initGeometry(c, false);
112 
113  if ( ! mergeRuns_ ) this->reset();
114 
115 }
116 
118 
119 }
120 
121 void EBLaserTask::reset(void) {
122 
123  for (int i = 0; i < 36; i++) {
124  if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 1) != laserWavelengths_.end() ) {
125  if ( meShapeMapL1_[i] ) meShapeMapL1_[i]->Reset();
126  if ( meAmplMapL1_[i] ) meAmplMapL1_[i]->Reset();
127  if ( meTimeMapL1_[i] ) meTimeMapL1_[i]->Reset();
128  if ( meAmplPNMapL1_[i] ) meAmplPNMapL1_[i]->Reset();
129  }
130 
131  if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 2) != laserWavelengths_.end() ) {
132  if ( meShapeMapL2_[i] ) meShapeMapL2_[i]->Reset();
133  if ( meAmplMapL2_[i] ) meAmplMapL2_[i]->Reset();
134  if ( meTimeMapL2_[i] ) meTimeMapL2_[i]->Reset();
135  if ( meAmplPNMapL2_[i] ) meAmplPNMapL2_[i]->Reset();
136  }
137 
138  if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 3) != laserWavelengths_.end() ) {
139  if ( meShapeMapL3_[i] ) meShapeMapL3_[i]->Reset();
140  if ( meAmplMapL3_[i] ) meAmplMapL3_[i]->Reset();
141  if ( meTimeMapL3_[i] ) meTimeMapL3_[i]->Reset();
142  if ( meAmplPNMapL3_[i] ) meAmplPNMapL3_[i]->Reset();
143  }
144 
145  if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 4) != laserWavelengths_.end() ) {
146  if ( meShapeMapL4_[i] ) meShapeMapL4_[i]->Reset();
147  if ( meAmplMapL4_[i] ) meAmplMapL4_[i]->Reset();
148  if ( meTimeMapL4_[i] ) meTimeMapL4_[i]->Reset();
149  if ( meAmplPNMapL4_[i] ) meAmplPNMapL4_[i]->Reset();
150  }
151 
152  if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 1) != laserWavelengths_.end() ) {
155 
158  }
159 
160  if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 2) != laserWavelengths_.end() ) {
163 
166  }
167 
168  if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 3) != laserWavelengths_.end() ) {
171 
174  }
175 
176  if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 4) != laserWavelengths_.end() ) {
179 
182  }
183  }
184 
189 
190 }
191 
193 
194  init_ = true;
195 
197  std::stringstream LaserN, LN;
198 
199  if ( dqmStore_ ) {
200  dqmStore_->setCurrentFolder(prefixME_ + "/EBLaserTask");
201 
202  if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 1) != laserWavelengths_.end() ) {
203 
204  LaserN.str("");
205  LaserN << "Laser" << 1;
206  LN.str("");
207  LN << "L" << 1;
208 
209  dqmStore_->setCurrentFolder(prefixME_ + "/EBLaserTask/" + LaserN.str());
210  for (int i = 0; i < 36; i++) {
211  name = "EBLT shape " + Numbers::sEB(i+1) + " " + LN.str();
212  meShapeMapL1_[i] = dqmStore_->bookProfile2D(name, name, 1700, 0., 1700., 10, 0., 10., 4096, 0., 4096., "s");
213  meShapeMapL1_[i]->setAxisTitle("channel", 1);
214  meShapeMapL1_[i]->setAxisTitle("sample", 2);
215  meShapeMapL1_[i]->setAxisTitle("amplitude", 3);
216  dqmStore_->tag(meShapeMapL1_[i], i+1);
217  name = "EBLT amplitude " + Numbers::sEB(i+1) + " " + LN.str();
218  meAmplMapL1_[i] = dqmStore_->bookProfile2D(name, name, 85, 0., 85., 20, 0., 20., 4096, 0., 4096.*12., "s");
219  meAmplMapL1_[i]->setAxisTitle("ieta", 1);
220  meAmplMapL1_[i]->setAxisTitle("iphi", 2);
221  dqmStore_->tag(meAmplMapL1_[i], i+1);
222  name = "EBLT timing " + Numbers::sEB(i+1) + " " + LN.str();
223  meTimeMapL1_[i] = dqmStore_->bookProfile2D(name, name, 85, 0., 85., 20, 0., 20., 250, 0., 10., "s");
224  meTimeMapL1_[i]->setAxisTitle("ieta", 1);
225  meTimeMapL1_[i]->setAxisTitle("iphi", 2);
226  dqmStore_->tag(meTimeMapL1_[i], i+1);
227  name = "EBLT amplitude over PN " + Numbers::sEB(i+1) + " " + LN.str();
228  meAmplPNMapL1_[i] = dqmStore_->bookProfile2D(name, name, 85, 0., 85., 20, 0., 20., 4096, 0., 4096.*12., "s");
229  meAmplPNMapL1_[i]->setAxisTitle("ieta", 1);
230  meAmplPNMapL1_[i]->setAxisTitle("iphi", 2);
231  dqmStore_->tag(meAmplPNMapL1_[i], i+1);
232  }
233 
234  name = "EBLT amplitude map " + LN.str();
235  meAmplSummaryMapL1_ = dqmStore_->bookProfile2D(name, name, 72, 0., 360., 34, -85., 85., 0., 4096.);
236  meAmplSummaryMapL1_->setAxisTitle("jphi", 1);
237  meAmplSummaryMapL1_->setAxisTitle("jeta", 2);
238 
239  dqmStore_->setCurrentFolder(prefixME_ + "/EBLaserTask/" + LaserN.str() + "/PN");
240 
241  dqmStore_->setCurrentFolder(prefixME_ + "/EBLaserTask/" + LaserN.str() + "/PN/Gain01");
242  for (int i = 0; i < 36; i++) {
243  name = "EBLT PNs amplitude " + Numbers::sEB(i+1) + " G01 " + LN.str();
244  mePnAmplMapG01L1_[i] = dqmStore_->bookProfile(name, name, 10, 0., 10., 4096, 0., 4096., "s");
245  mePnAmplMapG01L1_[i]->setAxisTitle("channel", 1);
246  mePnAmplMapG01L1_[i]->setAxisTitle("amplitude", 2);
248 
249  name = "EBLT PNs pedestal " + Numbers::sEB(i+1) + " G01 " + LN.str();
250  mePnPedMapG01L1_[i] = dqmStore_->bookProfile(name, name, 10, 0., 10., 4096, 0., 4096., "s");
251  mePnPedMapG01L1_[i]->setAxisTitle("channel", 1);
252  mePnPedMapG01L1_[i]->setAxisTitle("pedestal", 2);
253  dqmStore_->tag(mePnPedMapG01L1_[i], i+1);
254  }
255 
256  dqmStore_->setCurrentFolder(prefixME_ + "/EBLaserTask/" + LaserN.str() + "/PN/Gain16");
257  for (int i = 0; i < 36; i++) {
258  name = "EBLT PNs amplitude " + Numbers::sEB(i+1) + " G16 " + LN.str(),
259  mePnAmplMapG16L1_[i] = dqmStore_->bookProfile(name, name, 10, 0., 10., 4096, 0., 4096., "s");
260  mePnAmplMapG16L1_[i]->setAxisTitle("channel", 1);
261  mePnAmplMapG16L1_[i]->setAxisTitle("amplitude", 2);
263 
264  name = "EBLT PNs pedestal " + Numbers::sEB(i+1) + " G16 " + LN.str();
265  mePnPedMapG16L1_[i] = dqmStore_->bookProfile(name, name, 10, 0., 10., 4096, 0., 4096., "s");
266  mePnPedMapG16L1_[i]->setAxisTitle("channel", 1);
267  mePnPedMapG16L1_[i]->setAxisTitle("pedestal", 2);
268  dqmStore_->tag(mePnPedMapG16L1_[i], i+1);
269  }
270 
271 
272  }
273 
274  if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 2) != laserWavelengths_.end() ) {
275 
276  LaserN.str("");
277  LaserN << "Laser" << 2;
278  LN.str("");
279  LN << "L" << 2;
280 
281  dqmStore_->setCurrentFolder(prefixME_ + "/EBLaserTask/" + LaserN.str());
282  for (int i = 0; i < 36; i++) {
283  name = "EBLT shape " + Numbers::sEB(i+1) + " " + LN.str();
284  meShapeMapL2_[i] = dqmStore_->bookProfile2D(name, name, 1700, 0., 1700., 10, 0., 10., 4096, 0., 4096., "s");
285  meShapeMapL2_[i]->setAxisTitle("channel", 1);
286  meShapeMapL2_[i]->setAxisTitle("sample", 2);
287  meShapeMapL2_[i]->setAxisTitle("amplitude", 3);
288  dqmStore_->tag(meShapeMapL2_[i], i+1);
289  name = "EBLT amplitude " + Numbers::sEB(i+1) + " " + LN.str();
290  meAmplMapL2_[i] = dqmStore_->bookProfile2D(name, name, 85, 0., 85., 20, 0., 20., 4096, 0., 4096.*12., "s");
291  meAmplMapL2_[i]->setAxisTitle("ieta", 1);
292  meAmplMapL2_[i]->setAxisTitle("iphi", 2);
293  dqmStore_->tag(meAmplMapL2_[i], i+1);
294  name = "EBLT timing " + Numbers::sEB(i+1) + " " + LN.str();
295  meTimeMapL2_[i] = dqmStore_->bookProfile2D(name, name, 85, 0., 85., 20, 0., 20., 250, 0., 10., "s");
296  meTimeMapL2_[i]->setAxisTitle("ieta", 1);
297  meTimeMapL2_[i]->setAxisTitle("iphi", 2);
298  dqmStore_->tag(meTimeMapL2_[i], i+1);
299  name = "EBLT amplitude over PN " + Numbers::sEB(i+1) + " " + LN.str();
300  meAmplPNMapL2_[i] = dqmStore_->bookProfile2D(name, name, 85, 0., 85., 20, 0., 20., 4096, 0., 4096.*12., "s");
301  meAmplPNMapL2_[i]->setAxisTitle("ieta", 1);
302  meAmplPNMapL2_[i]->setAxisTitle("iphi", 2);
303  dqmStore_->tag(meAmplPNMapL2_[i], i+1);
304  }
305 
306  name = "EBLT amplitude map " + LN.str();
307  meAmplSummaryMapL2_ = dqmStore_->bookProfile2D(name, name, 72, 0., 360., 34, -85., 85., 0., 4096.);
308  meAmplSummaryMapL2_->setAxisTitle("jphi", 1);
309  meAmplSummaryMapL2_->setAxisTitle("jeta", 2);
310 
311  dqmStore_->setCurrentFolder(prefixME_ + "/EBLaserTask/" + LaserN.str() + "/PN");
312 
313  dqmStore_->setCurrentFolder(prefixME_ + "/EBLaserTask/" + LaserN.str() + "/PN/Gain01");
314  for (int i = 0; i < 36; i++) {
315  name = "EBLT PNs amplitude " + Numbers::sEB(i+1) + " G01 " + LN.str();
316  mePnAmplMapG01L2_[i] = dqmStore_->bookProfile(name, name, 10, 0., 10., 4096, 0., 4096., "s");
317  mePnAmplMapG01L2_[i]->setAxisTitle("channel", 1);
318  mePnAmplMapG01L2_[i]->setAxisTitle("amplitude", 2);
320 
321  name = "EBLT PNs pedestal " + Numbers::sEB(i+1) + " G01 " + LN.str();
322  mePnPedMapG01L2_[i] = dqmStore_->bookProfile(name, name, 10, 0., 10., 4096, 0., 4096., "s");
323  mePnPedMapG01L2_[i]->setAxisTitle("channel", 1);
324  mePnPedMapG01L2_[i]->setAxisTitle("pedestal", 2);
325  dqmStore_->tag(mePnPedMapG01L2_[i], i+1);
326  }
327 
328  dqmStore_->setCurrentFolder(prefixME_ + "/EBLaserTask/" + LaserN.str() + "/PN/Gain16");
329  for (int i = 0; i < 36; i++) {
330  name = "EBLT PNs amplitude " + Numbers::sEB(i+1) + " G16 " + LN.str(),
331  mePnAmplMapG16L2_[i] = dqmStore_->bookProfile(name, name, 10, 0., 10., 4096, 0., 4096., "s");
332  mePnAmplMapG16L2_[i]->setAxisTitle("channel", 1);
333  mePnAmplMapG16L2_[i]->setAxisTitle("amplitude", 2);
335 
336  name = "EBLT PNs pedestal " + Numbers::sEB(i+1) + " G16 " + LN.str();
337  mePnPedMapG16L2_[i] = dqmStore_->bookProfile(name, name, 10, 0., 10., 4096, 0., 4096., "s");
338  mePnPedMapG16L2_[i]->setAxisTitle("channel", 1);
339  mePnPedMapG16L2_[i]->setAxisTitle("pedestal", 2);
340  dqmStore_->tag(mePnPedMapG16L2_[i], i+1);
341  }
342 
343 
344  }
345 
346  if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 3) != laserWavelengths_.end() ) {
347 
348  LaserN.str("");
349  LaserN << "Laser" << 3;
350  LN.str("");
351  LN << "L" << 3;
352 
353  dqmStore_->setCurrentFolder(prefixME_ + "/EBLaserTask/" + LaserN.str());
354  for (int i = 0; i < 36; i++) {
355  name = "EBLT shape " + Numbers::sEB(i+1) + " " + LN.str();
356  meShapeMapL3_[i] = dqmStore_->bookProfile2D(name, name, 1700, 0., 1700., 10, 0., 10., 4096, 0., 4096., "s");
357  meShapeMapL3_[i]->setAxisTitle("channel", 1);
358  meShapeMapL3_[i]->setAxisTitle("sample", 2);
359  meShapeMapL3_[i]->setAxisTitle("amplitude", 3);
360  dqmStore_->tag(meShapeMapL3_[i], i+1);
361  name = "EBLT amplitude " + Numbers::sEB(i+1) + " " + LN.str();
362  meAmplMapL3_[i] = dqmStore_->bookProfile2D(name, name, 85, 0., 85., 20, 0., 20., 4096, 0., 4096.*12., "s");
363  meAmplMapL3_[i]->setAxisTitle("ieta", 1);
364  meAmplMapL3_[i]->setAxisTitle("iphi", 2);
365  dqmStore_->tag(meAmplMapL3_[i], i+1);
366  name = "EBLT timing " + Numbers::sEB(i+1) + " " + LN.str();
367  meTimeMapL3_[i] = dqmStore_->bookProfile2D(name, name, 85, 0., 85., 20, 0., 20., 250, 0., 10., "s");
368  meTimeMapL3_[i]->setAxisTitle("ieta", 1);
369  meTimeMapL3_[i]->setAxisTitle("iphi", 2);
370  dqmStore_->tag(meTimeMapL3_[i], i+1);
371  name = "EBLT amplitude over PN " + Numbers::sEB(i+1) + " " + LN.str();
372  meAmplPNMapL3_[i] = dqmStore_->bookProfile2D(name, name, 85, 0., 85., 20, 0., 20., 4096, 0., 4096.*12., "s");
373  meAmplPNMapL3_[i]->setAxisTitle("ieta", 1);
374  meAmplPNMapL3_[i]->setAxisTitle("iphi", 2);
375  dqmStore_->tag(meAmplPNMapL3_[i], i+1);
376  }
377 
378  name = "EBLT amplitude map " + LN.str();
379  meAmplSummaryMapL3_ = dqmStore_->bookProfile2D(name, name, 72, 0., 360., 34, -85., 85., 0., 4096.);
380  meAmplSummaryMapL3_->setAxisTitle("jphi", 1);
381  meAmplSummaryMapL3_->setAxisTitle("jeta", 2);
382 
383  dqmStore_->setCurrentFolder(prefixME_ + "/EBLaserTask/" + LaserN.str() + "/PN");
384 
385  dqmStore_->setCurrentFolder(prefixME_ + "/EBLaserTask/" + LaserN.str() + "/PN/Gain01");
386  for (int i = 0; i < 36; i++) {
387  name = "EBLT PNs amplitude " + Numbers::sEB(i+1) + " G01 " + LN.str();
388  mePnAmplMapG01L3_[i] = dqmStore_->bookProfile(name, name, 10, 0., 10., 4096, 0., 4096., "s");
389  mePnAmplMapG01L3_[i]->setAxisTitle("channel", 1);
390  mePnAmplMapG01L3_[i]->setAxisTitle("amplitude", 2);
392 
393  name = "EBLT PNs pedestal " + Numbers::sEB(i+1) + " G01 " + LN.str();
394  mePnPedMapG01L3_[i] = dqmStore_->bookProfile(name, name, 10, 0., 10., 4096, 0., 4096., "s");
395  mePnPedMapG01L3_[i]->setAxisTitle("channel", 1);
396  mePnPedMapG01L3_[i]->setAxisTitle("pedestal", 2);
397  dqmStore_->tag(mePnPedMapG01L3_[i], i+1);
398  }
399 
400  dqmStore_->setCurrentFolder(prefixME_ + "/EBLaserTask/" + LaserN.str() + "/PN/Gain16");
401  for (int i = 0; i < 36; i++) {
402  name = "EBLT PNs amplitude " + Numbers::sEB(i+1) + " G16 " + LN.str(),
403  mePnAmplMapG16L3_[i] = dqmStore_->bookProfile(name, name, 10, 0., 10., 4096, 0., 4096., "s");
404  mePnAmplMapG16L3_[i]->setAxisTitle("channel", 1);
405  mePnAmplMapG16L3_[i]->setAxisTitle("amplitude", 2);
407 
408  name = "EBLT PNs pedestal " + Numbers::sEB(i+1) + " G16 " + LN.str();
409  mePnPedMapG16L3_[i] = dqmStore_->bookProfile(name, name, 10, 0., 10., 4096, 0., 4096., "s");
410  mePnPedMapG16L3_[i]->setAxisTitle("channel", 1);
411  mePnPedMapG16L3_[i]->setAxisTitle("pedestal", 2);
412  dqmStore_->tag(mePnPedMapG16L3_[i], i+1);
413  }
414 
415  }
416 
417  if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 4) != laserWavelengths_.end() ) {
418 
419  LaserN.str("");
420  LaserN << "Laser" << 4;
421  LN.str("");
422  LN << "L" << 4;
423 
424  dqmStore_->setCurrentFolder(prefixME_ + "/EBLaserTask/" + LaserN.str());
425  for (int i = 0; i < 36; i++) {
426  name = "EBLT shape " + Numbers::sEB(i+1) + " " + LN.str();
427  meShapeMapL4_[i] = dqmStore_->bookProfile2D(name, name, 1700, 0., 1700., 10, 0., 10., 4096, 0., 4096., "s");
428  meShapeMapL4_[i]->setAxisTitle("channel", 1);
429  meShapeMapL4_[i]->setAxisTitle("sample", 2);
430  meShapeMapL4_[i]->setAxisTitle("amplitude", 3);
431  dqmStore_->tag(meShapeMapL4_[i], i+1);
432  name = "EBLT amplitude " + Numbers::sEB(i+1) + " " + LN.str();
433  meAmplMapL4_[i] = dqmStore_->bookProfile2D(name, name, 85, 0., 85., 20, 0., 20., 4096, 0., 4096.*12., "s");
434  meAmplMapL4_[i]->setAxisTitle("ieta", 1);
435  meAmplMapL4_[i]->setAxisTitle("iphi", 2);
436  dqmStore_->tag(meAmplMapL4_[i], i+1);
437  name = "EBLT timing " + Numbers::sEB(i+1) + " " + LN.str();
438  meTimeMapL4_[i] = dqmStore_->bookProfile2D(name, name, 85, 0., 85., 20, 0., 20., 250, 0., 10., "s");
439  meTimeMapL4_[i]->setAxisTitle("ieta", 1);
440  meTimeMapL4_[i]->setAxisTitle("iphi", 2);
441  dqmStore_->tag(meTimeMapL4_[i], i+1);
442  name = "EBLT amplitude over PN " + Numbers::sEB(i+1) + " " + LN.str();
443  meAmplPNMapL4_[i] = dqmStore_->bookProfile2D(name, name, 85, 0., 85., 20, 0., 20., 4096, 0., 4096.*12., "s");
444  meAmplPNMapL4_[i]->setAxisTitle("ieta", 1);
445  meAmplPNMapL4_[i]->setAxisTitle("iphi", 2);
446  dqmStore_->tag(meAmplPNMapL4_[i], i+1);
447  }
448 
449  name = "EBLT amplitude map " + LN.str();
450  meAmplSummaryMapL4_ = dqmStore_->bookProfile2D(name, name, 72, 0., 360., 34, -85., 85., 0., 4096.);
451  meAmplSummaryMapL4_->setAxisTitle("jphi", 1);
452  meAmplSummaryMapL4_->setAxisTitle("jeta", 2);
453 
454  dqmStore_->setCurrentFolder(prefixME_ + "/EBLaserTask/" + LaserN.str() + "/PN");
455 
456  dqmStore_->setCurrentFolder(prefixME_ + "/EBLaserTask/" + LaserN.str() + "/PN/Gain01");
457  for (int i = 0; i < 36; i++) {
458  name = "EBLT PNs amplitude " + Numbers::sEB(i+1) + " G01 " + LN.str();
459  mePnAmplMapG01L4_[i] = dqmStore_->bookProfile(name, name, 10, 0., 10., 4096, 0., 4096., "s");
460  mePnAmplMapG01L4_[i]->setAxisTitle("channel", 1);
461  mePnAmplMapG01L4_[i]->setAxisTitle("amplitude", 2);
463 
464  name = "EBLT PNs pedestal " + Numbers::sEB(i+1) + " G01 " + LN.str();
465  mePnPedMapG01L4_[i] = dqmStore_->bookProfile(name, name, 10, 0., 10., 4096, 0., 4096., "s");
466  mePnPedMapG01L4_[i]->setAxisTitle("channel", 1);
467  mePnPedMapG01L4_[i]->setAxisTitle("pedestal", 2);
468  dqmStore_->tag(mePnPedMapG01L4_[i], i+1);
469  }
470 
471  dqmStore_->setCurrentFolder(prefixME_ + "/EBLaserTask/" + LaserN.str() + "/PN/Gain16");
472  for (int i = 0; i < 36; i++) {
473  name = "EBLT PNs amplitude " + Numbers::sEB(i+1) + " G16 " + LN.str(),
474  mePnAmplMapG16L4_[i] = dqmStore_->bookProfile(name, name, 10, 0., 10., 4096, 0., 4096., "s");
475  mePnAmplMapG16L4_[i]->setAxisTitle("channel", 1);
476  mePnAmplMapG16L4_[i]->setAxisTitle("amplitude", 2);
478 
479  name = "EBLT PNs pedestal " + Numbers::sEB(i+1) + " G16 " + LN.str();
480  mePnPedMapG16L4_[i] = dqmStore_->bookProfile(name, name, 10, 0., 10., 4096, 0., 4096., "s");
481  mePnPedMapG16L4_[i]->setAxisTitle("channel", 1);
482  mePnPedMapG16L4_[i]->setAxisTitle("pedestal", 2);
483  dqmStore_->tag(mePnPedMapG16L4_[i], i+1);
484  }
485 
486  }
487 
488  }
489 
490 }
491 
493 
494  if ( ! init_ ) return;
495 
496  if ( dqmStore_ ) {
497  dqmStore_->setCurrentFolder(prefixME_ + "/EBLaserTask");
498 
499  if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 1) != laserWavelengths_.end() ) {
500  dqmStore_->setCurrentFolder(prefixME_ + "/EBLaserTask/Laser1");
501  for (int i = 0; i < 36; i++) {
502  if ( meShapeMapL1_[i] ) dqmStore_->removeElement( meShapeMapL1_[i]->getName() );
503  meShapeMapL1_[i] = 0;
504  if ( meAmplMapL1_[i] ) dqmStore_->removeElement( meAmplMapL1_[i]->getName() );
505  meAmplMapL1_[i] = 0;
506  if ( meTimeMapL1_[i] ) dqmStore_->removeElement( meTimeMapL1_[i]->getName() );
507  meTimeMapL1_[i] = 0;
508  if ( meAmplPNMapL1_[i] ) dqmStore_->removeElement( meAmplPNMapL1_[i]->getName() );
509  meAmplPNMapL1_[i] = 0;
510  }
513  }
514 
515  if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 2) != laserWavelengths_.end() ) {
516  dqmStore_->setCurrentFolder(prefixME_ + "/EBLaserTask/Laser2");
517  for (int i = 0; i < 36; i++) {
518  if ( meShapeMapL2_[i] ) dqmStore_->removeElement( meShapeMapL2_[i]->getName() );
519  meShapeMapL2_[i] = 0;
520  if ( meAmplMapL2_[i] ) dqmStore_->removeElement( meAmplMapL2_[i]->getName() );
521  meAmplMapL2_[i] = 0;
522  if ( meTimeMapL2_[i] ) dqmStore_->removeElement( meTimeMapL2_[i]->getName() );
523  meTimeMapL2_[i] = 0;
524  if ( meAmplPNMapL2_[i] ) dqmStore_->removeElement( meAmplPNMapL2_[i]->getName() );
525  meAmplPNMapL2_[i] = 0;
526  }
529  }
530 
531  if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 3) != laserWavelengths_.end() ) {
532  dqmStore_->setCurrentFolder(prefixME_ + "/EBLaserTask/Laser3");
533  for (int i = 0; i < 36; i++) {
534  if ( meShapeMapL3_[i] ) dqmStore_->removeElement( meShapeMapL3_[i]->getName() );
535  meShapeMapL3_[i] = 0;
536  if ( meAmplMapL3_[i] ) dqmStore_->removeElement( meAmplMapL3_[i]->getName() );
537  meAmplMapL3_[i] = 0;
538  if ( meTimeMapL3_[i] ) dqmStore_->removeElement( meTimeMapL3_[i]->getName() );
539  meTimeMapL3_[i] = 0;
540  if ( meAmplPNMapL3_[i] ) dqmStore_->removeElement( meAmplPNMapL3_[i]->getName() );
541  meAmplPNMapL3_[i] = 0;
542  }
545  }
546 
547  if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 4) != laserWavelengths_.end() ) {
548  dqmStore_->setCurrentFolder(prefixME_ + "/EBLaserTask/Laser4");
549  for (int i = 0; i < 36; i++) {
550  if ( meShapeMapL4_[i] ) dqmStore_->removeElement( meShapeMapL4_[i]->getName() );
551  meShapeMapL4_[i] = 0;
552  if ( meAmplMapL4_[i] ) dqmStore_->removeElement( meAmplMapL4_[i]->getName() );
553  meAmplMapL4_[i] = 0;
554  if ( meTimeMapL4_[i] ) dqmStore_->removeElement( meTimeMapL4_[i]->getName() );
555  meTimeMapL4_[i] = 0;
556  if ( meAmplPNMapL4_[i] ) dqmStore_->removeElement( meAmplPNMapL4_[i]->getName() );
557  meAmplPNMapL4_[i] = 0;
558  }
561  }
562 
563  if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 1) != laserWavelengths_.end() ) {
564  dqmStore_->setCurrentFolder(prefixME_ + "/EBLaserTask/Laser1/PN");
565 
566  dqmStore_->setCurrentFolder(prefixME_ + "/EBLaserTask/Laser1/PN/Gain01");
567  for (int i = 0; i < 36; i++) {
568  if ( mePnAmplMapG01L1_[i] ) dqmStore_->removeElement( mePnAmplMapG01L1_[i]->getName() );
569  mePnAmplMapG01L1_[i] = 0;
570  if ( mePnPedMapG01L1_[i] ) dqmStore_->removeElement( mePnPedMapG01L1_[i]->getName() );
571  mePnPedMapG01L1_[i] = 0;
572  }
573 
574  dqmStore_->setCurrentFolder(prefixME_ + "/EBLaserTask/Laser1/PN/Gain16");
575  for (int i = 0; i < 36; i++) {
576  if ( mePnAmplMapG16L1_[i] ) dqmStore_->removeElement( mePnAmplMapG16L1_[i]->getName() );
577  mePnAmplMapG16L1_[i] = 0;
578  if ( mePnPedMapG16L1_[i] ) dqmStore_->removeElement( mePnPedMapG16L1_[i]->getName() );
579  mePnPedMapG16L1_[i] = 0;
580  }
581  }
582 
583  if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 2) != laserWavelengths_.end() ) {
584  dqmStore_->setCurrentFolder(prefixME_ + "/EBLaserTask/Laser2/PN");
585 
586  dqmStore_->setCurrentFolder(prefixME_ + "/EBLaserTask/Laser2/PN/Gain01");
587  for (int i = 0; i < 36; i++) {
588  if ( mePnAmplMapG01L2_[i] ) dqmStore_->removeElement( mePnAmplMapG01L2_[i]->getName() );
589  mePnAmplMapG01L2_[i] = 0;
590  if ( mePnPedMapG01L2_[i] ) dqmStore_->removeElement( mePnPedMapG01L2_[i]->getName() );
591  mePnPedMapG01L2_[i] = 0;
592  }
593 
594  dqmStore_->setCurrentFolder(prefixME_ + "/EBLaserTask/Laser2/PN/Gain16");
595  for (int i = 0; i < 36; i++) {
596  if ( mePnAmplMapG16L2_[i] ) dqmStore_->removeElement( mePnAmplMapG16L2_[i]->getName() );
597  mePnAmplMapG16L2_[i] = 0;
598  if ( mePnPedMapG16L2_[i] ) dqmStore_->removeElement( mePnPedMapG16L2_[i]->getName() );
599  mePnPedMapG16L2_[i] = 0;
600  }
601  }
602 
603  if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 3) != laserWavelengths_.end() ) {
604  dqmStore_->setCurrentFolder(prefixME_ + "/EBLaserTask/Laser3/PN");
605 
606  dqmStore_->setCurrentFolder(prefixME_ + "/EBLaserTask/Laser3/PN/Gain01");
607  for (int i = 0; i < 36; i++) {
608  if ( mePnAmplMapG01L3_[i] ) dqmStore_->removeElement( mePnAmplMapG01L3_[i]->getName() );
609  mePnAmplMapG01L3_[i] = 0;
610  if ( mePnPedMapG01L3_[i] ) dqmStore_->removeElement( mePnPedMapG01L3_[i]->getName() );
611  mePnPedMapG01L3_[i] = 0;
612  }
613 
614  dqmStore_->setCurrentFolder(prefixME_ + "/EBLaserTask/Laser3/PN/Gain16");
615  for (int i = 0; i < 36; i++) {
616  if ( mePnAmplMapG16L3_[i] ) dqmStore_->removeElement( mePnAmplMapG16L3_[i]->getName() );
617  mePnAmplMapG16L3_[i] = 0;
618  if ( mePnPedMapG16L3_[i] ) dqmStore_->removeElement( mePnPedMapG16L3_[i]->getName() );
619  mePnPedMapG16L3_[i] = 0;
620  }
621  }
622 
623  if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 4) != laserWavelengths_.end() ) {
624  dqmStore_->setCurrentFolder(prefixME_ + "/EBLaserTask/Laser4/PN");
625 
626  dqmStore_->setCurrentFolder(prefixME_ + "/EBLaserTask/Laser4/PN/Gain01");
627  for (int i = 0; i < 36; i++) {
628  if ( mePnAmplMapG01L4_[i] ) dqmStore_->removeElement( mePnAmplMapG01L4_[i]->getName() );
629  mePnAmplMapG01L4_[i] = 0;
630  if ( mePnPedMapG01L4_[i] ) dqmStore_->removeElement( mePnPedMapG01L4_[i]->getName() );
631  mePnPedMapG01L4_[i] = 0;
632  }
633 
634  dqmStore_->setCurrentFolder(prefixME_ + "/EBLaserTask/Laser4/PN/Gain16");
635  for (int i = 0; i < 36; i++) {
636  if ( mePnAmplMapG16L4_[i] ) dqmStore_->removeElement( mePnAmplMapG16L4_[i]->getName() );
637  mePnAmplMapG16L4_[i] = 0;
638  if ( mePnPedMapG16L4_[i] ) dqmStore_->removeElement( mePnPedMapG16L4_[i]->getName() );
639  mePnPedMapG16L4_[i] = 0;
640  }
641 
642  }
643 
644  }
645 
646  init_ = false;
647 
648 }
649 
651 
652  edm::LogInfo("EBLaserTask") << "analyzed " << ievt_ << " events";
653 
654  if ( enableCleanup_ ) this->cleanup();
655 
656 }
657 
659 
660  bool enable = false;
661  int runType[36];
662  for (int i=0; i<36; i++) runType[i] = -1;
663  unsigned rtHalf[36];
664  for (int i=0; i<36; i++) rtHalf[i] = -1;
665  int waveLength[36];
666  for (int i=0; i<36; i++) waveLength[i] = -1;
667 
669 
670  if ( e.getByToken(EcalRawDataCollection_, dcchs) ) {
671 
672  for ( EcalRawDataCollection::const_iterator dcchItr = dcchs->begin(); dcchItr != dcchs->end(); ++dcchItr ) {
673 
674  if ( Numbers::subDet( *dcchItr ) != EcalBarrel ) continue;
675 
676  int ism = Numbers::iSM( *dcchItr, EcalBarrel );
677 
678  runType[ism-1] = dcchItr->getRunType();
679  rtHalf[ism-1] = dcchItr->getRtHalf();
680  waveLength[ism-1] = dcchItr->getEventSettings().wavelength;
681 
682  if ( dcchItr->getRunType() == EcalDCCHeaderBlock::LASER_STD ||
683  dcchItr->getRunType() == EcalDCCHeaderBlock::LASER_GAP ) enable = true;
684 
685  }
686 
687  } else {
688 
689  edm::LogWarning("EBLaserTask") << "EcalRawDataCollection not available";
690 
691  }
692 
693  if ( ! enable ) return;
694 
695  if ( ! init_ ) this->setup();
696 
697  ievt_++;
698 
700 
701  if ( e.getByToken(EBDigiCollection_, digis) ) {
702 
703  int maxpos[10];
704  for(int i(0); i < 10; i++)
705  maxpos[i] = 0;
706 
707  int nReadouts(0);
708 
709  for ( EBDigiCollection::const_iterator digiItr = digis->begin(); digiItr != digis->end(); ++digiItr ) {
710 
711  EBDetId id = digiItr->id();
712 
713  int ism = Numbers::iSM( id );
714 
715  if ( ! ( runType[ism-1] == EcalDCCHeaderBlock::LASER_STD ||
716  runType[ism-1] == EcalDCCHeaderBlock::LASER_GAP ) ) continue;
717 
718  if ( rtHalf[ism-1] != Numbers::RtHalf(id) ) continue;
719 
720  nReadouts++;
721 
722  EBDataFrame dataframe = (*digiItr);
723 
724  int iMax(-1);
725  float max(0.);
726  float min(4096.);
727  for (int i = 0; i < 10; i++) {
728  int adc = dataframe.sample(i).adc();
729  if(adc > max){
730  max = adc;
731  iMax = i;
732  }
733  if(adc < min)
734  min = adc;
735  }
736  if(iMax >= 0 && max - min > 20.)
737  maxpos[iMax] += 1;
738 
739  }
740 
741  int threshold(nReadouts / 2);
742  enable = false;
743  for(int i(0); i < 10; i++){
744  if(maxpos[i] > threshold){
745  enable = true;
746  break;
747  }
748  }
749 
750  if(!enable) return;
751 
752  int nebd = digis->size();
753  LogDebug("EBLaserTask") << "event " << ievt_ << " digi collection size " << nebd;
754 
755  for ( EBDigiCollection::const_iterator digiItr = digis->begin(); digiItr != digis->end(); ++digiItr ) {
756 
757  EBDetId id = digiItr->id();
758 
759  int ic = id.ic();
760 
761  int ism = Numbers::iSM( id );
762 
763  if ( ! ( runType[ism-1] == EcalDCCHeaderBlock::LASER_STD ||
764  runType[ism-1] == EcalDCCHeaderBlock::LASER_GAP ) ) continue;
765 
766  if ( rtHalf[ism-1] != Numbers::RtHalf(id) ) continue;
767 
768  EBDataFrame dataframe = (*digiItr);
769 
770  for (int i = 0; i < 10; i++) {
771 
772  int adc = dataframe.sample(i).adc();
773 
774  MonitorElement* meShapeMap = 0;
775 
776  if ( rtHalf[ism-1] == 0 || rtHalf[ism-1] == 1 ) {
777 
778  if ( waveLength[ism-1] == 0 ) meShapeMap = meShapeMapL1_[ism-1];
779  if ( waveLength[ism-1] == 1 ) meShapeMap = meShapeMapL2_[ism-1];
780  if ( waveLength[ism-1] == 2 ) meShapeMap = meShapeMapL3_[ism-1];
781  if ( waveLength[ism-1] == 3 ) meShapeMap = meShapeMapL4_[ism-1];
782 
783  } else {
784 
785  edm::LogWarning("EBLaserTask") << " RtHalf = " << rtHalf[ism-1];
786 
787  }
788 
789  float xval = float(adc);
790 
791  if ( meShapeMap ) meShapeMap->Fill(ic - 0.5, i + 0.5, xval);
792 
793  }
794 
795  }
796 
797  } else {
798 
799  edm::LogWarning("EBLaserTask") << "EBDigiCollection not available";
800 
801  }
802 
803  float adcA[36];
804  float adcB[36];
805 
806  for ( int i = 0; i < 36; i++ ) {
807  adcA[i] = 0.;
808  adcB[i] = 0.;
809  }
810 
812 
813  if ( e.getByToken(EcalPnDiodeDigiCollection_, pns) ) {
814 
815  int nep = pns->size();
816  LogDebug("EBLaserTask") << "event " << ievt_ << " pns collection size " << nep;
817 
818  for ( EcalPnDiodeDigiCollection::const_iterator pnItr = pns->begin(); pnItr != pns->end(); ++pnItr ) {
819 
820  if ( Numbers::subDet( pnItr->id() ) != EcalBarrel ) continue;
821 
822  int ism = Numbers::iSM( pnItr->id() );
823 
824  int num = pnItr->id().iPnId();
825 
826  if ( ! ( runType[ism-1] == EcalDCCHeaderBlock::LASER_STD ||
827  runType[ism-1] == EcalDCCHeaderBlock::LASER_GAP ) ) continue;
828 
829  float xvalped = 0.;
830 
831  for (int i = 0; i < 4; i++) {
832 
833  int adc = pnItr->sample(i).adc();
834 
835  MonitorElement* mePNPed = 0;
836 
837  if ( pnItr->sample(i).gainId() == 0 ) {
838  if ( waveLength[ism-1] == 0 ) mePNPed = mePnPedMapG01L1_[ism-1];
839  if ( waveLength[ism-1] == 1 ) mePNPed = mePnPedMapG01L2_[ism-1];
840  if ( waveLength[ism-1] == 2 ) mePNPed = mePnPedMapG01L3_[ism-1];
841  if ( waveLength[ism-1] == 3 ) mePNPed = mePnPedMapG01L4_[ism-1];
842  }
843  if ( pnItr->sample(i).gainId() == 1 ) {
844  if ( waveLength[ism-1] == 0 ) mePNPed = mePnPedMapG16L1_[ism-1];
845  if ( waveLength[ism-1] == 1 ) mePNPed = mePnPedMapG16L2_[ism-1];
846  if ( waveLength[ism-1] == 2 ) mePNPed = mePnPedMapG16L3_[ism-1];
847  if ( waveLength[ism-1] == 3 ) mePNPed = mePnPedMapG16L4_[ism-1];
848  }
849 
850  float xval = float(adc);
851 
852  if ( mePNPed ) mePNPed->Fill(num - 0.5, xval);
853 
854  xvalped = xvalped + xval;
855 
856  }
857 
858  xvalped = xvalped / 4;
859 
860  float xvalmax = 0.;
861 
862  MonitorElement* mePN = 0;
863 
864  for (int i = 0; i < 50; i++) {
865 
866  int adc = pnItr->sample(i).adc();
867 
868  float xval = float(adc);
869 
870  if ( xval >= xvalmax ) xvalmax = xval;
871 
872  }
873 
874  xvalmax = xvalmax - xvalped;
875 
876  if ( pnItr->sample(0).gainId() == 0 ) {
877  if ( waveLength[ism-1] == 0 ) mePN = mePnAmplMapG01L1_[ism-1];
878  if ( waveLength[ism-1] == 1 ) mePN = mePnAmplMapG01L2_[ism-1];
879  if ( waveLength[ism-1] == 2 ) mePN = mePnAmplMapG01L3_[ism-1];
880  if ( waveLength[ism-1] == 3 ) mePN = mePnAmplMapG01L4_[ism-1];
881  }
882  if ( pnItr->sample(0).gainId() == 1 ) {
883  if ( waveLength[ism-1] == 0 ) mePN = mePnAmplMapG16L1_[ism-1];
884  if ( waveLength[ism-1] == 1 ) mePN = mePnAmplMapG16L2_[ism-1];
885  if ( waveLength[ism-1] == 2 ) mePN = mePnAmplMapG16L3_[ism-1];
886  if ( waveLength[ism-1] == 3 ) mePN = mePnAmplMapG16L4_[ism-1];
887  }
888 
889  if ( mePN ) mePN->Fill(num - 0.5, xvalmax);
890 
891  if ( num == 1 ) adcA[ism-1] = xvalmax;
892  if ( num == 6 ) adcB[ism-1] = xvalmax;
893 
894  }
895 
896  } else {
897 
898  edm::LogWarning("EBLaserTask") << "EcalPnDiodeDigiCollection not available";
899 
900  }
901 
903 
905 
906  int neh = hits->size();
907  LogDebug("EBLaserTask") << "event " << ievt_ << " hits collection size " << neh;
908 
909  for ( EcalUncalibratedRecHitCollection::const_iterator hitItr = hits->begin(); hitItr != hits->end(); ++hitItr ) {
910 
911  EBDetId id = hitItr->id();
912 
913  int ic = id.ic();
914  int ie = (ic-1)/20 + 1;
915  int ip = (ic-1)%20 + 1;
916 
917  int ism = Numbers::iSM( id );
918 
919  float xie = ie - 0.5;
920  float xip = ip - 0.5;
921 
922  if ( ! ( runType[ism-1] == EcalDCCHeaderBlock::LASER_STD ||
923  runType[ism-1] == EcalDCCHeaderBlock::LASER_GAP ) ) continue;
924 
925  if ( rtHalf[ism-1] != Numbers::RtHalf(id) ) continue;
926 
927  MonitorElement* meAmplMap = 0;
928  MonitorElement* meTimeMap = 0;
929  MonitorElement* meAmplPNMap = 0;
930  MonitorElement* meAmplSummaryMap = 0;
931 
932  if ( rtHalf[ism-1] == 0 || rtHalf[ism-1] == 1 ) {
933 
934  if ( waveLength[ism-1] == 0 ) {
935  meAmplMap = meAmplMapL1_[ism-1];
936  meTimeMap = meTimeMapL1_[ism-1];
937  meAmplPNMap = meAmplPNMapL1_[ism-1];
938  meAmplSummaryMap = meAmplSummaryMapL1_;
939  }
940  if ( waveLength[ism-1] == 1 ) {
941  meAmplMap = meAmplMapL2_[ism-1];
942  meTimeMap = meTimeMapL2_[ism-1];
943  meAmplPNMap = meAmplPNMapL2_[ism-1];
944  meAmplSummaryMap = meAmplSummaryMapL2_;
945  }
946  if ( waveLength[ism-1] == 2 ) {
947  meAmplMap = meAmplMapL3_[ism-1];
948  meTimeMap = meTimeMapL3_[ism-1];
949  meAmplPNMap = meAmplPNMapL3_[ism-1];
950  meAmplSummaryMap = meAmplSummaryMapL3_;
951  }
952  if ( waveLength[ism-1] == 3 ) {
953  meAmplMap = meAmplMapL4_[ism-1];
954  meTimeMap = meTimeMapL4_[ism-1];
955  meAmplPNMap = meAmplPNMapL4_[ism-1];
956  meAmplSummaryMap = meAmplSummaryMapL4_;
957  }
958 
959  } else {
960 
961  edm::LogWarning("EBLaserTask") << " RtHalf = " << rtHalf[ism-1];
962 
963  }
964 
965  float xval = hitItr->amplitude();
966  if ( xval <= 0. ) xval = 0.0;
967  float yval = hitItr->jitter() + 5.0;
968  if ( yval <= 0. ) yval = 0.0;
969  float zval = hitItr->pedestal();
970  if ( zval <= 0. ) zval = 0.0;
971 
972  if ( meAmplMap ) meAmplMap->Fill(xie, xip, xval);
973 
974  if ( xval > 12. ) {
975  if ( meTimeMap ) meTimeMap->Fill(xie, xip, yval);
976  }
977 
978  float wval = 0.;
979 
980  if ( rtHalf[ism-1] == 0 ) {
981 
982  if ( adcA[ism-1] != 0. ) wval = xval / adcA[ism-1];
983 
984  } else if ( rtHalf[ism-1] == 1 ) {
985 
986  if ( adcB[ism-1] != 0. ) wval = xval / adcB[ism-1];
987 
988  } else {
989 
990  edm::LogWarning("EBLaserTask") << " RtHalf = " << rtHalf[ism-1];
991 
992  }
993 
994  if ( meAmplPNMap ) meAmplPNMap->Fill(xie, xip, wval);
995 
996  float xjp = id.iphi() - 0.5;
997  float xje = id.ieta() - 0.5 * id.zside();
998 
999  if( meAmplSummaryMap ) meAmplSummaryMap->Fill(xjp, xje, xval);
1000 
1001  }
1002 
1003  } else {
1004 
1005  edm::LogWarning("EBLaserTask") << "EcalUncalibratedRecHitCollection not available";
1006 
1007  }
1008 
1009 }
1010 
#define LogDebug(id)
int adc(sample_type sample)
get the ADC sample (12 bits)
MonitorElement * mePnAmplMapG16L3_[36]
Definition: EBLaserTask.h:101
MonitorElement * meTimeMapL4_[36]
Definition: EBLaserTask.h:106
MonitorElement * meShapeMapL3_[36]
Definition: EBLaserTask.h:95
T getParameter(std::string const &) const
edm::EDGetTokenT< EcalUncalibratedRecHitCollection > EcalUncalibratedRecHitCollection_
Definition: EBLaserTask.h:74
T getUntrackedParameter(std::string const &, T const &) const
const std::string & getName(void) const
get name of ME
int i
Definition: DBlmapReader.cc:9
MonitorElement * meTimeMapL2_[36]
Definition: EBLaserTask.h:88
MonitorElement * meAmplSummaryMapL4_
Definition: EBLaserTask.h:116
void cleanup(void)
Cleanup.
Definition: EBLaserTask.cc:492
MonitorElement * meAmplSummaryMapL1_
Definition: EBLaserTask.h:113
boost::transform_iterator< IterHelp, boost::counting_iterator< int > > const_iterator
MonitorElement * mePnPedMapG16L3_[36]
Definition: EBLaserTask.h:102
void beginJob(void)
BeginJob.
Definition: EBLaserTask.cc:98
void rmdir(const std::string &fullpath)
Definition: DQMStore.cc:2730
MonitorElement * meAmplMapL2_[36]
Definition: EBLaserTask.h:87
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:434
Some &quot;id&quot; conversions.
static std::string sEB(const unsigned ism)
Definition: Numbers.cc:91
std::vector< int > laserWavelengths_
Definition: EBLaserTask.h:75
std::vector< EcalDCCHeaderBlock >::const_iterator const_iterator
EcalMGPASample sample(int i) const
Definition: EcalDataFrame.h:29
MonitorElement * meAmplPNMapL4_[36]
Definition: EBLaserTask.h:107
virtual ~EBLaserTask()
Destructor.
Definition: EBLaserTask.cc:94
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:7
MonitorElement * meTimeMapL1_[36]
Definition: EBLaserTask.h:79
void endRun(const edm::Run &r, const edm::EventSetup &c)
EndRun.
Definition: EBLaserTask.cc:117
MonitorElement * mePnAmplMapG01L2_[36]
Definition: EBLaserTask.h:90
void endJob(void)
EndJob.
Definition: EBLaserTask.cc:650
EBLaserTask(const edm::ParameterSet &ps)
Constructor.
Definition: EBLaserTask.cc:27
void Fill(long long x)
void tag(MonitorElement *me, unsigned int myTag)
Definition: DQMStore.cc:1509
MonitorElement * mePnPedMapG16L2_[36]
Definition: EBLaserTask.h:93
void reset(void)
Reset.
Definition: EBLaserTask.cc:121
MonitorElement * meTimeMapL3_[36]
Definition: EBLaserTask.h:97
const T & max(const T &a, const T &b)
MonitorElement * mePnAmplMapG01L4_[36]
Definition: EBLaserTask.h:108
void analyze(const edm::Event &e, const edm::EventSetup &c)
Analyze.
Definition: EBLaserTask.cc:658
MonitorElement * meAmplMapL4_[36]
Definition: EBLaserTask.h:105
void removeElement(const std::string &name)
Definition: DQMStore.cc:2772
MonitorElement * mePnPedMapG01L3_[36]
Definition: EBLaserTask.h:100
MonitorElement * mePnAmplMapG16L2_[36]
Definition: EBLaserTask.h:92
MonitorElement * meAmplSummaryMapL2_
Definition: EBLaserTask.h:114
MonitorElement * meShapeMapL4_[36]
Definition: EBLaserTask.h:104
DQMStore * dqmStore_
Definition: EBLaserTask.h:63
MonitorElement * meAmplPNMapL1_[36]
Definition: EBLaserTask.h:80
MonitorElement * bookProfile(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, const char *option="s")
Definition: DQMStore.cc:1186
void setup(void)
Setup.
Definition: EBLaserTask.cc:192
MonitorElement * mePnPedMapG01L1_[36]
Definition: EBLaserTask.h:82
MonitorElement * mePnAmplMapG16L4_[36]
Definition: EBLaserTask.h:110
int ic() const
get ECAL/crystal number inside SM
Definition: EBDetId.cc:46
MonitorElement * meAmplPNMapL2_[36]
Definition: EBLaserTask.h:89
void beginRun(const edm::Run &r, const edm::EventSetup &c)
BeginRun.
Definition: EBLaserTask.cc:109
static void initGeometry(const edm::EventSetup &setup, bool verbose=false)
Definition: Numbers.cc:47
MonitorElement * meAmplMapL1_[36]
Definition: EBLaserTask.h:78
edm::EDGetTokenT< EcalRawDataCollection > EcalRawDataCollection_
Definition: EBLaserTask.h:71
MonitorElement * meShapeMapL2_[36]
Definition: EBLaserTask.h:86
MonitorElement * meShapeMapL1_[36]
Definition: EBLaserTask.h:77
bool mergeRuns_
Definition: EBLaserTask.h:69
static unsigned iSM(const unsigned ism, const EcalSubdetector subdet)
Definition: Numbers.cc:243
edm::EDGetTokenT< EBDigiCollection > EBDigiCollection_
Definition: EBLaserTask.h:72
bool enableCleanup_
Definition: EBLaserTask.h:67
MonitorElement * mePnAmplMapG01L3_[36]
Definition: EBLaserTask.h:99
static unsigned RtHalf(const EBDetId &id)
Definition: Numbers.cc:605
MonitorElement * mePnAmplMapG16L1_[36]
Definition: EBLaserTask.h:83
static EcalSubdetector subDet(const EBDetId &id)
Definition: Numbers.cc:142
MonitorElement * mePnAmplMapG01L1_[36]
Definition: EBLaserTask.h:81
MonitorElement * mePnPedMapG01L4_[36]
Definition: EBLaserTask.h:109
MonitorElement * mePnPedMapG16L1_[36]
Definition: EBLaserTask.h:84
edm::EDGetTokenT< EcalPnDiodeDigiCollection > EcalPnDiodeDigiCollection_
Definition: EBLaserTask.h:73
std::string prefixME_
Definition: EBLaserTask.h:65
int ism(int ieta, int iphi)
Definition: EcalPyUtils.cc:56
MonitorElement * meAmplMapL3_[36]
Definition: EBLaserTask.h:96
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
void Reset(void)
reset ME (ie. contents, errors, etc)
MonitorElement * meAmplPNMapL3_[36]
Definition: EBLaserTask.h:98
MonitorElement * mePnPedMapG16L4_[36]
Definition: EBLaserTask.h:111
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:584
MonitorElement * mePnPedMapG01L2_[36]
Definition: EBLaserTask.h:91
Definition: Run.h:41
int adc() const
get the ADC sample (12 bits)
MonitorElement * meAmplSummaryMapL3_
Definition: EBLaserTask.h:115
MonitorElement * bookProfile2D(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, int nchZ, double lowZ, double highZ, const char *option="s")
Definition: DQMStore.cc:1330