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

Last change on this file since 668 was 668, checked in by ansari, 26 years ago

Ajout de classes deleguees PPersist et correction integration - Sophie 29/11/99

File size: 2.0 KB
Line 
1//--------------------------------------------------------------------------
2// File and Version Information:
3// $Id: trianglefilt.cc,v 1.3 1999-11-29 14:16:10 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
24TriangleFilter::TriangleFilter()
25 : SpectralResponse()
26{
27}
28TriangleFilter::TriangleFilter(double numin, double numax,double nupeak, double valueatpeak)
29 : SpectralResponse(numin, numax)
30{
31 _nuPeak = nupeak ;
32 _peakTransmission = valueatpeak;
33}
34
35//--------------
36// Destructor --
37//--------------
38TriangleFilter::~TriangleFilter()
39{
40}
41
42// ---------------------------
43// -- Function Definitions --
44// ---------------------------
45
46double
47TriangleFilter::transmission(double nu) const
48{
49 if(nu < -1.e99) nu = -1.e99;
50 if(nu > 1.e99) nu = 1.e99;
51
52 if(nu>_numin && nu<_nuPeak) return (_peakTransmission*nu/_nuPeak);
53 if(nu>=_nuPeak && nu<_numax) return (_peakTransmission*nu/(_nuPeak-_numax)+_peakTransmission-_peakTransmission*_nuPeak/(_nuPeak-_numax));
54 return 0.;
55}
56
57double
58TriangleFilter::peakFreq() const
59{
60return _nuPeak;
61}
62
63double
64TriangleFilter::peakTransmission() const
65{
66return _peakTransmission;
67}
68
69void
70TriangleFilter::WriteSelf(POutPersist& s)
71{
72 s.PutR8(this->peakFreq());
73 s.PutR8(this->peakTransmission());
74 s.PutR8(this->minFreq());
75 s.PutR8(this->maxFreq());
76
77}
78
79void
80TriangleFilter::ReadSelf(PInPersist& s)
81{
82 // double peakFreq, peakTransmission, minFreq, maxFreq;
83 s.GetR8(_nuPeak);
84 s.GetR8(_peakTransmission);
85 s.GetR8(_numin);
86 s.GetR8(_numax);
87 cout << "peakFreq - peakTransmission - minFreq - maxFreq " << endl;
88 cout << _nuPeak << "-" << _peakTransmission<< "-" << _numin << "-" << _numax << endl;
89
90}
Note: See TracBrowser for help on using the repository browser.