Ignore:
Timestamp:
06/25/12 17:52:05 (13 years ago)
Author:
Jens Buss
Message:
changed name of status display,defined errors, changed fit
method to Likelyhood for all fits
File:
1 edited

Legend:

Unmodified
Added
Removed
  • fact/tools/marsmacros/singlepe.C

    r14230 r14231  
    421421    // ======================================================
    422422
    423     const char *drsfile = "/fact/raw/2012/03/09/20120309_012.drs.fits.gz";
    424 //    const char *drsfile = "/fact/raw/2012/01/13/20120113_003.drs.fits.gz";
     423    const char *drsfile = "/fact/raw/2012/05/18/20120518_012.drs.fits.gz";
    425424
    426425    MDirIter iter;
    427 //    iter.AddDirectory("/fact/raw/2012/03/09", "20120309_014.fits.gz");
    428 //    iter.AddDirectory("/fact/raw/2012/03/09", "20120309_032.fits.gz");
    429 //    iter.AddDirectory("/fact/raw/2012/03/09", "20120309_038.fits.gz");
    430     iter.AddDirectory("/fact/raw/2012/03/09", "20120309_017.fits.gz");
    431 //    iter.AddDirectory("/fact/raw/2012/03/09", "20120309_018.fits.gz");
    432 //    iter.AddDirectory("/fact/raw/2012/01/13", "20120113_007.fits.gz");
     426     iter.AddDirectory("/fact/raw/2012/05/18", "20120518_005.fits.gz");
    433427
    434428    // ======================================================
     
    519513    plist1.AddToList(&header);
    520514
    521     MEvtLoop loop1("DetermineCalConst");
     515    TString Title;
     516    Title =  iter.Next();
     517    iter.Reset();
     518    Title += "; ";
     519    Title += max1;
     520
     521    MEvtLoop loop1(Title);
    522522    loop1.SetDisplay(d);
    523523    loop1.SetParList(&plist1);
     
    602602    TH1F hSum       ("Sum1",      "Sum of all pixel amplitude Spectra",
    603603                     100,    0,  2000);
     604    hSum.Sumw2();
     605
    604606    TH1F hSumScale  ("Sum2",
    605607                     "Sum of all pixel amplitude Spectra (scaled with gain)",
    606                      100,    0,   10);
     608                     100,    0.05,   10.05);
     609    hSumScale.Sumw2();
    607610
    608611    // define fit function for Amplitudespectrum
     
    648651
    649652    // List of Pixel that should be ignored in camera view
    650     suspicous[802]       = true;
    651     suspicous[543]     = true;
    652     suspicous[465]     = true;
    653     suspicous[1154]     = true;
    654     suspicous[342]     = true;
    655     suspicous[1319]      = true;
    656     suspicous[1401]      = true;
    657     suspicous[1318]      = true;
    658     suspicous[1400]     = true;
    659     suspicous[243]      = true;
    660     suspicous[1299]     = true;
    661     suspicous[764]     = true;
    662     suspicous[762]     = true;
    663     suspicous[1427]      = true;
    664     suspicous[1319]     = true;
    665     suspicous[118]     = true;
     653    //    suspicous[802]       = true;
    666654
    667655    //------------------------------------------------------------------------
     
    684672        }
    685673    }
     674    for(UInt_t bin = 1; bin < hSum.GetNbinsX()+1; bin++)
     675    {
     676        hSum.SetBinError(bin, hSum.GetBinContent(bin)*0.1);
     677    }
    686678
    687679    gROOT->SetSelectedPad(0);
    688680    TCanvas &c11 = d->AddTab("SumHist");
    689681    gPad->SetLogy();
    690     hSum.DrawCopy();
     682    gPad->SetGridx();
     683    gPad->SetGridy();
     684    hSum.DrawCopy("hist");
    691685    //------------------------fit sum spectrum-------------------------------
    692686    const Int_t    maxbin   = hSum.GetMaximumBin();
     
    716710
    717711    //calculate fit range
    718     const double min = sum_par[1]-fwhm2*1.4;
     712    const double min = sum_par[1]-fwhm2*2;
    719713    const double max = sum_par[1]*(maxOrder+1);
    720     func2.SetRange(min-2*fwhm2, max);
     714    func2.SetRange(min, max);
    721715
    722716    //Fit and draw spectrum
     
    762756    TF1 fExpo1( "fExpo1","expo", min, max);
    763757    fExpo1.SetLineColor(kRed);
    764     hMaxHeightsSum.Fit(&fExpo1, "N0S" );
     758    hMaxHeightsSum.Fit(&fExpo1, "WLN0S" );
     759    hMaxHeightsSum.DrawCopy("SAME");
    765760    fExpo1.DrawCopy("SAME");
    766761
     
    784779        TH1D *hist = hsignal->ProjectionY("proj", pixel+1, pixel+1);
    785780        hist->SetDirectory(0);
     781
     782        for(UInt_t bin = 1; bin < hSum.GetNbinsX()+1; bin++)
     783        {
     784            hist->SetBinError(bin, hSum.GetBinContent(bin)*0.1);
     785        }
    786786
    787787        const Int_t    maxbin   = hist->GetMaximumBin();
     
    835835                 << fwhm << "\t" << endl;
    836836        }
     837
     838        //Rebin Projection
     839        hist->Rebin(2);
     840
    837841        //Fit Pixels spectrum
    838         const TFitResultPtr rc = hist->Fit(&func, "N0QS", "", fit_min, fit_max);
     842        const TFitResultPtr rc = hist->Fit(&func, "WLN0QS", "", fit_min, fit_max);
    839843
    840844        const bool ok = int(rc)==0;
     
    878882        for (int b=1; b<=hist->GetNbinsX(); b++)
    879883        {
    880             hSum.Fill(hist->GetBinCenter(b), hist->GetBinContent(b));
     884//            hSum.Fill(hist->GetBinCenter(b), hist->GetBinContent(b));
    881885            hSumScale.Fill((hist->GetBinCenter(b)-fOffset)/fGain, hist->GetBinContent(b));
    882886        }
     
    891895            c.cd();
    892896            hist->SetName(Form("Pix%d", pixel));
    893             hist->DrawCopy()->SetDirectory(0);
     897            hist->DrawCopy("hist")->SetDirectory(0);
    894898//            hist->Draw();
    895899            func.DrawCopy("SAME");
     
    916920    TCanvas &c12 = d->AddTab("GainHist");
    917921    gPad->SetLogy();
    918     hSumScale.DrawCopy();
     922    gPad->SetGridx();
     923    gPad->SetGridy();
     924    for(UInt_t bin = 1; bin < hSum.GetNbinsX()+1; bin++)
     925    {
     926        hSumScale.SetBinError(bin, hSum.GetBinContent(bin)*0.1);
     927    }
     928    hSumScale.DrawCopy("hist");
     929
    919930
    920931    //-------------------- fit gain corrected sum spectrum -------------------
     
    939950    Double_t par2[5] =
    940951    {
    941         ampl2, hSumScale.GetBinCenter(maxbin2), fwhm2*1.4, 0.1, -0.2
     952        ampl2, 1, fwhm2*1.4, Crosstlk, 0
    942953    };
    943954
    944955    func3.SetParameters(par2);
     956    func3.FixParameter(1,1);
     957    func3.FixParameter(4,0);
    945958
    946959    const double min2 = par2[1]-fwhm2*1.4;
    947960    const double max2 = par2[1]*maxOrder;
    948961//    func.SetRange(min2-fwhm2, max);
    949     hSumScale.Fit(&func3, "N0QS", "", min2, max2);
     962    hSumScale.Fit(&func3, "WLN0QS", "", min2, max2);
    950963    func3.DrawCopy("SAME");
    951964
     
    9871000    c2.cd(2);
    9881001    gPad->SetLogy();
     1002    TF1 GainGaus( "GainGaus", "gaus");
     1003    hGain.Fit(&GainGaus, "N0QS");
     1004//    hGain.Scale(1/GainGaus.GetParameter(1));
    9891005    hGain.DrawCopy();
     1006    GainGaus.DrawCopy("SAME");
    9901007
    9911008    c2.cd(3);
     
    10701087//            xTalk *= cross;
    10711088//        }
    1072         cross *= TMath::Exp(-powOfX*cross);
     1089//        cross *= TMath::Exp(-powOfX*cross);
    10731090        xTalk *= cross;
    10741091    }
Note: See TracChangeset for help on using the changeset viewer.