DynamicResponse.h
1//-*-C++-*-
2/***************************************************************************
3 *
4 * Copyright (C) 2024 Willem van Straten
5 * Licensed under the Academic Free License version 2.1
6 *
7 ***************************************************************************/
8
9// psrchive/Base/Extensions/Pulsar/DynamicResponse.h
10
11#ifndef __DynamicResponse_h
12#define __DynamicResponse_h
13
14#include "Pulsar/ArchiveExtension.h"
15#include "Pulsar/Profile.h"
16
17#include <vector>
18#include <complex>
19
20namespace Pulsar {
21
22 class DynamicResponse : public Pulsar::Archive::Extension
23 {
24
25 public:
26
28 DynamicResponse ();
29
31 DynamicResponse (const DynamicResponse& extension);
32
34 ~DynamicResponse ();
35
37 DynamicResponse* clone () const { return new DynamicResponse(*this); }
38
40 void set_nchan (unsigned);
41
43 unsigned get_nchan () const;
44
46 void set_ntime (unsigned);
47
49 unsigned get_ntime () const;
50
52 void set_npol (unsigned);
53
55 unsigned get_npol () const;
56
58 void set_minimum_epoch (const MJD& epoch) { minimum_epoch = epoch; }
60 MJD get_minimum_epoch () const { return minimum_epoch; }
61
63 void set_maximum_epoch (const MJD& epoch) { maximum_epoch = epoch; }
65 MJD get_maximum_epoch () const { return maximum_epoch; }
66
68 void set_centre_frequency (double freq) { centre_frequency = freq; }
70 double get_centre_frequency () const { return centre_frequency; }
71
73 void set_bandwidth (double freq) { bandwidth = freq; }
75 double get_bandwidth () const { return bandwidth; }
76
78 void set_impulse_pos (unsigned nsamp) { impulse_pos = nsamp; }
79
81 unsigned get_impulse_pos () const { return impulse_pos; }
82
84 void set_impulse_neg (unsigned nsamp) { impulse_neg = nsamp; }
85
87 unsigned get_impulse_neg () const { return impulse_neg; }
88
90 void resize_data ();
91
93 std::vector<std::complex<double>>& get_data () { return response; }
94
96 const std::vector<std::complex<double>>& get_data () const { return response; }
97
99 /* @pre vector must have size=ntime*nchan*npol */
100 void set_data (const std::vector<std::complex<double>>&);
101
102 protected:
103
105 unsigned nchan = 0;
107 unsigned ntime = 0;
109 unsigned npol = 0;
110
112 unsigned impulse_pos = 0;
113
115 unsigned impulse_neg = 0;
116
118 MJD minimum_epoch;
120 MJD maximum_epoch;
121
123 double centre_frequency = 0;
125 double bandwidth = 0;
126
128 std::vector<std::complex<double>> response;
129 };
130
131}
132
133#endif
134
virtual Extension * clone() const =0
Return a new copy-constructed instance identical to this instance.
Defines the PSRCHIVE library.
Definition CalSource.h:17

Generated using doxygen 1.14.0