Closed chuckie82 closed 7 years ago
@chuckie82 thanks for the header update -- the one issue I have is the change in camera.py which makes it less generic. I don't think we want to do that.
Here's an overview of all the geometry types: Looks like Rayonix and andor3d have similar MTRX formats. @msdubrovin: Are there any other keywords beside MTRX that aren't arbitrary?
Rayonix:
RAYONIX:V1 0 MTRX:1920:1920:89:89 0 0 0 0 0 0 0 0.0 0.0 0.0 IP:V1 0 RAYONIX:V1 0 0 0 10000 0 0 0 0.0 0.0 0.0
andor3d:
ANDORDET:V1 0 MTRX:512:512:54:54 0 5400 0 0 90 0 0 0.0 0.0 0.0 ANDORDET:V1 0 MTRX:512:512:54:54 1 -33000 0 0 90 0 0 0.0 0.0 0.0 IP:V1 0 ANDORDET:V1 0 0 27600 0 -90 0 0 0.0 0.0 0.0
pnCCD:
SEG2Q:V1 0 PNCCD:V1 0 -38362 -162 0 0.0 0.0 0.0 0.00000 0.00000 0.00000 SEG2Q:V1 0 PNCCD:V1 1 38362 38263 0 180.0 0.0 0.0 0.00000 0.00000 0.00000 SEG2Q:V1 1 PNCCD:V1 0 -38362 -9062 0 0.0 0.0 0.0 0.00000 0.00000 0.00000 SEG2Q:V1 1 PNCCD:V1 1 38362 29263 0 180.0 0.0 0.0 0.00000 0.00000 0.00000 DETPNCCD:V1 0 SEG2Q:V1 0 -1 -45800 0 0.0 0.0 0.0 0.00000 0.00000 0.00000 DETPNCCD:V1 0 SEG2Q:V1 1 -1 34500 0 180.0 0.0 0.0 0.00000 0.00000 0.00000 IP:V1 0 DETPNCCD:V1 0 2000 400 100000 -180.0 0.0 180.0 0.00000 0.00000 0.00000
epix100:
IP 0 EPIX100:V1 0 0 0 1000 0 0 0 0.00000 0.00000 0.00000
cspad2x2:
CSPAD2X2:V1 0 SENS2X1:V1 0 21841 10506 26 180 0 0 0.04523 -0.02753 0.04097 CSPAD2X2:V1 0 SENS2X1:V1 1 21847 33925 20 180 0 0 0.20189 0.00000 -0.09014 IP 0 CSPAD2X2:V1 0 0 0 1000000 0 0 0 0.00000 0.00000 0.00000
cspad:
CSPAD:V2 0 SENS2X1:V1 0 51844 112721 33 90 0 0 -0.13815 0.12869 -0.03026 CSPAD:V2 0 SENS2X1:V1 1 74646 112631 16 90 0 0 -0.30197 -0.05752 -0.06974 CSPAD:V2 0 SENS2X1:V1 2 16721 124583 -5 0 0 0 -0.02828 0.06446 -0.00548 CSPAD:V2 0 SENS2X1:V1 3 16688 101586 -14 0 0 0 -0.22561 0.05394 0.05757 CSPAD:V2 0 SENS2X1:V1 4 28418 159585 -35 270 0 0 -0.18027 0.03288 0.03816 CSPAD:V2 0 SENS2X1:V1 5 5622 159579 -24 270 0 0 -0.17893 -0.12600 0.02237 CSPAD:V2 0 SENS2X1:V1 6 63511 168753 2 0 0 0 -0.31636 0.05656 -0.08219 CSPAD:V2 0 SENS2X1:V1 7 63500 145880 29 0 0 0 -0.14206 0.01447 0.00822 CSPAD:V2 0 SENS2X1:V1 8 107655 129380 30 0 0 0 -0.14799 -0.06314 -0.09870 CSPAD:V2 0 SENS2X1:V1 9 107629 106755 15 0 0 0 0.04537 -0.01052 0.01096 CSPAD:V2 0 SENS2X1:V1 10 119274 164477 29 270 0 0 -0.21051 -0.06577 -0.03421 CSPAD:V2 0 SENS2X1:V1 11 96595 164526 8 270 0 0 -0.22103 -0.04384 0.02105 CSPAD:V2 0 SENS2X1:V1 12 154603 153350 -12 180 0 0 -0.12563 0.05657 -0.03563 CSPAD:V2 0 SENS2X1:V1 13 154657 175762 -18 180 0 0 -0.23025 0.02368 -0.05482 CSPAD:V2 0 SENS2X1:V1 14 163608 118037 29 270 0 0 0.12305 0.02466 0.02632 CSPAD:V2 0 SENS2X1:V1 15 140767 118028 10 270 0 0 -0.10524 0.06299 -0.03420 CSPAD:V2 0 SENS2X1:V1 16 123927 73757 -73 270 0 0 0.18228 0.02465 -0.04343 CSPAD:V2 0 SENS2X1:V1 17 101343 73681 -77 270 0 0 0.13745 0.03561 -0.11311 CSPAD:V2 0 SENS2X1:V1 18 159263 62263 14 180 0 0 0.06447 -0.00526 0.00274 CSPAD:V2 0 SENS2X1:V1 19 159270 84841 12 180 0 0 0.00789 0.08550 -0.01371 CSPAD:V2 0 SENS2X1:V1 20 147947 27044 -80 90 0 0 0.26170 -0.10393 -0.03682 CSPAD:V2 0 SENS2X1:V1 21 170753 27081 -57 90 0 0 0.09670 0.07407 -0.05526 CSPAD:V2 0 SENS2X1:V1 22 112866 17836 33 180 0 0 0.17101 0.03420 0.03015 CSPAD:V2 0 SENS2X1:V1 23 112786 40718 23 180 0 0 0.06643 0.04341 0.06296 CSPAD:V2 0 SENS2X1:V1 24 68506 57198 39 180 0 0 0.35386 0.00789 0.12881 CSPAD:V2 0 SENS2X1:V1 25 68339 79768 12 180 0 0 0.41233 -0.00921 -0.01368 CSPAD:V2 0 SENS2X1:V1 26 56954 21982 -1 90 0 0 0.18024 -0.02465 -0.01184 CSPAD:V2 0 SENS2X1:V1 27 79744 21974 109 90 0 0 -0.00197 -0.23009 0.08815 CSPAD:V2 0 SENS2X1:V1 28 21800 33409 3 0 0 0 0.24275 -0.05131 -0.01919 CSPAD:V2 0 SENS2X1:V1 29 21768 10476 -3 0 0 0 0.06642 0.08287 -0.02466 CSPAD:V2 0 SENS2X1:V1 30 12690 68430 -61 90 0 0 0.16578 -0.03284 -0.03684 CSPAD:V2 0 SENS2X1:V1 31 35376 68517 0 90 0 0 0.08748 0.05208 0.01579 IP 0 CSPAD:V2 0 0 0 1000000 0 0 0 0.00000 0.00000 0.00000
@msdubrovin thanks a lot for the description. good to know we can re-use the MTRX element! Very helpful.
@chuckie82 here is what I propose. See if you agree.
sensor
object, in this case sensor.RayonixMtrx
https://github.com/slaclab/psgeom/blob/master/psgeom/sensors.py#L267
it can have a default, and maybe an option to be overriddenRayonixMtrx
object to a Mtrx
object that can be used for e.g. PNCCD/andorLet me know if that works.
This change seems to work for the rayonix