Data
exp=mfxc00118:run=191:smd
epix10k2M
/reg/d/psdm/mfx/mfxc00118/calib
gain mode is FL, as seen in datinfo.
datinfo -e mfxc00118 -d epix10k2M -r191
[I] L0210: command: /cds/home/d/dubrovin/LCLS/con-py2/arch/x86_64-rhel7-gcc48-opt/bin/datinfo -e mfxc00118 -d epix10k2M -r191
[I] L0211: **kwargs
runs: 191
dssuffix: :smd
detname: epix10k2M
evtkeys: 2
stskip: 0
expname: mfxc00118
steps: 1000
evskip: 0
stepnum: None
logmode: INFO
events: 1000000
[I] L0040: dsname: exp=mfxc00118:run=191:smd
[I] L0041: detname: epix10k2M
[I] L0114: runnum: 191
[I] L0115: info_det: info_det
det.src: Source("DetInfo(MfxEndstation.0:Epix10ka2M.0)")
dettype: 32
calibration constants for par(run or evt): 191
pedestals shape:(7, 16, 352, 384) size:15138816 dtype:float32 [3497.452 3462.729 3479.892 3555.06 3379.326...]
rms shape:(7, 16, 352, 384) size:15138816 dtype:float32 [6.935 7.433 7.335 7.416 7.097...]
status shape:(7, 16, 352, 384) size:15138816 dtype:uint16 [0 0 0 0 0...]
common_mode shape:(16,) size:16 dtype:float64 [ 7. 2. 10. 10. 0....]
pixel X shape:(1, 16, 352, 384) size:2162688 dtype:float64 [-42873.23141788 -42773.25839541 -42673.28537293 -42573.31235046
-42473.33932799...]
pixel Y shape:(1, 16, 352, 384) size:2162688 dtype:float64 [-41529.65240873 -41528.50952055 -41527.36663237 -41526.22374418
-41525.080856 ...]
pixel Z shape:(1, 16, 352, 384) size:2162688 dtype:float64 [-175852.28919395 -175854.31121874 -175856.33324353 -175858.35526833
-175860.37729312...]
[I] L0116: calibDir: /reg/d/psdm/mfx/mfxc00118/calib
[I] L0117: dettype: 32
[I] L0118: dettype of EPIX10KA2M: 32
==== run 0191 ====
==== istep 0
ControlData.pvLabels:
evt.keys:
EventKey(type=psana.EvrData.DataV4, src='DetInfo(NoDetector.0:Evr.0)', alias='evr0')
EventKey(type=psana.Epix.ArrayV1, src='DetInfo(MfxEndstation.0:Epix10ka2M.0)', alias='epix10k2M')
EventKey(type=psana.Bld.BldDataEBeamV7, src='BldInfo(EBeam)')
EventKey(type=psana.Bld.BldDataFEEGasDetEnergyV1, src='BldInfo(FEEGasDetEnergy)')
EventKey(type=psana.Bld.BldDataBeamMonitorV1, src='BldInfo(MFX-DG1-BMMON)')
EventKey(type=psana.Bld.BldDataBeamMonitorV1, src='BldInfo(MFX-DG2-BMMON)')
EventKey(type=psana.EventOffset)
EventKey(type=psana.EventId)
EventKey(type=None)
EventKey(type=psana.DgramList)
ievt: 0000 pixel gain mode fractions for ranges
FH FM FL AHL-H AML-M AHL-L AML-L
1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000
ievt: 0000 raw shape:(16, 352, 384) size:2162688 dtype:uint16 [3632 3496 3644 3543 3374...]
evt.keys:
EventKey(type=psana.EvrData.DataV4, src='DetInfo(NoDetector.0:Evr.0)', alias='evr0')
EventKey(type=psana.Epix.ArrayV1, src='DetInfo(MfxEndstation.0:Epix10ka2M.0)', alias='epix10k2M')
EventKey(type=psana.Bld.BldDataEBeamV7, src='BldInfo(EBeam)')
EventKey(type=psana.Bld.BldDataFEEGasDetEnergyV1, src='BldInfo(FEEGasDetEnergy)')
EventKey(type=psana.Bld.BldDataBeamMonitorV1, src='BldInfo(MFX-DG1-BMMON)')
EventKey(type=psana.Bld.BldDataBeamMonitorV1, src='BldInfo(MFX-DG2-BMMON)')
EventKey(type=psana.EventOffset)
EventKey(type=psana.EventId)
EventKey(type=None)
EventKey(type=psana.DgramList)
ievt: 0001 pixel gain mode fractions for ranges
FH FM FL AHL-H AML-M AHL-L AML-L
1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000
ievt: 0100 raw shape:(16, 352, 384) size:2162688 dtype:uint16 [3507 3458 3474 3722 3377...]
ievt: 0200 raw shape:(16, 352, 384) size:2162688 dtype:uint16 [3498 3493 3494 3543 3386...]
ievt: 0300 raw shape:(16, 352, 384) size:2162688 dtype:uint16 [3483 3454 3461 3722 3382...]
ievt: 0400 raw shape:(16, 352, 384) size:2162688 dtype:uint16 [3513 3662 3487 3829 3376...]
ievt: 0500 raw shape:(16, 352, 384) size:2162688 dtype:uint16 [3667 3445 3479 3551 3378...]
...
ievt: 6700 raw shape:(16, 352, 384) size:2162688 dtype:uint16 [3500 3655 3477 3555 3374...]
ievt: 6800 raw shape:(16, 352, 384) size:2162688 dtype:uint16 [3575 3653 3492 3543 3378...]
ievt: 6900 raw shape:(16, 352, 384) size:2162688 dtype:uint16 [3502 3468 3472 3551 3375...]
ievt: 6999 raw shape:(16, 352, 384) size:2162688 dtype:uint16 [3490 3465 3484 3547 3376...]
==== Summary
run:0191 step:(events total, good):
0: (7000, 7000)
[I] L0215: DONE, consumed time 184.117 sec
End of datinfo
Access to calibration raw data
from Detector.PyDataAccess import get_epix_config_object, get_epix_data_object
odata = get_epix_data_object(evt, det.source)
crows = odata.calibrationRows()
calibrows shape:(16, 4, 384) size:24576 dtype:uint16 [3169 2982 3159 2822 3093...]
raw shape:(16, 352, 384) size:2162688 dtype:uint16 [3651 3470 3463 3534 3398...]
combine these arrays together for panel images with x20 rows for each calibration row.
Raw data images
- epix10ka_calib_components -e mfxc00118 -d epix10k2M -r191 -N3 -t102 -S
parser.parse_args: Namespace(amax=None, amin=None, cframe=0, detname='epix10k2M', events=3, evskip=0, expname='mfxc00118', grindex=None, loglev='INFO', run=191, saveimg=True, segindex=None, stepnum=None, tname='102')
Segments of entire detector
Segments of quad 0
Segments of quad 1
Segments of quad 2
Segments of quad 3
Issue
- panels of quad 0 behave as expected
- panels of quads 1,2,3 - calibration rows for "dark" and "max code" swap data???
Averaging of calibration rows
Detector/examples/ex_epix10ka_calibrows.py -e mfxc00118 -d epix10k2M -r191 -N1000 -K0
== panel:0
med shape:(4, 384) size:1536 dtype:float64 [3168.367 2983.392 3160.525 2821.145 3094.843...]
med[0,:] shape:(384,) size:384 dtype:float64 [3168.367 2983.392 3160.525 2821.145 3094.843...]
med[1,:] shape:(384,) size:384 dtype:float64 [3207.724 2862.678 3111.163 2934.188 3149.702...]
rms[0,:] shape:(384,) size:384 dtype:float64 [1.84345084 1.72983699 1.78251928 1.67749069 1.78054795...]
rms[1,:] shape:(384,) size:384 dtype:float64 [1.63518317 1.61873902 1.65663243 1.68245535 1.61962835...]
minimum of med[0,:]: 2634.083
minimum of med[1,:]: 2634.186
maximum of med[0,:]: 3391.569
maximum of med[1,:]: 3466.012
medium of rms[0,:]: 1.887
medium of rms[1,:]: 1.849
maximum of rms[0,:]: 3.073
maximum of rms[1,:]: 3.039
== panel:1
med shape:(4, 384) size:1536 dtype:float64 [3374.236 3126.95 3364.15 3193.475 3378.609...]
med[0,:] shape:(384,) size:384 dtype:float64 [3374.236 3126.95 3364.15 3193.475 3378.609...]
med[1,:] shape:(384,) size:384 dtype:float64 [2901.247 2836.717 2924.391 2860.471 2863.963...]
rms[0,:] shape:(384,) size:384 dtype:float64 [1.64143352 1.75997159 1.68923059 1.57396792 1.6894138 ...]
rms[1,:] shape:(384,) size:384 dtype:float64 [1.72394635 1.73462128 1.72630212 1.65019968 1.69104435...]
minimum of med[0,:]: 2812.748
minimum of med[1,:]: 2529.810
maximum of med[0,:]: 3605.198
maximum of med[1,:]: 3465.724
medium of rms[0,:]: 1.893
medium of rms[1,:]: 1.885
maximum of rms[0,:]: 3.428
maximum of rms[1,:]: 3.099
== panel:2
med shape:(4, 384) size:1536 dtype:float64 [3075.72 3311.056 3158.876 3237.059 3049.259...]
med[0,:] shape:(384,) size:384 dtype:float64 [3075.72 3311.056 3158.876 3237.059 3049.259...]
med[1,:] shape:(384,) size:384 dtype:float64 [3178.537 3370.59 3195.272 3342.484 3157.823...]
rms[0,:] shape:(384,) size:384 dtype:float64 [1.81427672 1.88649516 1.82828444 1.85135599 1.69879928...]
rms[1,:] shape:(384,) size:384 dtype:float64 [1.81511184 1.78714857 1.72453356 1.79380712 1.77021778...]
minimum of med[0,:]: 2439.597
minimum of med[1,:]: 2577.148
maximum of med[0,:]: 3377.571
maximum of med[1,:]: 3429.967
medium of rms[0,:]: 1.972
medium of rms[1,:]: 1.874
maximum of rms[0,:]: 2.916
maximum of rms[1,:]: 2.687
== panel:3
med shape:(4, 384) size:1536 dtype:float64 [3118.39 3215.456 3045.94 3241.929 3118.27 ...]
med[0,:] shape:(384,) size:384 dtype:float64 [3118.39 3215.456 3045.94 3241.929 3118.27 ...]
med[1,:] shape:(384,) size:384 dtype:float64 [3069.808 3133.232 2972.622 3142.785 2881.554...]
rms[0,:] shape:(384,) size:384 dtype:float64 [1.74467762 1.76693633 1.74367428 1.74927385 1.7207847 ...]
rms[1,:] shape:(384,) size:384 dtype:float64 [1.83660992 1.74016551 1.73237294 1.76373893 1.75587129...]
minimum of med[0,:]: 2815.598
minimum of med[1,:]: 2534.478
maximum of med[0,:]: 3558.153
maximum of med[1,:]: 3253.122
medium of rms[0,:]: 1.908
medium of rms[1,:]: 1.980
maximum of rms[0,:]: 2.879
maximum of rms[1,:]: 2.975
iv calibrows-mfxc00118-r0191-epix10k2M-ave.npy
iv calibrows-mfxc00118-r0191-epix10k2M-rms.npy
raw - pedestals vs calibrow
Images before and after standard common mode correction
epix10ka_calib_components -t7 -S
# raw - pedestalsepix10ka_calib_components -t9 --amin -2 --amax 2 -S
# det.calib(evt, cmpars=(7,7,10,10))
Plots above show that common mode effect is seen and can be eliminated with standard algorithm for common mode correction. This algorithm does not work well in the central part of the detector where more than 50% of pixels have signal.
Segment 0-3 images with calibration rows
Raw data with subtracted pedestals for segments 0-3. Calibration rows show the difference between event calibrow and its average over 1000 events of the same run.
epix10ka_calib_components -t103 -i0 -S
epix10ka_calib_components -t103 -i1 -S
epix10ka_calib_components -t103 -i2 -S
epix10ka_calib_components -t103 -i3 -S
Scatter plots for segment 1 top and bottom half
Scatter plots show correlation between calibrow and segment row pixel intensities.
epix10ka_calib_components -t103 -i1 --icrow 0 -S
# left plot is a superposition of segment rows 0:176 vs calibrow 0epix10ka_calib_components -t103 -i1 --icrow 1 -S
# right plot is a superposition of segment rows 176:352 vs calibrow 1
- No correlation observed
- Swapping of rows 0,1 between panel halves (to check possible mapping issue) does not work either.
Conclusion
- data sample shows common mode effect, which can be handled by standard cm correction, except overpopulated central region.
- in "raw - pedestal" type of images calibration rows do not reproduce common behavior in ASIC's.
- quad 0 looks good - does not show significant difference between banks - hard to judge about calibrows mapping, it might be wrong mapping yet.
- scatter plots do not show correlation either
- Q: configuration of calibrows - gain mode, what exactly do they show?
References