source: Sophya/trunk/SophyaLib/SkyT/radspec.h@ 4026

Last change on this file since 4026 was 2322, checked in by cmv, 23 years ago
  • passage xxstream.h en xxstream
  • compile avec gcc_3.2, gcc_2.96 et cxx En 3.2 le seek from ::end semble marcher (voir Eval/COS/pbseekios.cc)

rz+cmv 11/2/2003

File size: 2.6 KB
RevLine 
[601]1// This may look like C code, but it is really -*- C++ -*-
2//--------------------------------------------------------------------------
3// File and Version Information:
[2322]4// $Id: radspec.h,v 1.6 2003-02-11 15:31:07 cmv Exp $
[601]5//
6// Description:
7//
8// History (add to end):
9// Sophie Oct, 1999 - creation
10//
11//------------------------------------------------------------------------
12
13#ifndef RADSPEC_H_SEEN
14#define RADSPEC_H_SEEN
15
16#include "machdefs.h"
[2322]17#include <iostream>
[601]18
19#include "specresp.h"
[668]20#include "objfio.h"
[601]21// ---------------------
22// -- Class Interface --
23// ---------------------
24
25// ***IMPORTANT*** All frequencies are expressed in GHz (10^9 Hz)
26// and flux in Watt/m^2/sr
[901]27namespace SOPHYA {
[601]28class RadSpectra
29{
30
31public:
32 //Constructor
33 RadSpectra (double numin=0., double numax=9.e49);
34
35 // destructor
36 virtual ~RadSpectra();
37
38 //
39 // Member Functions
40 //
41
42 // The flux() function is virtual:
43 // It computes the flux per units of W/m^2/Hz/st
44 // implemented in the subclasses
45 virtual double flux(double nu) const =0;
46 inline double operator() (double nu) const { return(flux(nu)); }
47
48 virtual double minFreq() const;
49 virtual double maxFreq() const;
50 virtual double meanFreq() const;
51 virtual double peakFreq() const;
52
53 // For changing the min/max frequency
54 virtual void setMinMaxFreq(double numin, double numax);
55
56 // The IntegratedFlux() function
57 // integrates the flux function between two frequencies:
58 // numin and numax (in GHz)
59 virtual double integratedFlux( double numin, double numax) const ;
60 virtual double logIntegratedFlux( double numin, double numax) const ;
61
62 // same but integrated over the full spectrum of frequencies
63 virtual double integratedFlux() const ;
64 virtual double logIntegratedFlux() const ;
65
66 // filteredIntegratedFlux integrates the flux function while
67 // taking into account the spectralResponse of a filter
68 virtual double filteredIntegratedFlux(SpectralResponse const & filter,
69 double numin, double numax) const ;
70 virtual double filteredLogIntFlux(SpectralResponse const & filter,
71 double numin, double numax) const ;
72
73 // same but integrates over the filter's frequency band
74 virtual double filteredIntegratedFlux(SpectralResponse const & filter);
75 virtual double filteredLogIntFlux(SpectralResponse const & filter);
76
77 virtual void Print(ostream& os) const;
78
79protected:
80 double _numin;
81 double _numax;
82};
83
84// Definition de l'operateur <<
85inline ostream& operator << (ostream& s, RadSpectra const & rs)
86 { rs.Print(s); return(s); }
[901]87}
[601]88
89#endif
Note: See TracBrowser for help on using the repository browser.