source: Sophya/trunk/SophyaLib/SkyT/trianglefilt.cc@ 909

Last change on this file since 909 was 909, checked in by ansari, 25 years ago

Sophie: adding documentation for Doxygen in the .cc files:wq

File size: 2.4 KB
Line 
1//--------------------------------------------------------------------------
2// File and Version Information:
3// $Id: trianglefilt.cc,v 1.5 2000-04-13 14:10:46 ansari Exp $
4//
5// Description:
6//
7// History (add to end):
8// Sophie Oct, 1999 - creation
9//
10//------------------------------------------------------------------------
11
12//---------------
13// C++ Headers --
14//---------------
15#include "machdefs.h"
16#include <iostream.h>
17
18#include "trianglefilt.h"
19
20//----------------
21// Constructor --
22//----------------
23/*!
24 * \class SOPHYA::TriangleFilter
25 * triangle detector response
26 */
27TriangleFilter::TriangleFilter()
28 : SpectralResponse()
29{
30}
31/*! Constructor: nupeak is the frequency value at the hat of the triangle and
32 valueatpeak is the corresponding transmission value. */
33TriangleFilter::TriangleFilter(double numin, double numax,double nupeak, double valueatpeak)
34 : SpectralResponse(numin, numax)
35{
36 _nuPeak = nupeak ;
37 _peakTransmission = valueatpeak;
38}
39
40//--------------
41// Destructor --
42//--------------
43TriangleFilter::~TriangleFilter()
44{
45}
46
47// ---------------------------
48// -- Function Definitions --
49// ---------------------------
50
51/*! The transmission function is a triangle defined in the constructor
52by numin and numax (for which the transmission goes to 0.) and
53the hat of the triangle (defined by a peak frequency and the corresponding
54transmission value. */
55double
56TriangleFilter::transmission(double nu) const
57{
58 if(nu < -1.e99) nu = -1.e99;
59 if(nu > 1.e99) nu = 1.e99;
60
61 if(nu>_numin && nu<_nuPeak) return (_peakTransmission*nu/_nuPeak);
62 if(nu>=_nuPeak && nu<_numax) return (_peakTransmission*nu/(_nuPeak-_numax)+_peakTransmission-_peakTransmission*_nuPeak/(_nuPeak-_numax));
63 return 0.;
64}
65
66double
67TriangleFilter::peakFreq() const
68{
69return _nuPeak;
70}
71
72double
73TriangleFilter::peakTransmission() const
74{
75 return _peakTransmission;
76}
77
78/*
79void
80TriangleFilter::WriteSelf(POutPersist& s)
81{
82 s.PutR8(this->peakFreq());
83 s.PutR8(this->peakTransmission());
84 s.PutR8(this->minFreq());
85 s.PutR8(this->maxFreq());
86
87}
88
89void
90TriangleFilter::ReadSelf(PInPersist& s)
91{
92 // double peakFreq, peakTransmission, minFreq, maxFreq;
93 s.GetR8(_nuPeak);
94 s.GetR8(_peakTransmission);
95 s.GetR8(_numin);
96 s.GetR8(_numax);
97 cout << "peakFreq - peakTransmission - minFreq - maxFreq " << endl;
98 cout << _nuPeak << "-" << _peakTransmission<< "-" << _numin << "-" << _numax << endl;
99
100}
101
102*/
Note: See TracBrowser for help on using the repository browser.