Page History
Table of Contents |
---|
Issue
Code Block | ||||
---|---|---|---|---|
| ||||
Mariani, Valerio Mon 2/7/2022 4:31 PM Dear Phil, Mikhail and Chris, Sabine provided me with the mask they are using. You can find it at: ~valmarpsana-extra-extreme-sabine2.h5 Like the name suggests, it goes to the extreme in masking stuff. It looks more or less like the attached screenshot. Sabine says she is working on another mask, which I will pass to you as soon as I get. Thank you! Valerio ----- From: Hart, Philip Adam <philiph@slac.stanford.edu> Sent: Wednesday, November 10, 2021 3:01 PM To: lcls-det-support <lcls-det-support@slac.stanford.edu> Subject: JF4M status Hi, I'm looking a bit at the report of damaged JF4M pixels following an ice (?) event. I see we've gone from ~261 official bad pixels to ~1931 and now have ~520 more pixels stuck in low when autoranging (id est, in 'Normal'). A simple script to capture this information and look at pixels stuck in the wrong state for a pedestal run is ~philiph/psana/jungfrau/2021/badSwitchStatus.py. E.g., psanagpu103:~/psana/jungfrau/2021$ python badSwitchStatus.py cxilu7619 168 mode is Normal found 4194254 pixels in Normal found 20 pixels in Med found 30 pixels in Low mode is Med found 29 pixels in Normal found 4194273 pixels in Med found 2 pixels in Low mode is Low found 23 pixels in Normal found 3 pixels in Med found 4194272 pixels in Low number of bad pixels overall: 261 psanagpu103:~/psana/jungfrau/2021$ python badSwitchStatus.py cxilv1019 142 mode is Normal found 4193737 pixels in Normal found 17 pixels in Med found 550 pixels in Low mode is Med found 28 pixels in Normal found 4194274 pixels in Med found 2 pixels in Low mode is Low found 22 pixels in Normal found 3 pixels in Med found 4194273 pixels in Low number of bad pixels overall: 1931 - Philip |
...
Images of mask versions
User's mask
Mask from ~valmarpsana~valmar/psana-extra-extreme-sabine2.h5 - very agressive masking - radial=9 pix around bad!
Bad pixel status as mask
Images of generated from status_as_mask arrays (3, 8, 512, 1024) merged for 3 gain ranges to the shape=(8, 512, 1024)
- mask = det.status_as_mask(par, mode=3, mstcode=63) - mask all status codes but bad gain switch
- mstcode=64 - mask of the new bad gain switch
...
- status
- mstcode=127 - mask all bad status codes
cxic00120 run 42
cxic00120 run 24
cxic00120 run 42 NEIGHBOURS MASKED AS +/-1pixel around each bad
- mstcode=64 strongly overlaps with 63
- mstcode=63 and 127 shows about the same mask, difference is minor ..as shown in pixel status statistics.
pixel status statistics
cxic00318 r375
Merged for 3 gain modes status
cxic00120 run:24 status.shape:(8, 512, 1024) size: 4194304
bad pixels w/o sw: number of pixels containing bits 63(dec) 077(oct): 3739 of total bad 3768 of total 4194304
bad pixels switch: number of pixels containing bits 64(dec) 0100(oct): 1117 of total bad 3768 of total 4194304
bad pixels total : number of pixels containing bits 127(dec) 0177(oct): 3768 of total bad 3768 of total 4194304
Bad status code 64 adds 3768-3739=29 bad pixel.
Non-merged for 3 gain modes status
cxic00120 run:24 status.shape:(3, 8, 512, 1024) size: 12582912
bad pixels w/o sw: number of pixels containing bits 63(dec) 077(oct): 6217 of total bad 6280 of total 12582912
bad pixels switch: number of pixels containing bits 64(dec) 0100(oct): 1150 of total bad 6280 of total 12582912
bad pixels total : number of pixels containing bits 127(dec) 0177(oct): 6280 of total bad 6280 of total 12582912
Bad status code 64 adds 6280-6217=63 bad pixel.
Non-merged for 3 gain modes status
cxic00120 run:42 status.shape:(3, 8, 512, 1024) size: 12582912
bad pixels w/o sw: number of pixels containing bits 63(dec) 077(oct): 7673 of total bad 7734 of total 12582912
bad pixels switch: number of pixels containing bits 64(dec) 0100(oct): 1850 of total bad 7734 of total 12582912
bad pixels total : number of pixels containing bits 127(dec) 0177(oct): 7734 of total bad 7734 of total 12582912bits: 63 number of bad pixels: 8478 - all pixels with bad status without gain switch
bits: 64 number of bad pixels: 1836 - bad gain switch
bits: 127 number of bad pixels: 8562 - all pixels with bad status
Bad status code 64 adds 8562 7734-8478=84 pixels7673=61 bad pixel.
Combined mask
mask = det.mask(parevt, calib=False, status=True, edges=True, central=True, unbond=False, unbondnbrs=False, mode=30o377, width=5, wcentral=5, mstcode=0xffff)
Custom mask
import PSCalib.GlobalUtils as gu
mask = det.status_as_mask(evt, mstcode=0o377) # mode=0 - by default do not mask neighbors
mask = gu.mask_neighbors_in_radius(mask, rad=6, ptrn='r')
mask = gu.merge_masks(mask, det.mask_geo(evt, width=10, wcentral=5)) # mbits=0o377, where 1-edges, 2-central, 4-non-bonded for cspad2x1, ... non-bonded neighbors
#mask = gu.merge_masks(mask, gu.mask_edges(mask, mrows=2, mcols=4)) # masks each segment edges only
mask = gu.merge_masks(mask, det.mask_calib(evt))
Summary
- New bad pixel status code is added for bad gain mode switch:
Code Block |
---|
[I] L0703 bad pixel status:
status 1: 1240 pixel rms > 19.414
status 2: 1875 pixel rms < 0.611
status 4: 1755 pixel intensity > 16000 in more than 0.1 fraction of events
status 8: 111 pixel intensity < 1 in more than 0.1 fraction of events
status 16: 340 pixel average > 3761.95
status 32: 1940 pixel average < 1226.6
[I] L0108
status 64: 1790 pixel with bad gain mode switch |
- However this new status bit 64 strongly overlaps with other bad pixel status.
- User's mask contains more bad pixels in peripheral rings ...
References
...