Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • 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 FindersFinding 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

...

Code Block
    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

...

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

alg_arcequ.set_peak_selection_pars(npix_min=0, npix_max=1e6, amax_thr=0, atot_thr=0, son_min=6)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)
        #peakspeaks_arc = alg_arc.peak_finder_v3r1(nda, rank=5, r0=7, dr=2)
        peaks#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

Code Block
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

...

Image RemovedImage AddedImage Removed

 

Image RemovedImage AddedImage Removed

Image RemovedImage AddedImage Removed

Image RemovedImage AddedImage Removed

Image RemovedImage AddedImage Removed

Image RemovedImage AddedImage Removed

Image RemovedImage AddedImage Removed

Image RemovedImage AddedImage Removed

Image RemovedImage AddedImage Removed

Image RemovedImage RemovedImage RemovedImage AddedImage Added

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

 

EQU

pre-selection for histograms

Code Block
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

...

Image RemovedImage AddedImage Removed

Image RemovedImage AddedImage Removed

Image RemovedImage AddedImage Removed

 

Image RemovedImage AddedImage Removed 

Image RemovedImage AddedImage Removed

Image RemovedImage AddedImage Removed

Image RemovedImage AddedImage Removed

 

Image RemovedImage AddedImage Removed

Image RemovedImage RemovedImage RemovedImage AddedImage Added

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

 

Fit results

ARC

pre-fit selection

Code Block
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

...

Image RemovedImage AddedImage Removed

Image RemovedImage AddedImage Removed

Image RemovedImage AddedImage Removed

Image RemovedImage AddedImage Removed

Image RemovedImage RemovedImage RemovedImage AddedImage Added

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

 

EQU

pre-fit selection

Code Block
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

...

Image RemovedImage AddedImage Removed

Image RemovedImage AddedImage Removed

Image RemovedImage AddedImage Removed

Image RemovedImage AddedImage Removed

Image RemovedImage RemovedImage RemovedImage AddedImage Added

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

 

References

...