from ..detectors import (DetectorModule, DetectorInstance,
DetectorSpec, DetectorTypes)
class _AGIPD(DetectorSpec):
detector_type = DetectorTypes.AGIPD
# original SPB modules
AGIPD_SIV1_AGIPDV11_M305 = DetectorModule(uuid=10001)
AGIPD_SIV1_AGIPDV11_M315 = DetectorModule(uuid=10002)
AGIPD_SIV1_AGIPDV11_M314 = DetectorModule(uuid=10003)
AGIPD_SIV1_AGIPDV11_M310 = DetectorModule(uuid=10004)
AGIPD_SIV1_AGIPDV11_M234 = DetectorModule(uuid=10005)
AGIPD_SIV1_AGIPDV11_M309 = DetectorModule(uuid=10006)
AGIPD_SIV1_AGIPDV11_M300 = DetectorModule(uuid=10007)
AGIPD_SIV1_AGIPDV11_M308 = DetectorModule(uuid=10008)
AGIPD_SIV1_AGIPDV11_M301 = DetectorModule(uuid=10009)
AGIPD_SIV1_AGIPDV11_M306 = DetectorModule(uuid=10010)
AGIPD_SIV1_AGIPDV11_M307 = DetectorModule(uuid=10011)
AGIPD_SIV1_AGIPDV11_M313 = DetectorModule(uuid=10012)
AGIPD_SIV1_AGIPDV11_M316 = DetectorModule(uuid=10013)
AGIPD_SIV1_AGIPDV11_M215 = DetectorModule(uuid=10014)
AGIPD_SIV1_AGIPDV11_M317 = DetectorModule(uuid=10015)
AGIPD_SIV1_AGIPDV11_M318 = DetectorModule(uuid=10016)
AGIPD_SIV1_AGIPDV11_M322 = DetectorModule(uuid=10022)
# new SPB Single Test Module
AGIPD_SIV1_AGIPDV11_M001Test = DetectorModule(uuid=99999)
# original MID modules
AGIPD_SIV1_AGIPDV11_M337 = DetectorModule(uuid=30001)
AGIPD_SIV1_AGIPDV11_M336 = DetectorModule(uuid=30002)
AGIPD_SIV1_AGIPDV11_M330 = DetectorModule(uuid=30003)
AGIPD_SIV1_AGIPDV11_M326 = DetectorModule(uuid=30004)
AGIPD_SIV1_AGIPDV11_M303 = DetectorModule(uuid=30005)
AGIPD_SIV1_AGIPDV11_M332 = DetectorModule(uuid=30006)
AGIPD_SIV1_AGIPDV11_M329 = DetectorModule(uuid=30007)
AGIPD_SIV1_AGIPDV11_M335 = DetectorModule(uuid=30008)
AGIPD_SIV1_AGIPDV11_M321 = DetectorModule(uuid=30009)
AGIPD_SIV1_AGIPDV11_M312 = DetectorModule(uuid=30010)
AGIPD_SIV1_AGIPDV11_M302 = DetectorModule(uuid=30011)
AGIPD_SIV1_AGIPDV11_M311 = DetectorModule(uuid=30012)
AGIPD_SIV1_AGIPDV11_M338 = DetectorModule(uuid=30013)
AGIPD_SIV1_AGIPDV11_M325 = DetectorModule(uuid=30014)
AGIPD_SIV1_AGIPDV11_M331 = DetectorModule(uuid=30015)
AGIPD_SIV1_AGIPDV11_M304 = DetectorModule(uuid=30016)
# new MID modules
AGIPD_SIV1_AGIPDV11_M450 = DetectorModule(uuid=30017)
AGIPD_SIV1_AGIPDV11_M439 = DetectorModule(uuid=30018)
AGIPD_SIV1_AGIPDV11_M404 = DetectorModule(uuid=30019)
AGIPD_SIV1_AGIPDV11_M442 = DetectorModule(uuid=30020)
AGIPD_SIV1_AGIPDV11_M400 = DetectorModule(uuid=30021)
AGIPD_SIV1_AGIPDV11_M402 = DetectorModule(uuid=30022)
AGIPD_SIV1_AGIPDV11_M441 = DetectorModule(uuid=30023)
# new HED mini-half modules
AGIPD_SIV1_AGIPDV11_M116IN = DetectorModule(uuid=30024)
AGIPD_SIV1_AGIPDV11_M116OUT = DetectorModule(uuid=30025)
AGIPD_SIV1_AGIPDV11_M117IN = DetectorModule(uuid=30026)
AGIPD_SIV1_AGIPDV11_M117OUT = DetectorModule(uuid=30027)
AGIPD_SIV1_AGIPDV12_T000IN = DetectorModule(uuid=30028)
AGIPD_SIV1_AGIPDV12_T000OUT = DetectorModule(uuid=30029)
AGIPD_SIV1_AGIPDV12_T006IN = DetectorModule(uuid=30030)
AGIPD_SIV1_AGIPDV12_T006OUT = DetectorModule(uuid=30031)
[docs]class AGIPDInstance(DetectorInstance):
def _repr_html_(self):
b1 = 'bgcolor="#7ee878" width="250px" height="50px" style="border: 1px solid black;"'
b2 = 'bgcolor="#ddd042" width="250px" height="50px" style="border: 1px solid black;"'
b3 = 'bgcolor="#42aedd" width="250px" height="50px" style="border: 1px solid black;"'
b4 = 'bgcolor="#dd4242" width="250px" height="50px" style="border: 1px solid black;"'
view = """
<h2> Detector: {det}, Detector UUID: {duuid:03d},
Modules: {nmods}
</h2>
<table width="500px" height="500px" padding=0
style="border: 1px solid black; border-collapse: collapse;">
<tr>
<td {b4}>{Q4M1}</td><td rowspan=4> </td><td {b1}>{Q1M1}</td>
</tr>
<tr>
<td {b4}>{Q4M2}</td> </td><td {b1}>{Q1M2}</td>
</tr>
<tr>
<td {b4}>{Q4M3}</td> </td><td {b1}>{Q1M3}</td>
</tr>
<tr>
<td {b4}>{Q4M4}</td> </td><td {b1}>{Q1M4}</td>
</tr>
<tr colspan=3 height="12px"> </tr>
<tr>
<td {b3}>{Q3M1}</td><td rowspan=4> </td><td {b2}>{Q2M1}</td>
</tr>
<tr>
<td {b3}>{Q3M2}</td> </td><td {b2}>{Q2M2}</td>
</tr>
<tr>
<td {b3}>{Q3M3}</td> </td><td {b2}>{Q2M3}</td>
</tr>
<tr>
<td {b3}>{Q3M4}</td> </td><td {b2}>{Q2M4}</td>
</tr>
</table>
"""
rdr = view.format(det=self.__class__.__name__.replace("_", ""),
duuid=self.detector_uuid,
nmods=16,
Q1M1=self.Q1M1, Q1M2=self.Q1M2,
Q1M3=self.Q1M3, Q1M4=self.Q1M4,
Q2M1=self.Q2M1, Q2M2=self.Q2M2,
Q2M3=self.Q2M3, Q2M4=self.Q2M4,
Q3M1=self.Q3M1, Q3M2=self.Q3M2,
Q3M3=self.Q3M3, Q3M4=self.Q3M4,
Q4M1=self.Q4M1, Q4M2=self.Q4M2,
Q4M3=self.Q4M3, Q4M4=self.Q4M4,
b1=b1, b2=b2, b3=b3, b4=b4
)
return rdr
class _AGIPD1M1(AGIPDInstance):
parent = _AGIPD
detector_uuid = 1
Q1M1 = _AGIPD.AGIPD_SIV1_AGIPDV11_M305
Q1M2 = _AGIPD.AGIPD_SIV1_AGIPDV11_M315
Q1M3 = _AGIPD.AGIPD_SIV1_AGIPDV11_M314
Q1M4 = _AGIPD.AGIPD_SIV1_AGIPDV11_M310
Q2M1 = _AGIPD.AGIPD_SIV1_AGIPDV11_M234
Q2M2 = _AGIPD.AGIPD_SIV1_AGIPDV11_M309
Q2M3 = _AGIPD.AGIPD_SIV1_AGIPDV11_M300
Q2M4 = _AGIPD.AGIPD_SIV1_AGIPDV11_M322
Q3M1 = _AGIPD.AGIPD_SIV1_AGIPDV11_M301
Q3M2 = _AGIPD.AGIPD_SIV1_AGIPDV11_M306
Q3M3 = _AGIPD.AGIPD_SIV1_AGIPDV11_M307
Q3M4 = _AGIPD.AGIPD_SIV1_AGIPDV11_M313
Q4M1 = _AGIPD.AGIPD_SIV1_AGIPDV11_M316
Q4M2 = _AGIPD.AGIPD_SIV1_AGIPDV11_M215
Q4M3 = _AGIPD.AGIPD_SIV1_AGIPDV11_M317
Q4M4 = _AGIPD.AGIPD_SIV1_AGIPDV11_M318
class _AGIPD1M2(AGIPDInstance):
parent = _AGIPD
detector_uuid = 3
Q1M1 = _AGIPD.AGIPD_SIV1_AGIPDV11_M337
Q1M2 = _AGIPD.AGIPD_SIV1_AGIPDV11_M336
Q1M3 = _AGIPD.AGIPD_SIV1_AGIPDV11_M330
Q1M4 = _AGIPD.AGIPD_SIV1_AGIPDV11_M326
Q2M1 = _AGIPD.AGIPD_SIV1_AGIPDV11_M441
Q2M2 = _AGIPD.AGIPD_SIV1_AGIPDV11_M450
Q2M3 = _AGIPD.AGIPD_SIV1_AGIPDV11_M439
Q2M4 = _AGIPD.AGIPD_SIV1_AGIPDV11_M402
Q3M1 = _AGIPD.AGIPD_SIV1_AGIPDV11_M442
Q3M2 = _AGIPD.AGIPD_SIV1_AGIPDV11_M400
Q3M3 = _AGIPD.AGIPD_SIV1_AGIPDV11_M302
Q3M4 = _AGIPD.AGIPD_SIV1_AGIPDV11_M332
Q4M1 = _AGIPD.AGIPD_SIV1_AGIPDV11_M338
Q4M2 = _AGIPD.AGIPD_SIV1_AGIPDV11_M325
Q4M3 = _AGIPD.AGIPD_SIV1_AGIPDV11_M331
Q4M4 = _AGIPD.AGIPD_SIV1_AGIPDV11_M304
class _AGIPD500K(AGIPDInstance):
parent = _AGIPD
detector_uuid = 22
Q1M1 = _AGIPD.AGIPD_SIV1_AGIPDV11_M116IN
Q1M2 = _AGIPD.AGIPD_SIV1_AGIPDV11_M116OUT
Q1M3 = _AGIPD.AGIPD_SIV1_AGIPDV11_M117IN
Q1M4 = _AGIPD.AGIPD_SIV1_AGIPDV11_M117OUT
Q2M1 = _AGIPD.AGIPD_SIV1_AGIPDV12_T000IN
Q2M2 = _AGIPD.AGIPD_SIV1_AGIPDV12_T000OUT
Q2M3 = _AGIPD.AGIPD_SIV1_AGIPDV12_T006IN
Q2M4 = _AGIPD.AGIPD_SIV1_AGIPDV12_T006OUT