Droplet

Instead of storing all pixels, you can also run droplet reconstruction. You can either store the droplets or break them down in a list of single photons (the latter requires all photons to be of the same energy). This is useful if you have a low hit rate, care about sub-pixel position resolution for detectors where photons leave energy in >1 pixel (e.g. the EPIX) or would like to use deduce the energy of the incident photon and thus need to combine energy from all pixels that stem from the same photon. For data with high photon densities, the photons will all "glob" together in a single droplet as all pixels above threshold with neighboring faces will be constructed into the same droplet. The number of pixels contained in a droplet will be saved for all droplets. 

The droplet algorithm and its parameters will be described in more detail later.

 

epixnames = ['epix_vonHamos']
dets=[]
for iepix,epixname in enumerate(epixnames):
    have_epix = checkDet(ds.env(), epixname)
    if have_epix:
        print 'creating epix detector object  for epix ',epixname
        epix = DetObject(epixname ,ds.env(), int(run), name=epixname,common_mode=46)
 
        epix.addDroplet(threshold=10., thresholdLow=3., thresADU=0.,name='droplet')
        epix['droplet'].addAduHist([0.,1500.])
        epix['droplet'].addDropletSave(maxDroplets=nDrop[iepix])
 
        dets.append(epix)

 

Optionally, you can ask for the second momenta of the droplets to be stored. It is also possible to store the ADU values for all pixels contained in the droplet, so that further deconstruction can take place. A simple, first level separation of a droplets into single photon candidates is already provided and will give similar results to the Photons method described below. As for the Photons method, the expected signal for a photon is needed here as input.

Photons

A similar result can be achieved by using photon reconstruction. Here, the average signal for a photon is needed as input, so this method only works for data with a single photon energy.

and the algorithm is described here.

epixnames = ['epix_vonHamos']
dets=[]
for iepix,epixname in enumerate(epixnames):
    have_epix = checkDet(ds.env(), epixname)
    if have_epix:
        print 'creating epix detector object  for epix ',epixname
        epix = DetObject(epixname ,ds.env(), int(run), name=epixname,common_mode=46)
 
        epix.addPhotons(ADU_per_photon=154, thresADU=0.9, retImg=2, nPhotMax=25)
        epix.addPhotons(ADU_per_photon=154, thresADU=0.8, retImg=1, nPhotRet=100, name='photon_as_array')

addPhotons options:

ADU_per_photon:

thresADU:

nPhotMax:

retime:

 

  • No labels