| [988] | 1 | \documentclass[11pt]{article} | 
|---|
|  | 2 | %\documentstyle[11pt,epsfig,url]{article} | 
|---|
|  | 3 | \usepackage[latin1]{inputenc} | 
|---|
|  | 4 | \usepackage[T1]{fontenc} | 
|---|
|  | 5 | \usepackage[english]{babel} | 
|---|
|  | 6 | \usepackage{url} | 
|---|
|  | 7 | \usepackage{graphicx} | 
|---|
|  | 8 |  | 
|---|
|  | 9 | % package a mettre pour faire du pdf | 
|---|
|  | 10 | \usepackage{palatino} | 
|---|
|  | 11 |  | 
|---|
|  | 12 | %  Definition pour Docs Sophya | 
|---|
|  | 13 | \usepackage{defsophya} | 
|---|
|  | 14 |  | 
|---|
|  | 15 |  | 
|---|
|  | 16 |  | 
|---|
|  | 17 | \setlength{\parskip}{\smallskipamount} %\documentclass[a4paper,10pt]{article} | 
|---|
|  | 18 | \newenvironment{maliste}% | 
|---|
|  | 19 | { \begin{list}% | 
|---|
|  | 20 | {$\ast$}% | 
|---|
|  | 21 | {\setlength{\labelwidth}{20pt}% | 
|---|
|  | 22 | \setlength{\leftmargin}{25pt}% | 
|---|
|  | 23 | \setlength{\itemsep}{\parsep}}}% | 
|---|
|  | 24 | { \end{list} } | 
|---|
|  | 25 | \newcommand {\ddate}    {April~12,~2000} | 
|---|
|  | 26 |  | 
|---|
|  | 27 | \begin{document} | 
|---|
|  | 28 | %  The title page - top of the page with the title of the paper | 
|---|
|  | 29 | \begin{titlepage} | 
|---|
|  | 30 | \titrehp{The SkyMixer \\ (SkyT and PMixer modules)} | 
|---|
|  | 31 | %  Authors list | 
|---|
|  | 32 | \auteurs{ | 
|---|
|  | 33 | R. Ansari            &  ansari@lal.in2p3.fr       \\ | 
|---|
|  | 34 | S. Henrot-Versille   &  versille@in2p3.fr | 
|---|
|  | 35 | } | 
|---|
|  | 36 | %  The title page - bottom of the page with the paper number | 
|---|
|  | 37 | \titrebp{2} | 
|---|
|  | 38 | \end{titlepage} | 
|---|
|  | 39 |  | 
|---|
|  | 40 | %--------------------------------------- Abstract --------------------- | 
|---|
|  | 41 | \begin{abstract} | 
|---|
|  | 42 | This note gives a description of the SkyMixer which makes | 
|---|
|  | 43 | use of the PMixer and the SkyT | 
|---|
|  | 44 | modules of the Sophya library. | 
|---|
|  | 45 | In a first part, we provide a user-guide on how to use the | 
|---|
|  | 46 | skymixer and the extractRS program, and how to | 
|---|
|  | 47 | fill the corresponding datacards. | 
|---|
|  | 48 | In a second part, we describe more technically | 
|---|
|  | 49 | the different classes | 
|---|
|  | 50 | of the SkyT module. | 
|---|
|  | 51 | \end{abstract} | 
|---|
|  | 52 | \newpage | 
|---|
|  | 53 | \tableofcontents | 
|---|
|  | 54 | \newpage | 
|---|
|  | 55 |  | 
|---|
|  | 56 |  | 
|---|
|  | 57 | \section{Skymixer and its datacard} | 
|---|
|  | 58 | The skymixer program adds several sky component maps | 
|---|
|  | 59 | simulated or measured at several frequencies, such as, | 
|---|
|  | 60 | for example, foregrounds (synchrotron radiation, dust, radio-sources...) | 
|---|
|  | 61 | and the microwave background. | 
|---|
|  | 62 | It takes into account the corresponding radiation spectra | 
|---|
|  | 63 | $F_\nu$ (the one of a black-body for microwave background, | 
|---|
|  | 64 | a power law spectrum for synchrotron...), | 
|---|
|  | 65 | and integrates them over a given detector filter frequency-re\-sponse | 
|---|
|  | 66 | $W_\nu$ according to: | 
|---|
|  | 67 | \begin{eqnarray} | 
|---|
|  | 68 | S &=& \sum_{sky\  components} \int_0^\infty F_\nu W_\nu d\nu \ . | 
|---|
|  | 69 | \end{eqnarray} | 
|---|
|  | 70 | The output maps\footnote{$F_\nu$ is in $\hbox{W}/\hbox{m}^2/\hbox{sr}/\hbox{Hz}$ | 
|---|
|  | 71 | and $d\nu$ is in $\hbox{GHz}$, while $W_\nu$ is dimensionless.} are in $10^{-9}\hbox{W}/\hbox{m}^2/\hbox{sr}$. | 
|---|
|  | 72 |  | 
|---|
|  | 73 | The interaction between the user and the skymixer is done | 
|---|
|  | 74 | using ASCII cards. The keywords one may use are described below. | 
|---|
|  | 75 |  | 
|---|
|  | 76 | The way to call the skymixer program is the following one: | 
|---|
|  | 77 | \begin{verbatim} | 
|---|
|  | 78 | Usage: skymixer paramFile outputfits [outppfname] | 
|---|
|  | 79 | \end{verbatim} | 
|---|
|  | 80 | where paramFile | 
|---|
|  | 81 | is the name of the datacard (described below) and | 
|---|
|  | 82 | outputfits is the name of the Fits file in which the | 
|---|
|  | 83 | final map will be saved\footnote{PPFName stands for Planck Persistent File (which can be read using piapp or spiapp).}. | 
|---|
|  | 84 | When asking ``skymixer -h'', the previous usage line will appear on the | 
|---|
|  | 85 | screen. | 
|---|
|  | 86 |  | 
|---|
|  | 87 | In the datacards, the lines are activated with the $@$ symbol | 
|---|
|  | 88 | at the start of line. All other lines are treated as comments. | 
|---|
|  | 89 | However for clarity, we use | 
|---|
|  | 90 | $\#$ to mark commented lines. | 
|---|
|  | 91 |  | 
|---|
|  | 92 | \subsection{Input maps} | 
|---|
|  | 93 | One has to define the number of components one wants to add | 
|---|
|  | 94 | and the characteristics | 
|---|
|  | 95 | of the input maps (namely the NSide of HealPix maps): | 
|---|
|  | 96 | \begin{verbatim} | 
|---|
|  | 97 | #  SKYMIX  NbComponents  NSide_HealPix | 
|---|
|  | 98 | @SKYMIX  1 2048 | 
|---|
|  | 99 | \end{verbatim} | 
|---|
|  | 100 | Note that, within this scheme, only maps with the same NSide can | 
|---|
|  | 101 | be added. | 
|---|
|  | 102 |  | 
|---|
|  | 103 | In the case the files containing the | 
|---|
|  | 104 | maps  are not in the | 
|---|
|  | 105 | working directory, it is possible to precise the path to | 
|---|
|  | 106 | their location: | 
|---|
|  | 107 | \begin{verbatim} | 
|---|
|  | 108 | #  MAPPATH  PathForFITS | 
|---|
|  | 109 | #  path for input Sky Component FITS files , | 
|---|
|  | 110 | #   and EmissionSpectra files | 
|---|
|  | 111 | MAPPATH /exp/planck/data/ | 
|---|
|  | 112 | \end{verbatim} | 
|---|
|  | 113 |  | 
|---|
|  | 114 | To have access to different printout, one can play with the | 
|---|
|  | 115 | DEBUGLEVEL and PRINTLEVEL keywords: | 
|---|
|  | 116 | \begin{verbatim} | 
|---|
|  | 117 | #  Define the Debug level | 
|---|
|  | 118 | @DEBUGLEVEL  0 | 
|---|
|  | 119 | #  Define the Print level | 
|---|
|  | 120 | @PRINTLEVEL  5 | 
|---|
|  | 121 | \end{verbatim} | 
|---|
|  | 122 | when set to 0, almost no printout will be given. | 
|---|
|  | 123 |  | 
|---|
|  | 124 | \subsection{Detection filter} | 
|---|
|  | 125 | Then one has to define the detection frequency | 
|---|
|  | 126 | filter response (cf. section | 
|---|
|  | 127 | \ref{specresp}). | 
|---|
|  | 128 | For the example, for a gaussian filter (cf. section \ref{gaussFilt}), | 
|---|
|  | 129 | one should use: | 
|---|
|  | 130 | \begin{verbatim} | 
|---|
|  | 131 | #  Defining the Detection filter pass - band | 
|---|
|  | 132 | #  GAUSSFILTER -> Gaussian filter | 
|---|
|  | 133 | #  GAUSSFILTER  Nu0 Sigma_Nu A NuMin NuMax | 
|---|
|  | 134 | @GAUSSFILTER 143 12 0.84 50. 300. | 
|---|
|  | 135 | \end{verbatim} | 
|---|
|  | 136 | Note that the frequencies have to be given | 
|---|
|  | 137 | in $\hbox{GHz}$. | 
|---|
|  | 138 | In the case of a detection filter defined in a Fits file | 
|---|
|  | 139 | with 2$\times$n arrays (one for the frequencies and the other for | 
|---|
|  | 140 | the transmission values), the syntax would be: | 
|---|
|  | 141 | \begin{verbatim} | 
|---|
|  | 142 | #  Defining the Detection filter pass - band | 
|---|
|  | 143 | #  FILTERFITSFILE -> Filter (nu, T(nu)) from FITS | 
|---|
|  | 144 | #  FILTERFITSFILE FileName NuMin NuMax | 
|---|
|  | 145 | @FILTERFITSFILE filterfile.fits 50. 230. | 
|---|
|  | 146 | \end{verbatim} | 
|---|
|  | 147 |  | 
|---|
|  | 148 | \subsection{Sky components} | 
|---|
|  | 149 | Once the detector filter has been defined, one has to | 
|---|
|  | 150 | define the different sky components one wants to add | 
|---|
|  | 151 | and | 
|---|
|  | 152 | their corresponding radiation spectra. The maps are | 
|---|
|  | 153 | given the MAPFITSFILEi keyword where i corresponds | 
|---|
|  | 154 | to a given component (synchrotron radiation, | 
|---|
|  | 155 | dust...): i has to match between the map | 
|---|
|  | 156 | and the radiation spectrum. One also has to specify | 
|---|
|  | 157 | a normalization factor corresponding to each component. | 
|---|
|  | 158 | \begin{verbatim} | 
|---|
|  | 159 | #  ----        Sky components  --------- | 
|---|
|  | 160 | #  MAPFITSFILEi FITSfilename Normalisation | 
|---|
|  | 161 | @MAPFITSFILE4  dust.fits  1.0 | 
|---|
|  | 162 | \end{verbatim} | 
|---|
|  | 163 | Here the number 4 (i=4) means that we are refering to | 
|---|
|  | 164 | the fourth sky components. And the normalization factor | 
|---|
|  | 165 | of the map is set to 1. | 
|---|
|  | 166 |  | 
|---|
|  | 167 | \subsection{Radiation Spectrum} | 
|---|
|  | 168 | The radiation spectra corresponding to the sky component | 
|---|
|  | 169 | maps can either be defined in a fits files, or by the instanciation | 
|---|
|  | 170 | of the RadSpectra class (cf. \ref{radspec}), or they can depend | 
|---|
|  | 171 | on the position in the map. The different cases are treated differently | 
|---|
|  | 172 | as explained below. There is also the possibility of adding | 
|---|
|  | 173 | a dipole component without the use of a map, as described below. | 
|---|
|  | 174 |  | 
|---|
|  | 175 | \subsubsection{A Fits file} | 
|---|
|  | 176 | The user can provide the skymixer program with his own | 
|---|
|  | 177 | Fits file containing 2 $\times$ n arrays (one for the frequencies and | 
|---|
|  | 178 | one for the corresponding flux values), and a frequency range. | 
|---|
|  | 179 | It will be done for example using: | 
|---|
|  | 180 | \begin{verbatim} | 
|---|
|  | 181 | #      ---   Emission Spectra definition ----- | 
|---|
|  | 182 | #   SPECTRAFITSFILEi  FITSfilename  NuMin NuMax | 
|---|
|  | 183 | @SPECTRAFITSFILE4  pl.fits 100 600 | 
|---|
|  | 184 | \end{verbatim} | 
|---|
|  | 185 | The flux function will returns 0 outside of the | 
|---|
|  | 186 | $[ \hbox{Numin,Numax} ]$ range. | 
|---|
|  | 187 |  | 
|---|
|  | 188 | \subsubsection{The RadSpectra class} | 
|---|
|  | 189 | For well-known spectra, the user does not have to provide | 
|---|
|  | 190 | a Fits file, nor the function, but rather use already coded | 
|---|
|  | 191 | functions, filling the desired parameter values. | 
|---|
|  | 192 | For example, for a black body emission spectrum: | 
|---|
|  | 193 | \begin{verbatim} | 
|---|
|  | 194 | #   Other possible definition of emission spectra | 
|---|
|  | 195 | #   BLACKBODYi  temperature | 
|---|
|  | 196 | #  The blackbody object returns flux in units of | 
|---|
|  | 197 | #    watt/m2/sr | 
|---|
|  | 198 | #   We thus scale the map (x 1.e17) | 
|---|
|  | 199 | @MAPFITSFILE2  cossin.fits  1.e17 | 
|---|
|  | 200 | @BLACKBODY2 2.726 | 
|---|
|  | 201 | \end{verbatim} | 
|---|
|  | 202 | The user has to give the temperature (here 2.726K). | 
|---|
|  | 203 |  | 
|---|
|  | 204 | Another example is given below where one wants to use a | 
|---|
|  | 205 | power law spectrum for the radiation: | 
|---|
|  | 206 | \begin{verbatim} | 
|---|
|  | 207 | #   For power-law spectrum  f = a ((nu-nu0)/dnu)^b) | 
|---|
|  | 208 | #   POWERLAWSPECTRAi  a nu0 dnu b Fmin Fmax | 
|---|
|  | 209 | @MAPFITSFILE3  noise.fits    0.1 | 
|---|
|  | 210 | @POWERLAWSPECTRA3 1. 150. 50. -0.5 100. 500. | 
|---|
|  | 211 | \end{verbatim} | 
|---|
|  | 212 |  | 
|---|
|  | 213 | \subsubsection{Map position dependence} | 
|---|
|  | 214 | In the case the emission spectrum depends on the position | 
|---|
|  | 215 | in the map (for example for the case of synchrotron radiation), | 
|---|
|  | 216 | one should use the BETAFITSFILE key word as follows: | 
|---|
|  | 217 | \begin{verbatim} | 
|---|
|  | 218 | #  For an emission spectrum which depends | 
|---|
|  | 219 | #  on the position in the map -> synchrotron | 
|---|
|  | 220 | #  for instance (nu/nu0)^(-beta(theta,phi)) | 
|---|
|  | 221 | #  408e-3 is the normalisation frequency of the map | 
|---|
|  | 222 | @MAPFITSFILE1 Sync/Template408MHz.fits 0.2 | 
|---|
|  | 223 | #  BETAFITSFILE BetaMap NormFreq NsideRePixelization | 
|---|
|  | 224 | @BETAFITSFILE1 Sync/SpectralIndex.fits  408e-3 16 | 
|---|
|  | 225 | \end{verbatim} | 
|---|
|  | 226 | In this case, a second argument is needed for BETAFITSFILEi | 
|---|
|  | 227 | which corresponds to the  normalization frequency value. | 
|---|
|  | 228 | It is possible to perform the computation using a $\beta$ map | 
|---|
|  | 229 | which has a different number of pixels than the sky map. | 
|---|
|  | 230 | It is also possible to change the NSideHealpix of the | 
|---|
|  | 231 | $\beta$ map for example to low down the resolution for faster | 
|---|
|  | 232 | computation. This is done using the third argument | 
|---|
|  | 233 | (NsideRePixelization, here taken to be 16). For negative values | 
|---|
|  | 234 | of NsideRePixelization, the original $\beta$ map resolution | 
|---|
|  | 235 | is used. | 
|---|
|  | 236 |  | 
|---|
|  | 237 | One can refer to Eq.~\ref{pls} for the formula of the | 
|---|
|  | 238 | radiation spectrum built from the $\beta$ map. In this equation, | 
|---|
|  | 239 | $\nu_0$ is set to 0 and $\delta \nu$ is given the value of | 
|---|
|  | 240 | the normalisation | 
|---|
|  | 241 | frequency of the map. | 
|---|
|  | 242 |  | 
|---|
|  | 243 | \subsubsection{The dipole} | 
|---|
|  | 244 | The dipole can be treated in a different manner than the other | 
|---|
|  | 245 | sky components, | 
|---|
|  | 246 | using the DIPOLE card, as follows: | 
|---|
|  | 247 | \begin{verbatim} | 
|---|
|  | 248 | # For a dipole sky map and emission spectrum | 
|---|
|  | 249 | # use: DIPOLE theta phi amplitude delta_temperature | 
|---|
|  | 250 | # theta and phi are in radian, delta_temp in K | 
|---|
|  | 251 | @DIPOLE1 1.2  0.3  1. 3E-3 | 
|---|
|  | 252 | \end{verbatim} | 
|---|
|  | 253 | In that case no MAPFITSFILEi is needed: the DIPOLE | 
|---|
|  | 254 | card will create the sky map according to the | 
|---|
|  | 255 | $(\theta,\phi)$ user requirement and integrate | 
|---|
|  | 256 | the dipole radiation spectrum (DerivBlackBody - cf.~Eq.\ref{derivBB}) | 
|---|
|  | 257 | over the filter response. | 
|---|
|  | 258 | Note that if the user prefers to give his own map, he | 
|---|
|  | 259 | can do it as well. | 
|---|
|  | 260 |  | 
|---|
|  | 261 | \section{Treating point sources} | 
|---|
|  | 262 | The extractRS code builds a full sky map from two data sets: | 
|---|
|  | 263 | \begin{itemize} | 
|---|
|  | 264 | \item{} a list of point sources with emission spectra described at a | 
|---|
|  | 265 | set of discrete frequencies | 
|---|
|  | 266 | \item{} maps of a small patch of the sky with emission spectrum described | 
|---|
|  | 267 | at a set of discrete frequencies. | 
|---|
|  | 268 | \end{itemize} | 
|---|
|  | 269 |  | 
|---|
|  | 270 | It treats the  case when one has made a simulation of a patch of the sky | 
|---|
|  | 271 | producing a set of maps corresponding to the sky emission and the | 
|---|
|  | 272 | point sources emission at | 
|---|
|  | 273 | discrete frequencies, | 
|---|
|  | 274 | and wants to build a random map on the basis of these | 
|---|
|  | 275 | two informations. | 
|---|
|  | 276 | The map produced by | 
|---|
|  | 277 | extractRS can then be given to the skymixer program to be | 
|---|
|  | 278 | added to other sky components. | 
|---|
|  | 279 |  | 
|---|
|  | 280 | As for skymixer, the user interacts with extractRS through | 
|---|
|  | 281 | the use of a datacard (described below).  The way to call | 
|---|
|  | 282 | it is the following one: | 
|---|
|  | 283 | \begin{verbatim} | 
|---|
|  | 284 | Usage: extractRS parameterFile outputfits  [outppf] | 
|---|
|  | 285 | \end{verbatim} | 
|---|
|  | 286 | where parameterFile is the datacard, and outputfits | 
|---|
|  | 287 | corresponds to the Fits file in which the final map will be | 
|---|
|  | 288 | saved. | 
|---|
|  | 289 |  | 
|---|
|  | 290 | An example of the datacard is shown below: | 
|---|
|  | 291 | \begin{verbatim} | 
|---|
|  | 292 | #  EXT_RS  NbComponents  NSide_HealPix | 
|---|
|  | 293 | @EXT_RS  1 256 | 
|---|
|  | 294 |  | 
|---|
|  | 295 | #  RD_EXT_PATH  PathForFITS | 
|---|
|  | 296 | #  path for input Sky Component FITS files , | 
|---|
|  | 297 | #  from which the RadSpec files will be read | 
|---|
|  | 298 | @RS_EXT_PATH /exp/planck/CartesRT/ | 
|---|
|  | 299 |  | 
|---|
|  | 300 | #  Sky ``map'' for different frequencies | 
|---|
|  | 301 | #  From which the radspectra will be read | 
|---|
|  | 302 | #  RADSPECMAPi FITSfilename | 
|---|
|  | 303 | @RADSPECMAP1    eran102_441_00015000mhz.fits | 
|---|
|  | 304 |  | 
|---|
|  | 305 | # Source point ``map'' for different freq | 
|---|
|  | 306 | # From which the radspectra will be read | 
|---|
|  | 307 | #  SOURCEPTMAPi FITSfilename freq(MHz) | 
|---|
|  | 308 | @SOURCEPTMAP1   eran102_441_00015000mhz.s_rare | 
|---|
|  | 309 |  | 
|---|
|  | 310 | # Filter definition now !! | 
|---|
|  | 311 | # define the detector (only one) | 
|---|
|  | 312 | @GAUSSFILTER 143 12 0.84 50. 300. | 
|---|
|  | 313 | \end{verbatim} | 
|---|
|  | 314 | We first indicate in the datacard (after the EXT$\_$RS keyword): | 
|---|
|  | 315 | \begin{maliste} | 
|---|
|  | 316 | \item the number of frequency components we are going to | 
|---|
|  | 317 | process: in the example the code will only process | 
|---|
|  | 318 | one frequency component. | 
|---|
|  | 319 | \item and the NSideHealpix corresponding to the healpix output maps | 
|---|
|  | 320 | \end{maliste} | 
|---|
|  | 321 |  | 
|---|
|  | 322 | Then comes the path (if any) to the maps, followed by the | 
|---|
|  | 323 | name of the fits files containing the ``maps'' | 
|---|
|  | 324 | (these maps are not Healpix spheres but matrices). The keyword for | 
|---|
|  | 325 | the frequency | 
|---|
|  | 326 | components is RADSPECMAPi (with i being the sky component number) | 
|---|
|  | 327 | and for the sources: SOURCEPTMAPi. | 
|---|
|  | 328 |  | 
|---|
|  | 329 | The names of the fits | 
|---|
|  | 330 | file should contain the frequency of the map in units of  $\hbox{MHz}$. | 
|---|
|  | 331 | For example: | 
|---|
|  | 332 | \begin{verbatim} | 
|---|
|  | 333 | @RADSPECMAP1    eran102_441_00015000mhz.fits | 
|---|
|  | 334 | \end{verbatim} | 
|---|
|  | 335 | corresponds to a frequency of 15000 $\hbox{Mhz}$. | 
|---|
|  | 336 | The sky maps definition is followed by the point source | 
|---|
|  | 337 | fits file, with the keyword SOURCEPTMAPi. | 
|---|
|  | 338 |  | 
|---|
|  | 339 | Then comes the definition of the filter (here it is a | 
|---|
|  | 340 | gaussian filter at 143 $\hbox{GHz}$). | 
|---|
|  | 341 |  | 
|---|
|  | 342 | \section{Simulating components and adding them} | 
|---|
|  | 343 | For quick simulations, one can use two codes to generate maps, | 
|---|
|  | 344 | detector filter responses and radiation spectra: | 
|---|
|  | 345 | \begin{itemize} | 
|---|
|  | 346 | \item{} {{\bf tgsky:}}\\ | 
|---|
|  | 347 | this code generates a sky map in a Fits file. | 
|---|
|  | 348 | \item{} {{\bf tgrsr:}}\\ | 
|---|
|  | 349 | this code writes in a Fits file the | 
|---|
|  | 350 | definition of a RadSpectraVec or of a SpecRespVec | 
|---|
|  | 351 | (i.e. one frequency vector and the corresponding | 
|---|
|  | 352 | transmission or flux vector.) | 
|---|
|  | 353 | \end{itemize} | 
|---|
|  | 354 | \noindent The way to use these two functions is the following one: | 
|---|
|  | 355 | \begin{itemize} | 
|---|
|  | 356 | \item{} {{\bf tgsky:}} | 
|---|
|  | 357 | \begin{verbatim} | 
|---|
|  | 358 | Usage: tgsky NSide TypSky Params FitsFile [PPF] | 
|---|
|  | 359 | \end{verbatim} | 
|---|
|  | 360 | where PPF stands for Planck Persistent File (which can be read using piapp or spiapp), | 
|---|
|  | 361 | NSide is the Healpix map parameter and TypSky and Params are described here: | 
|---|
|  | 362 | \begin{maliste} | 
|---|
|  | 363 | \item  if TypSky = 0, the map will be filled with a gaussian noise, | 
|---|
|  | 364 | the parameters (Params) are therefore the mean value and the sigma | 
|---|
|  | 365 | of the gaussian. | 
|---|
|  | 366 | \item  if TypSky = 1, the map will be filled with a $1/\hbox{f}$ noise using | 
|---|
|  | 367 | the OOFNoise generator. The parameters to give are the | 
|---|
|  | 368 | sigma of the noise and a constant offset. | 
|---|
|  | 369 | \item  if TypSky = 2, the map is filled with an analytical function of the | 
|---|
|  | 370 | form: | 
|---|
|  | 371 | \begin{eqnarray} | 
|---|
|  | 372 | f &=& K \cos(a\theta)\sin(b\phi)+m | 
|---|
|  | 373 | \end{eqnarray} | 
|---|
|  | 374 | and the corresponding parameters are (in this order): K,a,b,m. | 
|---|
|  | 375 | \item  if TypSky = 3, the map is filled with a dipole, | 
|---|
|  | 376 | the corresponding parameters are (in this order): theta,phi | 
|---|
|  | 377 | corresponding to the dipole orientation | 
|---|
|  | 378 | \end{maliste} | 
|---|
|  | 379 | \item{}{{\bf tgrsr:}} | 
|---|
|  | 380 | \begin{verbatim} | 
|---|
|  | 381 | Usage: tgrsr choice Params NPoints FitsFileName | 
|---|
|  | 382 | [ImageR4FITSName] [ppfname] | 
|---|
|  | 383 | \end{verbatim} | 
|---|
|  | 384 | where choice, and Params are described below, and NPoints corresponds | 
|---|
|  | 385 | to the number of elements in the generated vectors. | 
|---|
|  | 386 | \begin{maliste} | 
|---|
|  | 387 | \item if choice = 0, the code will generate a gaussian spectrum in a Fits file. | 
|---|
|  | 388 | Params are therefore the parameters of the gaussian plus the | 
|---|
|  | 389 | minimum and the maximum frequency. | 
|---|
|  | 390 | In the order:  A,Nu0,DNu,MinFreq,MaxFreq. | 
|---|
|  | 391 | \item if choice = 1, the code will generate a power law spectrum in a | 
|---|
|  | 392 | Fits file. Params are therefore, in the order:\\ | 
|---|
|  | 393 | A, Nu0, dnu, b, MinFreq, MaxFreq | 
|---|
|  | 394 | \end{maliste} | 
|---|
|  | 395 | \end{itemize} | 
|---|
|  | 396 |  | 
|---|
|  | 397 |  | 
|---|
|  | 398 |  | 
|---|
|  | 399 | \section{The SkyT module} | 
|---|
|  | 400 | The SkyT module is composed of two types of classes: | 
|---|
|  | 401 | \begin{itemize} | 
|---|
|  | 402 | \item{} one which corresponds to an emission spectrum of | 
|---|
|  | 403 | radiation, which is called RadSpectra | 
|---|
|  | 404 | \item{} one which corresponds to the spectral response | 
|---|
|  | 405 | of a given detector (i.e. corresponding to a detector | 
|---|
|  | 406 | filter in a given frequency domain), which is called | 
|---|
|  | 407 | SpectralResponse. | 
|---|
|  | 408 | \end{itemize} | 
|---|
|  | 409 | In the coming sub-sections, we summarize the different functions | 
|---|
|  | 410 | of these two classes and the corresponding subclasses. | 
|---|
|  | 411 | For more informations about the classes, and the functions | 
|---|
|  | 412 | the user may want to use (to have access or reset some | 
|---|
|  | 413 | parameter values for example), we refer the reader to | 
|---|
|  | 414 | \cite{DOX-Sophya}. | 
|---|
|  | 415 |  | 
|---|
|  | 416 | All frequencies are expressed in $\hbox{GHz}$, which enables | 
|---|
|  | 417 | us to represent wavelengths from the radio up to the optical | 
|---|
|  | 418 | range at a reasonnable accuracy using double values. | 
|---|
|  | 419 |  | 
|---|
|  | 420 | \subsection{ConvTools} | 
|---|
|  | 421 | The ConvTools class is a very simple class where are | 
|---|
|  | 422 | defined some needed constants for the computation of the | 
|---|
|  | 423 | spectral emission function, such as: | 
|---|
|  | 424 | \begin{verbatim} | 
|---|
|  | 425 | // Boltzman constant  J/K | 
|---|
|  | 426 | double ConvTools::kb =  1.380662e-23; | 
|---|
|  | 427 | // Mean value of the cmb temperature (K) | 
|---|
|  | 428 | double ConvTools::tcmb=2.728; | 
|---|
|  | 429 | // Planck constant in Js | 
|---|
|  | 430 | double ConvTools::hpl=6.626176e-34; | 
|---|
|  | 431 | // Light speed  PDG 1992 m/s | 
|---|
|  | 432 | double ConvTools::c=299792458.; | 
|---|
|  | 433 | \end{verbatim} | 
|---|
|  | 434 |  | 
|---|
|  | 435 | \subsection{SpectralResponse} | 
|---|
|  | 436 | \label{specresp} | 
|---|
|  | 437 | SpectralResponse | 
|---|
|  | 438 | is an abstract class representing | 
|---|
|  | 439 | a detector frequency filter | 
|---|
|  | 440 | response, $W_\nu$ as a function of the frequency. | 
|---|
|  | 441 | Several subclasses | 
|---|
|  | 442 | have been written within the SkyT module which are listed | 
|---|
|  | 443 | in the following subsections. | 
|---|
|  | 444 | The constructor takes as arguments the | 
|---|
|  | 445 | minimum and maximum values of the frequency range on | 
|---|
|  | 446 | which the detector response is defined | 
|---|
|  | 447 |  | 
|---|
|  | 448 | The main public member function is the | 
|---|
|  | 449 | transmission function which has to be implemented | 
|---|
|  | 450 | in the subclasses and is purely virtual at this stage: | 
|---|
|  | 451 | \begin{verbatim} | 
|---|
|  | 452 | virtual double transmission(double nu) const =0 ; | 
|---|
|  | 453 | \end{verbatim} | 
|---|
|  | 454 | The () operator has also been redefined so that | 
|---|
|  | 455 | one can access the transmission value of the detector's | 
|---|
|  | 456 | filter directly writting for example myFilter(myfrequency). | 
|---|
|  | 457 |  | 
|---|
|  | 458 | Other member functions  are implemented at this level, but still | 
|---|
|  | 459 | are virtual functions that can be re-implemented in the | 
|---|
|  | 460 | sub-classes: they respectively returns the minimum, the | 
|---|
|  | 461 | maximum, the mean and the peak values of the frequency | 
|---|
|  | 462 | range (where the peak is defined as the maximum of the transmission | 
|---|
|  | 463 | spectrum), but also the value of the transmission at the so-called | 
|---|
|  | 464 | peak. One can also change the range in frequency of the filter | 
|---|
|  | 465 | using the {{\it setMinMaxFreq}} function. | 
|---|
|  | 466 | %\begin{verbatim} | 
|---|
|  | 467 | % virtual double minFreq() const; | 
|---|
|  | 468 | % virtual double maxFreq() const; | 
|---|
|  | 469 | % virtual double meanFreq() const; | 
|---|
|  | 470 | % virtual double peakFreq() const; | 
|---|
|  | 471 | % virtual double peakTransmission() const; | 
|---|
|  | 472 | % virtual void  setMinMaxFreq(double numin, double numax); | 
|---|
|  | 473 | %\end{verbatim} | 
|---|
|  | 474 | For all the sub-classes, $\nu$ is given in units of $GHz$ and | 
|---|
|  | 475 | $W_\nu$ is dimensionless. | 
|---|
|  | 476 |  | 
|---|
|  | 477 | Since the user may want to integrate the detector response | 
|---|
|  | 478 | within a given frequency range: | 
|---|
|  | 479 | \begin{eqnarray} | 
|---|
|  | 480 | \int_{\nu_{min}}^{\nu_{max}} F_\nu \delta \nu\ \ \ , | 
|---|
|  | 481 | \end{eqnarray} | 
|---|
|  | 482 | the following functions are | 
|---|
|  | 483 | available: | 
|---|
|  | 484 | \begin{verbatim} | 
|---|
|  | 485 | double IntegratedSpect(double numin,double numax) | 
|---|
|  | 486 | double logIntegratedSpect(double numin,double numax) | 
|---|
|  | 487 | double IntegratedSpect() | 
|---|
|  | 488 | double logIntegratedSpect() | 
|---|
|  | 489 | \end{verbatim} | 
|---|
|  | 490 | When no frequency range is defined the default values are used. | 
|---|
|  | 491 | As, for some spectra, the calculation is more accurate when | 
|---|
|  | 492 | one performs the numerical integration using a logarithmic | 
|---|
|  | 493 | frequency scale. | 
|---|
|  | 494 |  | 
|---|
|  | 495 | The following subsections are devoted to the description of the | 
|---|
|  | 496 | SpectralResponse subclasses which are already implemented. | 
|---|
|  | 497 | \subsubsection{SquareFilter} | 
|---|
|  | 498 | \begin{center} | 
|---|
|  | 499 | \dclsbb{SpectralResponse}{SquareFilter} | 
|---|
|  | 500 | \end{center} | 
|---|
|  | 501 | The square filter is the simplest filter one can think of: | 
|---|
|  | 502 | it is defined by a minimum and a maximum frequencies. | 
|---|
|  | 503 | \begin{verbatim} | 
|---|
|  | 504 | SquareFilter (double numin, double numax) | 
|---|
|  | 505 | \end{verbatim} | 
|---|
|  | 506 | The transmission function returns 1 when the tested frequency | 
|---|
|  | 507 | is within this range and 0 outside. | 
|---|
|  | 508 | For the peakFrequency and peakTransmission functions, the square | 
|---|
|  | 509 | filter returns respectively the frequency and the transmission | 
|---|
|  | 510 | corresponding to the middle of the frequency range. | 
|---|
|  | 511 | To use the SquareFilter class, one should include the squarefilt.h file. | 
|---|
|  | 512 |  | 
|---|
|  | 513 | \subsubsection{TriangleFilter} | 
|---|
|  | 514 | \begin{center}\dclsbb{SpectralResponse}{TriangleFilter}\end{center} | 
|---|
|  | 515 | For the triangle filter, as it was the case for the | 
|---|
|  | 516 | square filter, its name itself is sufficient to define it: | 
|---|
|  | 517 | the corresponding constructor is: | 
|---|
|  | 518 | \begin{verbatim} | 
|---|
|  | 519 | TriangleFilter (double numin, double numax, | 
|---|
|  | 520 | double nupeak, double valueatpeak); | 
|---|
|  | 521 | \end{verbatim} | 
|---|
|  | 522 | To use the TriangleFilter class, one should include the trianglefilt.h file. | 
|---|
|  | 523 |  | 
|---|
|  | 524 | \subsubsection{GaussianFilter} | 
|---|
|  | 525 | \label{gaussFilt} | 
|---|
|  | 526 | \begin{center}\dclsbb{SpectralResponse}{GaussianFilter}\end{center} | 
|---|
|  | 527 | The constructor of the gaussian filter defines the parameters | 
|---|
|  | 528 | of the corresponding gaussian: | 
|---|
|  | 529 | \begin{verbatim} | 
|---|
|  | 530 | GaussianFilter (double nu0, double s, double A=1., | 
|---|
|  | 531 | double numin=0., double numax= 9.e49); | 
|---|
|  | 532 | \end{verbatim} | 
|---|
|  | 533 | where the transmission function returns: | 
|---|
|  | 534 | \begin{eqnarray} | 
|---|
|  | 535 | \label{gaussian} | 
|---|
|  | 536 | W_\nu&=& A  e^{-{({\nu-\nu_0/ s})^2}}; | 
|---|
|  | 537 | \end{eqnarray} | 
|---|
|  | 538 | %There are functions to reset or | 
|---|
|  | 539 | %get back the value of the parameters (there are | 
|---|
|  | 540 | %described in \cite{}. | 
|---|
|  | 541 | %using the | 
|---|
|  | 542 | %following functions: | 
|---|
|  | 543 | %\begin{verbatim} | 
|---|
|  | 544 | %  double giveNorm() | 
|---|
|  | 545 | %  double giveNu0() | 
|---|
|  | 546 | %  double giveDNu() | 
|---|
|  | 547 | %\end{verbatim} | 
|---|
|  | 548 | %or reset them with: | 
|---|
|  | 549 | %\begin{verbatim} | 
|---|
|  | 550 | %  virtual void setParams(double nu0, double s, double a=1.); | 
|---|
|  | 551 | %\end{verbatim} | 
|---|
|  | 552 | To use the GaussianFilter class, one should include the gaussfilt.h file. | 
|---|
|  | 553 |  | 
|---|
|  | 554 | \subsubsection{SpecRespVec} | 
|---|
|  | 555 | \begin{center}\dclsbb{SpectralResponse}{SpecRespVec}\end{center} | 
|---|
|  | 556 | One may also want to give the filter of a detector as a | 
|---|
|  | 557 | set of frequencies and the corresponding filter transmission values, | 
|---|
|  | 558 | when there is no analytic expression to describe it. | 
|---|
|  | 559 | In that case he/she should use the SpecRespVec class: | 
|---|
|  | 560 | \begin{verbatim} | 
|---|
|  | 561 | SpecRespVec(Vector const & nu, Vector const & fdenu, | 
|---|
|  | 562 | double numin, double numax) | 
|---|
|  | 563 | \end{verbatim} | 
|---|
|  | 564 | The first vector (called nu) is the frequency vector and the | 
|---|
|  | 565 | second one (called fdenu) is the corresponding transmission: | 
|---|
|  | 566 | note that the two vectors should have the same length, otherwise | 
|---|
|  | 567 | an exception will be launched ({\it SzMismatchError}). | 
|---|
|  | 568 |  | 
|---|
|  | 569 | %One can access the different vectors with the use | 
|---|
|  | 570 | %of appropriate functions (cf. \cite{}). | 
|---|
|  | 571 | %Several functions are defined to access these vectors, either | 
|---|
|  | 572 | %as a whole or element per element: | 
|---|
|  | 573 | %\begin{verbatim} | 
|---|
|  | 574 | %  Vector&  getNuVec()  { return _vecOfNu; } ; | 
|---|
|  | 575 | %  Vector& getTNuVec()  { return _vecOfFDeNu; } | 
|---|
|  | 576 | %  double getNuVec(int i) const { return _vecOfNu(i); } | 
|---|
|  | 577 | %  double getTNuVec(int i) const { return _vecOfFDeNu(i); } | 
|---|
|  | 578 | %  int NbElts() const { return _size;} | 
|---|
|  | 579 | %\end{verbatim} | 
|---|
|  | 580 | To use the SpecRespVec class, one should include the specrespvector.h file. | 
|---|
|  | 581 |  | 
|---|
|  | 582 | \subsection{RadSpectra} | 
|---|
|  | 583 | \label{radspec} | 
|---|
|  | 584 | The name RadSpectra stands for Radiation Spectrum. | 
|---|
|  | 585 | The aims of RadSpectra is to define a base class | 
|---|
|  | 586 | for the radiation emission spectra. It is therefore | 
|---|
|  | 587 | abstract and contains one virtual member function | 
|---|
|  | 588 | which has to be implemented in the subclasses: | 
|---|
|  | 589 | \begin{verbatim} | 
|---|
|  | 590 | virtual double flux(double nu) const =0; | 
|---|
|  | 591 | \end{verbatim} | 
|---|
|  | 592 | This function returns the value of the | 
|---|
|  | 593 | flux (the spectral energy distribution), $F_\nu$, | 
|---|
|  | 594 | as a function of the frequency $\nu$, | 
|---|
|  | 595 | As in the SpectralResponse class, | 
|---|
|  | 596 | the () operator has been redefined at this level, so that | 
|---|
|  | 597 | the user can access the flux value, either by calling the | 
|---|
|  | 598 | function or directly by using this operator. | 
|---|
|  | 599 |  | 
|---|
|  | 600 | The constructor takes as an argument the minimum | 
|---|
|  | 601 | and the maximum frequency of the spectrum, if any. | 
|---|
|  | 602 | In the case the user does not want to specify these | 
|---|
|  | 603 | values, there are set respectively to 0. and $9.10^{49}$ | 
|---|
|  | 604 | by default. | 
|---|
|  | 605 | For all the sub-classes, $\nu$ is given in units of $\hbox{GHz}$ and | 
|---|
|  | 606 | the flux is returned in units of $\hbox{W}/\hbox{m}^2/\hbox{sr}/\hbox{Hz}$. | 
|---|
|  | 607 |  | 
|---|
|  | 608 | %We also defined functions to access the minimum, maximum, | 
|---|
|  | 609 | %peak frequency values, or to change them | 
|---|
|  | 610 | %(see \cite{}). | 
|---|
|  | 611 | %And the user may change the | 
|---|
|  | 612 | %values of the frequency range using the function: | 
|---|
|  | 613 | %\begin{verbatim} | 
|---|
|  | 614 | %virtual void    setMinMaxFreq(double numin, double numax); | 
|---|
|  | 615 | %\end{verbatim} | 
|---|
|  | 616 | One may also want to  integrate the emission | 
|---|
|  | 617 | spectrum: this can be done in a given frequency | 
|---|
|  | 618 | range, or in the full range of definition of the spectrum, | 
|---|
|  | 619 | or  taking into account the | 
|---|
|  | 620 | SpectralResponse (in frequency) of a detector (see section \ref{specresp}): | 
|---|
|  | 621 | \begin{verbatim} | 
|---|
|  | 622 | virtual double integratedFlux | 
|---|
|  | 623 | (double numin, double numax) | 
|---|
|  | 624 | virtual double integratedFlux() | 
|---|
|  | 625 | virtual double filteredIntegratedFlux | 
|---|
|  | 626 | (SpectralResponse const & filter, | 
|---|
|  | 627 | double numin, double numax) | 
|---|
|  | 628 | virtual double filteredIntegratedFlux | 
|---|
|  | 629 | (SpectralResponse const & filter) | 
|---|
|  | 630 | virtual double logIntegratedFlux | 
|---|
|  | 631 | (double numin, double numax) | 
|---|
|  | 632 | virtual double logIntegratedFlux() | 
|---|
|  | 633 | virtual double filteredLogIntFlux | 
|---|
|  | 634 | (SpectralResponse const & filter, | 
|---|
|  | 635 | double numin, double numax) | 
|---|
|  | 636 | virtual double filteredLogIntFlux | 
|---|
|  | 637 | (SpectralResponse const & filter); | 
|---|
|  | 638 | \end{verbatim} | 
|---|
|  | 639 |  | 
|---|
|  | 640 | Several sub-classes of RadSpectra have been defined, which are listed | 
|---|
|  | 641 | below with their corresponding characteristics. | 
|---|
|  | 642 | \subsubsection{BlackBody} | 
|---|
|  | 643 | \begin{center}\dclsbb{RadSpectra}{BlackBody}\end{center} | 
|---|
|  | 644 | This class corresponds to the emission spectrum of a | 
|---|
|  | 645 | blackbody radiation: by default the temperature of the | 
|---|
|  | 646 | blackbody is 2.728K (as defined in convtools.cc), but when | 
|---|
|  | 647 | the object is instanciated the temperature | 
|---|
|  | 648 | can be given any other value. | 
|---|
|  | 649 | \begin{verbatim} | 
|---|
|  | 650 | BlackBody (double temp = ConvTools::tcmb); | 
|---|
|  | 651 | \end{verbatim} | 
|---|
|  | 652 | The flux function is the well known formula: | 
|---|
|  | 653 | \begin{eqnarray} | 
|---|
|  | 654 | F_\nu &=& {2 h_{pl} (1.10^9*\nu)^3 / c^2 (e^{{h_{pl}(1.10^9*\nu) / kT}} -1)} | 
|---|
|  | 655 | \end{eqnarray} | 
|---|
|  | 656 |  | 
|---|
|  | 657 | %In addition to the flux member function, we can get or set the | 
|---|
|  | 658 | %temperature of the blackbody spectrum (see \cite{}). | 
|---|
|  | 659 | %\begin{verbatim} | 
|---|
|  | 660 | %  double getTemperature() | 
|---|
|  | 661 | %  void setTemperature(double newtemp) | 
|---|
|  | 662 | %\end{verbatim} | 
|---|
|  | 663 | To use the BlackBody class, one should include the blackbody.h file. | 
|---|
|  | 664 |  | 
|---|
|  | 665 |  | 
|---|
|  | 666 | \subsubsection{DerivBlackBody} | 
|---|
|  | 667 | \begin{center}\dclsbb{RadSpectra}{DerivBlackBody}\end{center} | 
|---|
|  | 668 | This class corresponds to the emission spectrum of a | 
|---|
|  | 669 | the dipole (since its emission spectrum is the derivation | 
|---|
|  | 670 | of a blackbody spectrum wrt the temperature): | 
|---|
|  | 671 | by default the temperature of the | 
|---|
|  | 672 | DerivBlackBody is set 2.728K (as defined in convtools.cc), but when | 
|---|
|  | 673 | the object is instanciated the temperature | 
|---|
|  | 674 | can be given any other value. | 
|---|
|  | 675 | \begin{verbatim} | 
|---|
|  | 676 | DerivBlackBody (double temp = ConvTools::tcmb); | 
|---|
|  | 677 | \end{verbatim} | 
|---|
|  | 678 | The flux function is simply given by: | 
|---|
|  | 679 | \begin{eqnarray} | 
|---|
|  | 680 | \label{derivBB} | 
|---|
|  | 681 | F_\nu &=& {2 h_{pl} (1.10^9*\nu)^3  {h_{pl}1.10^9*\nu \over k T^2} | 
|---|
|  | 682 | {e^{{h_{pl}(1.10^9*\nu) \over kT}}\over c^2 (e^{{h_{pl}(1.10^9*\nu) \over kT}} -1)^2}} | 
|---|
|  | 683 | \end{eqnarray} | 
|---|
|  | 684 |  | 
|---|
|  | 685 | %In addition to the flux member function, we can get or set the | 
|---|
|  | 686 | %temperature as for the spectrum (see \cite{}).: | 
|---|
|  | 687 | %\begin{verbatim} | 
|---|
|  | 688 | %  double getTemperature() | 
|---|
|  | 689 | %  void setTemperature(double newtemp) | 
|---|
|  | 690 | %\end{verbatim} | 
|---|
|  | 691 | To use the DerivBlackBody class, one should include the derivblackbody.h file. | 
|---|
|  | 692 |  | 
|---|
|  | 693 | \subsubsection{PowerLawSpectra} | 
|---|
|  | 694 | \begin{center}\dclsbb{RadSpectra}{DerivBlackBody}\end{center} | 
|---|
|  | 695 | This class corresponds to a power law spectrum, the | 
|---|
|  | 696 | flux function being defined as follows: | 
|---|
|  | 697 | \begin{eqnarray} | 
|---|
|  | 698 | \label{pls} | 
|---|
|  | 699 | I_\nu &=& A ({\nu-\nu_0\over \delta\nu})^\beta | 
|---|
|  | 700 | \end{eqnarray} | 
|---|
|  | 701 | The constructor takes as arguments the parameters of this | 
|---|
|  | 702 | function and therefore reads: | 
|---|
|  | 703 | \begin{verbatim} | 
|---|
|  | 704 | PowerLawSpectra(double a, double beta, double nu0, | 
|---|
|  | 705 | double dnu, double numin=0., double numax=9.e49); | 
|---|
|  | 706 | \end{verbatim} | 
|---|
|  | 707 | %The intrinsic member functions of this class | 
|---|
|  | 708 | %helps getting back these parameters, once an object of this class | 
|---|
|  | 709 | %has been | 
|---|
|  | 710 | %instanciated: | 
|---|
|  | 711 | %\begin{verbatim} | 
|---|
|  | 712 | %  double giveNorm() | 
|---|
|  | 713 | %  double giveNu0() | 
|---|
|  | 714 | %  double giveDNu() | 
|---|
|  | 715 | %  double giveExp() | 
|---|
|  | 716 | %\end{verbatim} | 
|---|
|  | 717 | %One can also set them using: | 
|---|
|  | 718 | %\begin{verbatim} | 
|---|
|  | 719 | %  void setNorm(double myvalue) | 
|---|
|  | 720 | %  void setNu0(double myvalue) | 
|---|
|  | 721 | %  void setDNu(double myvalue) | 
|---|
|  | 722 | %  void setExp(double myvalue) | 
|---|
|  | 723 | %\end{verbatim} | 
|---|
|  | 724 | % | 
|---|
|  | 725 | To use the PowerLawSpectra class, one should include the nupower.h file. | 
|---|
|  | 726 |  | 
|---|
|  | 727 |  | 
|---|
|  | 728 | \subsubsection{RadSpectraVec} | 
|---|
|  | 729 | \begin{center}\dclsbb{RadSpectra}{RadSpectraVec}\end{center} | 
|---|
|  | 730 | As in the case of the SpectralResponse class, one may define the radiation | 
|---|
|  | 731 | spectrum with two vectors: one for the frequencies and the second for the | 
|---|
|  | 732 | values of the flux function. In that case, the class to use is RadSpectraVec | 
|---|
|  | 733 | and the corresponding constructor is: | 
|---|
|  | 734 | \begin{verbatim} | 
|---|
|  | 735 | RadSpectraVec (Vector const nu, Vector const fdenu, | 
|---|
|  | 736 | double numin=0., double numax=9.e49); | 
|---|
|  | 737 | \end{verbatim} | 
|---|
|  | 738 | %The following functions helps getting back the input vectors, or their | 
|---|
|  | 739 | %number of elements: | 
|---|
|  | 740 | %\begin{verbatim} | 
|---|
|  | 741 | %  Vector&  getNuVec() | 
|---|
|  | 742 | %  Vector& getTNuVec() | 
|---|
|  | 743 | %  double getNuVec(int i) | 
|---|
|  | 744 | %  double getTNuVec(int i) | 
|---|
|  | 745 | %  int NbElts() | 
|---|
|  | 746 | %\end{verbatim} | 
|---|
|  | 747 | To use the RadSpectraVec class, one should include the radspecvector.h file. | 
|---|
|  | 748 |  | 
|---|
|  | 749 | \begin{thebibliography}{99} | 
|---|
|  | 750 | \bibitem{DOX-Sophya} | 
|---|
|  | 751 | \url{http:://hfi-l2.in2p3.fr/} | 
|---|
|  | 752 | \end{thebibliography} | 
|---|
|  | 753 | \end{document} | 
|---|