/** \file \brief SPIRE detector implementation. \who \kpr */ #include #include #include "SPIRE.h" #include "manticore.h" namespace mu = mutils; namespace manticore { /** \brief SPIRE 250 micron response. Net aperture efficiency and "PSW" filter response, truncated to the frequency range for which the response \f$R(\nu) > 10^{-4}\f$. Frequency is in Hz. */ Detector::tableType SPIRE::band250 = { // {nu0, resp250} {9.188639e+11, 1.084730e-04}, {9.215620e+11, 1.218772e-04}, {9.245599e+11, 1.347726e-04}, {9.275579e+11, 1.479526e-04}, {9.305558e+11, 1.586027e-04}, {9.335537e+11, 1.718282e-04}, {9.362518e+11, 1.880550e-04}, {9.392498e+11, 2.138530e-04}, {9.422477e+11, 2.447838e-04}, {9.452456e+11, 2.927174e-04}, {9.479438e+11, 3.561768e-04}, {9.509417e+11, 4.300636e-04}, {9.539396e+11, 5.161096e-04}, {9.569375e+11, 6.143470e-04}, {9.599355e+11, 7.120191e-04}, {9.626336e+11, 8.125776e-04}, {9.656315e+11, 9.187778e-04}, {9.686294e+11, 1.033799e-03}, {9.716274e+11, 1.162803e-03}, {9.743255e+11, 1.339292e-03}, {9.773234e+11, 1.489921e-03}, {9.803213e+11, 1.647826e-03}, {9.833193e+11, 1.797823e-03}, {9.863172e+11, 1.902874e-03}, {9.890153e+11, 2.003211e-03}, {9.920132e+11, 2.097966e-03}, {9.950112e+11, 2.222780e-03}, {9.980091e+11, 2.461444e-03}, {1.001007e+12, 2.934525e-03}, {1.003705e+12, 3.612882e-03}, {1.006703e+12, 5.620042e-03}, {1.009701e+12, 9.065826e-03}, {1.012699e+12, 1.510255e-02}, {1.015397e+12, 2.759992e-02}, {1.018395e+12, 6.137481e-02}, {1.021393e+12, 1.069816e-01}, {1.024391e+12, 1.317988e-01}, {1.027389e+12, 1.587615e-01}, {1.030087e+12, 1.892676e-01}, {1.033085e+12, 2.255164e-01}, {1.036083e+12, 2.574784e-01}, {1.039081e+12, 2.904251e-01}, {1.042079e+12, 3.151850e-01}, {1.044777e+12, 3.320039e-01}, {1.047775e+12, 3.296086e-01}, {1.050773e+12, 3.618141e-01}, {1.053770e+12, 3.393903e-01}, {1.056469e+12, 3.433350e-01}, {1.059467e+12, 3.706502e-01}, {1.062464e+12, 3.835538e-01}, {1.065462e+12, 4.011251e-01}, {1.068460e+12, 4.149469e-01}, {1.071158e+12, 4.236222e-01}, {1.074156e+12, 4.306788e-01}, {1.077154e+12, 4.402838e-01}, {1.080152e+12, 4.417987e-01}, {1.083150e+12, 4.459048e-01}, {1.085848e+12, 4.536940e-01}, {1.088846e+12, 4.640540e-01}, {1.091844e+12, 4.700480e-01}, {1.094842e+12, 4.706400e-01}, {1.097540e+12, 4.656820e-01}, {1.100538e+12, 4.630806e-01}, {1.103536e+12, 4.567477e-01}, {1.106534e+12, 4.497102e-01}, {1.109532e+12, 4.547749e-01}, {1.112230e+12, 4.594671e-01}, {1.115228e+12, 4.729480e-01}, {1.118226e+12, 4.905253e-01}, {1.121224e+12, 5.026655e-01}, {1.124222e+12, 5.089402e-01}, {1.126920e+12, 5.058823e-01}, {1.129918e+12, 4.927037e-01}, {1.132916e+12, 4.750698e-01}, {1.135914e+12, 4.671513e-01}, {1.138612e+12, 4.602544e-01}, {1.141610e+12, 4.571810e-01}, {1.144608e+12, 4.657265e-01}, {1.147606e+12, 4.742719e-01}, {1.150603e+12, 4.808684e-01}, {1.153302e+12, 4.867153e-01}, {1.156300e+12, 4.910630e-01}, {1.159297e+12, 4.857408e-01}, {1.162295e+12, 4.804186e-01}, {1.164993e+12, 4.751714e-01}, {1.167991e+12, 4.699992e-01}, {1.170989e+12, 4.648270e-01}, {1.173987e+12, 4.638525e-01}, {1.176985e+12, 4.629530e-01}, {1.179683e+12, 4.609290e-01}, {1.182681e+12, 4.571671e-01}, {1.185679e+12, 4.533436e-01}, {1.188677e+12, 4.497450e-01}, {1.191675e+12, 4.460715e-01}, {1.194373e+12, 4.450219e-01}, {1.197371e+12, 4.514693e-01}, {1.200369e+12, 4.579168e-01}, {1.203367e+12, 4.622650e-01}, {1.206065e+12, 4.656387e-01}, {1.209063e+12, 4.676629e-01}, {1.212061e+12, 4.579917e-01}, {1.215059e+12, 4.483206e-01}, {1.218057e+12, 4.410485e-01}, {1.220755e+12, 4.359506e-01}, {1.223753e+12, 4.308526e-01}, {1.226751e+12, 4.374500e-01}, {1.229749e+12, 4.446471e-01}, {1.232747e+12, 4.522171e-01}, {1.235445e+12, 4.604556e-01}, {1.238443e+12, 4.689188e-01}, {1.241441e+12, 4.650323e-01}, {1.244438e+12, 4.580067e-01}, {1.247137e+12, 4.506822e-01}, {1.250135e+12, 4.418534e-01}, {1.253132e+12, 4.327376e-01}, {1.256130e+12, 4.296415e-01}, {1.259128e+12, 4.294180e-01}, {1.261826e+12, 4.295670e-01}, {1.264824e+12, 4.333828e-01}, {1.267822e+12, 4.365676e-01}, {1.270820e+12, 4.359528e-01}, {1.273818e+12, 4.315584e-01}, {1.276516e+12, 4.275973e-01}, {1.279514e+12, 4.273752e-01}, {1.282512e+12, 4.274492e-01}, {1.285510e+12, 4.268570e-01}, {1.288208e+12, 4.250062e-01}, {1.291206e+12, 4.231555e-01}, {1.294204e+12, 4.167434e-01}, {1.297202e+12, 4.090734e-01}, {1.300200e+12, 4.004701e-01}, {1.302898e+12, 3.881761e-01}, {1.305896e+12, 3.764801e-01}, {1.308894e+12, 3.728756e-01}, {1.311892e+12, 3.741262e-01}, {1.314890e+12, 3.753421e-01}, {1.317588e+12, 3.794046e-01}, {1.320586e+12, 3.833486e-01}, {1.323584e+12, 3.823028e-01}, {1.326582e+12, 3.759019e-01}, {1.329280e+12, 3.698354e-01}, {1.332278e+12, 3.578914e-01}, {1.335276e+12, 3.449645e-01}, {1.338274e+12, 3.369568e-01}, {1.341271e+12, 3.374651e-01}, {1.343970e+12, 3.379009e-01}, {1.346968e+12, 3.400584e-01}, {1.349965e+12, 3.415895e-01}, {1.352963e+12, 3.430257e-01}, {1.355961e+12, 3.436028e-01}, {1.358659e+12, 3.441799e-01}, {1.361657e+12, 3.411501e-01}, {1.364655e+12, 3.352276e-01}, {1.367653e+12, 3.286348e-01}, {1.370351e+12, 3.278186e-01}, {1.373349e+12, 3.273886e-01}, {1.376347e+12, 3.250650e-01}, {1.379345e+12, 3.210074e-01}, {1.382343e+12, 3.179080e-01}, {1.385041e+12, 3.137072e-01}, {1.388039e+12, 3.087715e-01}, {1.391037e+12, 3.040208e-01}, {1.394035e+12, 2.997811e-01}, {1.396733e+12, 2.956514e-01}, {1.399731e+12, 2.926807e-01}, {1.402729e+12, 2.896240e-01}, {1.405727e+12, 2.844460e-01}, {1.408725e+12, 2.705123e-01}, {1.411423e+12, 2.569133e-01}, {1.414421e+12, 2.404181e-01}, {1.417419e+12, 2.217483e-01}, {1.420417e+12, 2.034087e-01}, {1.423415e+12, 1.888247e-01}, {1.426113e+12, 1.738108e-01}, {1.429111e+12, 1.598519e-01}, {1.432109e+12, 1.481155e-01}, {1.435106e+12, 1.364123e-01}, {1.437805e+12, 1.232542e-01}, {1.440803e+12, 1.099215e-01}, {1.443800e+12, 9.732562e-02}, {1.446798e+12, 8.545625e-02}, {1.449796e+12, 7.342128e-02}, {1.452494e+12, 6.431992e-02}, {1.455492e+12, 5.668411e-02}, {1.458490e+12, 4.919344e-02}, {1.461488e+12, 4.375944e-02}, {1.464486e+12, 3.848005e-02}, {1.467184e+12, 3.389748e-02}, {1.470182e+12, 2.980627e-02}, {1.473180e+12, 2.572455e-02}, {1.476178e+12, 2.316208e-02}, {1.478876e+12, 2.066791e-02}, {1.481874e+12, 1.827823e-02}, {1.484872e+12, 1.619948e-02}, {1.487870e+12, 1.418459e-02}, {1.490868e+12, 1.266808e-02}, {1.493566e+12, 1.125878e-02}, {1.496564e+12, 9.976284e-03}, {1.499562e+12, 9.081730e-03}, {1.502560e+12, 8.197224e-03}, {1.505558e+12, 7.434978e-03}, {1.508256e+12, 6.727826e-03}, {1.511254e+12, 6.048443e-03}, {1.514252e+12, 5.639204e-03}, {1.517250e+12, 5.233646e-03}, {1.519948e+12, 4.902739e-03}, {1.522946e+12, 4.643269e-03}, {1.525944e+12, 4.384697e-03}, {1.528942e+12, 3.967740e-03}, {1.531939e+12, 3.540782e-03}, {1.534638e+12, 3.184214e-03}, {1.537636e+12, 2.954032e-03}, {1.540633e+12, 2.728737e-03}, {1.543631e+12, 2.585153e-03}, {1.546629e+12, 2.456319e-03}, {1.549327e+12, 2.302204e-03}, {1.552325e+12, 2.058967e-03}, {1.555323e+12, 1.816655e-03}, {1.558321e+12, 1.634322e-03}, {1.561019e+12, 1.484656e-03}, {1.564017e+12, 1.343556e-03}, {1.567015e+12, 1.435372e-03}, {1.570013e+12, 1.529347e-03}, {1.573011e+12, 1.593072e-03}, {1.575709e+12, 1.622637e-03}, {1.578707e+12, 1.651940e-03}, {1.581705e+12, 1.574919e-03}, {1.584703e+12, 1.486488e-03}, {1.587401e+12, 1.392713e-03}, {1.590399e+12, 1.288397e-03}, {1.593397e+12, 1.183896e-03}, {1.596395e+12, 1.216501e-03}, {1.599393e+12, 1.294675e-03}, {1.602091e+12, 1.367362e-03}, {1.605089e+12, 1.417856e-03}, {1.608087e+12, 1.472770e-03}, {1.611085e+12, 1.387733e-03}, {1.614083e+12, 1.202401e-03}, {1.616781e+12, 1.020101e-03}, {1.619779e+12, 8.941457e-04}, {1.622777e+12, 7.702332e-04}, {1.625774e+12, 6.554547e-04}, {1.628473e+12, 5.511324e-04}, {1.631471e+12, 4.471695e-04}, {1.634468e+12, 3.868312e-04}, {1.637466e+12, 3.330373e-04}, {1.640464e+12, 3.430392e-04}, {1.643162e+12, 5.041553e-04}, {1.646160e+12, 6.636344e-04}, {1.649158e+12, 6.809904e-04}, {1.652156e+12, 6.445440e-04}, {1.655154e+12, 5.775735e-04}, {1.657852e+12, 3.222030e-04}, {1.672542e+12, 1.426754e-04}, {1.675540e+12, 3.257785e-04}, {1.678538e+12, 4.182634e-04}, {1.681536e+12, 3.849293e-04}, {1.684234e+12, 3.523299e-04}, {1.687232e+12, 2.392848e-04}, {1.690230e+12, 1.113489e-04}, {1.704920e+12, 1.121522e-04}, {1.707918e+12, 1.332626e-04}, {1.710616e+12, 1.011877e-04}, {1.725306e+12, 1.367894e-04}, {1.728304e+12, 2.133156e-04}, {1.731301e+12, 2.849122e-04}, {1.734299e+12, 3.498730e-04}, {1.737297e+12, 4.146718e-04}, {1.739995e+12, 3.716393e-04}, {1.742993e+12, 3.037991e-04}, {1.745991e+12, 2.479662e-04}, {1.748989e+12, 2.316049e-04}, {1.751687e+12, 2.155208e-04}, {1.754685e+12, 2.104223e-04}, {1.757683e+12, 2.115269e-04}, {1.760681e+12, 2.076203e-04}, {1.763679e+12, 1.495520e-04}, {1.795757e+12, 1.269763e-04}, {1.798755e+12, 1.634596e-04}, }; /** \brief SPIRE 350 micron response. Net aperture efficiency and "PMW" filter response, truncated to the frequency range for which the response \f$R(\nu) > 10^{-4}\f$. Frequency is in Hz. */ Detector::tableType SPIRE::band350 = { // {nu0, resp350} {6.370590e+11, 1.113030e-04}, {6.400569e+11, 1.230394e-04}, {6.430548e+11, 1.348546e-04}, {6.460527e+11, 1.421731e-04}, {6.487509e+11, 1.521099e-04}, {6.517488e+11, 1.599524e-04}, {6.547467e+11, 1.639040e-04}, {6.577447e+11, 1.706184e-04}, {6.607426e+11, 1.829189e-04}, {6.634407e+11, 2.064539e-04}, {6.664386e+11, 2.383758e-04}, {6.694366e+11, 2.844468e-04}, {6.724345e+11, 3.284091e-04}, {6.751326e+11, 3.810997e-04}, {6.781305e+11, 4.354011e-04}, {6.811285e+11, 4.847582e-04}, {6.841264e+11, 5.547926e-04}, {6.871243e+11, 6.724104e-04}, {6.898224e+11, 8.334800e-04}, {6.928204e+11, 1.035958e-03}, {6.958183e+11, 1.343013e-03}, {6.988162e+11, 1.722713e-03}, {7.018141e+11, 2.191495e-03}, {7.045123e+11, 2.897803e-03}, {7.075102e+11, 4.069488e-03}, {7.105081e+11, 5.786725e-03}, {7.135061e+11, 8.848851e-03}, {7.162042e+11, 1.511291e-02}, {7.192021e+11, 3.231656e-02}, {7.222000e+11, 6.647241e-02}, {7.251980e+11, 8.051505e-02}, {7.281959e+11, 9.755227e-02}, {7.308940e+11, 1.137612e-01}, {7.338919e+11, 1.304646e-01}, {7.368899e+11, 1.502373e-01}, {7.398878e+11, 1.813522e-01}, {7.425859e+11, 2.054086e-01}, {7.455838e+11, 2.416745e-01}, {7.485818e+11, 2.753118e-01}, {7.515797e+11, 3.150791e-01}, {7.545776e+11, 3.404826e-01}, {7.572757e+11, 3.717275e-01}, {7.602737e+11, 3.847605e-01}, {7.632716e+11, 3.985087e-01}, {7.662695e+11, 3.983693e-01}, {7.692674e+11, 4.044490e-01}, {7.719656e+11, 4.097709e-01}, {7.749635e+11, 4.218764e-01}, {7.779614e+11, 4.328801e-01}, {7.809594e+11, 4.424593e-01}, {7.836575e+11, 4.346474e-01}, {7.866554e+11, 4.355906e-01}, {7.896533e+11, 4.383730e-01}, {7.926513e+11, 4.397610e-01}, {7.956492e+11, 4.432323e-01}, {7.983473e+11, 4.488396e-01}, {8.013452e+11, 4.563386e-01}, {8.043432e+11, 4.624408e-01}, {8.073411e+11, 4.560023e-01}, {8.103390e+11, 4.514346e-01}, {8.130371e+11, 4.468798e-01}, {8.160351e+11, 4.446660e-01}, {8.190330e+11, 4.306800e-01}, {8.220309e+11, 4.274240e-01}, {8.247291e+11, 4.190620e-01}, {8.277270e+11, 4.208057e-01}, {8.307249e+11, 4.268449e-01}, {8.337228e+11, 4.385382e-01}, {8.367208e+11, 4.620739e-01}, {8.394189e+11, 4.704902e-01}, {8.424168e+11, 4.662448e-01}, {8.454147e+11, 4.643230e-01}, {8.484127e+11, 4.418194e-01}, {8.514106e+11, 4.190298e-01}, {8.541087e+11, 4.027699e-01}, {8.571066e+11, 4.004363e-01}, {8.601046e+11, 4.100312e-01}, {8.631025e+11, 4.119052e-01}, {8.658006e+11, 4.256229e-01}, {8.687985e+11, 4.334937e-01}, {8.717965e+11, 4.304953e-01}, {8.747944e+11, 4.187266e-01}, {8.777923e+11, 4.158781e-01}, {8.804904e+11, 4.152784e-01}, {8.834884e+11, 4.159530e-01}, {8.864863e+11, 4.217999e-01}, {8.894842e+11, 4.231307e-01}, {8.924821e+11, 4.229807e-01}, {8.951803e+11, 4.209566e-01}, {8.981782e+11, 4.162334e-01}, {9.011761e+11, 4.042382e-01}, {9.041741e+11, 4.001899e-01}, {9.068722e+11, 3.906687e-01}, {9.098701e+11, 3.858706e-01}, {9.128680e+11, 3.914184e-01}, {9.158660e+11, 4.032636e-01}, {9.188639e+11, 4.076119e-01}, {9.215620e+11, 4.218562e-01}, {9.245599e+11, 4.157836e-01}, {9.275579e+11, 4.079592e-01}, {9.305558e+11, 3.843131e-01}, {9.335537e+11, 3.642828e-01}, {9.362518e+11, 3.455978e-01}, {9.392498e+11, 3.411915e-01}, {9.422477e+11, 3.424765e-01}, {9.452456e+11, 3.514910e-01}, {9.479438e+11, 3.550670e-01}, {9.509417e+11, 3.577633e-01}, {9.539396e+11, 3.623654e-01}, {9.569375e+11, 3.565730e-01}, {9.599355e+11, 3.504580e-01}, {9.626336e+11, 3.489034e-01}, {9.656315e+11, 3.432031e-01}, {9.686294e+11, 3.329129e-01}, {9.716274e+11, 3.206344e-01}, {9.743255e+11, 3.246320e-01}, {9.773234e+11, 3.198354e-01}, {9.803213e+11, 3.191768e-01}, {9.833193e+11, 3.210894e-01}, {9.863172e+11, 3.238847e-01}, {9.890153e+11, 3.213156e-01}, {9.920132e+11, 3.106108e-01}, {9.950112e+11, 3.039082e-01}, {9.980091e+11, 2.945527e-01}, {1.001007e+12, 2.808325e-01}, {1.003705e+12, 2.671690e-01}, {1.006703e+12, 2.517009e-01}, {1.009701e+12, 2.286804e-01}, {1.012699e+12, 1.954161e-01}, {1.015397e+12, 1.614493e-01}, {1.018395e+12, 1.301406e-01}, {1.021393e+12, 1.038095e-01}, {1.024391e+12, 8.270192e-02}, {1.027389e+12, 6.741234e-02}, {1.030087e+12, 5.732167e-02}, {1.033085e+12, 4.929158e-02}, {1.036083e+12, 4.130312e-02}, {1.039081e+12, 3.463880e-02}, {1.042079e+12, 2.819033e-02}, {1.044777e+12, 2.335016e-02}, {1.047775e+12, 1.811908e-02}, {1.050773e+12, 1.633863e-02}, {1.053770e+12, 1.256146e-02}, {1.056469e+12, 1.047577e-02}, {1.059467e+12, 9.551904e-03}, {1.062464e+12, 8.438137e-03}, {1.065462e+12, 7.543218e-03}, {1.068460e+12, 6.966835e-03}, {1.071158e+12, 6.205355e-03}, {1.074156e+12, 5.593317e-03}, {1.077154e+12, 5.065830e-03}, {1.080152e+12, 4.525811e-03}, {1.083150e+12, 3.964608e-03}, {1.085848e+12, 3.482331e-03}, {1.088846e+12, 3.070218e-03}, {1.091844e+12, 2.678345e-03}, {1.094842e+12, 2.302080e-03}, {1.097540e+12, 2.010432e-03}, {1.100538e+12, 1.765819e-03}, {1.103536e+12, 1.531600e-03}, {1.106534e+12, 1.324607e-03}, {1.109532e+12, 1.133836e-03}, {1.112230e+12, 9.211749e-04}, {1.115228e+12, 7.403564e-04}, {1.118226e+12, 6.005857e-04}, {1.121224e+12, 4.741391e-04}, {1.124222e+12, 3.814859e-04}, {1.126920e+12, 3.106380e-04}, {1.129918e+12, 2.526412e-04}, {1.132916e+12, 1.997789e-04}, {1.135914e+12, 1.662938e-04}, {1.138612e+12, 1.341020e-04}, {1.141610e+12, 1.121883e-04}, }; /** \brief SPIRE 500 micron response. Net aperture efficiency and "PLW" filter response, truncated to the frequency range for which the response \f$R(\nu) > 10^{-4}\f$. Frequency is in Hz. */ Detector::tableType SPIRE::band500 = { // {nu0, resp500} {3.378661e+11, 1.152396e-04}, {3.408640e+11, 1.181795e-04}, {3.438619e+11, 1.284199e-04}, {3.468599e+11, 1.384172e-04}, {3.495580e+11, 1.632476e-04}, {3.525559e+11, 1.851311e-04}, {3.555539e+11, 2.152869e-04}, {3.585518e+11, 2.390951e-04}, {3.612499e+11, 2.433564e-04}, {3.642478e+11, 2.702321e-04}, {3.672458e+11, 2.758241e-04}, {3.702437e+11, 3.037856e-04}, {3.732416e+11, 3.272337e-04}, {3.759397e+11, 3.625637e-04}, {3.789377e+11, 3.713014e-04}, {3.819356e+11, 4.131943e-04}, {3.849335e+11, 4.366220e-04}, {3.879314e+11, 5.188042e-04}, {3.906296e+11, 5.856516e-04}, {3.936275e+11, 6.152500e-04}, {3.966254e+11, 6.753472e-04}, {3.996233e+11, 8.077790e-04}, {4.023215e+11, 8.842694e-04}, {4.053194e+11, 9.420840e-04}, {4.083173e+11, 1.055578e-03}, {4.113153e+11, 1.169510e-03}, {4.143132e+11, 1.218659e-03}, {4.170113e+11, 1.416993e-03}, {4.200092e+11, 1.539650e-03}, {4.230072e+11, 1.800817e-03}, {4.260051e+11, 1.924076e-03}, {4.290030e+11, 2.148664e-03}, {4.317011e+11, 2.452447e-03}, {4.346991e+11, 2.910644e-03}, {4.376970e+11, 3.392583e-03}, {4.406949e+11, 3.839616e-03}, {4.433930e+11, 4.380467e-03}, {4.463910e+11, 4.900885e-03}, {4.493889e+11, 5.302535e-03}, {4.523868e+11, 6.235960e-03}, {4.553847e+11, 7.241960e-03}, {4.580829e+11, 8.000044e-03}, {4.610808e+11, 9.604309e-03}, {4.640787e+11, 1.187934e-02}, {4.670766e+11, 1.460389e-02}, {4.700746e+11, 1.767086e-02}, {4.727727e+11, 2.174774e-02}, {4.757706e+11, 2.731719e-02}, {4.787686e+11, 3.538345e-02}, {4.817665e+11, 4.576044e-02}, {4.844646e+11, 6.312938e-02}, {4.874625e+11, 9.557154e-02}, {4.904605e+11, 1.727868e-01}, {4.934584e+11, 4.017021e-01}, {4.964563e+11, 4.049896e-01}, {4.991544e+11, 4.020121e-01}, {5.021524e+11, 4.014753e-01}, {5.051503e+11, 4.152664e-01}, {5.081482e+11, 4.015217e-01}, {5.111461e+11, 3.863303e-01}, {5.138443e+11, 3.911615e-01}, {5.168422e+11, 3.872034e-01}, {5.198401e+11, 3.983367e-01}, {5.228380e+11, 4.097184e-01}, {5.255362e+11, 4.145183e-01}, {5.285341e+11, 4.096134e-01}, {5.315320e+11, 4.071538e-01}, {5.345300e+11, 3.798043e-01}, {5.375279e+11, 3.689333e-01}, {5.402260e+11, 3.816051e-01}, {5.432239e+11, 3.747360e-01}, {5.462219e+11, 3.799160e-01}, {5.492198e+11, 3.941980e-01}, {5.519179e+11, 3.969849e-01}, {5.549158e+11, 4.070332e-01}, {5.579138e+11, 4.030113e-01}, {5.609117e+11, 3.990638e-01}, {5.639096e+11, 4.061032e-01}, {5.666077e+11, 3.865783e-01}, {5.696057e+11, 3.770488e-01}, {5.726036e+11, 3.756246e-01}, {5.756015e+11, 3.888175e-01}, {5.785994e+11, 3.876931e-01}, {5.812976e+11, 3.832705e-01}, {5.842955e+11, 3.938398e-01}, {5.872934e+11, 3.873933e-01}, {5.902913e+11, 3.813965e-01}, {5.929895e+11, 3.909685e-01}, {5.959874e+11, 3.973410e-01}, {5.989853e+11, 3.989903e-01}, {6.019833e+11, 3.984656e-01}, {6.049812e+11, 4.027388e-01}, {6.076793e+11, 4.043132e-01}, {6.106772e+11, 4.122600e-01}, {6.136752e+11, 4.115853e-01}, {6.166731e+11, 4.047596e-01}, {6.196710e+11, 3.933566e-01}, {6.223691e+11, 3.830425e-01}, {6.253671e+11, 3.912327e-01}, {6.283650e+11, 3.942540e-01}, {6.313629e+11, 4.120595e-01}, {6.340610e+11, 4.159883e-01}, {6.370590e+11, 4.310556e-01}, {6.400569e+11, 4.375913e-01}, {6.430548e+11, 4.463269e-01}, {6.460527e+11, 4.322028e-01}, {6.487509e+11, 4.291626e-01}, {6.517488e+11, 4.161289e-01}, {6.547467e+11, 4.036237e-01}, {6.577447e+11, 4.066202e-01}, {6.607426e+11, 4.114061e-01}, {6.634407e+11, 4.130316e-01}, {6.664386e+11, 4.186382e-01}, {6.694366e+11, 4.397867e-01}, {6.724345e+11, 4.394962e-01}, {6.751326e+11, 4.428877e-01}, {6.781305e+11, 4.409197e-01}, {6.811285e+11, 4.334893e-01}, {6.841264e+11, 4.247976e-01}, {6.871243e+11, 4.263770e-01}, {6.898224e+11, 4.354391e-01}, {6.928204e+11, 4.309237e-01}, {6.958183e+11, 4.308288e-01}, {6.988162e+11, 4.209850e-01}, {7.018141e+11, 4.145988e-01}, {7.045123e+11, 4.026928e-01}, {7.075102e+11, 3.940691e-01}, {7.105081e+11, 3.823944e-01}, {7.135061e+11, 3.711300e-01}, {7.162042e+11, 3.624220e-01}, {7.192021e+11, 3.503130e-01}, {7.222000e+11, 3.182011e-01}, {7.251980e+11, 2.824519e-01}, {7.281959e+11, 2.417210e-01}, {7.308940e+11, 1.912909e-01}, {7.338919e+11, 1.485214e-01}, {7.368899e+11, 1.126421e-01}, {7.398878e+11, 8.847162e-02}, {7.425859e+11, 6.941678e-02}, {7.455838e+11, 5.377674e-02}, {7.485818e+11, 4.211782e-02}, {7.515797e+11, 3.294597e-02}, {7.545776e+11, 2.529130e-02}, {7.572757e+11, 1.957721e-02}, {7.602737e+11, 1.509525e-02}, {7.632716e+11, 1.142713e-02}, {7.662695e+11, 8.472993e-03}, {7.692674e+11, 6.437254e-03}, {7.719656e+11, 5.122231e-03}, {7.749635e+11, 4.029038e-03}, {7.779614e+11, 3.145234e-03}, {7.809594e+11, 2.566684e-03}, {7.836575e+11, 2.081271e-03}, {7.866554e+11, 1.581703e-03}, {7.896533e+11, 1.358924e-03}, {7.926513e+11, 1.120979e-03}, {7.956492e+11, 9.590680e-04}, {7.983473e+11, 6.895932e-04}, {8.013452e+11, 5.635714e-04}, {8.043432e+11, 5.225258e-04}, {8.073411e+11, 4.744991e-04}, {8.103390e+11, 4.831183e-04}, {8.130371e+11, 4.299104e-04}, {8.160351e+11, 4.299673e-04}, {8.190330e+11, 4.297545e-04}, {8.220309e+11, 4.590609e-04}, {8.247291e+11, 3.919290e-04}, {8.277270e+11, 3.414828e-04}, {8.307249e+11, 2.940791e-04}, {8.337228e+11, 2.751976e-04}, {8.367208e+11, 3.250078e-04}, {8.394189e+11, 3.350167e-04}, {8.424168e+11, 2.670179e-04}, {8.454147e+11, 2.175510e-04}, {8.484127e+11, 1.947723e-04}, {8.514106e+11, 1.445354e-04}, }; void SPIRE::init() { const char *const fn = "SPIRE::init"; // Band response table. switch (band_) { case 250: resp_ = band250; break; case 350: resp_ = band350; break; case 500: resp_ = band500; break; default: MU_EXCEPTION(fn, "SPIRE has no %lu micron band", band_); break; } // Band center. center_ = 1e4*c_light/band_; // Extended source adjustment. if (extend_) { auto inu0 = 1/center_; for (auto &entry: resp_) { entry.second *= pow(entry.first*inu0, -1.7); } } // Required post-initialization. Detector::init(); } } // namespace manticore