Calibrator.h
1//-*-C++-*-
2/***************************************************************************
3 *
4 * Copyright (C) 2003 - 2022 by Willem van Straten
5 * Licensed under the Academic Free License version 2.1
6 *
7 ***************************************************************************/
8
9// psrchive/Base/Classes/Pulsar/Calibrator.h
10
11#ifndef __Calibrator_H
12#define __Calibrator_H
13
14#include "Pulsar/Config.h"
15
16#include <vector>
17
18#include "Estimate.h"
19#include "Jones.h"
20#include "MJD.h"
21
22namespace Pulsar {
23
24 class Archive;
25 class Integration;
27
30 {
31
32 public:
33
35 class Type;
36
38 static unsigned verbose;
39
42
45
48
50 Calibrator ();
51
53 virtual ~Calibrator ();
54
56 static unsigned get_instance_count ();
57
59 virtual void calibrate (Archive* archive) = 0;
60
62 virtual const Type* get_type () const;
63
65 virtual unsigned get_nchan () const = 0;
66
68 virtual float get_weight (unsigned ichan) const = 0;
69
71 virtual CalibratorExtension* new_Extension () const = 0;
72
74 Archive* new_solution (const std::string& archive_class) const;
75
77 virtual MJD get_epoch () const;
78
80 virtual std::string get_filenames () const;
81
83 const Archive* get_Archive () const;
84
86 bool has_Archive () const;
87
89 class Info;
90
92
93 virtual Info* get_Info () const { return 0; }
94
95 template<class T>
96 bool is_a () const
97 {
98 return dynamic_cast<const T*> (this) != 0;
99 }
100
103 {
104 public:
106
107 virtual bool update (const Integration*) = 0;
108 };
109
110 protected:
111
114
117 void copy_variation (Calibrator*);
118 void set_variation (Variation* var) { variation = var; }
119
122
124 std::vector<std::string> filenames;
125
127 const Archive* get_calibrator () const;
128
131
133 virtual void set_calibrator (const Archive* archive);
134
136 bool has_calibrator () const;
137
138 private:
139
142
143 };
144
145
151 {
152
153 public:
154
156 virtual ~Info () {}
157
159 virtual std::string get_title() const = 0;
160
162 virtual unsigned get_nchan () const = 0;
163
165 virtual unsigned get_nclass () const = 0;
166
168 virtual std::string get_label (unsigned iclass) const = 0;
169
171 virtual unsigned get_nparam (unsigned iclass) const = 0;
172
174 virtual Estimate<float> get_param (unsigned ichan, unsigned iclass, unsigned iparam) const = 0;
175
177
178 virtual std::string get_param_name (unsigned iparam) const { return ""; }
179
184
186 virtual int get_colour_index (unsigned iclass, unsigned iparam) const
187 { return iparam + 1; }
188
190 virtual int get_graph_marker (unsigned iclass, unsigned iparam) const
191 { return -1; }
192
194
195 };
196
197
198
199
200}
201
202#endif
203
The primary interface to pulsar observational data.
Definition Archive.h:46
Stores Calibrator parameters in an Archive.
Definition CalibratorExtension.h:23
Definition Calibrator.h:151
virtual std::string get_title() const =0
Return the title to print above the plot.
virtual unsigned get_nparam(unsigned iclass) const =0
Return the number of parameters in the specified class.
virtual ~Info()
Destructor.
Definition Calibrator.h:156
virtual std::string get_label(unsigned iclass) const =0
Return the PGPLOT-encoded label of the specified class.
virtual int get_colour_index(unsigned iclass, unsigned iparam) const
Return the colour index.
Definition Calibrator.h:186
virtual unsigned get_nclass() const =0
Return the number of parameter classes.
virtual Estimate< float > get_param(unsigned ichan, unsigned iclass, unsigned iparam) const =0
Return the estimate of the specified parameter.
virtual unsigned get_nchan() const =0
Return the number of frequency channels.
virtual int get_graph_marker(unsigned iclass, unsigned iparam) const
Return the graph marker.
Definition Calibrator.h:190
virtual std::string get_param_name(unsigned iparam) const
Return the PGPLOT-encoded name of the specified parameter.
Definition Calibrator.h:178
Definition CalibratorType.h:26
Abstract base of classes that update model parameters.
Definition Calibrator.h:103
virtual bool update(const Integration *)=0
Update the model parameters to match the integration.
static Pulsar::Option< float > median_smoothing
Fractional bandwidth of the window used in median filter.
Definition Calibrator.h:41
const Archive * get_Archive() const
Return a const reference to the calibrator archive.
Definition Calibrator.C:124
Calibrator()
Default constructor.
Definition Calibrator.C:64
Reference::To< Variation > variation
Updates model parameters.
Definition Calibrator.h:116
virtual Info * get_Info() const
Return the Calibrator::Info information.
Definition Calibrator.h:93
std::vector< std::string > filenames
Filenames of Pulsar::Archives from which instance was created.
Definition Calibrator.h:124
virtual std::string get_filenames() const
Return a string containing the file information.
Definition Calibrator.C:110
Archive * new_solution(const std::string &archive_class) const
Return a new processed calibrator Archive with a CalibratorExtension.
Definition Calibrator.C:146
Reference::To< Type > type
The type of the Calibrator.
Definition Calibrator.h:113
static unsigned get_instance_count()
Returns the number of Calibrator instances currently in existence.
Definition Calibrator.C:59
virtual void set_calibrator(const Archive *archive)
Provide derived classes with access to the calibrator.
Definition Calibrator.C:104
static Pulsar::Option< float > interpolating
Fractional bandwidth over which interpolation will be performed.
Definition Calibrator.h:44
bool has_calibrator() const
Return true if the calibrator attribute has been set.
Definition Calibrator.C:86
static Pulsar::Option< float > det_threshold
Tolerance to non-physical values of the coherency matrix.
Definition Calibrator.h:47
virtual MJD get_epoch() const
Return the reference epoch of the calibration experiment.
Definition Calibrator.C:138
virtual float get_weight(unsigned ichan) const =0
Get the weight associated with the specified channel.
virtual CalibratorExtension * new_Extension() const =0
Return a new Calibrator Extension.
bool has_Archive() const
Return true if the calibrator is constructed from an Archive.
Definition Calibrator.C:133
virtual unsigned get_nchan() const =0
Get the number of frequency channels in the calibrator.
static unsigned verbose
Verbosity level.
Definition Calibrator.h:38
virtual const Type * get_type() const
Return the Calibrator::Type of derived class.
Definition Calibrator.C:74
virtual ~Calibrator()
Destructor.
Definition Calibrator.C:69
virtual void calibrate(Archive *archive)=0
Calibrate the Pulsar::Archive.
const Archive * get_calibrator() const
Provide derived classes with access to the calibrator.
Definition Calibrator.C:92
Reference::To< const CalibratorExtension > extension
The CalibratorExtension of the Archive passed during construction.
Definition Calibrator.h:121
Array of Profiles integrated over the same time interval.
Definition Integration.h:37
Configuration option.
Definition Config.h:69
Defines the PSRCHIVE library.
Definition CalSource.h:17

Generated using doxygen 1.14.0