V3 News

  • background shape is evaluated in run 162 WITHOUT common mode correction. See Masks, Background subtraction for detail.
  • pfv3r1 - is upgraded PSAS-147
  • S/N statistical significance is improved by increasing number of pixels. See Hit and Peak Finding Algorithms.
  • Data processing and peak finding is done in  cxif5315/proc-cxif5315-r0169-data-pfvn-2016-05-03.py

  • pfv3r1 was improved - now in the background avg and rms calculation discards all type of local maximums

Data processing

exp=cxif5315:run=169

    nda_data = det.raw(evt)
    if nda_data is not None :
        nda =  np.array(nda_data, dtype=np.float32, copy=True)
        nda -= nda_peds
        det.common_mode_apply(runnum, nda, cmpars=(5,50)) # applied for pfv3r1 latest processing only
        nda = subtract_bkgd(nda, nda_bkgd, mask=nda_smask, winds=winds_bkgd, pbits=0)
        nda *= nda_smask

Peak finder parameters

alg_arc = PyAlgos(windows=winds_arc, mask=mask_arc, pbits=2)

alg_equ.set_peak_selection_pars(npix_min=0, npix_max=1e6, amax_thr=0, atot_thr=0, son_min=10) # for v3r1
#alg_arc.set_peak_selection_pars(npix_min=0, npix_max=1e6, amax_thr=0, atot_thr=500, son_min=6) # for v2r1
#alg_arc.set_peak_selection_pars(npix_min=0, npix_max=1e6, amax_thr=0, atot_thr=0, son_min=6) # for v4r1
 
alg_equ = ... the same as above

        # in the event loop
        #peaks_arc = alg_arc.peak_finder_v2r1(nda, thr=30, r0=7, dr=2)
        peaks_arc = alg_arc.peak_finder_v3r1(nda, rank=5, r0=7, dr=2)
        #peaks_arc = alg_arc.peak_finder_v4r1(nda, thr_low=10, thr_high=150, rank=5, r0=7, dr=2)

        peaks_equ = alg_equ... the same as above

Results

ARC

pre-selection for histograms

def procPeakDataArc(pk) :
    """ Process peak for ARC region; accumulate peak statistics in histogram arrays.
    """
    #===================
    sp.lst_arc_atot.append(pk.atot)
    if pk.atot<1500 : return
    #===================
    sp.lst_arc_amax.append(pk.amax)
    sp.lst_arc_npix.append(pk.npix)
    sp.lst_arc_r   .append(pk.r)
    sp.lst_arc_phi .append(pk.phi)
...

plots for pfv2/3/4r1

================

 

EQU

pre-selection for histograms

def procPeakDataEqu(pk) :
    """ Process peak for EQU region; accumulate peak data
    """
    # discard small radius peaks from all histograms
    #===================
    sp.lst_equ_atot.append(pk.atot)
    if pk.atot<1500 : return
    if pk.r<100 : return
    #===================
    sp.lst_equ_amax.append(pk.amax)
    sp.lst_equ_npix.append(pk.npix)
    sp.lst_equ_r   .append(pk.r)
    sp.lst_equ_phi .append(pk.phi)
...

plots for pfv2/3/4r1

================

 

Fit results

ARC

pre-fit selection

def peakIsSelectedArc(pk) :
    """Apply peak selection criteria to each peak from file
    """
    if sp.USE_PEAK_SELECTION :
        if pk.atot<1500 : return False
        if pk.npix>200  : return False
        if pk.r<435     : return False
        if pk.r>443     : return False
        if pk.rms<10    : return False
        if pk.rms>80    : return False
        if math.fabs(pk.bkgd)>25 : return False
    return True

plots for pfv2/3/4r1

================

 

EQU

pre-fit selection

def peakIsSelectedEqu(pk) :
    """Apply peak selection criteria to each peak from file
    """
    if sp.USE_PEAK_SELECTION :
        if pk.atot<1500 : return False
        if pk.npix>200  : return False
        if pk.rms>80    : return False
        if math.fabs(pk.bkgd)>20 : return False
    if pk.r<100     : return False
    if pk.r>454     : return False
    return True

plots for pfv2/3/4r1

================

 

References

 

  • No labels