CalibrationInterpolator.h
1//-*-C++-*-
2/***************************************************************************
3 *
4 * Copyright (C) 2022 by Willem van Straten
5 * Licensed under the Academic Free License version 2.1
6 *
7 ***************************************************************************/
8
9// psrchive/More/Polarimetry/Pulsar/CalibrationInterpolator.h
10
11#ifndef __CalibrationInterpolator_H
12#define __CalibrationInterpolator_H
13
14#include "Pulsar/Calibrator.h"
15#include <map>
16
17namespace Pulsar {
18
22 class CalibratorStokes;
23 class Integration;
24 class SplineSmooth2D;
25
28 {
30 void construct (Archive*);
31
32 public:
33
36
39
42
45
47 const Calibrator::Type* get_type () const;
48
50 bool update (const Integration* subint)
51 { return update<Integration>(subint); }
52
54
55 template<class Container>
56 bool update (const Container*);
57
58 protected:
59
62
65
68
71
72 std::map< unsigned, Reference::To<SplineSmooth2D> > feedpar_splines;
73 std::map< unsigned, Reference::To<SplineSmooth2D> > calpoln_splines;
74 std::map< unsigned, Reference::To<SplineSmooth2D> > fluxcal_splines;
75
76 MJD last_computed;
77
79 bool update (const MJD& epoch, const std::vector<double>& freqs);
80 };
81
82 template<class Container>
84 {
85 unsigned nchan = container->get_nchan();
86 std::vector<double> frequency (nchan);
87
88 for (unsigned ichan=0; ichan<nchan; ++ichan)
89 frequency[ichan] = container->get_centre_frequency (ichan);
90
91 return update (container->get_epoch (), frequency);
92 }
93
94}
95
96#endif
The primary interface to pulsar observational data.
Definition Archive.h:46
Stores Polarization Calibration Model Interpolator information.
Definition CalibrationInterpolatorExtension.h:25
Reference::To< const CalibrationInterpolatorExtension > interpolator
Calibration Interpolator Extension.
Definition CalibrationInterpolator.h:61
bool update(const Integration *subint)
Update the model parameters to match the Integration.
Definition CalibrationInterpolator.h:50
const CalibrationInterpolatorExtension * get_extension()
Get the extension from which this object was constructed.
Definition CalibrationInterpolator.C:121
Reference::To< FluxCalibratorExtension > fluxcal
The flux calibrator.
Definition CalibrationInterpolator.h:70
Reference::To< CalibratorStokes > calpoln
The Stokes parameters of the input reference signal.
Definition CalibrationInterpolator.h:64
~CalibrationInterpolator()
Destructor.
Definition CalibrationInterpolator.C:115
const Calibrator::Type * get_type() const
Get the type of the calibrator.
Definition CalibrationInterpolator.C:127
CalibrationInterpolator(Calibrator *)
Construct from a calibrator with a CalibrationInterpolatorExtension.
Definition CalibrationInterpolator.C:34
Reference::To< PolnCalibratorExtension > feedpar
The model of the feed.
Definition CalibrationInterpolator.h:67
Stores the Stokes parameters of the reference source.
Definition CalibratorStokes.h:23
Definition CalibratorType.h:26
Abstract base of classes that update model parameters.
Definition Calibrator.h:103
Polarization and flux calibrators.
Definition Calibrator.h:30
Data storage implementations.
Definition Container.h:19
Flux Calibrator Extension.
Definition FluxCalibratorExtension.h:24
Array of Profiles integrated over the same time interval.
Definition Integration.h:37
Stores PolnCalibrator parameters in an Archive instance.
Definition PolnCalibratorExtension.h:23
Defines the PSRCHIVE library.
Definition CalSource.h:17

Generated using doxygen 1.14.0