Versions Compared

Key

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

...

DateDetectorGain modePhoton sourceOccupancy (photons/pixel)Per-pixel histogram fit HDF5Experiment/RunDeployed gain fileComments
2016-02-16DsaCsPadhighIron K-alpha (6.4keV)0.015

/reg/g/psdm/detector/alignment/cspad/

calib-cxi-camera2-2016-02-05/calib/

CsPad::CalibV1/CxiDs2.0:Cspad.0/pixel_gain/

 run16_DsaCsPad_flat_orig.h5

cxi01516/16cxi01516-r0016-2016-02-18-FeKalpha.dataSuccess rate was low ~0.75%. Filled in the rest with average gain from each asic.
2016-04-13DsaCsPadhighCu K-alpha (8.0keV)0.043

/reg/g/psdm/detector/alignment/cspad/

calib-cxi-camera2-2016-02-05/calib/

CsPad::CalibV1/CxiDs2.0:Cspad.0/pixel_gain/

 run6_DsaCsPad_flatIso.h5

cxi00516/6run6_DsaCsPad_flatIso.data

Success rate was high ~0.99%, but there were some scattering in the centre, so filled that in with the average gain from each asic.

Experiment: cxi00516 run6

2018-04DsaCsPad 
Cu  

cxilr6716gain_prelim.npy

From Derek Mendez:

Its not

perfect but seems to improve the data (pretty important for the correlations experiment). Interestingly in this camera there is also a lone quad that is off.

 The initial goal was to measure an intensity-dependent gain correction (hence the different transmissions), but for now I just use the average gain cal from these data.
 One such average-gain map is stored as a 3D numpy array (same shape array returned by det.raw(event) ), this is in cxilt1417/scratch/gain/gain_prelim.npy* . the correction would be

>> gain = np.load("gain_prelim.npy")

>> assert ( np.all(gain!=0) )

>> data = det.calib(None)

>> data /= gain

...

Note: Pnccd has numbered gain modes. 


Kaz says that PNCCD gives out ~1250ADU per 1keV photon in highest gain range.

K-alpha table for Silicon (1.74keV):

http://www.yourperiodictable.com/silicon.php

...

DatePhoton SourceCarrier ID 0/1Digital Card ID 0/1Analog Card ID 0/1Experiment/RunGain FileComment
2016-04-14Cu K-alpha (8 keV)996663297/37916508261232098304/9532062832655595777/520093719xcs01116/95gainPixelCorr_passZero_r95_c1.txtFrom Philip Hart
2016-06-30Cu K-alpha

996477441/2264924170

1794137088/403490827

2397900801/4076863512

xcs06016/37gainPixelCorr_passZero_r37_c1.txtFrom Philip Hart
2016-06-30Cu K-alpha

996579585/553648138

1232098304/1221641739

2650251521/3976200215

xcs06016/37gainPixelCorr_passZero_r37_c2.txtFrom Philip Hart
2016-06-30Cu K-alpha

996663297/3791650826

1232098304/953206283

2655595777/520093719

xcs06016/37gainPixelCorr_passZero_r3335_c3.txtFrom Philip Hart
2016-07-01Ni fluorescence998779393/1174405221794137088/4034908272669921025/100663319xcs06016/52gainPixelCorr_passZero_r52_c2.txtFrom Philip Hart
2016-07-01Ni fluorescence996513537/20803747941794135040/9403617392398406657/419430424xcs06016/52gainPixelCorr_passZero_r52_c3.txtFrom Philip Hart
2016-07-01Cu K-alpha996432897/35903242341232100352/11545328752654088449/33554455xcs06016/37gainPixelCorr_passZero_r37_c0.txtFrom Philip Hart
2016-10-21 
As above  

xcsm9816/2-27,45-49gainPixelCorr_passZeroL_r2049_c2.txtFrom Philip Hart
2017-06-06Cu K-alpha997010433/31708938341794137088/4034908272403244545/1224736792mfx01316/6,7gain3PixelCorr_passZero_r6007_c0.txtFrom Philip Hart, fit statistics might be marginal so consider using the alternative non-fit results below  


As above   


gainPixelCorr_passZero_r6007_c0.txtFrom Philip Hart, uses mode instead of gaussian fit because of marginal statistics
2017-09-22Fe550996513537/20803747941794135040/09403617392398406657/0419430424detdaq17 9-15gainPixelCorr_passZeroL_r10121315_c0.npyFrom Philiph Hart

...

Code Block
from psana import *
import sys
ds = DataSource(sys.argv[1])
evt = ds.events().next()
cs = ds.env().configStore()
cfg = cs.get(Epix.Config100aV2, Source(sys.argv[2]))
print str(cfg.version()) # not ideal: currently the config DDL version.  ideally would be the firmware version.
print str(cfg.carrierId0())+'/'+str(cfg.carrierId1())
print str(cfg.digitalCardId0())+'/'+str(cfg.digitalCardId1())
print str(cfg.analogCardId0())+'/'+str(cfg.analogCardId1())
#a0 = cfg.asics(0)
#a0.chipID()

...