You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 21 Next »

Two new detectors EPIX10KA2M and EPIX10KAQUAD are composed from EPIX10KA modules.

Content

Geometry

Plots and comments from Chris Kenny

Comments on epix10ka2m geometry from Chris Kenney
Kenney, Christopher J. 2018-11-12, 2:26 PM             

Guide tube is 7mm outer diameter
We added polyimide tape that was 150 microns thick before application
to the tube.

But a decent estimate would be the mechanical edge-to-edge orthogonal 
separation between sensor edges 7.3 mm. 
We need to add about 1 mm for the guard rings on each sensor

So the orthogonal gap between active pixels on opposing quads across
the beam guide tube should be 8.3 mm

====
Kenney, Christopher J. 2018-11-12, 4:41 PM Blaj, Gabriel;Dubrovin, Mikhail;Kwiatkowski, Maciej             
   
Very rough estimate of the gaps 
There are 3 types of gaps
All are active pixel to active pixel
sensor to sensor ~ 1.6 mm
CB to CB ~ 6.4 mm
sensor to CB ~ 3.9 mm

====
CB = Carrier Board edges
Full camera image below
====
so 384 columns parallel to the balcony (the widest dead gaps)
and 352 orthogonal to the balcony (vertical direction)

epix10ka2m assembly

epix10ka2m-insensitive-gaps.pdf

epix10ka sensor central region between 4 ASICs

The internal gap between four ASICs in sensor,

pixel size 100 x 225 microns in area in both directions.

Metrology map from Chris Kenney

Comments on orientation of epix10ka2m parts from Matt

2018-10-09 orientation schema
Weaver, Matt 
Tue 10/9, 3:07 PMO'Grady, Paul Christopher;Dubrovin, Mikhail;Damiani, Daniel S.                
Also, here's some description of the nominal geometry. 
Pay close attention to the last part that describes the positioning of 
ASICs within an "element".  I think this might be different than before.
-Matt

  //
  //   Hard code the array's geometry for now
  //
  //  (Epix10ka2m)
  //         |
  //  Quad 3 | Quad 0      Quad 1 is rotated  90d clockwise
  //  -------+--------     Quad 2 is rotated 180d clockwise
  //  Quad 2 | Quad 1      Quad 3 is rotated 270d clockwise
  //         |
  //
  //  (Quad 0)
  //         |
  //  Elem 0 | Elem 1
  //  -------+--------     No rotations
  //  Elem 2 | Elem 3
  //         |
  //
  //  (Elem 0)
  //         |
  //  ASIC 0 | ASIC 3
  //  -------+--------     No rotations
  //  ASIC 1 | ASIC 2
  //         |
2018-11-18 orientation schema
Weaver, Matt 2018-11-18, 6:14 PMDubrovin, Mikhail;O'Grady, Paul Christopher
Here's the geometry I'm now using (below).  Note that pixel(0,0) 
for each of the elements below is in the lower right hand corner.
We'll know the quadrant layout for sure when we get the radioactive source exposure on Monday.
  //  (Epix10ka2m)
  //         |
  //  Quad 3 | Quad 0      Quad 1 is rotated  90d clockwise
  //  -------+--------     Quad 2 is rotated 180d clockwise
  //  Quad 2 | Quad 1      Quad 3 is rotated 270d clockwise
  //         |
  //
  //  (Quad 0)
  //         |
  //  Elem 0 | Elem 1
  //  -------+--------     No rotations
  //  Elem 2 | Elem 3
  //         |
  //
The ASICs did not move. The change is that the (352,384) 
array has pixel (0,0) in the lower right hand corner (in ASIC2).
  //  (Elem 0)
  //         |
  //  ASIC 0 | ASIC 3
  //  -------+--------     No rotations
  //  ASIC 1 | ASIC 2
  //         |
  //
  //  (Elem 0-3 pixel array)
  //                    row increasing
  //                          ^
  //                          |
  //                          |
  //  column increasing <-- (0,0)
2018-11-19 orientation schema
Weaver, Matt 
2018-11-19, 7:37 PMO'Grady, Paul Christopher;Dubrovin, Mikhail             

Hi Mikhail,
We took radioactive source test
 runs today to verify the geometry.  We found that we were rotated by 90
 degrees, which matches the labeling on the back of the detector as well
 as the metrology picture from Chris Kenney. 
The runs are 
/reg/d/psdm/det/detdaq17/e968-r0131   - source unmasked (up to ~ event 10000), then masked vertically after ~ event 15000
/reg/d/psdm/det/detdaq17/e968-r0132   - source masked horizontally at bottom after ~ event 15000.

So, the picture is...
  //  (Epix10ka2m)
  //         |
  //  Quad 0 | Quad 1      Quad 2 is rotated  90d clockwise
  //  -------+--------     Quad 3 is rotated 180d clockwise
  //  Quad 3 | Quad 2      Quad 0 is rotated 270d clockwise
  //         |
  //
  //  (Quad 1)
  //         |
  //  Elem 0 | Elem 1
  //  -------+--------     No rotations
  //  Elem 2 | Elem 3
  //         |
  //
  //  (Elem 0)
  //         |
  //  ASIC 0 | ASIC 3
  //  -------+--------     No rotations
  //  ASIC 1 | ASIC 2
  //         |
  //
  //  (Elem 0-3 pixel array)
  //                    row increasing
  //                          ^
  //                          |
  //                          |
  //  column increasing <-- (0,0)

Preliminary geometry

in /reg/g/psdm/detector/data_test/calib/

/reg/g/psdm/detector/data_test/calib/Epix10ka2M::CalibV1/NoDetector.0:Epix10ka2M.0/geometry/0-end.data @      (epix10ka2m - entire detector)
/reg/g/psdm/detector/data_test/calib/Epix10kaQuad::CalibV1/NoDetector.0:Epix10kaQuad.0/geometry/0-end.data @  (epix10kaquad - one quad)
/reg/g/psdm/detector/data_test/calib/Epix10ka::CalibV1/MecTargetChamber.0:Epix10ka.1/geometry/0-end.data @    (epix10ka - one panel)

copy of geometry files in alignment examples /reg/g/psdm/detector/alignment/

/reg/g/psdm/detector/alignment/epix10ka2m/calib/Epix10ka2M::CalibV1/NoDetector.0:Epix10ka2M.0/geometry/0-end.data
/reg/g/psdm/detector/alignment/epix10kaquad/calib/Epix10kaQuad::CalibV1/NoDetector.0:Epix10kaQuad.0/geometry/0-end.data
/reg/g/psdm/detector/alignment/epix10ka/calib/Epix10ka::CalibV1/MecTargetChamber.0:Epix10ka.1/geometry/0-end.data

Gain

Gabriel's comments on gain factors
Blaj, Gabriel 
2018-12-04, 2:08 PMO'Grady, Paul Christopher;Nelson, Silke;Dubrovin, Mikhail;Hart, Philip Adam             

Hi, 
You could try to use the gain files obtained with the pulser. They are not great but might work.

For a better gain calibration, we should use single photon data. 
There is sufficient 1 photon data taken during the first testing at XCS,
but it will take me a few days to calculate the gains.

I would actually advocate returning the number of photons (as we 
discussed in a meeting a few months ago). Even without a calibration it 
can be easily calculated from the (average) gains:

High (FH and AHL): 132 ADU/9.5 keV
Medium (FM and AML): 43 ADU/9.5 keV
Low (FL, AHL, AML): 1.32 ADU/9.5 keV

(Just a note, while the pulser is not great for calibrating gains, it works fine for offset calibration)

Thanks,
Gabriel

Gain factors from charge injection default and measured

gaincharge injectioncurrent defaultmeasured (ADU / keV)
L0.460.010.139
M15. 0.3(3)4.5
H46.7113.9

Gain factors default vs charge injection

  • Detector/examples/ex_epix10ka_images.py
  • XcsEndstation.0:Epix10ka2M.0
  • charge injection gain factors were generated from exp=xcsx35617:run=544
  • data with water ring for comparison exp=xcsx35617:run=528
  • account relative factor 46.7
  • selected rect [6, 120:170, 200:250]

gain default: H / M / L = 1 / 0.33333 / 0.01

gain from charge injection:

constantsMeanRMSRMS / MEAN
default1117.762.720.05618
charge injection1177.566.790.05672

Conclusion: in this test charge injection gainci constants do not improve gain factors comparing to default

Masks

mask_geo

mask_geo = det.mask_geo(par, mbits=3, width=10, wcentral=5)

  • mbits = 1 - masks edges, +2 - masks central rows and columns.
  • width - number of edge rows or columns to mask, def=1
  • wcentral - number of central rows or columns to mask, def=1

plot for mask_geo + 1:

status_as_mask

  • use pixel_status for exp=xcsx35617:run=544
  • mask_status = det.status_as_mask(par, mode=0, indexes=(0,1,2,3,4))
  • mode 0/1/2 masks zero/four/eight neighbors around each bad pixel
  • indexes=(0,1,2,3,4) # indexes stand for 'FH','FM','FL','AHL-H','AML-M', respectively. Derived modes have the same status arrays.

found number of bad pixels

  • 2802 for F gain modes and
  • 3253 for all F + A modes

plots for mask_status + 1 for mode=0 and 3:

 

References

mask_geo = det.mask_geo(par, mbits=3, width=10, wcentral=5)wcentralmode 0/1/2 masks zero/four/eight neighbors around each bad pixelindexes=(0,1,2)) # indexes=(0,1,2,3,4)

  • No labels