FluxCalibrator.h
1//-*-C++-*-
2/***************************************************************************
3 *
4 * Copyright (C) 2003 by Willem van Straten
5 * Licensed under the Academic Free License version 2.1
6 *
7 ***************************************************************************/
8
9// psrchive/More/Polarimetry/Pulsar/FluxCalibrator.h
10
11#ifndef __Pulsar_FluxCalibrator_H
12#define __Pulsar_FluxCalibrator_H
13
14#include "Pulsar/Calibrator.h"
15
16namespace Pulsar {
17
18 class Integration;
19 class StandardCandles;
20 class CalibratorStokes;
22
24 class FluxCalibrator : public Calibrator {
25
26 public:
27
29 FluxCalibrator (const Archive* archive = 0);
30
33
35 class Policy;
36
38 class VariableGain;
39
41 class ConstantGain;
42
44 void set_policy (Policy*);
45
47 class Info;
48
50 Calibrator::Info* get_Info () const;
51
53 CalibratorExtension* new_Extension () const;
54
56 std::string get_standard_candle_info () const;
57
59 double meanTsys () const;
60
62 double Tsys (unsigned ichan) const;
63
65 const CalibratorStokes* get_CalibratorStokes () const;
66
68 void add_observation (const Archive* archive);
69
71 void set_database (const StandardCandles* database);
72
74 void set_outlier_threshold (float f) { outlier_threshold = f; }
75
77 float get_outlier_threshold () const { return outlier_threshold; }
78
80 void calibrate (Archive* archive);
81
83 unsigned get_nchan () const;
84
86 unsigned get_nreceptor () const;
87
89 bool get_valid (unsigned ch) const;
90
92 float get_weight (unsigned ichan) const;
93
95 void set_invalid (unsigned ch);
96
98 void print(std::ostream& os=std::cout) const;
99
101 bool complete () const { return (have_on && have_off); }
102
104 void calibration_setup (const Archive* archive);
105
106 protected:
107
108 friend class FluxCalibratorExtension;
109 friend class ConstantGainInfo;
110 friend class Info;
111
114
117
119 void create (unsigned nchan = 0);
120
122 void calibrate (Integration* subint);
123
125 std::vector< Reference::To<Policy> > data;
126
128 void data_range_check (unsigned ichan, const char* method) const;
129
131 void resize (unsigned nchan, unsigned nreceptor);
132
134 std::vector< float > gain;
135
137 void resize (unsigned required_nchan);
138
141
142 private:
143
145 mutable Reference::To<CalibratorStokes> calibrator_stokes;
146
148 bool calculated = false;
149
151 bool have_on = false;
152
154 bool have_off = false;
155
157 std::string standard_candle_info;
158
160 double outlier_threshold = 0.0;
161
163 bool constant_scale = false;
164
166 void init ();
167
169 void setup ();
170
171 };
172
173}
174
175#endif
The primary interface to pulsar observational data.
Definition Archive.h:46
Used when gain remains constant between FluxCal-On and Off observations.
Definition FluxCalibratorPolicy.h:157
FluxCalibrator parameter communication.
Definition FluxCalibratorInfo.h:20
Flux calibration data for each receptor.
Definition FluxCalibratorPolicy.h:24
Used when gain varies between FluxCal-On and Off observations.
Definition FluxCalibratorPolicy.h:109
FluxCalibrator(const Archive *archive=0)
Default constructor.
Definition FluxCalibrator.C:49
Reference::To< const StandardCandles > database
Flux calibrator database.
Definition FluxCalibrator.h:113
The primary interface to pulsar observational data.
Definition Archive.h:46
Stores the Stokes parameters of the reference source.
Definition CalibratorStokes.h:23
Calibrator()
Default constructor.
Definition Calibrator.C:64
FluxCalibrator parameter communication.
Definition ConstantGainInfo.h:20
Flux Calibrator Extension.
Definition FluxCalibratorExtension.h:24
double meanTsys() const
Return the system temperature in Kelvin.
Definition FluxCalibrator.C:114
std::vector< Reference::To< Policy > > data
Flux calibrator data for each frequency channel.
Definition FluxCalibrator.h:125
void data_range_check(unsigned ichan, const char *method) const
Check on data range and validity.
Definition FluxCalibrator.C:139
void set_outlier_threshold(float f)
Set the threshold used to reject outliers when computing levels.
Definition FluxCalibrator.h:74
CalibratorExtension * new_Extension() const
Return a new FluxCalibratorExtension.
Definition FluxCalibrator.C:784
bool get_valid(unsigned ch) const
Return true if the flux scale for the specified channel is valid.
Definition FluxCalibrator.C:309
bool complete() const
Check whether both on and off are present.
Definition FluxCalibrator.h:101
void set_database(const StandardCandles *database)
Set the database containing flux calibrator information.
Definition FluxCalibrator.C:468
std::vector< float > gain
The absolute gain used to calibrate the archive data.
Definition FluxCalibrator.h:134
float get_outlier_threshold() const
Get the threshold used to reject outliers when computing levels.
Definition FluxCalibrator.h:77
void add_observation(const Archive *archive)
Add a FluxCal Pulsar::Archive to the set of constraints.
Definition FluxCalibrator.C:345
void create(unsigned nchan=0)
Create the cal_flux spectrum at the requested resolution.
Definition FluxCalibrator.C:524
Reference::To< const FluxCalibratorExtension > flux_extension
Flux calibrator extension.
Definition FluxCalibrator.h:116
void print(std::ostream &os=std::cout) const
Print all the fluxcal info.
Definition FluxCalibrator.C:161
FluxCalibrator(const Archive *archive=0)
Default constructor.
Definition FluxCalibrator.C:49
void resize(unsigned nchan, unsigned nreceptor)
Resize the data vector.
Definition FluxCalibrator.C:624
double Tsys(unsigned ichan) const
Return the system temperature of a specific channel.
Definition FluxCalibrator.C:150
unsigned get_nchan() const
Get the number of frequency channels in the calibrator.
Definition FluxCalibrator.C:756
unsigned get_nreceptor() const
Get the number of receptors in the calibrator.
Definition FluxCalibrator.C:765
void calibration_setup(const Archive *archive)
Setup to calibrate the flux in the given archive.
Definition FluxCalibrator.C:474
Reference::To< Policy > policy
The policy used to peform flux calibration.
Definition FluxCalibrator.h:140
Reference::To< const StandardCandles > database
Flux calibrator database.
Definition FluxCalibrator.h:113
void calibrate(Archive *archive)
Calibrate the flux in the given archive.
Definition FluxCalibrator.C:513
float get_weight(unsigned ichan) const
Return the weight (0 or 1) associated with the specified channel.
Definition FluxCalibrator.C:303
void set_policy(Policy *)
Set the policy used to perform flux calibration.
Definition FluxCalibrator.C:104
Calibrator::Info * get_Info() const
Return the FluxCalibrator information.
Definition FluxCalibrator.C:777
void set_invalid(unsigned ch)
Set the flux scale invalid flag for the specified channel.
Definition FluxCalibrator.C:329
std::string get_standard_candle_info() const
Return information about the standard candle used.
Definition FluxCalibrator.C:109
const CalibratorStokes * get_CalibratorStokes() const
Return an estimate of the artificial cal Stokes parameters.
Definition FluxCalibrator.C:198
~FluxCalibrator()
Destructor.
Definition FluxCalibrator.C:93
Array of Profiles integrated over the same time interval.
Definition Integration.h:37
Defines the PSRCHIVE library.
Definition CalSource.h:17

Generated using doxygen 1.14.0