35 msm_ =
new std::map<std::string, MonitorElement*>();
38 else edm::LogInfo(
"OutputInfo") <<
" Hcal Digi Task histograms will NOT be saved";
46 if (
subdet_ ==
"noise") bnoise = 1;
47 if (
mc_ ==
"yes") bmc = 1;
62 HistLim Ndigis(2600, 0., 2600.);
63 HistLim ndigis(505, -10., 1000.);
66 HistLim digiAmp(205, -100., 4000.);
67 HistLim ratio(2000, -100., 3900.);
68 HistLim sumAmp(100, -500., 1500.);
73 HistLim pedestalfC(400, -10., 30.);
78 HistLim pedWidthLim(100, 0., 2.);
81 HistLim gainWidthLim(100, 0., 0.3);
86 if (bsubdet ==
"HE") {
89 }
else if (bsubdet ==
"HF") {
95 pedWidthLim =
HistLim(100, 0., 5.);
96 frac =
HistLim(400, -4.00, 4.00);
98 }
else if (bsubdet ==
"HO") {
101 gainLim =
HistLim(150, 0., 1.5);
105 const char * sub = bsubdet.c_str();
108 sprintf(histo,
"HcalDigiTask_Ndigis_%s", sub);
112 sprintf(histo,
"HcalDigiTask_ieta_iphi_occupancy_map_depth1_%s", sub);
113 book2D(histo, ietaLim, iphiLim);
115 sprintf(histo,
"HcalDigiTask_ieta_iphi_occupancy_map_depth2_%s", sub);
116 book2D(histo, ietaLim, iphiLim);
118 sprintf(histo,
"HcalDigiTask_ieta_iphi_occupancy_map_depth3_%s", sub);
119 book2D(histo, ietaLim, iphiLim);
121 sprintf(histo,
"HcalDigiTask_ieta_iphi_occupancy_map_depth4_%s", sub);
122 book2D(histo, ietaLim, iphiLim);
125 sprintf(histo,
"HcalDigiTask_occupancy_vs_ieta_depth1_%s", sub);
128 sprintf(histo,
"HcalDigiTask_occupancy_vs_ieta_depth2_%s", sub);
131 sprintf(histo,
"HcalDigiTask_occupancy_vs_ieta_depth3_%s", sub);
134 sprintf(histo,
"HcalDigiTask_occupancy_vs_ieta_depth4_%s", sub);
150 sprintf(histo,
"HcalDigiTask_sum_all_amplitudes_%s", sub);
153 sprintf(histo,
"HcalDigiTask_number_of_amplitudes_above_10fC_%s", sub);
156 sprintf(histo,
"HcalDigiTask_ADC0_adc_depth1_%s", sub);
158 sprintf(histo,
"HcalDigiTask_ADC0_adc_depth2_%s", sub);
160 sprintf(histo,
"HcalDigiTask_ADC0_adc_depth3_%s", sub);
162 sprintf(histo,
"HcalDigiTask_ADC0_adc_depth4_%s", sub);
165 sprintf(histo,
"HcalDigiTask_ADC0_fC_depth1_%s", sub);
166 book1D(histo, pedestalfC);
167 sprintf(histo,
"HcalDigiTask_ADC0_fC_depth2_%s", sub);
168 book1D(histo, pedestalfC);
169 sprintf(histo,
"HcalDigiTask_ADC0_fC_depth3_%s", sub);
170 book1D(histo, pedestalfC);
171 sprintf(histo,
"HcalDigiTask_ADC0_fC_depth4_%s", sub);
172 book1D(histo, pedestalfC);
174 sprintf(histo,
"HcalDigiTask_signal_amplitude_%s", sub);
176 sprintf(histo,
"HcalDigiTask_signal_amplitude_depth1_%s", sub);
178 sprintf(histo,
"HcalDigiTask_signal_amplitude_depth2_%s", sub);
180 sprintf(histo,
"HcalDigiTask_signal_amplitude_depth3_%s", sub);
182 sprintf(histo,
"HcalDigiTask_signal_amplitude_depth4_%s", sub);
185 sprintf(histo,
"HcalDigiTask_signal_amplitude_vs_bin_all_depths_%s", sub);
186 book2D(histo, nbin, digiAmp);
194 sprintf(histo,
"HcalDigiTask_all_amplitudes_vs_bin_1D_depth1_%s", sub);
196 sprintf(histo,
"HcalDigiTask_all_amplitudes_vs_bin_1D_depth2_%s", sub);
199 sprintf(histo,
"HcalDigiTask_bin_5_frac_%s", sub);
201 sprintf(histo,
"HcalDigiTask_bin_6_7_frac_%s", sub);
205 sprintf(histo,
"HcalDigiTask_amplitude_vs_simhits_%s", sub);
206 book2D(histo, sime, digiAmp);
207 sprintf(histo,
"HcalDigiTask_amplitude_vs_simhits_depth1_%s", sub);
208 book2D(histo, sime, digiAmp);
209 sprintf(histo,
"HcalDigiTask_amplitude_vs_simhits_depth2_%s", sub);
210 book2D(histo, sime, digiAmp);
211 sprintf(histo,
"HcalDigiTask_amplitude_vs_simhits_depth3_%s", sub);
212 book2D(histo, sime, digiAmp);
213 sprintf(histo,
"HcalDigiTask_amplitude_vs_simhits_depth4_%s", sub);
214 book2D(histo, sime, digiAmp);
216 sprintf(histo,
"HcalDigiTask_amplitude_vs_simhits_profile_%s", sub);
217 bookPf(histo, sime, digiAmp);
218 sprintf(histo,
"HcalDigiTask_amplitude_vs_simhits_profile_depth1_%s", sub);
219 bookPf(histo, sime, digiAmp);
220 sprintf(histo,
"HcalDigiTask_amplitude_vs_simhits_profile_depth2_%s", sub);
221 bookPf(histo, sime, digiAmp);
222 sprintf(histo,
"HcalDigiTask_amplitude_vs_simhits_profile_depth3_%s", sub);
223 bookPf(histo, sime, digiAmp);
224 sprintf(histo,
"HcalDigiTask_amplitude_vs_simhits_profile_depth4_%s", sub);
225 bookPf(histo, sime, digiAmp);
227 sprintf(histo,
"HcalDigiTask_ratio_amplitude_vs_simhits_%s", sub);
229 sprintf(histo,
"HcalDigiTask_ratio_amplitude_vs_simhits_depth1_%s", sub);
231 sprintf(histo,
"HcalDigiTask_ratio_amplitude_vs_simhits_depth2_%s", sub);
233 sprintf(histo,
"HcalDigiTask_ratio_amplitude_vs_simhits_depth3_%s", sub);
235 sprintf(histo,
"HcalDigiTask_ratio_amplitude_vs_simhits_depth4_%s", sub);
245 sprintf(histo,
"HcalDigiTask_gain_capId0_Depth1_%s", sub);
247 sprintf(histo,
"HcalDigiTask_gain_capId1_Depth1_%s", sub);
249 sprintf(histo,
"HcalDigiTask_gain_capId2_Depth1_%s", sub);
251 sprintf(histo,
"HcalDigiTask_gain_capId3_Depth1_%s", sub);
254 sprintf(histo,
"HcalDigiTask_gain_capId0_Depth2_%s", sub);
256 sprintf(histo,
"HcalDigiTask_gain_capId1_Depth2_%s", sub);
258 sprintf(histo,
"HcalDigiTask_gain_capId2_Depth2_%s", sub);
260 sprintf(histo,
"HcalDigiTask_gain_capId3_Depth2_%s", sub);
263 sprintf(histo,
"HcalDigiTask_gainWidth_capId0_Depth1_%s", sub);
264 book1D(histo, gainWidthLim);
265 sprintf(histo,
"HcalDigiTask_gainWidth_capId1_Depth1_%s", sub);
266 book1D(histo, gainWidthLim);
267 sprintf(histo,
"HcalDigiTask_gainWidth_capId2_Depth1_%s", sub);
268 book1D(histo, gainWidthLim);
269 sprintf(histo,
"HcalDigiTask_gainWidth_capId3_Depth1_%s", sub);
270 book1D(histo, gainWidthLim);
272 sprintf(histo,
"HcalDigiTask_gainWidth_capId0_Depth2_%s", sub);
273 book1D(histo, gainWidthLim);
274 sprintf(histo,
"HcalDigiTask_gainWidth_capId1_Depth2_%s", sub);
275 book1D(histo, gainWidthLim);
276 sprintf(histo,
"HcalDigiTask_gainWidth_capId2_Depth2_%s", sub);
277 book1D(histo, gainWidthLim);
278 sprintf(histo,
"HcalDigiTask_gainWidth_capId3_Depth2_%s", sub);
279 book1D(histo, gainWidthLim);
281 sprintf(histo,
"HcalDigiTask_pedestal_capId0_Depth1_%s", sub);
283 sprintf(histo,
"HcalDigiTask_pedestal_capId1_Depth1_%s", sub);
285 sprintf(histo,
"HcalDigiTask_pedestal_capId2_Depth1_%s", sub);
287 sprintf(histo,
"HcalDigiTask_pedestal_capId3_Depth1_%s", sub);
290 sprintf(histo,
"HcalDigiTask_pedestal_capId0_Depth2_%s", sub);
292 sprintf(histo,
"HcalDigiTask_pedestal_capId1_Depth2_%s", sub);
294 sprintf(histo,
"HcalDigiTask_pedestal_capId2_Depth2_%s", sub);
296 sprintf(histo,
"HcalDigiTask_pedestal_capId3_Depth2_%s", sub);
299 sprintf(histo,
"HcalDigiTask_pedestal_width_capId0_Depth1_%s", sub);
300 book1D(histo, pedWidthLim);
301 sprintf(histo,
"HcalDigiTask_pedestal_width_capId1_Depth1_%s", sub);
302 book1D(histo, pedWidthLim);
303 sprintf(histo,
"HcalDigiTask_pedestal_width_capId2_Depth1_%s", sub);
304 book1D(histo, pedWidthLim);
305 sprintf(histo,
"HcalDigiTask_pedestal_width_capId3_Depth1_%s", sub);
306 book1D(histo, pedWidthLim);
308 sprintf(histo,
"HcalDigiTask_pedestal_width_capId0_Depth2_%s", sub);
309 book1D(histo, pedWidthLim);
310 sprintf(histo,
"HcalDigiTask_pedestal_width_capId1_Depth2_%s", sub);
311 book1D(histo, pedWidthLim);
312 sprintf(histo,
"HcalDigiTask_pedestal_width_capId2_Depth2_%s", sub);
313 book1D(histo, pedWidthLim);
314 sprintf(histo,
"HcalDigiTask_pedestal_width_capId3_Depth2_%s", sub);
315 book1D(histo, pedWidthLim);
320 sprintf(histo,
"HcalDigiTask_gain_capId0_Depth3_%s", sub);
322 sprintf(histo,
"HcalDigiTask_gain_capId1_Depth3_%s", sub);
324 sprintf(histo,
"HcalDigiTask_gain_capId2_Depth3_%s", sub);
326 sprintf(histo,
"HcalDigiTask_gain_capId3_Depth3_%s", sub);
329 sprintf(histo,
"HcalDigiTask_gainWidth_capId0_Depth3_%s", sub);
330 book1D(histo, gainWidthLim);
331 sprintf(histo,
"HcalDigiTask_gainWidth_capId1_Depth3_%s", sub);
332 book1D(histo, gainWidthLim);
333 sprintf(histo,
"HcalDigiTask_gainWidth_capId2_Depth3_%s", sub);
334 book1D(histo, gainWidthLim);
335 sprintf(histo,
"HcalDigiTask_gainWidth_capId3_Depth3_%s", sub);
336 book1D(histo, gainWidthLim);
338 sprintf(histo,
"HcalDigiTask_pedestal_capId0_Depth3_%s", sub);
340 sprintf(histo,
"HcalDigiTask_pedestal_capId1_Depth3_%s", sub);
342 sprintf(histo,
"HcalDigiTask_pedestal_capId2_Depth3_%s", sub);
344 sprintf(histo,
"HcalDigiTask_pedestal_capId3_Depth3_%s", sub);
347 sprintf(histo,
"HcalDigiTask_pedestal_width_capId0_Depth3_%s", sub);
348 book1D(histo, pedWidthLim);
349 sprintf(histo,
"HcalDigiTask_pedestal_width_capId1_Depth3_%s", sub);
350 book1D(histo, pedWidthLim);
351 sprintf(histo,
"HcalDigiTask_pedestal_width_capId2_Depth3_%s", sub);
352 book1D(histo, pedWidthLim);
353 sprintf(histo,
"HcalDigiTask_pedestal_width_capId3_Depth3_%s", sub);
354 book1D(histo, pedWidthLim);
359 sprintf(histo,
"HcalDigiTask_gain_capId0_Depth4_%s", sub);
361 sprintf(histo,
"HcalDigiTask_gain_capId1_Depth4_%s", sub);
363 sprintf(histo,
"HcalDigiTask_gain_capId2_Depth4_%s", sub);
365 sprintf(histo,
"HcalDigiTask_gain_capId3_Depth4_%s", sub);
368 sprintf(histo,
"HcalDigiTask_gainWidth_capId0_Depth4_%s", sub);
369 book1D(histo, gainWidthLim);
370 sprintf(histo,
"HcalDigiTask_gainWidth_capId1_Depth4_%s", sub);
371 book1D(histo, gainWidthLim);
372 sprintf(histo,
"HcalDigiTask_gainWidth_capId2_Depth4_%s", sub);
373 book1D(histo, gainWidthLim);
374 sprintf(histo,
"HcalDigiTask_gainWidth_capId3_Depth4_%s", sub);
375 book1D(histo, gainWidthLim);
378 sprintf(histo,
"HcalDigiTask_pedestal_capId0_Depth4_%s", sub);
380 sprintf(histo,
"HcalDigiTask_pedestal_capId1_Depth4_%s", sub);
382 sprintf(histo,
"HcalDigiTask_pedestal_capId2_Depth4_%s", sub);
384 sprintf(histo,
"HcalDigiTask_pedestal_capId3_Depth4_%s", sub);
387 sprintf(histo,
"HcalDigiTask_pedestal_width_capId0_Depth4_%s", sub);
388 book1D(histo, pedWidthLim);
389 sprintf(histo,
"HcalDigiTask_pedestal_width_capId1_Depth4_%s", sub);
390 book1D(histo, pedWidthLim);
391 sprintf(histo,
"HcalDigiTask_pedestal_width_capId2_Depth4_%s", sub);
392 book1D(histo, pedWidthLim);
393 sprintf(histo,
"HcalDigiTask_pedestal_width_capId3_Depth4_%s", sub);
394 book1D(histo, pedWidthLim);
398 sprintf(histo,
"HcalDigiTask_gainMap_Depth1_%s", sub);
399 book2D(histo, ietaLim, iphiLim);
400 sprintf(histo,
"HcalDigiTask_gainMap_Depth2_%s", sub);
401 book2D(histo, ietaLim, iphiLim);
402 sprintf(histo,
"HcalDigiTask_gainMap_Depth3_%s", sub);
403 book2D(histo, ietaLim, iphiLim);
404 sprintf(histo,
"HcalDigiTask_gainMap_Depth4_%s", sub);
405 book2D(histo, ietaLim, iphiLim);
407 sprintf(histo,
"HcalDigiTask_pwidthMap_Depth1_%s", sub);
408 book2D(histo, ietaLim, iphiLim);
409 sprintf(histo,
"HcalDigiTask_pwidthMap_Depth2_%s", sub);
410 book2D(histo, ietaLim, iphiLim);
411 sprintf(histo,
"HcalDigiTask_pwidthMap_Depth3_%s", sub);
412 book2D(histo, ietaLim, iphiLim);
413 sprintf(histo,
"HcalDigiTask_pwidthMap_Depth4_%s", sub);
414 book2D(histo, ietaLim, iphiLim);
440 reco<HBHEDataFrame > (
iEvent, iSetup);
442 reco<HBHEDataFrame > (
iEvent, iSetup);
444 reco<HODataFrame > (
iEvent, iSetup);
446 reco<HFDataFrame > (
iEvent, iSetup);
454 reco<HBHEDataFrame > (
iEvent, iSetup);
456 reco<HBHEDataFrame > (
iEvent, iSetup);
458 reco<HODataFrame > (
iEvent, iSetup);
460 reco<HFDataFrame > (
iEvent, iSetup);
486 if (
subdet_ ==
"HB") isubdet = 1;
487 if (
subdet_ ==
"HE") isubdet = 2;
488 if (
subdet_ ==
"HO") isubdet = 3;
489 if (
subdet_ ==
"HF") isubdet = 4;
512 double emax_Sim = -9999.;
518 iEvent.
getByLabel(
"g4SimHits",
"HcalHits", hcalHits);
521 if (isubdet != 0 &&
noise_ == 0) {
523 for (std::vector<PCaloHit>::const_iterator simhits = simhitResult->begin(); simhits != simhitResult->end(); ++simhits) {
526 double en = simhits->energy();
528 int ieta = cell.ieta();
529 if (ieta > 0) ieta--;
530 int iphi = cell.iphi() - 1;
533 if (en > emax_Sim && sub == isubdet) {
538 if (
mode_ ==
"multi" &&
539 ((sub == 4 && en < 100. && en > 1.)
540 || ((sub != 4) && en < 1. && en > 0.02))) {
550 if (
mode_ !=
"multi" && emax_Sim > 0.) seedSimHit = 1;
566 int depth = cell.
depth();
567 int iphi = cell.iphi() - 1;
568 int ieta = cell.ieta();
569 if (ieta > 0) ieta--;
570 int sub = cell.subdet();
582 if (((
nevent1 == 1 && isubdet == 1) ||
583 (
nevent2 == 1 && isubdet == 2) ||
584 (
nevent3 == 1 && isubdet == 3) ||
585 (
nevent4 == 1 && isubdet == 4)) &&
noise_ == 1 && sub == isubdet) {
593 for (
int i = 0;
i < 4;
i++) {
596 fill1D(
"HcalDigiTask_pedestal_capId" +
str(
i) +
"_Depth" +
str(depth) +
"_" +
subdet_, pedestal->getValue(
i));
601 fill2D(
"HcalDigiTask_pwidthMap_Depth" +
str(depth) +
"_" +
subdet_,
double(ieta),
double(iphi), pedWidth->
getWidth(0));
606 if (sub == isubdet) Ndig++;
610 if (sub == isubdet &&
noise_ == 0) {
618 coder.
adc2fC(*digiItr, tool);
620 double noiseADC = (*digiItr)[0].adc();
621 double noisefC = tool[0];
623 fill1D(
"HcalDigiTask_ADC0_adc_depth" +
str(depth) +
"_" +
subdet_, noiseADC);
628 fill2D(
"HcalDigiTask_ieta_iphi_occupancy_map_depth" +
str(depth) +
"_" +
subdet_,
double(ieta),
double(iphi));
636 if (ieta == ieta_Sim && iphi == iphi_Sim) closen = seedSimHit;
638 for (
int ii = 0;
ii < tool.size();
ii++) {
639 int capid = (*digiItr)[
ii].capid();
641 double val = (tool[
ii] - calibrations.
pedestal(capid));
650 if (depth == 1) strtmp =
"HcalDigiTask_all_amplitudes_vs_bin_1D_depth1_" +
subdet_;
651 else strtmp =
"HcalDigiTask_all_amplitudes_vs_bin_1D_depth2_" +
subdet_;
656 strtmp =
"HcalDigiTask_signal_amplitude_vs_bin_all_depths_" +
subdet_;
662 if (isubdet != 4 &&
ii >= 4 &&
ii <= 7) {
664 if (depth == 1) ampl1 += val;
665 if (depth == 2) ampl2 += val;
666 if (depth == 3) ampl3 += val;
667 if (depth == 4) ampl4 += val;
671 if (depth == 1) ampl1_c += val;
672 if (depth == 2) ampl2_c += val;
673 if (depth == 3) ampl3_c += val;
674 if (depth == 4) ampl4_c += val;
679 if (isubdet == 4 &&
ii >= 2 &&
ii <= 4) {
681 if (depth == 1) ampl1 += val;
682 if (depth == 2) ampl2 += val;
683 if (depth == 3) ampl3 += val;
684 if (depth == 4) ampl4 += val;
687 if (depth == 1) ampl1_c += val;
688 if (depth == 2) ampl2_c += val;
689 if (depth == 3) ampl3_c += val;
690 if (depth == 4) ampl4_c += val;
710 strtmp =
"HcalDigiTask_sum_all_amplitudes_" +
subdet_;
714 if (ampl1 > 10. || ampl2 > 10. || ampl3 > 10. || ampl4 > 10.) indigis++;
717 if (ampl1 > 30. && depth == 1 && closen == 1 && isubdet != 4) {
718 double fBin5 = tool[4] - calibrations.
pedestal((*digiItr)[4].capid());
719 double fBin67 = tool[5] + tool[6]
720 - calibrations.
pedestal((*digiItr)[5].capid())
721 - calibrations.
pedestal((*digiItr)[6].capid());
726 strtmp =
"HcalDigiTask_bin_5_frac_" +
subdet_;
728 strtmp =
"HcalDigiTask_bin_6_7_frac_" +
subdet_;
734 if (isubdet == 4 && ampl1 > 30. && depth == 1) {
735 double fBin5 = tool[2] - calibrations.
pedestal((*digiItr)[2].capid());
736 double fBin67 = tool[3] + tool[4]
737 - calibrations.
pedestal((*digiItr)[3].capid())
738 - calibrations.
pedestal((*digiItr)[4].capid());
741 strtmp =
"HcalDigiTask_bin_5_frac_" +
subdet_;
743 strtmp =
"HcalDigiTask_bin_6_7_frac_" +
subdet_;
748 strtmp =
"HcalDigiTask_signal_amplitude_" +
subdet_;
750 strtmp =
"HcalDigiTask_signal_amplitude_depth1_" +
subdet_;
752 strtmp =
"HcalDigiTask_signal_amplitude_depth2_" +
subdet_;
754 strtmp =
"HcalDigiTask_signal_amplitude_depth3_" +
subdet_;
756 strtmp =
"HcalDigiTask_signal_amplitude_depth4_" +
subdet_;
761 if (isubdet != 0 &&
noise_ == 0) {
762 strtmp =
"HcalDigiTask_number_of_amplitudes_above_10fC_" +
subdet_;
775 iEvent.
getByLabel(
"g4SimHits",
"HcalHits", hcalHits);
777 for (std::vector<PCaloHit>::const_iterator simhits = simhitResult->begin(); simhits != simhitResult->end(); ++simhits) {
780 int ieta = cell.
ieta();
781 if (ieta > 0) ieta--;
782 int iphi = cell.iphi() - 1;
783 int sub = cell.subdet();
786 if (sub == isubdet && ieta == ieta_Sim && iphi == iphi_Sim) {
787 int depth = cell.depth();
788 double en = simhits->energy();
791 if (depth == 1) ehits1 += en;
792 if (depth == 2) ehits2 += en;
793 if (depth == 3) ehits3 += en;
794 if (depth == 4) ehits4 += en;
798 strtmp =
"HcalDigiTask_amplitude_vs_simhits_" +
subdet_;
799 if (ehits > eps)
fill2D(strtmp, ehits, ampl_c);
800 strtmp =
"HcalDigiTask_amplitude_vs_simhits_depth1_" +
subdet_;
801 if (ehits1 > eps)
fill2D(strtmp, ehits1, ampl1_c);
802 strtmp =
"HcalDigiTask_amplitude_vs_simhits_depth2_" +
subdet_;
803 if (ehits2 > eps)
fill2D(strtmp, ehits2, ampl2_c);
804 strtmp =
"HcalDigiTask_amplitude_vs_simhits_depth3_" +
subdet_;
805 if (ehits3 > eps)
fill2D(strtmp, ehits3, ampl3_c);
806 strtmp =
"HcalDigiTask_amplitude_vs_simhits_depth4_" +
subdet_;
807 if (ehits4 > eps)
fill2D(strtmp, ehits4, ampl4_c);
809 strtmp =
"HcalDigiTask_amplitude_vs_simhits_profile_" +
subdet_;
810 if (ehits > eps)
fillPf(strtmp, ehits, ampl_c);
811 strtmp =
"HcalDigiTask_amplitude_vs_simhits_profile_depth1_" +
subdet_;
812 if (ehits1 > eps)
fillPf(strtmp, ehits1, ampl1_c);
813 strtmp =
"HcalDigiTask_amplitude_vs_simhits_profile_depth2_" +
subdet_;
814 if (ehits2 > eps)
fillPf(strtmp, ehits2, ampl2_c);
815 strtmp =
"HcalDigiTask_amplitude_vs_simhits_profile_depth3_" +
subdet_;
816 if (ehits3 > eps)
fillPf(strtmp, ehits3, ampl3_c);
817 strtmp =
"HcalDigiTask_amplitude_vs_simhits_profile_depth4_" +
subdet_;
818 if (ehits4 > eps)
fillPf(strtmp, ehits4, ampl4_c);
820 strtmp =
"HcalDigiTask_ratio_amplitude_vs_simhits_" +
subdet_;
821 if (ehits > eps)
fill1D(strtmp, ampl_c / ehits);
822 strtmp =
"HcalDigiTask_ratio_amplitude_vs_simhits_depth1_" +
subdet_;
823 if (ehits1 > eps)
fill1D(strtmp, ampl1_c / ehits1);
824 strtmp =
"HcalDigiTask_ratio_amplitude_vs_simhits_depth2_" +
subdet_;
825 if (ehits2 > eps)
fill1D(strtmp, ampl2_c / ehits2);
826 strtmp =
"HcalDigiTask_ratio_amplitude_vs_simhits_depth3_" +
subdet_;
827 if (ehits3 > eps)
fill1D(strtmp, ampl3_c / ehits3);
828 strtmp =
"HcalDigiTask_ratio_amplitude_vs_simhits_depth4_" +
subdet_;
829 if (ehits4 > eps)
fill1D(strtmp, ampl4_c / ehits4);
833 strtmp =
"HcalDigiTask_Ndigis_" +
subdet_;
834 fill1D(strtmp,
double(Ndig));
842 HistLim ietaLim(82, -41., 41.);
847 float fev = float (
nevtot);
850 float sumphi_1, sumphi_2, sumphi_3, sumphi_4;
853 for (
int i = 1;
i <= nx;
i++) {
859 for (
int j = 1;
j <= ny;
j++) {
863 strtmp =
"HcalDigiTask_ieta_iphi_occupancy_map_depth1_" +
subdet_;
868 strtmp =
"HcalDigiTask_ieta_iphi_occupancy_map_depth2_" +
subdet_;
873 strtmp =
"HcalDigiTask_ieta_iphi_occupancy_map_depth3_" +
subdet_;
878 strtmp =
"HcalDigiTask_ieta_iphi_occupancy_map_depth4_" +
subdet_;
886 if (ieta >= 0) ieta += 1;
888 if (ieta >= -20 && ieta <= 20) {
891 if (ieta >= 40 || ieta <= -40) {
898 if (ieta >= 0) ieta -= 1;
899 double deta = double(ieta);
902 cnorm = sumphi_1 / phi_factor;
903 strtmp =
"HcalDigiTask_occupancy_vs_ieta_depth1_" +
subdet_;
904 fill1D(strtmp, deta, cnorm);
906 cnorm = sumphi_2 / phi_factor;
907 strtmp =
"HcalDigiTask_occupancy_vs_ieta_depth2_" +
subdet_;
908 fill1D(strtmp, deta, cnorm);
910 cnorm = sumphi_3 / phi_factor;
911 strtmp =
"HcalDigiTask_occupancy_vs_ieta_depth3_" +
subdet_;
912 fill1D(strtmp, deta, cnorm);
914 cnorm = sumphi_4 / phi_factor;
915 strtmp =
"HcalDigiTask_occupancy_vs_ieta_depth4_" +
subdet_;
916 fill1D(strtmp, deta, cnorm);
952 msm_->find(name)->second->Fill(X, weight);
960 msm_->find(name)->second->Fill(X, Y, weight);
968 msm_->find(name)->second->Fill(X, Y);
972 if (!
msm_->count(name))
return NULL;
973 else return msm_->find(name)->second;
977 std::stringstream
out;
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
edm::ESHandle< CaloGeometry > geometry
void setBinContent(int binx, double content)
set content of bin (1-D)
std::vector< PCaloHit > PCaloHitContainer
HcalSubdetector subdet() const
get the subdetector
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
#define DEFINE_FWK_MODULE(type)
std::vector< T >::const_iterator const_iterator
double pedestal(int fCapId) const
get pedestal for capid=0..3
void reco(const edm::Event &iEvent, const edm::EventSetup &iSetup)
float getValue(int fCapId) const
get value for capId = 0..3
virtual void analyze(const edm::Event &, const edm::EventSetup &)
float getValue(int fCapId) const
get value for capId = 0..3
void book1D(std::string name, int n, double min, double max)
void bookPf(std::string name, HistLim limX, HistLim limY)
std::map< std::string, MonitorElement * > * msm_
int depth() const
get the tower depth
const T & max(const T &a, const T &b)
MonitorElement * monitor(std::string name)
virtual void adc2fC(const HBHEDataFrame &df, CaloSamples &lf) const
void fillPf(std::string name, double X, double Y)
void fill2D(std::string name, double X, double Y, double weight=1)
int ieta() const
get the cell ieta
HcalDigisValidation(const edm::ParameterSet &)
MonitorElement * bookProfile(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, const char *option="s")
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
void book2D(std::string name, HistLim limX, HistLim limY)
void fill1D(std::string name, double X, double weight=1)
float getWidth(int fCapId) const
get width (sqrt(sigma_i_i)) for capId = 0..3
T const * product() const
double getBinContent(int binx) const
get content of bin (1-D)
edm::ESHandle< HcalDbService > conditions
MonitorElement * book2D(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY)
Book 2D histogram.
void booking(std::string subdetopt, int bnoise, int bmc)
void setCurrentFolder(const std::string &fullpath)