Ignore:
Timestamp:
06/13/12 17:10:14 (13 years ago)
Author:
Jens Buss
Message:
changed binning and maximum of 2D histogramm, now 5er and 6er are
visible;  
changed searchwindow size for maximum search
File:
1 edited

Legend:

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

    r14170 r14176  
    199199        MBinning binsx, binsy;
    200200        binsx.SetEdges(fSingles->GetNumPixels(), -0.5, fSingles->GetNumPixels()-0.5);
    201         binsy.SetEdges(300, -7.5*w, (60-7.5)*w);
     201        binsy.SetEdges(2*150, -2*7.5*w, 2*(60-7.5)*w);
    202202
    203203        MH::SetBinning(fSignal, binsx, binsy);
     
    283283MSingles *fSingles;
    284284
    285 TH1F *fluct1 = new TH1F("", "", 100, -50, 50);
     285TH1F *fluct1 = new TH1F("", "", 200, -200, 200);
    286286TH1F *fluct2 = new TH1F("", "", 100, -50, 50);
    287287
     
    322322    const UInt_t end_skip         = 10;
    323323    const UInt_t integration_size = 10*3;
     324    const UInt_t max_search_window = 30;
    324325
    325326    vector<float> val(roi-navg);//result of first sliding average
     
    341342
    342343        //peak finding via threshold
    343         for (UInt_t i=start_skip; i<roi-navg-end_skip-10; i++)
     344        for (UInt_t i=start_skip; i<roi-navg-end_skip-30; i++)
    344345        {
    345346            //search for threshold crossings
     
    352353
    353354            //search for maximum after threshold crossing
    354             UInt_t k_max = 0;
    355             for (UInt_t k=i; k<i+15 && k < roi-navg-end_skip-10; k++)
     355            UInt_t k_max = i+5;
     356            for (UInt_t k=i+5; k<i+max_search_window; k++)
    356357            {
    357                 if (val[k+1] > val[k])
     358                if (val[k] > val[k_max])
    358359                    k_max = k;
    359360            }
    360361
     362            if (k_max == i+5 || k_max == i + max_search_window-1) continue;
     363
    361364            //search for half maximum before maximum
    362365            UInt_t k_half_max = 0;
    363             for (UInt_t k=k_max; k>k_max-20; k--)
     366            for (UInt_t k=k_max; k>k_max-25; k--)
    364367            {
    365368                if (val[k-1] < val[k_max]/2 &&
     
    367370                {
    368371                    k_half_max = k;
     372                    break;
    369373                }
    370374            }
    371 
     375            if (k_half_max > roi-navg-end_skip-max_search_window - integration_size)
     376                continue;
     377            if (k_half_max == 0)
     378                continue;
     379            if (k_max - k_half_max > 14)
     380                continue;
     381
     382            fluct2->Fill(k_max - k_half_max);
    372383
    373384            // Evaluate arrival time more precisely!!!
     
    378389            single.fTime   = k_half_max;
    379390
     391
    380392            // Crossing of the threshold is at 5
    381393            for (UInt_t j=k_half_max; j<k_half_max+integration_size; j++)
    382394                single.fSignal += ptr[j];
    383 
    384395            result.push_back(single);
    385396
Note: See TracChangeset for help on using the changeset viewer.