Changeset 3551 for trunk/MagicSoft/Mars/mcalib/MHCalibrationChargeCam.cc
- Timestamp:
- 03/19/04 16:56:19 (21 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/MagicSoft/Mars/mcalib/MHCalibrationChargeCam.cc
r3496 r3551 65 65 #include <TCanvas.h> 66 66 #include <TPad.h> 67 #include <TText.h> 68 #include <TPaveText.h> 67 69 68 70 #include "MLog.h" … … 151 153 fNumOuterPixels = 0; 152 154 fNumExcluded = 0; 155 156 fAverageInnerSat = 0; 157 fAverageOuterSat = 0; 158 fAverageInnerPixSigma = 0.; 159 fAverageOuterPixSigma = 0.; 160 fAverageInnerPixSigmaErr = 0.; 161 fAverageOuterPixSigmaErr = 0.; 162 fAverageInnerPixRelSigma = 0.; 163 fAverageOuterPixRelSigma = 0.; 164 fAverageInnerPixRelSigmaErr = 0.; 165 fAverageOuterPixRelSigmaErr = 0.; 166 153 167 } 154 168 … … 169 183 delete fAverageHiGainOuterPix; 170 184 delete fAverageLoGainOuterPix; 185 171 186 } 172 187 … … 542 557 FinalizeLoGainHists(*fAverageLoGainOuterPix,*fCam->GetAverageOuterPix(),*fCam->GetAverageOuterBadPix()); 543 558 544 fCam->GetAverageInnerPix()->SetSigmaCharge (fCam->GetAverageInnerPix()->GetSigmaCharge()545 *TMath::Sqrt((Float_t)fNumInnerPixels));546 fCam->GetAverageOuterPix()->SetSigmaCharge (fCam->GetAverageOuterPix()->GetSigmaCharge()547 *TMath::Sqrt((Float_t)fNumOuterPixels));548 fCam->GetAverageInnerPix()->SetSigmaChargeErr(fCam->GetAverageInnerPix()->GetSigmaChargeErr()549 *TMath::Sqrt((Float_t)fNumInnerPixels));550 fCam->GetAverageOuterPix()->SetSigmaChargeErr(fCam->GetAverageOuterPix()->GetSigmaChargeErr()551 *TMath::Sqrt((Float_t)fNumOuterPixels));552 559 FinalizeAveragePix(*fCam->GetAverageInnerPix(),fNumInnerPixels, 560 fAverageInnerPixSigma, fAverageInnerPixSigmaErr, 561 fAverageInnerPixRelSigma, fAverageInnerPixRelSigmaErr, 562 fAverageInnerSat); 563 FinalizeAveragePix(*fCam->GetAverageOuterPix(),fNumOuterPixels, 564 fAverageOuterPixSigma, fAverageOuterPixSigmaErr, 565 fAverageOuterPixRelSigma, fAverageOuterPixRelSigmaErr, 566 fAverageOuterSat); 567 553 568 return kTRUE; 554 569 } … … 693 708 } 694 709 } 710 711 void MHCalibrationChargeCam::FinalizeAveragePix(MCalibrationChargePix &pix, Int_t npix, 712 Float_t &sigma, Float_t &sigmaerr, 713 Float_t &relsigma, Float_t &relsigmaerr, 714 Bool_t &b) 715 { 716 717 if (pix.IsHiGainSaturation()) 718 b = kTRUE; 719 720 sigma = pix.GetSigmaCharge () * TMath::Sqrt((Float_t)npix); 721 sigmaerr = pix.GetSigmaChargeErr () * TMath::Sqrt((Float_t)npix); 722 723 relsigma = sigma / pix.GetMeanCharge(); 724 725 relsigmaerr = sigmaerr*sigmaerr / sigma / sigma; 726 relsigmaerr += pix.GetMeanChargeErr()*pix.GetMeanChargeErr() / pix.GetMeanCharge() / pix.GetMeanCharge(); 727 728 relsigmaerr *= relsigma; 729 relsigmaerr = TMath::Sqrt(relsigmaerr); 730 731 pix.SetSigmaCharge (sigma); 732 pix.SetSigmaChargeErr(sigmaerr); 733 734 } 735 695 736 696 737 Bool_t MHCalibrationChargeCam::GetPixelContent(Double_t &val, Int_t idx, const MGeomCam &cam, Int_t type) const … … 729 770 pad->cd(1); 730 771 731 if (!fAverageHiGainInnerPix->IsEmpty())732 gPad->SetLogy();733 772 fAverageHiGainInnerPix->Draw(opt); 773 774 if (!fAverageInnerSat) 775 DrawAverageSigma(fAverageInnerSat, 1, 776 fAverageInnerPixSigma, fAverageInnerPixSigmaErr, 777 fAverageInnerPixRelSigma, fAverageInnerPixRelSigmaErr); 734 778 735 779 pad->cd(2); 736 780 737 if (!fAverageLoGainInnerPix->IsEmpty())738 gPad->SetLogy();739 781 fAverageLoGainInnerPix->Draw(opt); 740 782 783 if (fAverageInnerSat) 784 DrawAverageSigma(fAverageInnerSat, 1, 785 fAverageInnerPixSigma, fAverageInnerPixSigmaErr, 786 fAverageInnerPixRelSigma, fAverageInnerPixRelSigmaErr); 787 741 788 pad->cd(3); 742 789 743 if (!fAverageHiGainOuterPix->IsEmpty())744 gPad->SetLogy();745 790 fAverageHiGainOuterPix->Draw(opt); 746 791 792 if (!fAverageOuterSat) 793 DrawAverageSigma(fAverageOuterSat, 0, 794 fAverageOuterPixSigma, fAverageOuterPixSigmaErr, 795 fAverageOuterPixRelSigma, fAverageOuterPixRelSigmaErr); 796 747 797 pad->cd(4); 748 798 749 if (!fAverageLoGainOuterPix->IsEmpty())750 gPad->SetLogy();751 799 fAverageLoGainOuterPix->Draw(opt); 752 800 753 } 801 if (fAverageOuterSat) 802 DrawAverageSigma(fAverageOuterSat, 0, 803 fAverageOuterPixSigma, fAverageOuterPixSigmaErr, 804 fAverageOuterPixRelSigma, fAverageOuterPixRelSigmaErr); 805 } 806 807 void MHCalibrationChargeCam::DrawAverageSigma(Bool_t sat, Bool_t inner, 808 Float_t sigma, Float_t sigmaerr, 809 Float_t relsigma, Float_t relsigmaerr) const 810 { 811 812 if (sigma != 0) 813 { 814 815 TPad *newpad = new TPad("newpad","transparent",0,0,1,1); 816 newpad->SetFillStyle(4000); 817 newpad->Draw(); 818 newpad->cd(); 819 820 TPaveText *text = new TPaveText(sat? 0.1 : 0.35,0.7,sat ? 0.4 : 0.7,1.0); 821 text->SetTextSize(0.07); 822 const TString line1 = Form("%s%s%s",inner ? "Inner" : "Outer", 823 " Pixels ", sat ? "Low Gain" : "High Gain"); 824 TText *txt1 = text->AddText(line1.Data()); 825 const TString line2 = Form("Sigma per Pixel: %2.2f #pm %2.2f",sigma,sigmaerr); 826 TText *txt2 = text->AddText(line2.Data()); 827 const TString line3 = Form("Rel. Sigma per Pixel: %2.2f #pm %2.2f",relsigma,relsigmaerr); 828 TText *txt3 = text->AddText(line3.Data()); 829 text->Draw(""); 830 831 text->SetBit(kCanDelete); 832 txt1->SetBit(kCanDelete); 833 txt2->SetBit(kCanDelete); 834 txt3->SetBit(kCanDelete); 835 newpad->SetBit(kCanDelete); 836 } 837 } 838
Note:
See TracChangeset
for help on using the changeset viewer.