Versions Compared

Key

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

...

For example, pure water ring background from exp=cxij4716:run=22 for single event:

To evaluate background in data, n-d array of data is split for 2-d bins in polar coordinate frame, total intensity and number of involved pixels are counted for each bin and converted to the average bin intensity.

...

  • For good statistical precision of the background averaging 2-d bins should contain large number of pixels. However large bins produces significant binning artifacts which are seen in resulting image.
  • The main reason for angular bins is a variation of intensity with angle due to polarization effect. The beam polarization effect can be eliminated with appropriate correction.
  • Method for polarization correction factor:

    Code Block
    collapsetrue
    def polarization_factor(rad, phi_deg, z) :
        """Returns per-pixel polarization factors, assuming that detector is perpendicular to Z.
        """
        phi = np.deg2rad(phi_deg)
        ones = np.ones_like(rad)
        theta = np.arctan2(rad, z)
        polsxc = 1 - np.sqrt(np.fabs(np.sin(theta)*np.cos(phi)))
        pol = 1 - sxc*sxc
        return divide_protected(ones, pol, vsub_zero=0) 


    Then, radial background can be estimated for a single angular bins (ring-shaped radial bins) :

Code Block
pf = polarization_factor(rb.pixel_rad(), rb.pixel_phi(), z)
res = rb.subtract_bkgd(nda * pf)

For z=1m we get polarization correction factor, corrected data (water-ring) sample, and background subtracted data as follows.

Image RemovedImage Removed

 

Image RemovedImage Removed

Image RemovedImage Removed

Effect of polarization is somehow accounted, but most likely the sample-to-detector distance 1m is not correct.

 

The data set exp=cxij4716:run=22 was collected at sample-to-detector distance z=94mm. In this case polarization correction formula gives distribution for correction factor and "corrected" data averaged over all 14636 events:

 

Image RemovedImage Removed

Image RemovedImage Removed

So, it looks like polarization correction formula is wrong

 

 

CSPAD "dopping" artifacts

  • or several angular bins:

Code Block
arr = load_txt(fname_nda)
rb = RadialBkgd(X, Y, mask, nradbins=500, nphibins=1)
pf = gu.reshape_to_2d(polarization_factor(rb.pixel_rad(), rb.pixel_phi(), 0.5e694e3))
nda = rb.subtract_bkgd(arr * pf) * mask.flatten()

For exp=cxij4716:run=22 z=94mm

  • averaged over all 14636 events calibrated (pedestal, common mode)

...

  • data 
    Image AddedImage Added
  • polarization correction factor 
    Image AddedImage Added
  • polarization corrected data
    Image AddedImage Added
  • radial-background subtracted data using single angular bin
    Image AddedImage Added
  • radial-background subtracted data using 8 angular bins
    Image AddedImage Added

CSPAD "dopping" artifacts

  • zoomed-in regions of the last plot
    Image AddedImage Added

Shows some "doping" as well as "gray scale gradient" artifacts.

 

Polarization corrected, radial background subtracted image, array spectra, and zoomed parts of the image with potential artifact candidates:

Image Removed Image Removed Image Removed Image Removed

References

...