Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Split89 #41

Draft
wants to merge 10 commits into
base: master
Choose a base branch
from
183 changes: 125 additions & 58 deletions s4sim/hardware/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -380,29 +380,29 @@ def sim_nominal():
bnd["low"] = 21.5
bnd["high"] = 28.0
bnd["bandpass"] = ""
bnd["NET"] = 246.0
bnd["NET"] = 214.0
bnd["fknee"] = 50.0
bnd["fmin"] = 0.01
bnd["alpha"] = 1.0
bnd["A"] = 0.11488
bnd["C"] = 0.85083
bnd["NET_corr"] = 1.02
bnd["pwv_poly"] = 0.933680, 0.063919, 0.002889
bnd["A"] = 0.13706
bnd["C"] = 0.82200
bnd["NET_corr"] = 1.06
bnd["pwv_poly"] = 0.920270, 0.076947, 0.003369
bands["SAT_f030"] = bnd

bnd = OrderedDict()
bnd["center"] = 36.5
bnd["low"] = 28.0
bnd["high"] = 45.0
bnd["bandpass"] = ""
bnd["NET"] = 155.0
bnd["NET"] = 148.0
bnd["fknee"] = 50.0
bnd["fmin"] = 0.01
bnd["alpha"] = 1.0
bnd["A"] = 0.21849
bnd["C"] = 0.71629
bnd["A"] = 0.23230
bnd["C"] = 0.69828
bnd["NET_corr"] = 1.04
bnd["pwv_poly"] = 0.984664, 0.015093, 0.000353
bnd["pwv_poly"] = 0.983677, 0.016068, 0.000373
bands["SAT_f040"] = bnd

bnd = OrderedDict()
Expand Down Expand Up @@ -470,61 +470,91 @@ def sim_nominal():
bnd["low"] = 74.8
bnd["high"] = 95.2
bnd["bandpass"] = ""
bnd["NET"] = 259.0
bnd["NET"] = 245.0
bnd["fknee"] = 50.0
bnd["fmin"] = 0.01
bnd["alpha"] = 1.0
bnd["A"] = 0.26241
bnd["C"] = 0.65892
bnd["NET_corr"] = 1.02
bnd["pwv_poly"] = 0.956092, 0.042784, 0.001444
bnd["A"] = 0.27782
bnd["C"] = 0.63888
bnd["NET_corr"] = 1.04
bnd["pwv_poly"] = 0.953624, 0.045185, 0.001529
bands["SAT_f085"] = bnd

bnd = OrderedDict()
bnd["center"] = 145.0
bnd["low"] = 129.1
bnd["high"] = 161.0
bnd["bandpass"] = ""
bnd["NET"] = 311.0
bnd["NET"] = 302.0
bnd["fknee"] = 50.0
bnd["fmin"] = 0.01
bnd["alpha"] = 1.0
bnd["A"] = 0.20697
bnd["C"] = 0.73043
bnd["A"] = 0.21203
bnd["C"] = 0.72385
bnd["NET_corr"] = 1.01
bnd["pwv_poly"] = 0.848750, 0.146717, 0.005639
bnd["pwv_poly"] = 0.845158, 0.150156, 0.005818
bands["SAT_f145"] = bnd

bnd = OrderedDict()
bnd["center"] = 95.0
bnd["low"] = 83.6
bnd["high"] = 106.4
bnd["bandpass"] = ""
bnd["NET"] = 240.0
bnd["NET"] = 228.0
bnd["fknee"] = 50.0
bnd["fmin"] = 0.01
bnd["alpha"] = 1.0
bnd["A"] = 0.21106
bnd["C"] = 0.72533
bnd["NET_corr"] = 1.02
bnd["pwv_poly"] = 0.941450, 0.056990, 0.001986
bnd["A"] = 0.22131
bnd["C"] = 0.71200
bnd["NET_corr"] = 1.03
bnd["pwv_poly"] = 0.938631, 0.059726, 0.002090
bands["SAT_f095"] = bnd

bnd = OrderedDict()
bnd["center"] = 155.0
bnd["low"] = 138.0
bnd["high"] = 172.1
bnd["bandpass"] = ""
bnd["NET"] = 365.0
bnd["NET"] = 345.0
bnd["fknee"] = 50.0
bnd["fmin"] = 0.01
bnd["alpha"] = 1.0
bnd["A"] = 0.22432
bnd["C"] = 0.70785
bnd["NET_corr"] = 1.02
bnd["pwv_poly"] = 0.801865, 0.192474, 0.007107
bnd["A"] = 0.23468
bnd["C"] = 0.69439
bnd["NET_corr"] = 1.00
bnd["pwv_poly"] = 0.792946, 0.200998, 0.007569
bands["SAT_f155"] = bnd

bnd = OrderedDict()
bnd["center"] = 91.5
bnd["low"] = 77.0
bnd["high"] = 106.0
bnd["bandpass"] = ""
bnd["NET"] = 221.0
bnd["fknee"] = 50.0
bnd["fmin"] = 0.01
bnd["alpha"] = 1.0
bnd["A"] = 0.22609
bnd["C"] = 0.70593
bnd["NET_corr"] = 1.03
bnd["pwv_poly"] = 0.947923, 0.050705, 0.001751
bands["SAT_f090"] = bnd

bnd = OrderedDict()
bnd["center"] = 148.5
bnd["low"] = 128.0
bnd["high"] = 169.0
bnd["bandpass"] = ""
bnd["NET"] = 287.0
bnd["fknee"] = 50.0
bnd["fmin"] = 0.01
bnd["alpha"] = 1.0
bnd["A"] = 0.22482
bnd["C"] = 0.70722
bnd["NET_corr"] = 1.03
bnd["pwv_poly"] = 0.826483, 0.168378, 0.006407
bands["SAT_f150"] = bnd

bnd = OrderedDict()
bnd["center"] = 227.0
bnd["low"] = 198.0
Expand Down Expand Up @@ -590,36 +620,36 @@ def sim_nominal():
bnd["low"] = 198.0
bnd["high"] = 256.0
bnd["bandpass"] = ""
bnd["NET"] = 731.0
bnd["NET"] = 720.0
bnd["fknee"] = 50.0
bnd["fmin"] = 0.01
bnd["alpha"] = 1.0
bnd["A"] = 0.29945
bnd["C"] = 0.61031
bnd["A"] = 0.30314
bnd["C"] = 0.60552
bnd["NET_corr"] = 1.01
bnd["pwv_poly"] = 0.731418, 0.255791, 0.014788
bnd["pwv_poly"] = 0.728284, 0.258698, 0.015039
bands["SAT_f220"] = bnd

bnd = OrderedDict()
bnd["center"] = 285.5
bnd["low"] = 256.0
bnd["high"] = 315.0
bnd["bandpass"] = ""
bnd["NET"] = 1845.0
bnd["NET"] = 1817.0
bnd["fknee"] = 50.0
bnd["fmin"] = 0.01
bnd["alpha"] = 1.0
bnd["A"] = 0.36317
bnd["C"] = 0.52786
bnd["NET_corr"] = 1.01
bnd["pwv_poly"] = 0.662106, 0.316561, 0.023882
bnd["A"] = 0.36697
bnd["C"] = 0.52293
bnd["NET_corr"] = 1.00
bnd["pwv_poly"] = 0.658761, 0.319594, 0.024221
bands["SAT_f280"] = bnd

cnf["bands"] = bands

wafers = OrderedDict()

wtypes = ["CHLAT_ULF","SPLAT_ULF", "CHLAT_LF", "SPLAT_LF", "SAT_LF", "CHLAT_MF", "SPLAT_MF", "SAT_MFL", "SAT_MFH", "CHLAT_HF", "SPLAT_HF", "SAT_HF"]
wtypes = ["CHLAT_ULF","SPLAT_ULF", "CHLAT_LF", "SPLAT_LF", "SAT_LF", "CHLAT_MF", "SPLAT_MF", "SAT_MFL", "SAT_MFH", "SAT_MF", "CHLAT_HF", "SPLAT_HF", "SAT_HF"]
wcnt = {
"CHLAT_ULF": 4*2,
"SPLAT_ULF": 4,
Expand All @@ -628,8 +658,9 @@ def sim_nominal():
"SAT_LF": (12) * 1,
"CHLAT_MF": 54*2,
"SPLAT_MF": 54,
"SAT_MFL": (12) * 3,
"SAT_MFH": (12) * 3,
"SAT_MFL": 0,
"SAT_MFH": 0,
"SAT_MF": (12) * 6,
"CHLAT_HF": 19*2,
"SPLAT_HF": 18,
"SAT_HF": (12) * 2,
Expand All @@ -644,6 +675,7 @@ def sim_nominal():
"SPLAT_MF": "RP",
"SAT_MFL": "HP",
"SAT_MFH": "HP",
"SAT_MF": "RP",
"CHLAT_HF": "HP",
"SPLAT_HF": "HP",
"SAT_HF": "HP",
Expand All @@ -653,11 +685,12 @@ def sim_nominal():
"SPLAT_ULF": 27,
"CHLAT_LF": 48,
"SPLAT_LF": 48,
"SAT_LF": 19,
"SAT_LF": 37,
"CHLAT_MF": 432,
"SPLAT_MF": 432,
"SAT_MFL": 217,
"SAT_MFH": 271,
"SAT_MF": 432,
"CHLAT_HF": 469,
"SPLAT_HF": 469,
"SAT_HF": 469,
Expand All @@ -667,11 +700,12 @@ def sim_nominal():
"SPLAT_ULF": 21.1,
"CHLAT_LF": 16.1,
"SPLAT_LF": 16.1,
"SAT_LF": 26.0,
"SAT_LF": 19.1,
"CHLAT_MF": 5.3,
"SPLAT_MF": 5.3,
"SAT_MFL": 7.65,
"SAT_MFH": 6.85,
"SAT_MF": 5.3,
"CHLAT_HF": 5.2,
"SPLAT_HF": 5.2,
"SAT_HF": 5.2,
Expand All @@ -686,6 +720,7 @@ def sim_nominal():
"SPLAT_MF": 0.71,
"SAT_MFL": 1.273,
"SAT_MFH": 0.71,
"SAT_MF": 0.71,
"CHLAT_HF": 0.71,
"SPLAT_HF": 0.71,
"SAT_HF": 0.71,
Expand All @@ -700,6 +735,7 @@ def sim_nominal():
"SPLAT_MF": ["SPLAT_f090", "SPLAT_f150"],
"SAT_MFL": ["SAT_f085", "SAT_f145"],
"SAT_MFH": ["SAT_f095", "SAT_f155"],
"SAT_MF": ["SAT_f090", "SAT_f150"],
"CHLAT_HF": ["CHLAT_f220", "CHLAT_f280"],
"SPLAT_HF": ["SPLAT_f220", "SPLAT_f280"],
"SAT_HF": ["SAT_f220", "SAT_f280"],
Expand All @@ -715,6 +751,7 @@ def sim_nominal():
"SPLAT_MF": [210,220],
"SAT_MFL": [0,127],
"SAT_MFH": [0,169],
"SAT_MF": [210,220],
"CHLAT_HF": [0,331],
"SPLAT_HF": [0,331],
"SAT_HF": [0,331],
Expand Down Expand Up @@ -751,6 +788,7 @@ def sim_nominal():
"SPLAT_MF": 0,
"SAT_MFL": 0,
"SAT_MFH": 0,
"SAT_MF": 0,
"CHLAT_HF": 0,
"SPLAT_HF": 0,
"SAT_HF": 0,
Expand Down Expand Up @@ -1308,14 +1346,14 @@ def sim_nominal():
tubes[nm] = tb

stubes = [
"SAT_MFL",
"SAT_MFH",
"SAT_MF",
"SAT_MF",
"SAT_HF",
"SAT_MFL",
"SAT_MFH",
"SAT_MF",
"SAT_MF",
"SAT_HF",
"SAT_MFL",
"SAT_MFH",
"SAT_MF",
"SAT_MF",
"SAT_LF",
]
stube_toasthex_pos = [0, 0, 0, 0, 0, 0, 0, 0, 0]
Expand Down Expand Up @@ -1352,7 +1390,7 @@ def sim_nominal():
]
# 30 deg, 10008 detectors/band
tb["platescale"] = 0.070093/0.9909
tb["FOV_cut"] = 30.0
tb["FOV_cut"] = 34.9
elif ttyp == "SAT_MFL":
for tw in range(12):
off = 0
Expand Down Expand Up @@ -1407,6 +1445,33 @@ def sim_nominal():
# 30 deg, 3552 det/band
tb["platescale"] = 0.070093/0.9931
tb["FOV_cut"] = 30.0
elif ttyp == "SAT_MF":
for tw in range(12):
off = 0
for w, props in cnf["wafers"].items():
if props["type"] == ttyp:
if off == woff[ttyp]:
tb["wafers"].append(w)
woff[ttyp] += 1
break
off += 1
tb["wafer_angle"] = [ # Degrees
0.0,
0.0,
0.0,
-60.0,
-60.0,
0.0,
0.0,
60.0,
60.0,
180.0,
180.0,
0.0,
]
# 30 deg, 3552 det/band
tb["platescale"] = 0.070093/0.9931
tb["FOV_cut"] = 34.9
else:
for tw in range(12):
off = 0
Expand All @@ -1433,7 +1498,7 @@ def sim_nominal():
]
# 30 deg, 252 det/band
tb["platescale"] = 0.070093/0.9855
tb["FOV_cut"] = 30.0
tb["FOV_cut"] = 34.9
tb["toast_hex_pos"] = stube_toasthex_pos[tindx]
tubes[nm] = tb

Expand Down Expand Up @@ -1747,14 +1812,16 @@ def sim_nominal():

#SAT beams
sfwhm = OrderedDict()
sfwhm["SAT_f030"] = 100.9
sfwhm["SAT_f040"] = 74.4
sfwhm["SAT_f085"] = 29.5
sfwhm["SAT_f145"] = 18.1
sfwhm["SAT_f095"] = 26.4
sfwhm["SAT_f155"] = 16.9
sfwhm["SAT_f220"] = 11.3
sfwhm["SAT_f280"] = 10.1
sfwhm["SAT_f030"] = 79.2
sfwhm["SAT_f040"] = 56.6
sfwhm["SAT_f085"] = 23.6
sfwhm["SAT_f145"] = 15.0
sfwhm["SAT_f095"] = 21.2
sfwhm["SAT_f155"] = 13.9
sfwhm["SAT_f090"] = 21.4
sfwhm["SAT_f150"] = 14.0
sfwhm["SAT_f220"] = 9.4
sfwhm["SAT_f280"] = 7.8

tele = OrderedDict()
tele["tubes"] = ["ST0", "ST1", "ST2"]
Expand Down