Changeset 16843 for trunk/Mars/mcore


Ignore:
Timestamp:
06/14/13 11:27:30 (11 years ago)
Author:
tbretz
Message:
Changed the way how the returned maximum is calculated to get a better estimate of what a good shower is to be displayed (the old version was actually also buggy)
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Mars/mcore/DrsCalib.h

    r16603 r16843  
    807807            return -1;
    808808
    809         const int beg = roi>10 ? 10 : 0;
     809        // Skip first 10 samples
     810        const uint beg = roi>10 ? 10 : 0;
     811        const uint end = roi-beg>5 ? roi-5 : roi;
     812        const uint len = end-beg;
    810813
    811814        double max = 0;
    812         for (int i=0; i<1440; i++)
     815        double patch = 0;
     816        for (uint i=0; i<1440; i++)
    813817        {
    814818            const float *vec = data+i*roi;
    815819
    816             int    pos  = beg;
     820            uint   pos  = beg;
    817821            double sum  = vec[beg];
    818822            double sum2 = vec[beg]*vec[beg];
    819             for (int j=beg+1; j<roi; j++)
     823
     824            for (uint j=beg+1; j<end; j++)
    820825            {
    821826                sum  += vec[j];
     
    825830                    pos = j;
    826831            }
    827             sum  /= roi-beg;
    828             sum2 /= roi-beg;
    829 
    830             if (vec[pos]>0)
    831                 max = vec[pos];
     832            sum  /= len;
     833            sum2 /= len;
     834
     835            if (i%9!=8 && vec[pos]>0)
     836                patch += vec[pos];
     837
     838            if (i%9==8)
     839            {
     840                patch /= 8;
     841                if (patch > max)
     842                    max = patch;
     843                patch = 0;
     844            }
     845
     846            //if (i%9!=8 && vec[pos]>max)
     847            //    max = vec[pos];
    832848
    833849            *(ptr+0*1440+i) = sum;
Note: See TracChangeset for help on using the changeset viewer.