Changeset 17053 for trunk/Mars/fact


Ignore:
Timestamp:
08/29/13 10:11:06 (11 years ago)
Author:
tbretz
Message:
Split Cams and Hists into two tabs, to be able to display more information, added the coeff. R there; use 0 as the default exponent for the fit and let it free.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Mars/fact/analysis/gain/fit_spectra.C

    r17033 r17053  
    111111    bool fast = false; // Switch off using integral
    112112
     113    // Values which should be read from the file but not available atm
     114    Int_t integration_window = 30;
     115
    113116    // Map for which pixel shall be plotted and which not
    114117    TArrayC usePixel(1440);
     
    180183    }
    181184
    182     MParameterI win("IntegrationWindow");
    183     if (win.Read()<=0)
    184     {
    185         cout << "IntegrationWindow not found in '" << filename << "'." << endl;
    186         return 5;
    187     }
    188 
    189     Int_t integration_window = win.GetVal();
    190 
    191185    MArrayI ext;
    192186    if (ext.Read("ExtractionRange")<=0)
    193187    {
    194188        cout << "ExtractionRange not found in '" << filename << "'." << endl;
    195         return 6;
     189        return 5;
    196190
    197191    }
     
    215209    MHCamera cNormGain(fact);
    216210    MHCamera cFitProb(fact);
     211    MHCamera cCrosstalkP(fact);
     212    MHCamera cCoeffR(fact);
    217213
    218214    // Set name and title for the histograms
     
    226222    cNormGain.SetNameTitle ("NormGain",  "Normalized gain");
    227223    cFitProb.SetNameTitle  ("FitProb",   "Root's fit probability");
     224    cCrosstalkP.SetNameTitle("Pxtalk",   "Crosstalk coeff. P");
     225    cCoeffR.SetNameTitle   ("CoeffR",    "Coefficient R");
    228226
    229227    // Instantiate 1D histograms for the distributions
    230     TH1F hRate     ("Rate",      "Dark count rate",       200,  0,    10);
     228    TH1F hRate     ("Rate",      "Dark count rate",       100,  0,    10);
    231229    TH1F hGain     ("Gain",      "Gain distribution",     100,  0,   400);
    232230    TH1F hRelSigma ("RelSigma",  "Rel. Sigma",            160,  0,  0.40);
    233     TH1F hCrosstalk("Crosstalk", "Crosstalk probability", 120,  0,  0.30);
     231    TH1F hCrosstalk("Crosstalk", "Crosstalk probability",  90,  0,  0.30);
    234232    TH1F hBaseline ("Baseline",  "Baseline per sample",    75, -7.5, 7.5);
    235233    TH1F hNoise    ("Noise",     "Noise per sample",       60,  0,    30);
     
    237235    TH1F hNormGain ("NormGain",  "Normalized gain",        51,  0.5, 1.5);
    238236    TH1F hFitProb  ("FitProb",   "FitProb distribution",  100,  0,     1);
     237    TH1F hCrosstalkP("Pxtalk",   "Crosstalk coeff.",       90,  0,   0.3);
     238    TH1F hCoeffR   ("CoeffR",    "Coefficient R",          90, -1,     2);
    239239
    240240    // Histigram for the sum of all spectrums
     
    347347    Double_t res_par[7];
    348348    func.GetParameters(res_par);
     349
     350    //func.FixParameter(6, func.GetParameter(6));                          // Expo
    349351
    350352    // ------------------ display result -------------------------------
     
    423425
    424426        // For individual spectra, the average fit yields 1 anyway
    425         func.FixParameter(6, 1); // Expo
     427        func.SetParameter(6, 0); // Expo
    426428
    427429        // ----------- Fit Pixels spectrum ---------------
     
    459461        const float fGain      = func.GetParameter(1);
    460462        const float fGainRMS   = func.GetParameter(2);
     463        const float fCrosstalkP= func.GetParameter(3);
    461464        const float fCrosstlk  = xtalk(func);
    462465        const float fOffset    = func.GetParameter(4);
    463466        const float fNoise     = func.GetParameter(5)/sqrt(integration_window);
     467        const float fCoeffR    = func.GetParameter(6);
    464468
    465469        // Fill histograms with result values
     
    473477        cNormGain.SetBinContent(  pixel+1, fGain/gain);
    474478        cFitProb.SetBinContent(   pixel+1, fit_prob);
     479        cCrosstalkP.SetBinContent(pixel+1, fCrosstalkP);
     480        cCoeffR.SetBinContent(    pixel+1, fCoeffR);
    475481
    476482        // ======================================================
     
    576582    cNormGain.SetUsed(usePixel);
    577583    cFitProb.SetUsed(usePixel);
     584    cCrosstalkP.SetUsed(usePixel);
     585    cCoeffR.SetUsed(usePixel);
    578586
    579587    // --------------------------------------------------------
    580588    // Display data
    581589
    582     TCanvas *canv = &d->AddTab("Cams");
    583     canv->Divide(4,2);
     590    TCanvas *canv = &d->AddTab("Cams1");
     591    canv->Divide(3,2);
    584592
    585593    canv->cd(1);
     
    590598
    591599    canv->cd(3);
     600    cBaseline.DrawCopy();
     601
     602    canv->cd(4);
    592603    cRelSigma.DrawCopy();
    593604
    594     canv->cd(4);
     605    canv->cd(5);
    595606    cCrosstalk.DrawCopy();
    596 
    597     canv->cd(5);
    598     cBaseline.DrawCopy();
    599607
    600608    canv->cd(6);
    601609    cNoise.DrawCopy();
    602610
    603     canv->cd(7);
     611
     612    canv = &d->AddTab("Cams2");
     613    canv->Divide(3,2);
     614
     615    canv->cd(1);
    604616    cFitProb.DrawCopy();
    605617
    606     canv->cd(8);
     618    canv->cd(2);
    607619    cChi2.DrawCopy();
    608620
     621    canv->cd(4);
     622    cCoeffR.DrawCopy();
     623
     624    canv->cd(5);
     625    cCrosstalkP.DrawCopy();
     626
    609627    // --------------------------------------------------------
    610628
    611629    gStyle->SetOptFit(1);
    612630
    613     canv = &d->AddTab("Hists");
    614     canv->Divide(4,2);
     631    canv = &d->AddTab("Hists1");
     632    canv->Divide(3,2);
    615633
    616634    TH1 *hh = 0;
     
    624642
    625643    canv->cd(3);
     644    hh = hBaseline.DrawCopy();
     645    hh->Fit("gaus");
     646
     647    canv->cd(4);
    626648    hh = hRelSigma.DrawCopy();
    627649    hh->Fit("gaus");
    628650
    629     canv->cd(4);
     651    canv->cd(5);
    630652    hh = hCrosstalk.DrawCopy();
    631     hh->Fit("gaus");
    632 
    633     canv->cd(5);
    634     hh = hBaseline.DrawCopy();
    635653    hh->Fit("gaus");
    636654
     
    639657    hh->Fit("gaus");
    640658
    641     canv->cd(7);
     659    // --------------------------------------------------------
     660
     661    canv = &d->AddTab("Hists2");
     662    canv->Divide(3,2);
     663
     664    canv->cd(1);
    642665    gPad->SetLogy();
    643     hFitProb.DrawCopy();
    644 
    645     canv->cd(8);
     666    hh = hFitProb.DrawCopy();
     667    hh->Fit("gaus");
     668
     669    canv->cd(2);
    646670    hChi2.DrawCopy();
     671
     672    canv->cd(4);
     673    hh = hCoeffR.DrawCopy();
     674    hh->Fit("gaus");
     675
     676    canv->cd(5);
     677    hh = hCrosstalkP.DrawCopy();
     678    hh->Fit("gaus");
    647679
    648680    // --------------------------------------------------------
Note: See TracChangeset for help on using the changeset viewer.