18 fRefPedestalWidths (0),
20 fRawPedestalWidths (0),
22 fValPedestalWidths (0)
29 for(
int k=0;
k<4;
k++)
state.push_back(
true);
50 if(m_pedValflag<0) m_pedValflag=0;
52 cout<<
"WARNING - incompatible cfg options: nevtsample = "<<
m_nevtsample<<
", pedValflag = "<<m_pedValflag<<endl;
53 cout<<
"Setting pedValflag = 0"<<endl;
56 if(m_pedValflag>1) m_pedValflag=1;
63 hbHists.ALLPEDS =
new TH1F(
"HBHE All Pedestals",
"HBHE All Peds",10,0,9);
64 hbHists.PEDRMS=
new TH1F(
"HBHE All Pedestal Widths",
"HBHE All Pedestal RMS",100,0,3);
65 hbHists.PEDMEAN=
new TH1F(
"HBHE All Pedestal Means",
"HBHE All Pedestal Means",100,0,9);
66 hbHists.CHI2=
new TH1F(
"HBHE Chi2/ndf for whole range Gauss fit",
"HBHE Chi2/ndf Gauss",200,0.,50.);
68 hoHists.ALLPEDS =
new TH1F(
"HO All Pedestals",
"HO All Peds",10,0,9);
69 hoHists.PEDRMS=
new TH1F(
"HO All Pedestal Widths",
"HO All Pedestal RMS",100,0,3);
70 hoHists.PEDMEAN=
new TH1F(
"HO All Pedestal Means",
"HO All Pedestal Means",100,0,9);
71 hoHists.CHI2=
new TH1F(
"HO Chi2/ndf for whole range Gauss fit",
"HO Chi2/ndf Gauss",200,0.,50.);
73 hfHists.ALLPEDS =
new TH1F(
"HF All Pedestals",
"HF All Peds",10,0,9);
74 hfHists.PEDRMS=
new TH1F(
"HF All Pedestal Widths",
"HF All Pedestal RMS",100,0,3);
75 hfHists.PEDMEAN=
new TH1F(
"HF All Pedestal Means",
"HF All Pedestal Means",100,0,9);
76 hfHists.CHI2=
new TH1F(
"HF Chi2/ndf for whole range Gauss fit",
"HF Chi2/ndf Gauss",200,0.,50.);
83 for(
int i=0;
i<16;
i++)
_meot->second[
i].first->Delete();
86 for(
int i=0;
i<16;
i++)
_meot->second[
i].first->Delete();
89 for(
int i=0;
i<16;
i++)
_meot->second[
i].first->Delete();
110 m_file=
new TFile(m_outputFileROOT.c_str(),
"RECREATE");
138 if(!hbhe.
size())
throw (
int)hbhe.
size();
162 if(!ho.
size())
throw (
int)ho.
size();
183 if(!hf.
size())
throw (
int)hf.
size();
214 static const int bins=10;
215 static const int bins2=100;
216 float lo=-0.5;
float hi=9.5;
217 map<int,PEDBUNCH> _mei;
218 static map<HcalDetId, map<int,float> > QieCalibMap;
219 string type =
"HBHE";
222 if(detid.
ieta()<16) type =
"HB";
223 if(detid.
ieta()>16) type =
"HE";
224 if(detid.
ieta()==16){
225 if(detid.
depth()<3) type =
"HB";
226 if(detid.
depth()==3) type =
"HE";
229 else if(
id==1) type =
"HO";
230 else if(
id==2) type =
"HF";
232 _meot = toolT.find(detid);
235 if (
_meot==toolT.end()){
237 map<int,float> qiecalib;
239 for(
int i=0;
i<4;
i++){
245 sprintf(name,
"%s Pedestal, eta=%d phi=%d d=%d cap=%d",type.c_str(),detid.
ieta(),detid.
iphi(),detid.
depth(),
i);
246 insert[
i].first =
new TH1F(name,name,bins,lo,hi);
247 sprintf(name,
"%s Product, eta=%d phi=%d d=%d caps=%d*%d",type.c_str(),detid.
ieta(),detid.
iphi(),detid.
depth(),
i,(
i+1)%4);
248 insert[4+
i].first =
new TH1F(name,name,bins2,0.,100.);
249 sprintf(name,
"%s Product, eta=%d phi=%d d=%d caps=%d*%d",type.c_str(),detid.
ieta(),detid.
iphi(),detid.
depth(),
i,(
i+2)%4);
250 insert[8+
i].first =
new TH1F(name,name,bins2,0.,100.);
251 sprintf(name,
"%s Product, eta=%d phi=%d d=%d caps=%d*%d",type.c_str(),detid.
ieta(),detid.
iphi(),detid.
depth(),
i,(
i+3)%4);
252 insert[12+
i].first =
new TH1F(name,name,bins2,0.,100.);
254 sprintf(name,
"%s Signal in TS 4+5, eta=%d phi=%d d=%d",type.c_str(),detid.
ieta(),detid.
iphi(),detid.
depth());
255 insert[16].first =
new TH1F(name,name,21,-0.5,20.5);
256 sprintf(name,
"%s Signal in TS 4+5-2-3, eta=%d phi=%d d=%d",type.c_str(),detid.
ieta(),detid.
iphi(),detid.
depth());
257 insert[17].first =
new TH1F(name,name,21,-10.5,10.5);
258 sprintf(name,
"%s Signal in TS 4+5-(0+1+2+3)/2., eta=%d phi=%d d=%d",type.c_str(),detid.
ieta(),detid.
iphi(),detid.
depth());
259 insert[18].first =
new TH1F(name,name,21,-10.5,10.5);
261 _meot = toolT.find(detid);
263 QieCalibMap[
detid]=qiecalib;
266 _mei =
_meot->second;
278 _mei[qie1.
capid()].first->Reset();
279 _mei[qie1.
capid()+4].first->Reset();
280 _mei[qie1.
capid()+8].first->Reset();
281 _mei[qie1.
capid()+12].first->Reset();
284 if (qie1.
adc()<bins){
286 else _mei[qie1.
capid()].first->Fill(charge1);
288 else if(qie1.
adc()>=bins){
289 _mei[qie1.
capid()].first->AddBinContent(bins+1,1);
295 map<int,float> qiecalib = QieCalibMap[
detid];
298 if (charge1*charge2<bins2){
299 _mei[qie1.
capid()+4*
flag].first->Fill(charge1*charge2);
302 _mei[qie1.
capid()+4*
flag].first->Fill(bins2);
308 else if(
id==1)
hoHists.ALLPEDS->Fill(qie1.
adc());
309 else if(
id==2)
hfHists.ALLPEDS->Fill(qie1.
adc());
318 _meot = toolT.find(detid);
319 map<int,PEDBUNCH> _mei =
_meot->second;
320 _mei[16].first->Fill(qie4.
adc()+qie5.
adc()-1.);
321 _mei[17].first->Fill(qie4.
adc()+qie5.
adc()-qie2.
adc()-qie3.
adc());
322 _mei[18].first->Fill(qie4.
adc()+qie5.
adc()-(qie0.
adc()+qie1.
adc()+qie2.
adc()+qie3.
adc())/2.);
328 char PedSampleNum[20];
331 sprintf(PedSampleNum,
"HB_Sample%d",
sample);
333 m_file->mkdir(PedSampleNum);
336 sprintf(PedSampleNum,
"HO_Sample%d",
sample);
338 m_file->mkdir(PedSampleNum);
341 sprintf(PedSampleNum,
"HF_Sample%d",
sample);
343 m_file->mkdir(PedSampleNum);
353 float cap[4];
float sig[4][4];
float dcap[4];
float dsig[4][4];
float chi2[4];
360 for (
int i=0;
i<4;
i++) {
361 TF1 *fit =
_meot->second[
i].first->GetFunction(
"gaus");
363 if(fit->GetNDF()!=0) chi2[
i]=fit->GetChisquare()/fit->GetNDF();
364 cap[
i]=fit->GetParameter(1);
365 sig[
i][
i]=fit->GetParameter(2);
366 dcap[
i]=fit->GetParError(1);
367 dsig[
i][
i]=fit->GetParError(2);
371 for (
int i=0;
i<4;
i++) {
372 cap[
i]=
_meot->second[
i].first->GetMean();
373 sig[
i][
i]=
_meot->second[
i].first->GetRMS();
386 for (
int i=0;
i<4;
i++) {
389 _meot->second[
i].first->GetXaxis()->SetTitle(
"ADC");
390 else _meot->second[
i].first->GetXaxis()->SetTitle(
"Charge, fC");
391 _meot->second[
i].first->GetYaxis()->SetTitle(
"CapID samplings");
392 _meot->second[
i].first->Write();
395 _meot->second[
i].second.first[0].push_back(cap[
i]);
396 _meot->second[
i].second.first[1].push_back(dcap[i]);
397 _meot->second[
i].second.first[2].push_back(sig[i][i]);
398 _meot->second[
i].second.first[3].push_back(dsig[i][i]);
399 _meot->second[
i].second.first[4].push_back(chi2[i]);
401 PedMeans->Fill(cap[
i]);
402 PedWidths->Fill(sig[i][i]);
407 for(
int i=16;
i<19;
i++){
409 _meot->second[
i].first->GetXaxis()->SetTitle(
"ADC");
410 else _meot->second[
i].first->GetXaxis()->SetTitle(
"Charge, fC");
411 _meot->second[
i].first->GetYaxis()->SetTitle(
"Events");
412 _meot->second[
i].first->Write();
417 sig[0][0]=sig[0][0]*sig[0][0];
418 sig[1][1]=sig[1][1]*sig[1][1];
419 sig[2][2]=sig[2][2]*sig[2][2];
420 sig[3][3]=sig[3][3]*sig[3][3];
424 sig[0][1]=
_meot->second[4].first->GetMean()-cap[0]*cap[1];
425 sig[0][2]=
_meot->second[8].first->GetMean()-cap[0]*cap[2];
426 sig[1][2]=
_meot->second[5].first->GetMean()-cap[1]*cap[2];
427 sig[1][3]=
_meot->second[9].first->GetMean()-cap[1]*cap[3];
428 sig[2][3]=
_meot->second[6].first->GetMean()-cap[2]*cap[3];
429 sig[0][3]=
_meot->second[12].first->GetMean()-cap[0]*cap[3];
430 sig[1][0]=
_meot->second[13].first->GetMean()-cap[1]*cap[0];
431 sig[2][0]=
_meot->second[10].first->GetMean()-cap[2]*cap[0];
432 sig[2][1]=
_meot->second[14].first->GetMean()-cap[2]*cap[1];
433 sig[3][1]=
_meot->second[11].first->GetMean()-cap[3]*cap[1];
434 sig[3][2]=
_meot->second[15].first->GetMean()-cap[3]*cap[2];
435 sig[3][0]=
_meot->second[7].first->GetMean()-cap[3]*cap[0];
438 for(
int i=0;
i<4;
i++){
440 _meot->second[
i].second.first[5].push_back(sig[
i][(
i+1)%4]);
441 _meot->second[
i].second.first[6].push_back(2*sig[
i][
i]*dsig[
i][
i]);
442 _meot->second[
i].second.first[7].push_back(sig[i][(i+2)%4]);
443 _meot->second[
i].second.first[8].push_back(2*sig[i][i]*dsig[i][i]);
444 _meot->second[
i].second.first[9].push_back(sig[i][(i+3)%4]);
445 _meot->second[
i].second.first[10].push_back(2*sig[i][i]*dsig[i][i]);
450 _meot->second[
i+4].first->GetXaxis()->SetTitle(
"ADC^2");
451 else _meot->second[
i+4].first->GetXaxis()->SetTitle(
"Charge^2, fC^2");
452 _meot->second[
i+4].first->GetYaxis()->SetTitle(
"2-CapID samplings");
453 _meot->second[
i+4].first->Write();
455 _meot->second[
i+8].first->GetXaxis()->SetTitle(
"ADC^2");
456 else _meot->second[
i+8].first->GetXaxis()->SetTitle(
"Charge^2, fC^2");
457 _meot->second[
i+8].first->GetYaxis()->SetTitle(
"2-CapID samplings");
458 _meot->second[
i+8].first->Write();
460 _meot->second[
i+12].first->GetXaxis()->SetTitle(
"ADC^2");
461 else _meot->second[
i+12].first->GetXaxis()->SetTitle(
"Charge^2, fC^2");
462 _meot->second[
i+12].first->GetYaxis()->SetTitle(
"2-CapID samplings");
463 _meot->second[
i+12].first->Write();
597 map<int, std::vector<double> > AverageValues;
600 for(
int i=0;
i<4;
i++){
603 sprintf(name,
"Pedestal trend, eta=%d phi=%d d=%d cap=%d",detid.
ieta(),detid.
iphi(),detid.
depth(),
i);
604 int bins =
_meot->second[
i].second.first[0].size();
606 float hi = (float)bins+0.5;
607 _meot->second[
i].second.second.push_back(
new TH1F(name,name,bins,lo,hi));
608 sprintf(name,
"Width trend, eta=%d phi=%d d=%d cap=%d",detid.
ieta(),detid.
iphi(),detid.
depth(),
i);
609 bins =
_meot->second[
i].second.first[2].size();
610 hi = (float)bins+0.5;
611 _meot->second[
i].second.second.push_back(
new TH1F(name,name,bins,lo,hi));
612 sprintf(name,
"Correlation trend, eta=%d phi=%d d=%d caps=%d*%d",detid.
ieta(),detid.
iphi(),detid.
depth(),
i,(
i+1)%4);
613 bins =
_meot->second[
i].second.first[5].size();
614 hi = (float)bins+0.5;
615 _meot->second[
i].second.second.push_back(
new TH1F(name,name,bins,lo,hi));
625 std::vector<double>::iterator sample_it;
628 for(sample_it=
_meot->second[
i].second.first[0].begin();
629 sample_it!=
_meot->second[
i].second.first[0].end();sample_it++){
630 _meot->second[
i].second.second[0]->SetBinContent(++j,*sample_it);
633 for(sample_it=
_meot->second[
i].second.first[1].begin();
634 sample_it!=
_meot->second[
i].second.first[1].end();sample_it++){
635 _meot->second[
i].second.second[0]->SetBinError(++j,*sample_it);
638 _meot->second[
i].second.second[0]->Fit(
"pol0",
"Q");
639 TF1 *fit =
_meot->second[
i].second.second[0]->GetFunction(
"pol0");
640 AverageValues[0].push_back(fit->GetParameter(0));
641 AverageValues[1].push_back(fit->GetParError(0));
643 AverageValues[2].push_back(fit->GetChisquare()/fit->GetNDF());
645 AverageValues[2].push_back(fit->GetChisquare());
647 _meot->second[
i].second.second[0]->GetXaxis()->SetTitle(name);
648 _meot->second[
i].second.second[0]->GetYaxis()->SetTitle(
"Pedestal value");
649 _meot->second[
i].second.second[0]->Write();
652 for(sample_it=
_meot->second[
i].second.first[2].begin();
653 sample_it!=
_meot->second[
i].second.first[2].end();sample_it++){
654 _meot->second[
i].second.second[1]->SetBinContent(++j,*sample_it);
657 for(sample_it=
_meot->second[
i].second.first[3].begin();
658 sample_it!=
_meot->second[
i].second.first[3].end();sample_it++){
659 _meot->second[
i].second.second[1]->SetBinError(++j,*sample_it);
661 _meot->second[
i].second.second[1]->GetXaxis()->SetTitle(name);
662 _meot->second[
i].second.second[1]->GetYaxis()->SetTitle(
"Pedestal width");
663 _meot->second[
i].second.second[1]->Write();
666 for(sample_it=
_meot->second[
i].second.first[5].begin();
667 sample_it!=
_meot->second[
i].second.first[5].end();sample_it++){
668 _meot->second[
i].second.second[2]->SetBinContent(++j,*sample_it);
671 for(sample_it=
_meot->second[
i].second.first[6].begin();
672 sample_it!=
_meot->second[
i].second.first[6].end();sample_it++){
673 _meot->second[
i].second.second[2]->SetBinError(++j,*sample_it);
675 _meot->second[
i].second.second[2]->GetXaxis()->SetTitle(name);
676 _meot->second[
i].second.second[2]->GetYaxis()->SetTitle(
"Close correlation");
677 _meot->second[
i].second.second[2]->Write();
706 for(sample_it=
_meot->second[
i].second.first[4].begin();
707 sample_it!=
_meot->second[
i].second.first[4].end();sample_it++){
708 Chi2->Fill(*sample_it);
712 CapidAverage=
new TH1F(
"Constant fit: Pedestal Values",
713 "Constant fit: Pedestal Values",
714 AverageValues[0].
size(),0.,AverageValues[0].
size());
715 std::vector<double>::iterator sample_it;
717 for(sample_it=AverageValues[0].
begin();
718 sample_it!=AverageValues[0].end();sample_it++){
719 CapidAverage->SetBinContent(++j,*sample_it);
722 for(sample_it=AverageValues[1].
begin();
723 sample_it!=AverageValues[1].end();sample_it++){
724 CapidAverage->SetBinError(++j,*sample_it);
726 CapidChi2=
new TH1F(
"Constant fit: Chi2/ndf",
727 "Constant fit: Chi2/ndf",
728 AverageValues[2].
size(),0.,AverageValues[2].
size());
730 for(sample_it=AverageValues[2].
begin();
731 sample_it!=AverageValues[2].end();sample_it++){
732 CapidChi2->SetBinContent(++j,*sample_it);
735 Chi2->GetXaxis()->SetTitle(
"Chi2/ndf");
736 Chi2->GetYaxis()->SetTitle(
"50 x [(16+2) x 4 x 4] `events`");
738 CapidAverage->GetYaxis()->SetTitle(
"Pedestal value");
739 CapidAverage->GetXaxis()->SetTitle(
"(16+2) x 4 x 4 `events`");
740 CapidAverage->Write();
741 CapidChi2->GetYaxis()->SetTitle(
"Chi2/ndf");
742 CapidChi2->GetXaxis()->SetTitle(
"(16+2) x 4 x 4 `events`");
759 float RefPedVals[4];
float RefPedSigs[4][4];
760 float RawPedVals[4];
float RawPedSigs[4][4];
761 map<HcalDetId,bool> isinRaw;
762 map<HcalDetId,bool> isinRef;
765 std::ofstream PedValLog;
766 PedValLog.open(
"HcalPedVal.log");
768 if(nstat[0]+nstat[1]+nstat[2]+nstat[3]<2500) PedValLog<<
"HcalPedVal: warning - low statistics"<<std::endl;
770 for (
int i=0;
i<(int)RawChanns.size();
i++){
773 for (
int i=0;
i<(int)RefChanns.size();
i++){
775 isinRaw[
detid]=
false;
778 for (
int i=0;
i<(int)RawChanns.size();
i++){
781 if (isinRef[detid]==
false) {
782 PedValLog<<
"HcalPedVal: channel "<<detid<<
" not found in reference set"<<std::endl;
783 std::cerr<<
"HcalPedVal: channel "<<detid<<
" not found in reference set"<<std::endl;
789 for (
int i=0;
i<(int)RefChanns.size();
i++){
791 for (
int icap=0; icap<4; icap++) {
793 for (
int icap2=icap; icap2<4; icap2++) {
794 RefPedSigs[icap][icap2]=fRefPedestalWidths->
getValues(detid)->
getSigma(icap,icap2);
795 if(icap2!=icap)RefPedSigs[icap2][icap]=RefPedSigs[icap][icap2];
801 for (
int icap=0; icap<4; icap++) {
803 for (
int icap2=icap; icap2<4; icap2++) {
804 RawPedSigs[icap][icap2]=fRawPedestalWidths->
getValues(detid)->
getSigma(icap,icap2);
805 if(icap2!=icap)RawPedSigs[icap2][icap]=RawPedSigs[icap][icap2];
810 for (
int icap=0; icap<4; icap++) {
811 if(RawPedVals[icap]<1. || RawPedSigs[icap][icap]<0.01) isinRaw[
detid]=
false;
812 for (
int icap2=icap; icap2<4; icap2++){
813 if(fabs(RawPedSigs[icap][icap2]/
sqrt(RawPedSigs[icap][icap]*RawPedSigs[icap2][icap2]))>1.) isinRaw[
detid]=
false;
820 for (
int icap=0; icap<4; icap++) {
821 int icap2=(icap+1)%4;
822 float width=
sqrt(RawPedSigs[icap][icap]);
823 float erof1=width/
sqrt((
float)nstat[icap]);
824 float erof2=
sqrt(erof1*erof1+RawPedSigs[icap][icap]/(
float)nstat[icap]);
825 float erofwidth=width/
sqrt(2.*nstat[icap]);
826 float diffof1=RawPedVals[icap]-RefPedVals[icap];
827 float diffof2=RawPedVals[icap]+RawPedVals[icap2]-RefPedVals[icap]-RefPedVals[icap2];
828 float diffofw=width-
sqrt(RefPedSigs[icap][icap]);
833 if(nTS==1 && fabs(diffof1)>0.5+erof1) {
835 PedValLog<<
"HcalPedVal: drift in channel "<<detid<<
" cap "<<icap<<
": "<<RawPedVals[icap]<<
" - "<<RefPedVals[icap]<<
" = "<<diffof1<<std::endl;
837 if(nTS==2 && fabs(diffof2)>0.5+erof2) {
839 PedValLog<<
"HcalPedVal: drift in channel "<<detid<<
" caps "<<icap<<
"+"<<icap2<<
": "<<RawPedVals[icap]<<
"+"<<RawPedVals[icap2]<<
" - "<<RefPedVals[icap]<<
"+"<<RefPedVals[icap2]<<
" = "<<diffof2<<std::endl;
841 if(fabs(diffofw)>0.15*width+erofwidth) {
843 PedValLog<<
"HcalPedVal: width changed in channel "<<detid<<
" cap "<<icap<<
": "<<width<<
" - "<<
sqrt(RefPedSigs[icap][icap])<<
" = "<<diffofw<<std::endl;
850 PedValLog<<
"HcalPedVal: no valid data from channel "<<detid<<std::endl;
852 HcalPedestal item(detid,RefPedVals[0],RefPedVals[1],RefPedVals[2],RefPedVals[3]);
855 for (
int icap=0; icap<4; icap++) {
856 for (
int icap2=icap; icap2<4; icap2++) widthsp.
setSigma(icap2,icap,RefPedSigs[icap2][icap]);
864 if(erflag==0) PedValLog<<
"HcalPedVal: all pedestals checked OK"<<std::endl;
868 if(erflag%100000 == 0) {
869 for (
int i=0;
i<(int)RefChanns.size();
i++){
871 if (isinRaw[detid]) {
873 for (
int icap=0; icap<4; icap++) {
875 for (
int icap2=icap; icap2<4; icap2++) {
876 RefPedSigs[icap][icap2]=fRefPedestalWidths->
getValues(detid)->
getSigma(icap,icap2);
877 if(icap2!=icap)RefPedSigs[icap2][icap]=RefPedSigs[icap][icap2];
878 widthsp.
setSigma(icap2,icap,RefPedSigs[icap2][icap]);
882 HcalPedestal item(detid,RefPedVals[0],RefPedVals[1],RefPedVals[2],RefPedVals[3]);
890 for (
int i=0;
i<(int)RawChanns.size();
i++){
892 if (isinRaw[detid]) {
894 for (
int icap=0; icap<4; icap++) {
896 for (
int icap2=icap; icap2<4; icap2++) {
897 RawPedSigs[icap][icap2]=fRawPedestalWidths->
getValues(detid)->
getSigma(icap,icap2);
898 if(icap2!=icap)RawPedSigs[icap2][icap]=RawPedSigs[icap][icap2];
899 widthsp.
setSigma(icap2,icap,RawPedSigs[icap2][icap]);
903 HcalPedestal item(detid,RawPedVals[0],RawPedVals[1],RawPedVals[2],RawPedVals[3]);
T getUntrackedParameter(std::string const &, T const &) const
bool addValues(const Item &myItem, bool h2mode_=false)
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 adc() const
get the ADC sample
int size() const
total number of samples in the digi
std::string m_outputFileMean
std::vector< T >::const_iterator const_iterator
struct HcalPedestalAnalysis::@50 hbHists
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)
const HcalDetId & id() const
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
struct HcalPedestalAnalysis::@50 hoHists
void GetPedConst(std::map< HcalDetId, std::map< int, PEDBUNCH > > &toolT, TH1F *PedMeans, TH1F *PedWidths)
void setup(const std::string &m_outputFileROOT)
std::vector< DetId > getAllChannels() const
int ieta() const
get the cell ieta
int size() const
total number of samples in the digi
const HcalQIESample & sample(int i) const
access a sample
float getValue(int fCapId) const
get value for capId = 0..3
std::string m_outputFileWidth
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
std::map< HcalDetId, std::map< int, PEDBUNCH > >::iterator _meot
int capid() const
get the Capacitor id
const HcalQIESample & sample(int i) const
access a sample
const HcalQIECoder * getHcalCoder(const HcalGenericDetId &fId) const
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 HcalPedestals * fRefPedestals
const HcalDetId & id() const
HcalPedestalWidths * fValPedestalWidths
const HcalDetId & id() const
const Item * getValues(DetId fId) const
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)
bool insert(Storage &, ItemType *, const IdTag &)
void setSigma(int fCapId1, int fCapId2, float fSigma)
tuple size
Write out results.
struct HcalPedestalAnalysis::@50 hfHists
const HcalQIEShape * getHcalShape() const
const_iterator begin() const
float charge(const HcalQIEShape &fShape, unsigned fAdc, unsigned fCapId) const
ADC [0..127] + capid [0..3] -> fC conversion.