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