ARTS  2.2.66
mc_antenna.h
Go to the documentation of this file.
1 /* Copyright (C) 2005-2012 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:
63  MCAntenna() : atype(),
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);
76  void set_lookup (ConstVectorView& za_grid,
77  ConstVectorView& aa_grid,
78  ConstMatrixView& G_lookup);
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 
The VectorView class.
Definition: matpackI.h:372
void set_pencil_beam(void)
makes the antenna pattern a pencil beam
Definition: mc_antenna.cc:88
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
The Vector class.
Definition: matpackI.h:556
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 ran_gaussian(Rng &rng, const Numeric sigma)
ran_gaussian
Definition: mc_antenna.cc:65
ostream & operator<<(ostream &os, const MCAntenna &mca)
Definition: mc_antenna.cc:198
Numeric sigma_za
Definition: mc_antenna.h:58
The global header file for ARTS.
AntennaType
Definition: mc_antenna.h:47
Defines the Rng random number generator class.
NUMERIC Numeric
The type to use for all floating point numbers.
Definition: matpack.h:29
The Matrix class.
Definition: matpackI.h:788
An Antenna object used by MCGeneral.
Definition: mc_antenna.h:56
Definition: rng.h:569
A constant view of a Vector.
Definition: matpackI.h:292
Vector za_grid
Definition: mc_antenna.h:59
A constant view of a Matrix.
Definition: matpackI.h:596
Numeric sigma_aa
Definition: mc_antenna.h:58
AntennaType atype
Definition: mc_antenna.h:57
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
Matrix G_lookup
Definition: mc_antenna.h:60
Vector aa_grid
Definition: mc_antenna.h:59
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
AntennaType get_type(void) const
returns the antenna type
Definition: mc_antenna.cc:150