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

Split7 #40

Draft
wants to merge 7 commits into
base: master
Choose a base branch
from
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
177 changes: 122 additions & 55 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"] = 197.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.15298
bnd["C"] = 0.80128
bnd["NET_corr"] = 1.03
bnd["pwv_poly"] = 0.910439, 0.086590, 0.003628
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"] = 146.0
bnd["fknee"] = 50.0
bnd["fmin"] = 0.01
bnd["alpha"] = 1.0
bnd["A"] = 0.21849
bnd["C"] = 0.71629
bnd["NET_corr"] = 1.04
bnd["pwv_poly"] = 0.984664, 0.015093, 0.000353
bnd["A"] = 0.23643
bnd["C"] = 0.69289
bnd["NET_corr"] = 1.01
bnd["pwv_poly"] = 0.983379, 0.016362, 0.000379
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"] = 207.0
bnd["fknee"] = 50.0
bnd["fmin"] = 0.01
bnd["alpha"] = 1.0
bnd["A"] = 0.24100
bnd["C"] = 0.68654
bnd["NET_corr"] = 1.03
bnd["pwv_poly"] = 0.944616, 0.053912, 0.001876
bands["SAT_f090"] = bnd

bnd = OrderedDict()
bnd["center"] = 148.5
bnd["low"] = 128.0
bnd["high"] = 169.0
bnd["bandpass"] = ""
bnd["NET"] = 280.0
bnd["fknee"] = 50.0
bnd["fmin"] = 0.01
bnd["alpha"] = 1.0
bnd["A"] = 0.22947
bnd["C"] = 0.70118
bnd["NET_corr"] = 1.00
bnd["pwv_poly"] = 0.822978, 0.171742, 0.006575
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": "HP",
"CHLAT_HF": "HP",
"SPLAT_HF": "HP",
"SAT_HF": "HP",
Expand All @@ -658,6 +690,7 @@ def sim_nominal():
"SPLAT_MF": 432,
"SAT_MFL": 217,
"SAT_MFH": 271,
"SAT_MF": 271,
"CHLAT_HF": 469,
"SPLAT_HF": 469,
"SAT_HF": 469,
Expand All @@ -672,6 +705,7 @@ def sim_nominal():
"SPLAT_MF": 5.3,
"SAT_MFL": 7.65,
"SAT_MFH": 6.85,
"SAT_MF": 6.85,
"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": [0,169],
"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 @@ -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
30.0,
30.0,
30.0,
-150.0,
-150.0,
30.0,
30.0,
30.0,
-30.0,
90.0,
30.0,
30.0,
]
# 30 deg, 3552 det/band
tb["platescale"] = 0.070093/0.9931
tb["FOV_cut"] = 30.0
else:
for tw in range(12):
off = 0
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"] = 81.0
sfwhm["SAT_f040"] = 60.8
sfwhm["SAT_f085"] = 23.6
sfwhm["SAT_f145"] = 15.0
sfwhm["SAT_f095"] = 21.2
sfwhm["SAT_f155"] = 13.9
sfwhm["SAT_f090"] = 21.9
sfwhm["SAT_f150"] = 14.5
sfwhm["SAT_f220"] = 9.5
sfwhm["SAT_f280"] = 8.5

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