ARTS  2.0.49
mc_antenna.h
Go to the documentation of this file.
1 /* Copyright (C) 2005-2008 Cory Davis <cdavis@staffmail.ed.ac.uk>
2 
3  This program is free software; you can redistribute it and/or modify it
4  under the terms of the GNU General Public License as published by the
5  Free Software Foundation; either version 2, or (at your option) any
6  later version.
7 
8  This program is distributed in the hope that it will be useful,
9  but WITHOUT ANY WARRANTY; without even the implied warranty of
10  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  GNU General Public License for more details.
12 
13  You should have received a copy of the GNU General Public License
14  along with this program; if not, write to the Free Software
15  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
16  USA. */
17 
18 
19 
20 /*===========================================================================
21  === File description
22  ===========================================================================*/
23 
35 /*===========================================================================
36  === External declarations
37  ===========================================================================*/
38 #ifndef mc_antenna_h
39 #define mc_antenna_h
40 
41 #include "arts.h"
42 #include "rng.h"
43 #include "matpackI.h"
44 #include <cmath>
45 #include <stdexcept>
46 
51 };
52 
54 
56 class MCAntenna {
61 
62 public:
64  sigma_aa(0.),
65  sigma_za(0.),
66  aa_grid(),
67  za_grid(),
68  G_lookup()
69  { /* Nothing to do here */ }
70 
71  void set_pencil_beam (void);
72  void set_gaussian (const Numeric& za_sigma,
73  const Numeric& aa_sigma);
74  void set_gaussian_fwhm (const Numeric& za_fwhm,
75  const Numeric& aa_fwhm);
79  AntennaType get_type(void) const;
80  void draw_los(VectorView& sampled_rte_los,
81  Rng& rng,
82  ConstVectorView bore_sight_los) const;
83 };
84 
85 ostream& operator<< (ostream& os, const MCAntenna& mca);
86 
88  Rng& rng,
89  const Numeric sigma);
90 
91 #endif // mc_antenna_h
92 
Matrix
The Matrix class.
Definition: matpackI.h:767
MCAntenna::aa_grid
Vector aa_grid
Definition: mc_antenna.h:59
ANTENNA_TYPE_LOOKUP
@ ANTENNA_TYPE_LOOKUP
Definition: mc_antenna.h:50
ANTENNA_TYPE_PENCIL_BEAM
@ ANTENNA_TYPE_PENCIL_BEAM
Definition: mc_antenna.h:48
MCAntenna
An Antenna object used by MCGeneral.
Definition: mc_antenna.h:56
MCAntenna::set_gaussian_fwhm
void set_gaussian_fwhm(const Numeric &za_fwhm, const Numeric &aa_fwhm)
makes the antenna pattern a 2D gaussian specified by za and aa FWHM
Definition: mc_antenna.cc:116
MCAntenna::G_lookup
Matrix G_lookup
Definition: mc_antenna.h:60
matpackI.h
rng.h
Defines the Rng random number generator class.
MCAntenna::get_type
AntennaType get_type(void) const
returns the antenna type
Definition: mc_antenna.cc:150
MCAntenna::atype
AntennaType atype
Definition: mc_antenna.h:57
MCAntenna::sigma_aa
Numeric sigma_aa
Definition: mc_antenna.h:58
operator<<
ostream & operator<<(ostream &os, const MCAntenna &mca)
Definition: mc_antenna.cc:198
VectorView
The VectorView class.
Definition: matpackI.h:373
MCAntenna::sigma_za
Numeric sigma_za
Definition: mc_antenna.h:58
MCAntenna::draw_los
void draw_los(VectorView &sampled_rte_los, Rng &rng, ConstVectorView bore_sight_los) const
draws a line of sight by sampling the antenna response function
Definition: mc_antenna.cc:167
Numeric
NUMERIC Numeric
The type to use for all floating point numbers.
Definition: matpack.h:33
MCAntenna::set_lookup
void set_lookup(ConstVectorView &za_grid, ConstVectorView &aa_grid, ConstMatrixView &G_lookup)
makes the antenna pattern use a 2D lookup table to define the antenna response
Definition: mc_antenna.cc:134
MCAntenna::za_grid
Vector za_grid
Definition: mc_antenna.h:59
ConstMatrixView
A constant view of a Matrix.
Definition: matpackI.h:591
MCAntenna::set_pencil_beam
void set_pencil_beam(void)
makes the antenna pattern a pencil beam
Definition: mc_antenna.cc:88
Rng
Definition: rng.h:569
AntennaType
AntennaType
Definition: mc_antenna.h:47
MCAntenna::MCAntenna
MCAntenna()
Definition: mc_antenna.h:63
ran_gaussian
Numeric ran_gaussian(Rng &rng, const Numeric sigma)
ran_gaussian
Definition: mc_antenna.cc:65
Vector
The Vector class.
Definition: matpackI.h:555
ConstVectorView
A constant view of a Vector.
Definition: matpackI.h:300
MCAntenna::set_gaussian
void set_gaussian(const Numeric &za_sigma, const Numeric &aa_sigma)
makes the antenna pattern a 2D gaussian specified by za and aa standard deviations
Definition: mc_antenna.cc:100
arts.h
The global header file for ARTS.
ANTENNA_TYPE_GAUSSIAN
@ ANTENNA_TYPE_GAUSSIAN
Definition: mc_antenna.h:49