30 for (
int i = 0;
i < 4;
i++)
32 for (
int k = 0;
k < 4;
k++)
33 state.push_back(
true);
58 cout <<
"WARNING - incompatible cfg options: nevtsample = " <<
m_nevtsample <<
", pedValflag = " << m_pedValflag
60 cout <<
"Setting pedValflag = 0" << endl;
72 hbHists.ALLPEDS =
new TH1F(
"HBHE All Pedestals",
"HBHE All Peds", 10, 0, 9);
73 hbHists.PEDRMS =
new TH1F(
"HBHE All Pedestal Widths",
"HBHE All Pedestal RMS", 100, 0, 3);
74 hbHists.PEDMEAN =
new TH1F(
"HBHE All Pedestal Means",
"HBHE All Pedestal Means", 100, 0, 9);
75 hbHists.CHI2 =
new TH1F(
"HBHE Chi2/ndf for whole range Gauss fit",
"HBHE Chi2/ndf Gauss", 200, 0., 50.);
77 hoHists.ALLPEDS =
new TH1F(
"HO All Pedestals",
"HO All Peds", 10, 0, 9);
78 hoHists.PEDRMS =
new TH1F(
"HO All Pedestal Widths",
"HO All Pedestal RMS", 100, 0, 3);
79 hoHists.PEDMEAN =
new TH1F(
"HO All Pedestal Means",
"HO All Pedestal Means", 100, 0, 9);
80 hoHists.CHI2 =
new TH1F(
"HO Chi2/ndf for whole range Gauss fit",
"HO Chi2/ndf Gauss", 200, 0., 50.);
82 hfHists.ALLPEDS =
new TH1F(
"HF All Pedestals",
"HF All Peds", 10, 0, 9);
83 hfHists.PEDRMS =
new TH1F(
"HF All Pedestal Widths",
"HF All Pedestal RMS", 100, 0, 3);
84 hfHists.PEDMEAN =
new TH1F(
"HF All Pedestal Means",
"HF All Pedestal Means", 100, 0, 9);
85 hfHists.CHI2 =
new TH1F(
"HF Chi2/ndf for whole range Gauss fit",
"HF Chi2/ndf Gauss", 200, 0., 50.);
91 for (
int i = 0;
i < 16;
i++)
92 _meot->second[
i].first->Delete();
95 for (
int i = 0;
i < 16;
i++)
96 _meot->second[
i].first->Delete();
99 for (
int i = 0;
i < 16;
i++)
100 _meot->second[
i].first->Delete();
121 m_file =
new TFile(m_outputFileROOT.c_str(),
"RECREATE");
149 throw(
int) hbhe.
size();
182 throw(
int) ho.
size();
210 throw(
int) hf.
size();
253 static const int bins = 10;
254 static const int bins2 = 100;
257 map<int, PEDBUNCH> _mei;
258 static map<HcalDetId, map<int, float> > QieCalibMap;
259 string type =
"HBHE";
262 if (detid.
ieta() < 16)
264 if (detid.
ieta() > 16)
266 if (detid.
ieta() == 16) {
267 if (detid.
depth() < 3)
269 if (detid.
depth() == 3)
277 _meot = toolT.find(detid);
280 if (
_meot == toolT.end()) {
281 map<int, PEDBUNCH>
insert;
282 map<int, float> qiecalib;
284 for (
int i = 0;
i < 4;
i++) {
293 name,
"%s Pedestal, eta=%d phi=%d d=%d cap=%d", type.c_str(), detid.
ieta(), detid.
iphi(), detid.
depth(),
i);
294 insert[
i].first =
new TH1F(name, name, bins, lo, hi);
296 "%s Product, eta=%d phi=%d d=%d caps=%d*%d",
303 insert[4 +
i].first =
new TH1F(name, name, bins2, 0., 100.);
305 "%s Product, eta=%d phi=%d d=%d caps=%d*%d",
312 insert[8 +
i].first =
new TH1F(name, name, bins2, 0., 100.);
314 "%s Product, eta=%d phi=%d d=%d caps=%d*%d",
321 insert[12 +
i].first =
new TH1F(name, name, bins2, 0., 100.);
323 sprintf(name,
"%s Signal in TS 4+5, eta=%d phi=%d d=%d", type.c_str(), detid.
ieta(), detid.
iphi(), detid.
depth());
324 insert[16].first =
new TH1F(name, name, 21, -0.5, 20.5);
326 name,
"%s Signal in TS 4+5-2-3, eta=%d phi=%d d=%d", type.c_str(), detid.
ieta(), detid.
iphi(), detid.
depth());
327 insert[17].first =
new TH1F(name, name, 21, -10.5, 10.5);
329 "%s Signal in TS 4+5-(0+1+2+3)/2., eta=%d phi=%d d=%d",
334 insert[18].first =
new TH1F(name, name, 21, -10.5, 10.5);
336 _meot = toolT.find(detid);
338 QieCalibMap[detid] = qiecalib;
341 _mei =
_meot->second;
353 _mei[qie1.
capid()].first->Reset();
354 _mei[qie1.
capid() + 4].first->Reset();
355 _mei[qie1.
capid() + 8].first->Reset();
356 _mei[qie1.
capid() + 12].first->Reset();
361 _mei[qie1.
capid()].first->Fill(qie1.
adc());
363 _mei[qie1.
capid()].first->Fill(charge1);
364 }
else if (qie1.
adc() >=
bins) {
365 _mei[qie1.
capid()].first->AddBinContent(bins + 1, 1);
371 map<int, float> qiecalib = QieCalibMap[detid];
374 if (charge1 * charge2 < bins2) {
375 _mei[qie1.
capid() + 4 *
flag].first->Fill(charge1 * charge2);
377 _mei[qie1.
capid() + 4 *
flag].first->Fill(bins2);
402 _meot = toolT.find(detid);
403 map<int, PEDBUNCH> _mei =
_meot->second;
404 _mei[16].first->Fill(qie4.
adc() + qie5.
adc() - 1.);
405 _mei[17].first->Fill(qie4.
adc() + qie5.
adc() - qie2.
adc() - qie3.
adc());
406 _mei[18].first->Fill(qie4.
adc() + qie5.
adc() - (qie0.
adc() + qie1.
adc() + qie2.
adc() + qie3.
adc()) / 2.);
412 char PedSampleNum[20];
415 sprintf(PedSampleNum,
"HB_Sample%d",
sample);
417 m_file->mkdir(PedSampleNum);
420 sprintf(PedSampleNum,
"HO_Sample%d",
sample);
422 m_file->mkdir(PedSampleNum);
425 sprintf(PedSampleNum,
"HF_Sample%d",
sample);
427 m_file->mkdir(PedSampleNum);
447 for (
int i = 0;
i < 4;
i++) {
448 TF1*
fit =
_meot->second[
i].first->GetFunction(
"gaus");
450 if (fit->GetNDF() != 0)
451 chi2[
i] = fit->GetChisquare() / fit->GetNDF();
452 cap[
i] = fit->GetParameter(1);
453 sig[
i][
i] = fit->GetParameter(2);
454 dcap[
i] = fit->GetParError(1);
455 dsig[
i][
i] = fit->GetParError(2);
458 for (
int i = 0;
i < 4;
i++) {
459 cap[
i] =
_meot->second[
i].first->GetMean();
460 sig[
i][
i] =
_meot->second[
i].first->GetRMS();
473 for (
int i = 0;
i < 4;
i++) {
476 _meot->second[
i].first->GetXaxis()->SetTitle(
"ADC");
478 _meot->second[
i].first->GetXaxis()->SetTitle(
"Charge, fC");
479 _meot->second[
i].first->GetYaxis()->SetTitle(
"CapID samplings");
480 _meot->second[
i].first->Write();
483 _meot->second[
i].second.first[0].push_back(cap[
i]);
484 _meot->second[
i].second.first[1].push_back(dcap[i]);
485 _meot->second[
i].second.first[2].push_back(sig[i][i]);
486 _meot->second[
i].second.first[3].push_back(dsig[i][i]);
487 _meot->second[
i].second.first[4].push_back(chi2[i]);
489 PedMeans->Fill(cap[
i]);
490 PedWidths->Fill(sig[i][i]);
495 for (
int i = 16;
i < 19;
i++) {
497 _meot->second[
i].first->GetXaxis()->SetTitle(
"ADC");
499 _meot->second[
i].first->GetXaxis()->SetTitle(
"Charge, fC");
500 _meot->second[
i].first->GetYaxis()->SetTitle(
"Events");
501 _meot->second[
i].first->Write();
506 sig[0][0] = sig[0][0] * sig[0][0];
507 sig[1][1] = sig[1][1] * sig[1][1];
508 sig[2][2] = sig[2][2] * sig[2][2];
509 sig[3][3] = sig[3][3] * sig[3][3];
513 sig[0][1] =
_meot->second[4].first->GetMean() - cap[0] * cap[1];
514 sig[0][2] =
_meot->second[8].first->GetMean() - cap[0] * cap[2];
515 sig[1][2] =
_meot->second[5].first->GetMean() - cap[1] * cap[2];
516 sig[1][3] =
_meot->second[9].first->GetMean() - cap[1] * cap[3];
517 sig[2][3] =
_meot->second[6].first->GetMean() - cap[2] * cap[3];
518 sig[0][3] =
_meot->second[12].first->GetMean() - cap[0] * cap[3];
519 sig[1][0] =
_meot->second[13].first->GetMean() - cap[1] * cap[0];
520 sig[2][0] =
_meot->second[10].first->GetMean() - cap[2] * cap[0];
521 sig[2][1] =
_meot->second[14].first->GetMean() - cap[2] * cap[1];
522 sig[3][1] =
_meot->second[11].first->GetMean() - cap[3] * cap[1];
523 sig[3][2] =
_meot->second[15].first->GetMean() - cap[3] * cap[2];
524 sig[3][0] =
_meot->second[7].first->GetMean() - cap[3] * cap[0];
527 for (
int i = 0;
i < 4;
i++) {
529 _meot->second[
i].second.first[5].push_back(sig[
i][(
i + 1) % 4]);
530 _meot->second[
i].second.first[6].push_back(2 * sig[
i][
i] * dsig[
i][
i]);
531 _meot->second[
i].second.first[7].push_back(sig[i][(i + 2) % 4]);
532 _meot->second[
i].second.first[8].push_back(2 * sig[i][i] * dsig[i][i]);
533 _meot->second[
i].second.first[9].push_back(sig[i][(i + 3) % 4]);
534 _meot->second[
i].second.first[10].push_back(2 * sig[i][i] * dsig[i][i]);
539 _meot->second[
i + 4].first->GetXaxis()->SetTitle(
"ADC^2");
541 _meot->second[
i + 4].first->GetXaxis()->SetTitle(
"Charge^2, fC^2");
542 _meot->second[
i + 4].first->GetYaxis()->SetTitle(
"2-CapID samplings");
543 _meot->second[
i + 4].first->Write();
545 _meot->second[
i + 8].first->GetXaxis()->SetTitle(
"ADC^2");
547 _meot->second[
i + 8].first->GetXaxis()->SetTitle(
"Charge^2, fC^2");
548 _meot->second[
i + 8].first->GetYaxis()->SetTitle(
"2-CapID samplings");
549 _meot->second[
i + 8].first->Write();
551 _meot->second[
i + 12].first->GetXaxis()->SetTitle(
"ADC^2");
553 _meot->second[
i + 12].first->GetXaxis()->SetTitle(
"Charge^2, fC^2");
554 _meot->second[
i + 12].first->GetYaxis()->SetTitle(
"2-CapID samplings");
555 _meot->second[
i + 12].first->Write();
562 sig[1][0] = sig[0][1];
563 sig[2][0] = sig[0][2];
564 sig[2][1] = sig[1][2];
565 sig[3][1] = sig[1][3];
566 sig[3][2] = sig[2][3];
567 sig[0][3] = sig[3][0];
643 for (
int i = 0;
i < 4;
i++)
692 map<int, std::vector<double> > AverageValues;
695 for (
int i = 0;
i < 4;
i++) {
698 sprintf(name,
"Pedestal trend, eta=%d phi=%d d=%d cap=%d", detid.
ieta(), detid.
iphi(), detid.
depth(),
i);
699 int bins =
_meot->second[
i].second.first[0].size();
702 _meot->second[
i].second.second.push_back(
new TH1F(name, name, bins, lo, hi));
703 sprintf(name,
"Width trend, eta=%d phi=%d d=%d cap=%d", detid.
ieta(), detid.
iphi(), detid.
depth(),
i);
704 bins =
_meot->second[
i].second.first[2].size();
705 hi = (
float)bins + 0.5;
706 _meot->second[
i].second.second.push_back(
new TH1F(name, name, bins, lo, hi));
708 "Correlation trend, eta=%d phi=%d d=%d caps=%d*%d",
714 bins =
_meot->second[
i].second.first[5].size();
715 hi = (
float)bins + 0.5;
716 _meot->second[
i].second.second.push_back(
new TH1F(name, name, bins, lo, hi));
726 std::vector<double>::iterator sample_it;
729 for (sample_it =
_meot->second[
i].second.first[0].begin(); sample_it !=
_meot->second[
i].second.first[0].end();
731 _meot->second[
i].second.second[0]->SetBinContent(++j, *sample_it);
734 for (sample_it =
_meot->second[
i].second.first[1].begin(); sample_it !=
_meot->second[
i].second.first[1].end();
736 _meot->second[
i].second.second[0]->SetBinError(++j, *sample_it);
739 _meot->second[
i].second.second[0]->Fit(
"pol0",
"Q");
740 TF1*
fit =
_meot->second[
i].second.second[0]->GetFunction(
"pol0");
741 AverageValues[0].push_back(fit->GetParameter(0));
742 AverageValues[1].push_back(fit->GetParError(0));
744 AverageValues[2].push_back(fit->GetChisquare() / fit->GetNDF());
746 AverageValues[2].push_back(fit->GetChisquare());
748 _meot->second[
i].second.second[0]->GetXaxis()->SetTitle(name);
749 _meot->second[
i].second.second[0]->GetYaxis()->SetTitle(
"Pedestal value");
750 _meot->second[
i].second.second[0]->Write();
753 for (sample_it =
_meot->second[
i].second.first[2].begin(); sample_it !=
_meot->second[
i].second.first[2].end();
755 _meot->second[
i].second.second[1]->SetBinContent(++j, *sample_it);
758 for (sample_it =
_meot->second[
i].second.first[3].begin(); sample_it !=
_meot->second[
i].second.first[3].end();
760 _meot->second[
i].second.second[1]->SetBinError(++j, *sample_it);
762 _meot->second[
i].second.second[1]->GetXaxis()->SetTitle(name);
763 _meot->second[
i].second.second[1]->GetYaxis()->SetTitle(
"Pedestal width");
764 _meot->second[
i].second.second[1]->Write();
767 for (sample_it =
_meot->second[
i].second.first[5].begin(); sample_it !=
_meot->second[
i].second.first[5].end();
769 _meot->second[
i].second.second[2]->SetBinContent(++j, *sample_it);
772 for (sample_it =
_meot->second[
i].second.first[6].begin(); sample_it !=
_meot->second[
i].second.first[6].end();
774 _meot->second[
i].second.second[2]->SetBinError(++j, *sample_it);
776 _meot->second[
i].second.second[2]->GetXaxis()->SetTitle(name);
777 _meot->second[
i].second.second[2]->GetYaxis()->SetTitle(
"Close correlation");
778 _meot->second[
i].second.second[2]->Write();
807 for (sample_it =
_meot->second[
i].second.first[4].begin(); sample_it !=
_meot->second[
i].second.first[4].end();
809 Chi2->Fill(*sample_it);
813 CapidAverage =
new TH1F(
"Constant fit: Pedestal Values",
814 "Constant fit: Pedestal Values",
815 AverageValues[0].
size(),
817 AverageValues[0].
size());
818 std::vector<double>::iterator sample_it;
820 for (sample_it = AverageValues[0].
begin(); sample_it != AverageValues[0].end(); ++sample_it) {
821 CapidAverage->SetBinContent(++j, *sample_it);
824 for (sample_it = AverageValues[1].
begin(); sample_it != AverageValues[1].end(); ++sample_it) {
825 CapidAverage->SetBinError(++j, *sample_it);
827 CapidChi2 =
new TH1F(
828 "Constant fit: Chi2/ndf",
"Constant fit: Chi2/ndf", AverageValues[2].
size(), 0., AverageValues[2].
size());
830 for (sample_it = AverageValues[2].
begin(); sample_it != AverageValues[2].end(); ++sample_it) {
831 CapidChi2->SetBinContent(++j, *sample_it);
834 Chi2->GetXaxis()->SetTitle(
"Chi2/ndf");
835 Chi2->GetYaxis()->SetTitle(
"50 x [(16+2) x 4 x 4] `events`");
837 CapidAverage->GetYaxis()->SetTitle(
"Pedestal value");
838 CapidAverage->GetXaxis()->SetTitle(
"(16+2) x 4 x 4 `events`");
839 CapidAverage->Write();
840 CapidChi2->GetYaxis()->SetTitle(
"Chi2/ndf");
841 CapidChi2->GetXaxis()->SetTitle(
"(16+2) x 4 x 4 `events`");
858 float RefPedSigs[4][4];
860 float RawPedSigs[4][4];
861 map<HcalDetId, bool> isinRaw;
862 map<HcalDetId, bool> isinRef;
865 std::ofstream PedValLog;
866 PedValLog.open(
"HcalPedVal.log");
868 if (nstat[0] + nstat[1] + nstat[2] + nstat[3] < 2500)
869 PedValLog <<
"HcalPedVal: warning - low statistics" << std::endl;
871 for (
int i = 0;
i < (
int)RawChanns.size();
i++) {
874 for (
int i = 0;
i < (
int)RefChanns.size();
i++) {
876 isinRaw[detid] =
false;
877 isinRef[detid] =
true;
879 for (
int i = 0;
i < (
int)RawChanns.size();
i++) {
881 isinRaw[detid] =
true;
882 if (isinRef[detid] ==
false) {
883 PedValLog <<
"HcalPedVal: channel " << detid <<
" not found in reference set" << std::endl;
884 std::cerr <<
"HcalPedVal: channel " << detid <<
" not found in reference set" << std::endl;
890 for (
int i = 0;
i < (
int)RefChanns.size();
i++) {
892 for (
int icap = 0; icap < 4; icap++) {
894 for (
int icap2 = icap; icap2 < 4; icap2++) {
895 RefPedSigs[icap][icap2] = fRefPedestalWidths->
getValues(detid)->
getSigma(icap, icap2);
897 RefPedSigs[icap2][icap] = RefPedSigs[icap][icap2];
902 if (isinRaw[detid]) {
903 for (
int icap = 0; icap < 4; icap++) {
905 for (
int icap2 = icap; icap2 < 4; icap2++) {
906 RawPedSigs[icap][icap2] = fRawPedestalWidths->
getValues(detid)->
getSigma(icap, icap2);
908 RawPedSigs[icap2][icap] = RawPedSigs[icap][icap2];
913 for (
int icap = 0; icap < 4; icap++) {
914 if (RawPedVals[icap] < 1. || RawPedSigs[icap][icap] < 0.01)
915 isinRaw[detid] =
false;
916 for (
int icap2 = icap; icap2 < 4; icap2++) {
917 if (fabs(RawPedSigs[icap][icap2] /
sqrt(RawPedSigs[icap][icap] * RawPedSigs[icap2][icap2])) > 1.)
918 isinRaw[detid] =
false;
924 if (isinRaw[detid]) {
925 for (
int icap = 0; icap < 4; icap++) {
926 int icap2 = (icap + 1) % 4;
927 float width =
sqrt(RawPedSigs[icap][icap]);
928 float erof1 = width /
sqrt((
float)nstat[icap]);
929 float erof2 =
sqrt(erof1 * erof1 + RawPedSigs[icap][icap] / (
float)nstat[icap]);
930 float erofwidth = width /
sqrt(2. * nstat[icap]);
931 float diffof1 = RawPedVals[icap] - RefPedVals[icap];
932 float diffof2 = RawPedVals[icap] + RawPedVals[icap2] - RefPedVals[icap] - RefPedVals[icap2];
933 float diffofw = width -
sqrt(RefPedSigs[icap][icap]);
939 if (nTS == 1 && fabs(diffof1) > 0.5 + erof1) {
941 PedValLog <<
"HcalPedVal: drift in channel " << detid <<
" cap " << icap <<
": " << RawPedVals[icap] <<
" - " 942 << RefPedVals[icap] <<
" = " << diffof1 << std::endl;
944 if (nTS == 2 && fabs(diffof2) > 0.5 + erof2) {
946 PedValLog <<
"HcalPedVal: drift in channel " << detid <<
" caps " << icap <<
"+" << icap2 <<
": " 947 << RawPedVals[icap] <<
"+" << RawPedVals[icap2] <<
" - " << RefPedVals[icap] <<
"+" 948 << RefPedVals[icap2] <<
" = " << diffof2 << std::endl;
950 if (fabs(diffofw) > 0.15 * width + erofwidth) {
952 PedValLog <<
"HcalPedVal: width changed in channel " << detid <<
" cap " << icap <<
": " << width <<
" - " 953 <<
sqrt(RefPedSigs[icap][icap]) <<
" = " << diffofw << std::endl;
960 PedValLog <<
"HcalPedVal: no valid data from channel " << detid << std::endl;
962 HcalPedestal item(detid, RefPedVals[0], RefPedVals[1], RefPedVals[2], RefPedVals[3]);
965 for (
int icap = 0; icap < 4; icap++) {
966 for (
int icap2 = icap; icap2 < 4; icap2++)
967 widthsp.
setSigma(icap2, icap, RefPedSigs[icap2][icap]);
976 PedValLog <<
"HcalPedVal: all pedestals checked OK" << std::endl;
980 if (erflag % 100000 == 0) {
981 for (
int i = 0;
i < (
int)RefChanns.size();
i++) {
983 if (isinRaw[detid]) {
985 for (
int icap = 0; icap < 4; icap++) {
987 for (
int icap2 = icap; icap2 < 4; icap2++) {
988 RefPedSigs[icap][icap2] = fRefPedestalWidths->
getValues(detid)->
getSigma(icap, icap2);
990 RefPedSigs[icap2][icap] = RefPedSigs[icap][icap2];
991 widthsp.
setSigma(icap2, icap, RefPedSigs[icap2][icap]);
995 HcalPedestal item(detid, RefPedVals[0], RefPedVals[1], RefPedVals[2], RefPedVals[3]);
1003 for (
int i = 0;
i < (
int)RawChanns.size();
i++) {
1005 if (isinRaw[detid]) {
1007 for (
int icap = 0; icap < 4; icap++) {
1009 for (
int icap2 = icap; icap2 < 4; icap2++) {
1010 RawPedSigs[icap][icap2] = fRawPedestalWidths->
getValues(detid)->
getSigma(icap, icap2);
1012 RawPedSigs[icap2][icap] = RawPedSigs[icap][icap2];
1013 widthsp.
setSigma(icap2, icap, RawPedSigs[icap2][icap]);
1017 HcalPedestal item(detid, RawPedVals[0], RawPedVals[1], RawPedVals[2], RawPedVals[3]);
T getUntrackedParameter(std::string const &, T const &) const
HcalPedestals * fRawPedestals
void per2CapsHists(int flag, int id, const HcalDetId detid, const HcalQIESample &qie1, const HcalQIESample &qie2, std::map< HcalDetId, std::map< int, PEDBUNCH > > &toolT, const HcalDbService &cond)
HcalPedestalAnalysis(const edm::ParameterSet &ps)
Constructor.
float getSigma(int fCapId1, int fCapId2) const
get correlation element for capId1/2 = 0..3
int size() const
total number of samples in the digi
HcalDetId const & id() const
std::string m_outputFileMean
std::vector< T >::const_iterator const_iterator
HcalQIESample const & sample(int i) const
access a sample
const HcalTopology * fTopology
const Item * getValues(DetId fId, bool throwOnFail=true) const
struct HcalPedestalAnalysis::@57 hoHists
const HcalQIESample & sample(int i) const
access a sample
std::vector< bool > state
const HcalPedestalWidths * fRefPedestalWidths
void processEvent(const HBHEDigiCollection &hbhe, const HODigiCollection &ho, const HFDigiCollection &hf, const HcalDbService &cond)
std::map< HcalDetId, std::map< int, PEDBUNCH > >::iterator _meot
const HcalQIECoder * m_coder
~HcalPedestalAnalysis()
Destructor.
int depth() const
get the tower depth
int done(const HcalPedestals *fInputPedestals, const HcalPedestalWidths *fInputWidths, HcalPedestals *fOutputPedestals, HcalPedestalWidths *fOutputWidths)
const HcalQIEShape * m_shape
void GetPedConst(std::map< HcalDetId, std::map< int, PEDBUNCH > > &toolT, TH1F *PedMeans, TH1F *PedWidths)
void setup(const std::string &m_outputFileROOT)
HcalDetId const & id() const
std::vector< DetId > getAllChannels() const
int ieta() const
get the cell ieta
int size() const
total number of samples in the digi
float getValue(int fCapId) const
get value for capId = 0..3
bool insert(Storage &iStorage, ItemType *iItem, const IdTag &iIdTag)
std::string m_outputFileWidth
constexpr int adc() const
get the ADC sample
HcalPedestals * fValPedestals
std::string m_outputFileROOT
const_iterator end() const
int iphi() const
get the cell iphi
int size() const
total number of samples in the digi
HcalQIESample const & sample(int i) const
access a sample
const HcalQIECoder * getHcalCoder(const HcalGenericDetId &fId) const
struct HcalPedestalAnalysis::@57 hfHists
void AllChanHists(const HcalDetId detid, const HcalQIESample &qie0, const HcalQIESample &qie1, const HcalQIESample &qie2, const HcalQIESample &qie3, const HcalQIESample &qie4, const HcalQIESample &qie5, std::map< HcalDetId, std::map< int, PEDBUNCH > > &toolT)
const HcalQIEShape * getHcalShape(const HcalGenericDetId &fId) const
constexpr int capid() const
get the Capacitor id
const HcalPedestals * fRefPedestals
const HcalDetId & id() const
HcalPedestalWidths * fValPedestalWidths
bool addValues(const Item &myItem)
static int HcalPedVal(int nstat[4], const HcalPedestals *fRefPedestals, const HcalPedestalWidths *fRefPedestalWidths, HcalPedestals *fRawPedestals, HcalPedestalWidths *fRawPedestalWidths, HcalPedestals *fValPedestals, HcalPedestalWidths *fValPedestalWidths)
HcalPedestalWidths * fRawPedestalWidths
void Trendings(std::map< HcalDetId, std::map< int, PEDBUNCH > > &toolT, TH1F *Chi2, TH1F *CapidAverage, TH1F *CapidChi2)
struct HcalPedestalAnalysis::@57 hbHists
void setSigma(int fCapId1, int fCapId2, float fSigma)
const_iterator begin() const
float charge(const HcalQIEShape &fShape, unsigned fAdc, unsigned fCapId) const
ADC [0..127] + capid [0..3] -> fC conversion.