Versions Compared

Key

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

...

Content of this file depends on detector, calibration type, and algorithm, as shown below.

 


Algorithms

We use algorithms earlier developed for CSPAD and other detectors and currently residing in ImgAlgos and  psalg packages.

...

Code Block
for nevent, evt in enumerate(ds.events()):
	if nevent == 10:
		break
 
	# cmpars = [6] because this is the 6th common mode algorithm and it must be in a list format
	# Add arguments on as seen fit
    nda = det.calib(evt, cmpars = [6], rms = det.rms(evt), maxCorr = 25)

#7 - MEDIAN algorithm for jungfrau and epix10ka

  • par[0] - algorithm # 7
  • par[1] - mode 0/ +1/ +2/ +4 - turned off / median for   in rows /  median for in columns / in banks
  • par[2] - maximal allowed common mode correction to protect from over-correction

Default parameters:

  • at high illumination - needs to be adjusted bu users per experiment
Note

rows and columns are one dimensional set of pixels limited by the shape of bank.

  • jungfrau panel shape=(512,1024) consists of 2x4=8 ASICs, each ASIC contains 4 banks of shape=(256,64) 
  • epix10ka panel shape=(352,384) consists of 2x2=4 ASICs, each ASIC contains 4 banks of shape=(176,48) 
  • common mode correction is applied to pixels in high gain mode only for jungfrau and H or M modes (fixed or auto-switching) only for epix10ka panels, respectively.
  • common mode is evaluated for good pixels only (marked by 1 in mask).
  • mask is combined of 2 sources (if available)
    • det.calib(..., mbits=1,...) which is used in det.mask_comb(..., mbits=1,...). Parameter mbits controls mask of many sources, including pixel_status, borders, un-bond pixels, and user-defined pixel_mask.
    • det.calib(..., mask=None,...) user specified mask shaped as det.raw

Default parameters:

Code Block
7 
Code Block
7 1 100 0 0 0 0 0 0 0 0 0 0 0 0 0 

...

Code Block
# cmpars=None # for default
# cmpars=(7,0,1001000) # turn off common mode correction
# cmpars=(7,1,1001000) # correction in rows
# cmpars=(7,2,1001000) # correction in columns
# cmpars=(7,3,100,1000) # correction in rows and columns
# cmpars=(7,4,1000) # correction in banks
# cmpars=(7,8,1000) # correction in banks, rows and columns (in this order - banks first, then rows, then columns)
nda = jungfraudet.calib(evt, cmpars=(7,3,1000), mbits=1, 100)mask=None, **kwargs)

#8 - MEDIAN algorithm for pnCCD

...

Images 1) for subtracted pedestals and 2) common mode correction algorithm #2:

 

 



High gain pnCCD run 329

Code Block
2(or 3) 1000 1000 128

...

Spectra for 1) raw data, 2) subtracted pedestals, 3) subtracted common mode correction algorithm #1:

 


Images 1) raw data and 2) subtracted pedestals with common mode correction algorithm #1:

...

Common mode correction for CSPAD2x2 in this example shows minor improvement. 


References

2014-03-25-Ankush-CommonModeNoise.pdf - stand-alone test of common mode correction for pnCCD

psana - Module Catalog - Module ImgAlgos::NDArrCalib

Epix100a

Fccd960-Detector