22 #ifndef MUSE_INSTRUMENT_H
23 #define MUSE_INSTRUMENT_H
37 static const double kMuseSpaxelSizeX_WFM = 0.2;
38 static const double kMuseSpaxelSizeY_WFM = 0.2;
39 static const double kMuseSpaxelSizeX_NFM = 0.025;
40 static const double kMuseSpaxelSizeY_NFM = 0.025;
43 static const double kMuseAverageFWHM_x = 1.6;
44 static const double kMuseAverageFWHM_y = 1.6;
48 static const int kMuseOutputXRight = 4096;
49 static const int kMuseOutputYTop = 4112;
51 static const int kMusePreOverscanSize = 32;
54 static const float kMuseSaturationLimit = 65500.;
57 static const int kMuseNumIFUs = 24;
60 static const unsigned short kMuseSlicesPerCCD = 48;
62 static const int kMuseSliceSearchRegion = 200;
64 static const int kMuseSliceMaxWidth = 100;
66 static const int kMuseSliceNominalWidth = 75;
69 static const float kMuseSliceLoLikelyWidth = 72.2;
70 static const float kMuseSliceHiLikelyWidth = 82.2;
74 static const int kMuseSliceMaxEdgeWidth = 10;
77 static const float kMuseSpectralSamplingA = 1.25;
80 static const double kMuseSliceSlitWidthA = 2.61;
83 static const float kMuseNominalLambdaMin = 4650.;
84 static const float kMuseNominalLambdaMax = 9300.;
86 static const float kMuseNominalCutoff = 4750;
88 static const float kMuseLambdaMinX = 4150.;
89 static const float kMuseLambdaMaxX = 9800.;
91 static const float kMuseArcMaxCenteringError = 1.25;
93 static const float kMuseArcMinFWHM = 1.0;
94 static const float kMuseArcMaxFWHM = 5.0;
96 static const float kMuseArcMinFlux = 50.0;
99 static const int kMuseTypicalCubeSizeX = 300;
100 static const int kMuseTypicalCubeSizeY = 288;
106 static const unsigned char kMuseGeoSliceSky[] = {
107 9, 8, 1, 10, 7, 2, 11, 6, 3, 12, 5, 4,
108 21, 20, 13, 22, 19, 14, 23, 18, 15, 24, 17, 16,
109 33, 32, 25, 34, 31, 26, 35, 30, 27, 36, 29, 28,
110 45, 44, 37, 46, 43, 38, 47, 42, 39, 48, 41, 40
114 static const float kMuseCUmpmDX = 2.9450,
115 kMuseCUmpmDY = 0.6135;
118 static const unsigned char kMuseCUmpmSpotsPerSlice = 3;
125 static const double kMuseAmpl1[][2] = {
126 { 2500., 0.12042285 },
127 { 2600., 0.10860598 },
128 { 2700., 0.10029241 },
129 { 2800., 0.1010473 },
130 { 2900., 0.11258141 },
131 { 3000., 0.12635038 },
132 { 3100., 0.13448966 },
133 { 3200., 0.13880026 },
134 { 3300., 0.1423209 },
135 { 3400., 0.14222383 },
136 { 3500., 0.14018333 },
137 { 3600., 0.13863897 },
138 { 3700., 0.14285144 },
139 { 3800., 0.15266077 },
140 { 3900., 0.16535348 },
141 { 4000., 0.1770276 },
142 { 4100., 0.18605701 },
143 { 4200., 0.19385006 },
144 { 4300., 0.20142353 },
145 { 4400., 0.20986195 },
146 { 4500., 0.21819498 },
147 { 4600., 0.22561278 },
148 { 4700., 0.23293989 },
149 { 4800., 0.23908501 },
150 { 4900., 0.24622256 },
151 { 5000., 0.25217267 },
152 { 5100., 0.25847973 },
153 { 5200., 0.2651326 },
154 { 5300., 0.27124827 },
155 { 5400., 0.27774291 },
156 { 5500., 0.28288282 },
157 { 5600., 0.28884646 },
158 { 5700., 0.29560289 },
159 { 5800., 0.30107169 },
160 { 5900., 0.30661891 },
161 { 6000., 0.31317781 },
162 { 6100., 0.3185658 },
163 { 6200., 0.3247822 },
164 { 6300., 0.33013667 },
165 { 6400., 0.33590527 },
166 { 6500., 0.34120136 },
167 { 6600., 0.34646811 },
168 { 6700., 0.35219427 },
169 { 6800., 0.35768868 },
170 { 6900., 0.36601971 },
171 { 7000., 0.36940652 },
172 { 7100., 0.3735187 },
173 { 7200., 0.37902808 },
174 { 7300., 0.38475409 },
175 { 7400., 0.39095198 },
176 { 7500., 0.39615039 },
177 { 7600., 0.40184217 },
178 { 7700., 0.40682911 },
179 { 7800., 0.41245076 },
180 { 7900., 0.41851005 },
181 { 8000., 0.42465427 },
182 { 8100., 0.4292767 },
183 { 8200., 0.43596086 },
184 { 8300., 0.44151703 },
185 { 8400., 0.4458525 },
186 { 8500., 0.45129183 },
187 { 8600., 0.45772061 },
188 { 8700., 0.46303733 },
189 { 8800., 0.4683445 },
190 { 8900., 0.4728841 },
191 { 9000., 0.47827183 },
192 { 9100., 0.48365046 },
193 { 9200., 0.48835047 },
194 { 9300., 0.49350086 },
195 { 9400., 0.49763584 },
196 { 9500., 0.50120751 },
197 { 9600., 0.50337176 },
198 { 9700., 0.50266209 },
199 { 9800., 0.49823605 },
200 { 9900., 0.48887253 },
201 { 10000., 0.47199137 },
202 { 10100., 0.44744711 },
203 { 10200., 0.41367036 },
204 { 10300., 0.37072293 },
205 { 10400., 0.31936173 },
206 { 10500., 0.26252744 },
207 { 10600., 0.2092668 },
208 { 10700., 0.16926374 },
209 { 10800., 0.13819477 },
210 { 10900., 0.11170627 },
211 { 11000., 0.089087876 },
216 static const double kMuseAmpl2[][2] = {
217 { 3800., 0.017470643 },
218 { 3900., 0.028092218 },
219 { 4000., 0.042101743 },
220 { 4100., 0.057172072 },
221 { 4200., 0.072846443 },
222 { 4300., 0.088312251 },
223 { 4400., 0.10446471 },
224 { 4500., 0.12060106 },
225 { 4600., 0.13705176 },
226 { 4700., 0.15291203 },
227 { 4800., 0.16783374 },
228 { 4900., 0.18414104 },
229 { 5000., 0.2002173 },
230 { 5100., 0.21605915 },
231 { 5200., 0.23228403 },
232 { 5300., 0.24804161 },
233 { 5400., 0.26350352 },
234 { 5500., 0.27958034 },
235 { 5600., 0.2948433 },
236 { 5700., 0.3098418 },
237 { 5800., 0.32511413 },
238 { 5900., 0.3396649 },
239 { 6000., 0.35432272 },
240 { 6100., 0.36892068 },
241 { 6200., 0.38268224 },
242 { 6300., 0.3965248 },
243 { 6400., 0.41013499 },
244 { 6500., 0.42306177 },
245 { 6600., 0.43585509 },
246 { 6700., 0.44871039 },
247 { 6800., 0.46041305 },
248 { 6900., 0.47379706 },
249 { 7000., 0.48452311 },
250 { 7100., 0.49428201 },
251 { 7200., 0.50518957 },
252 { 7300., 0.51604378 },
253 { 7400., 0.52577538 },
254 { 7500., 0.53560665 },
255 { 7600., 0.54571763 },
256 { 7700., 0.55427559 },
257 { 7800., 0.56320912 },
258 { 7900., 0.57262044 },
259 { 8000., 0.58063817 },
260 { 8100., 0.58978081 },
261 { 8200., 0.59650748 },
262 { 8300., 0.60433599 },
263 { 8400., 0.61148995 },
264 { 8500., 0.61874995 },
265 { 8600., 0.62610294 },
266 { 8700., 0.63217003 },
267 { 8800., 0.63791206 },
268 { 8900., 0.6449613 },
269 { 9000., 0.65062382 },
270 { 9100., 0.65685802 },
271 { 9200., 0.66314835 },
272 { 9300., 0.6684782 },
273 { 9400., 0.67349904 },
274 { 9500., 0.67880835 },
275 { 9600., 0.68235343 },
276 { 9700., 0.68390407 },
277 { 9800., 0.68117654 },
278 { 9900., 0.67307881 },
279 { 10000., 0.65663219 },
280 { 10100., 0.62937674 },
281 { 10200., 0.5886552 },
282 { 10300., 0.53176402 },
283 { 10400., 0.46039876 },
284 { 10500., 0.37838965 },
285 { 10600., 0.29937021 },
286 { 10700., 0.23830659 },
287 { 10800., 0.19124631 },
288 { 10900., 0.1523348 },
289 { 11000., 0.1193815 },
293 static const double kMuseAmplPhysicalSize = 1.;
311 MUSE_MODE_WFM_NONAO_X = 0,
312 MUSE_MODE_WFM_NONAO_N = 1,
313 MUSE_MODE_WFM_AO_N = 2,
314 MUSE_MODE_NFM_AO_N = 3