Page History
Content
Table of Contents |
---|
...
In this note In this note we show how peak finder versions v2,3,4 work on exp=cxif5315:run=169 data.
Test data
exp=cxif5315:run=169
Use of peak finders
See for detail
- Hit/Peak Finding Details - description of algorithms
- ImgAlgos.PyAlgos - interface methods
Work We work with peak finder versions v2,3,4. Data processing and peak finding is done in
cxif5315/proc-cxif5315-r0169-data-pfvn-2016-03-28.py
alg_arc = PyAlgos(windows=winds_arc, mask=mask_arc, pbits= 2 ) alg_equ.set_peak_selection_pars(npix_min= 4 , npix_max= 500 , amax_thr= 0 , atot_thr= 600 , son_min= 5 ) # for pfv2, 4 #alg_equ.set_peak_selection_pars(npix_min= 4 , npix_max= 500 , amax_thr= 0 , atot_thr= 600 , son_min= 10 ) # for pfv3 alg_equ = # all parameters are the same as for alg_arc peaks_arc = alg_arc.peak_finder_v2(nda, thr= 10 , r0= 6 , dr= 0.5 ) # Flood-filling #peaks_arc = alg_arc.peak_finder_v3(nda, rank= 6 , r0= 6 , dr= 0.5 ) # Ranker #peaks_arc = alg_arc.peak_finder_v4(nda, thr_low= 10 , thr_high= 150 , rank= 5 , r0= 6 , dr= 0.5 ) # Droplet-finder |
This script saves a list of peak parameters
Code Block | ||||
---|---|---|---|---|
| ||||
# Exp Run Date Time time(sec) time(nsec) fiduc Evnum Reg Seg Row Col Npix Amax Atot rcent ccent rsigma csigma rmin rmax cmin cmax bkgd rms son imrow imcol x[um] y[um] r[um] phi[deg] cxif5315 169 2015-02-22 02:20:47 1424600447 478050876 104418 0 EQU 1 162 30 38 257.1 2901.5 160.8 29.7 2.21 1.25 157 168 25 36 9.42 26.64 9.30 574 640 7582 550 7601 4.15 cxif5315 169 2015-02-22 02:20:47 1424600447 486382070 104421 1 ARC 7 126 386 22 153.6 818.7 126.5 383.6 2.76 1.77 121 132 381 388 1.80 19.08 7.95 143 618 5157 47858 48135 83.85 cxif5315 169 2015-02-22 02:20:47 1424600447 486382070 104421 1 EQU 1 159 28 50 172.0 2808.5 159.3 28.0 2.93 1.68 154 165 23 34 3.37 27.07 6.23 576 643 7912 331 7919 2.40 cxif5315 169 2015-02-22 02:20:47 1424600447 494719789 104424 2 EQU 1 150 33 44 154.4 1624.7 150.5 32.8 3.07 1.72 145 156 28 39 4.33 21.19 7.08 571 652 8900 883 8943 5.67 |
Peak list processing
For further peak list processing we use script:
cxif5315/proc-cxif5315-r0169-peaks-from-file-v4.py
...
which uses peak selectors.
Peak Selectors
In this section we list distribution of peak parameters right after peak finders and discuss parameter range for further selection stage in
Code Block | ||||
---|---|---|---|---|
| ||||
def peakIsSelectedArc(pk) : """Apply peak selection criteria to each peak from file """ if pk.rms>60 : return False if pk.sonc<5 : return False if pk.atot<1200 : return False if pk.r<435 : return False if pk.r>443 : return False if pk.npix>200 : return False if math.fabs(pk.bkgd)>20 : return False return True |
and
Code Block | ||||
---|---|---|---|---|
| ||||
def peakIsSelectedEqu(pk) : """Apply peak selection criteria to each peak from file """ if pk.rms>60 : return False if pk.sonc<5 : return False if pk.atot<1800 : return False if pk.r<100 : return False if pk.r>454 : return False if pk.npix>200 : return False if math.fabs(pk.bkgd)>20 : return False return True |
...
We process Data of cxif5315-r0169 for peaks in ARC and Equatorial region separately. Each triplet of histograms represents peak finder v2, v3, v4, respectively.
...
- Amax is only used in pfv4 as
thr_high=150
- Atot is used in all peak-finders as
atot_thr=600
if pk.atot<1800 : return False
if pk.rms>60 : return False
...
- bkgd is used in all peak-finders at processing in peak selector
if math.fabs(pk.bkgd)>20 : return False
- npix is used in all peak finders in peak selector
npix_min=4, npix_max=500
if pk.npix>200 : return False
son_min=5
# for pfv2,4
son_min=10# for pfv3
- Ranker - to eliminate large number of purely statistical seed peaks
...
...
...
...
...
...
...
if pk.r<100 : return False
if pk.r>454 : return False
...
Use pyimgalgos.TDFileContainer for both peakfinder and cheetah
Code Block |
---|
fc_ch = TDFileContainer(fncheet, indhdr='frameNumber', objtype=TDCheetahPeakRecord) # , pbits=256) fc_pf = TDFileContainer(fnpeaks, indhdr='Evnum', objtype=TDPeakRecord) #, pbits=256) |
...
- Loop over all groups (frames/events) in cheetah
- Find associated peak-finder group: gr_pf = fc_pf.group(evnum-1) # accounts for -1 offset in event numeration in Cheetah and pf.
- count cases when peak-finder group does not exist (peaks not found)
- discard frames if fidelity do not match
- discard frames with more than 5 peaks
- loop over cheetah peaks
- discard cheetah peaks outside ROI mask
- loop over pf-peaks and check that cheetah peak can be matched with one of them by location (s, r, c)
- if not-matched - print peak main features
Statistics for number of peaks:
- total in Cheetah: 14002
- matched: 10593
- not-matched: 3409
- fraction of matched: 0.757
Plots for number of peaks in peak-finder, Cheetah, and number of non-matched:matched Cheetah peaks.
Peak-finder number of peaks accounts for arc region.
References
...