Data
exp=mfxc00118:run=191:smd
epix10k2M
/reg/d/psdm/mfx/mfxc00118/calib
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
Detector/app/epix10ka_calib_components -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 - Peds
Plots show raw data with subtracted pedestals. Calibration rows are shown as a difference between event data and averaged over 1000 events of the same run.
Conclusion
- In raw - pedestal type of images calibration rows do not reproduce common behavior in ASIC's.
- quad 4 looks quite good - does not show significant difference between banks - hard to judge about calib-rows mapping.
- it might be wrong mapping yet.
References