301 lines
11 KiB
Python
301 lines
11 KiB
Python
DBPM = 1
|
|
DWSC = 2
|
|
DBLM = 3
|
|
DLAC = 4
|
|
|
|
elements = (
|
|
(DBPM, "SINEG01-DBPM340", 3.0149),
|
|
(DBPM, "SINSB01-DBPM150", 7.9459),
|
|
(DBPM, "SINSB02-DBPM150", 12.9489),
|
|
(DBPM, "SINLH01-DBPM060", 14.5560),
|
|
(DBPM, "SINLH02-DBPM210", 16.4806),
|
|
(DBLM, "SINLH02-DBLM230", 16.8546),
|
|
(DBPM, "SINLH02-DBPM240", 17.4826),
|
|
(DBLM, "SINLH02-DBLM235", 17.4049),
|
|
(DBPM, "SINLH03-DBPM010", 19.2172),
|
|
(DBPM, "SINLH03-DBPM050", 20.4632),
|
|
(DBPM, "SINLH03-DBPM090", 21.6002),
|
|
(DBPM, "SINSB03-DBPM120", 26.9202),
|
|
(DBPM, "SINSB03-DBPM220", 32.4202),
|
|
(DBPM, "SINSB04-DBPM120", 37.9202),
|
|
(DBPM, "SINSB04-DBPM220", 43.4202),
|
|
(DBPM, "SINSB05-DBPM120", 48.9202),
|
|
(DBPM, "SINSB05-DBPM220", 54.4202),
|
|
(DBPM, "SINXB01-DBPM120", 56.2420),
|
|
(DBPM, "SINBC01-DBPM010", 60.2912),
|
|
(DBPM, "SINBC01-DBPM030", 61.0912),
|
|
(DBPM, "SINBC01-DBPM080", 64.4172),
|
|
(DBPM, "SINBC01-DBPM100", 65.9432),
|
|
(DBPM, "SINBC02-DBPM140", 69.3739),
|
|
(DBPM, "SINBC02-DBPM320", 77.5610),
|
|
(DBPM, "SINDI01-DBPM010", 82.0967),
|
|
(DBPM, "SINDI01-DBPM060", 83.5117),
|
|
(DWSC, "SINDI01-DWSC090", 84.2537),
|
|
(DBPM, "SINDI02-DBPM010", 86.0767),
|
|
(DBLM, "SINDI02-DBLM025", 86.862),
|
|
(DBPM, "SINDI02-DBPM040", 88.3857),
|
|
(DLAC, "SINDI02-DLAC0550", 89.05),
|
|
(DBPM, "SINDI02-DBPM080", 90.6297),
|
|
(DBLM, "SINDI02-DBLM085", 90.7796),
|
|
(DBPM, "S10CB01-DBPM220", 95.3947),
|
|
(DBPM, "S10CB01-DBPM420", 100.2947),
|
|
(DBPM, "S10CB02-DBPM220", 105.1947),
|
|
(DBPM, "S10CB02-DBPM420", 110.0947),
|
|
(DWSC, "S10DI01-DWSC010", 110.8237),
|
|
(DBLM, "S10DI01-DBLM045", 111.67),
|
|
(DBLM, "S10DI01-DBLM015", 113.632),
|
|
(DBPM, "S10BD01-DBPM020", 114.6628),
|
|
(DBPM, "S10DI01-DBPM110", 114.9947),
|
|
(DBPM, "S10CB03-DBPM220", 119.8947),
|
|
(DBPM, "S10CB03-DBPM420", 124.7947),
|
|
(DWSC, "S10CB03-DWSC440", 125.2127),
|
|
(DBPM, "S10CB04-DBPM220", 129.6947),
|
|
(DBLM, "S10CB04-DBLM240", 130.1525),
|
|
(DBPM, "S10CB04-DBPM420", 134.5947),
|
|
(DBPM, "S10CB05-DBPM220", 139.4947),
|
|
(DBPM, "S10CB05-DBPM420", 144.3947),
|
|
(DWSC, "S10CB05-DWSC440", 144.8127),
|
|
(DBPM, "S10CB06-DBPM220", 149.2947),
|
|
(DBLM, "S10CB06-DBLM240", 149.7525),
|
|
(DBPM, "S10CB06-DBPM420", 154.1947),
|
|
(DBPM, "S10CB07-DBPM220", 159.0947),
|
|
(DBPM, "S10CB07-DBPM420", 163.9947),
|
|
(DWSC, "S10CB07-DWSC440", 164.4127),
|
|
(DBPM, "S10CB08-DBPM220", 168.8947),
|
|
(DBLM, "S10CB08-DBLM240", 169.3525),
|
|
(DBPM, "S10CB08-DBPM420", 173.7947),
|
|
(DBPM, "S10CB09-DBPM220", 178.6947),
|
|
(DBPM, "S10BC01-DBPM010", 183.5947),
|
|
(DWSC, "S10BC01-DWSC030", 184.0127),
|
|
(DBPM, "S10BC01-DBPM050", 187.8307),
|
|
(DBLM, "S10BC01-DBLM065", 188.684),
|
|
(DBPM, "S10BC01-DBPM090", 192.2847),
|
|
(DBPM, "S10BC02-DBPM140", 196.7798),
|
|
(DBPM, "S10BC02-DBPM320", 206.5399),
|
|
(DBPM, "S10MA01-DBPM010", 211.2940),
|
|
(DBPM, "S10MA01-DBPM060", 215.6600),
|
|
(DBPM, "S10MA01-DBPM120", 220.1200),
|
|
(DBPM, "S20CB01-DBPM420", 229.0850),
|
|
(DWSC, "S20CB01-DWSC440", 229.5030),
|
|
(DBPM, "S20CB02-DBPM420", 238.1850),
|
|
(DBLM, "S20CB02-DBLM435", 238.6325),
|
|
(DBPM, "S20CB03-DBPM420", 247.2850),
|
|
(DBPM, "S20SY01-DBPM010", 256.3850),
|
|
(DBPM, "S20SY01-DBPM040", 262.5020),
|
|
(DBPM, "S20SY01-DBPM060", 263.6280),
|
|
(DWSC, "S20SY01-DWSC070", 263.8280),
|
|
(DBLM, "S20SY02-DBLM075", 268.617),
|
|
(DBPM, "S20SY02-DBPM080", 269.1300),
|
|
(DBPM, "S20SY02-DBPM120", 271.0800),
|
|
(DBPM, "S20SY02-DBPM150", 272.7600),
|
|
(DWSC, "S20SY02-DWSC160", 273.1350),
|
|
(DBPM, "SATSY01-DBPM010", 279.1202),
|
|
(DBPM, "S20SY03-DBPM010", 280.6200),
|
|
(DBLM, "S20SY03-DBLM025", 281.156),
|
|
(DBPM, "SATSY01-DBPM060", 284.6202),
|
|
(DBPM, "S20SY03-DBPM040", 286.9200),
|
|
(DBPM, "SATSY01-DBPM100", 288.9352),
|
|
(DBPM, "S20SY03-DBPM080", 294.3800),
|
|
(DWSC, "S20SY03-DWSC090", 294.5800),
|
|
(DBLM, "S20SY03-DBLM110", 295.258),
|
|
(DBPM, "SATSY01-DBPM240", 296.1202),
|
|
(DBPM, "SATSY01-DBPM290", 302.8202),
|
|
(DBPM, "S30CB01-DBPM420", 303.8150),
|
|
(DWSC, "S30CB01-DWSC440", 304.2330),
|
|
(DBPM, "SATSY02-DBPM020", 306.8663),
|
|
(DBPM, "SATSY02-DBPM210", 312.6833),
|
|
(DBPM, "S30CB02-DBPM420", 312.9150),
|
|
(DBLM, "S30CB02-DBLM445", 313.3625),
|
|
(DBPM, "SATSY03-DBPM030", 317.2003),
|
|
(DBPM, "SATSY03-DBPM060", 320.0003),
|
|
(DBPM, "S30CB03-DBPM420", 322.0150),
|
|
(DBPM, "SATSY03-DBPM090", 322.8003),
|
|
(DWSC, "SATSY03-DWSC110", 325.1663),
|
|
(DBPM, "SATSY03-DBPM120", 325.6003),
|
|
(DBPM, "S30CB04-DBPM420", 331.1150),
|
|
(DBLM, "SATCL01-DBLM135", 331.1179),
|
|
(DBPM, "SATCL01-DBPM140", 331.9185),
|
|
(DBPM, "S30CB05-DBPM420", 340.2150),
|
|
(DWSC, "S30CB05-DWSC440", 340.6330),
|
|
(DBPM, "SATDI01-DBPM030", 340.8637),
|
|
(DBPM, "SATDI01-DBPM060", 342.7637),
|
|
(DWSC, "SATDI01-DWSC065", 342.9837),
|
|
(DBPM, "SATDI01-DBPM210", 349.2197),
|
|
(DBPM, "S30CB06-DBPM420", 349.3150),
|
|
(DBLM, "S30CB06-DBLM445", 349.7625),
|
|
(DBLM, "SATDI01-DBLM225", 349.5613),
|
|
(DBPM, "SATDI01-DBPM240", 352.1997),
|
|
(DBPM, "SATDI01-DBPM270", 355.1797),
|
|
(DWSC, "SATDI01-DWSC290", 356.4797),
|
|
(DBPM, "SATDI01-DBPM320", 357.0907),
|
|
(DBPM, "S30CB07-DBPM420", 358.4150),
|
|
(DBPM, "SATCB01-DBPM220", 361.5357),
|
|
(DBLM, "SATCB01-DBLM245", 361.8578),
|
|
(DBPM, "SATCB01-DBPM420", 366.4357),
|
|
(DBPM, "S30CB08-DBPM420", 367.5150),
|
|
(DBPM, "S30CB09-DBPM420", 376.6150),
|
|
(DWSC, "S30CB09-DWSC440", 377.0330),
|
|
(DBPM, "SATMA01-DBPM010", 377.2657),
|
|
(DBPM, "SATMA01-DBPM020", 379.3147),
|
|
(DBPM, "SATMA01-DBPM040", 381.3637),
|
|
(DBLM, "SATMA01-DBLM065", 381.6948),
|
|
(DBPM, "S30CB10-DBPM420", 385.7150),
|
|
(DBLM, "S30CB10-DBLM445", 386.271),
|
|
(DBPM, "S30CB11-DBPM420", 394.8150),
|
|
(DBPM, "S30CB12-DBPM420", 403.9150),
|
|
(DBPM, "S30CB13-DBPM420", 413.0150),
|
|
(DWSC, "S30CB13-DWSC440", 413.4330),
|
|
(DBPM, "S30CB14-DBPM420", 422.1150),
|
|
(DBLM, "S30CB14-DBLM445", 422.691),
|
|
(DBPM, "S30CB15-DBPM420", 431.2150),
|
|
(DBPM, "SARCL01-DBPM010", 440.3150),
|
|
(DBPM, "SARCL01-DBPM060", 444.6750),
|
|
(DBPM, "SARCL01-DBPM120", 450.7750),
|
|
(DBPM, "SARCL01-DBPM150", 452.1510),
|
|
(DWSC, "SARCL01-DWSC160", 452.3510),
|
|
(DBPM, "SARCL02-DBPM110", 456.9100),
|
|
(DBLM, "SARCL02-DBLM135", 457.9854),
|
|
(DBPM, "SARCL02-DBPM220", 460.9609),
|
|
(DBPM, "SARCL02-DBPM260", 462.7569),
|
|
(DWSC, "SARCL02-DWSC270", 462.9769),
|
|
(DBPM, "SARCL02-DBPM330", 466.6909),
|
|
(DBLM, "SARCL02-DBLM355", 467.686),
|
|
(DBPM, "SARCL02-DBPM470", 471.1067),
|
|
(DBPM, "SARMA01-DBPM040", 476.4267),
|
|
(DBPM, "SARMA01-DBPM100", 483.2767),
|
|
(DBPM, "SARMA02-DBPM010", 487.9617),
|
|
(DBPM, "SARMA02-DBPM020", 490.0107),
|
|
(DBPM, "SARMA02-DBPM040", 492.0597),
|
|
(DWSC, "SARMA02-DWSC060", 492.3767),
|
|
(DBPM, "SARMA02-DBPM110", 496.8097),
|
|
(DBLM, "SARUN01-DBLM065", 497.8392),
|
|
(DBPM, "SARUN01-DBPM070", 501.5597),
|
|
(DBPM, "SARUN02-DBPM070", 506.3097),
|
|
(DBLM, "SARUN03-DBLM030", 506.671),
|
|
(DBPM, "SARUN03-DBPM070", 511.0597),
|
|
(DBLM, "SARUN04-DBLM030", 511.421),
|
|
(DBPM, "SARUN04-DBPM070", 515.8097),
|
|
(DBLM, "SARUN05-DBLM030", 516.171),
|
|
(DBPM, "SARUN05-DBPM070", 520.5597),
|
|
(DBLM, "SARUN06-DBLM030", 520.921),
|
|
(DBPM, "SARUN06-DBPM070", 525.3097),
|
|
(DBLM, "SARUN07-DBLM030", 525.671),
|
|
(DBPM, "SARUN07-DBPM070", 530.0597),
|
|
(DBLM, "SARUN08-DBLM030", 530.421),
|
|
(DBPM, "SARUN08-DBPM070", 534.8097),
|
|
(DBLM, "SARUN09-DBLM030", 535.171),
|
|
(DBPM, "SARUN09-DBPM070", 539.5597),
|
|
(DBLM, "SARUN10-DBLM030", 539.921),
|
|
(DBPM, "SARUN10-DBPM070", 544.3097),
|
|
(DBLM, "SARUN11-DBLM030", 544.671),
|
|
(DBPM, "SARUN11-DBPM070", 549.0597),
|
|
(DBLM, "SARUN12-DBLM030", 549.421),
|
|
(DBPM, "SARUN12-DBPM070", 553.8097),
|
|
(DBLM, "SARUN13-DBLM030", 554.171),
|
|
(DBPM, "SARUN13-DBPM070", 558.5597),
|
|
(DBLM, "SARUN14-DBLM030", 558.921),
|
|
(DBPM, "SARUN14-DBPM070", 563.3097),
|
|
(DBLM, "SARUN15-DBLM030", 563.671),
|
|
(DBLM, "SARUN15-DBLM035", 567.970985),
|
|
(DBPM, "SARUN15-DBPM070", 568.0597),
|
|
(DBPM, "SARUN16-DBPM070", 572.8097),
|
|
(DBPM, "SARUN17-DBPM070", 577.5597),
|
|
(DBPM, "SARUN18-DBPM070", 582.3097),
|
|
(DBPM, "SARUN19-DBPM070", 587.0597),
|
|
(DWSC, "SARUN20-DWSC010", 587.3767),
|
|
(DBLM, "SARUN20-DBLM035", 590.41),
|
|
(DBPM, "SARUN20-DBPM070", 591.8097),
|
|
(DBPM, "SARBD01-DBPM040", 593.9132),
|
|
(DBPM, "SARBD02-DBPM010", 596.9584),
|
|
(DBPM, "SARBD02-DBPM040", 598.3943),
|
|
)
|
|
|
|
def get_section(element):
|
|
return element[1:3]
|
|
|
|
def get_section_type(element):
|
|
section = get_section(element)
|
|
if section == "AR": return "ARAMIS"
|
|
if section == "AT": return "ATH0S"
|
|
if section == "IN": return "INJECTOR"
|
|
if section in["10", "20", "30"] : return "LINAC"
|
|
return None
|
|
|
|
def get_beamline(element):
|
|
section = get_section(element)
|
|
if section == "AR": return "ARAMIS"
|
|
if section == "AT": return "ATH0S"
|
|
return None
|
|
|
|
def get_blms():
|
|
ret = []
|
|
for element in elements:
|
|
if element[0]==DBLM:
|
|
ret.append(element[1])
|
|
return ret
|
|
|
|
|
|
def get_bpms():
|
|
ret = []
|
|
for element in elements:
|
|
if element[0]==DBPM:
|
|
ret.append(element[1])
|
|
return ret
|
|
|
|
def get_wire_scanners():
|
|
ret = []
|
|
for element in elements:
|
|
if element[0]==DWSC:
|
|
ret.append(element[1])
|
|
return ret
|
|
|
|
def get_dlacs():
|
|
ret = []
|
|
for element in elements:
|
|
if element[0]==DLAC:
|
|
ret.append(element[1])
|
|
return ret
|
|
|
|
def get_wire_scanners_bpms(wire_scan):
|
|
last = None
|
|
ret = []
|
|
for element in elements:
|
|
if element[0]==DWSC and element[1] == wire_scan:
|
|
ret = [last,]
|
|
elif element[0]==DBPM:
|
|
if get_beamline(element[1]) == get_beamline(wire_scan):
|
|
if len(ret) > 0:
|
|
return [ret[0],element[1]]
|
|
last = element[1]
|
|
return None
|
|
|
|
|
|
def get_wire_scanners_blms(wire_scan):
|
|
last = None
|
|
ret = None
|
|
for element in elements:
|
|
if element[0]==DWSC and element[1] == wire_scan:
|
|
ret = []
|
|
elif element[0]==DBLM and (ret is not None):
|
|
bl = get_beamline(element[1])
|
|
if bl == get_beamline(wire_scan):
|
|
ret.append(element[1])
|
|
if len(ret) == 2:
|
|
return ret
|
|
if ret is not None and len(ret)==1:
|
|
ret.append(None)
|
|
return ret
|
|
|
|
def get_camera_type(camera_name):
|
|
if "LCAM" in camera_name: return "LASER"
|
|
if "DSCR" in camera_name or \
|
|
"DSRM" in camera_name or \
|
|
"DLAC" in camera_name: return "ELECTRONS"
|
|
if "PROF" in camera_name or \
|
|
"PPRM" in camera_name or \
|
|
"PSSS" in camera_name or \
|
|
"PSCR" in camera_name or \
|
|
"PSRD" in camera_name: return "PHOTONICS"
|
|
return "UNKNOWN"
|
|
|