SystemCalibrator.h
1//-*-C++-*-
2/***************************************************************************
3 *
4 * Copyright (C) 2008-2025 by Willem van Straten
5 * Licensed under the Academic Free License version 2.1
6 *
7 ***************************************************************************/
8
9// psrchive/More/Polarimetry/Pulsar/SystemCalibrator.h
10
11#ifndef __Pulsar_SystemCalibrator_H
12#define __Pulsar_SystemCalibrator_H
13
14#include "Pulsar/PolnCalibrator.h"
15
16#include "Pulsar/ReceptionModelSolver.h"
17#include "Pulsar/SignalPath.h"
18
19#include "Pulsar/CoherencyMeasurementSet.h"
20#include "Pulsar/SourceEstimate.h"
21#include "Pulsar/Processor.h"
22
23#include "BatchQueue.h"
24
25#include <ostream>
26
27namespace Pulsar
28{
30 class FluxCalibrator;
31 class CalibratorStokes;
34
36
48
50 {
51
52 public:
53
55
57 class StepFinder;
58
60 SystemCalibrator (Archive* archive = 0);
61
64
66 virtual ~SystemCalibrator ();
67
69
70 virtual void share (SystemCalibrator* other);
71
73 Calibrator::Info* get_Info () const;
74
76 void set_name (const std::string& name);
77
79 std::string get_name () const;
80
82 MJD get_epoch () const;
83
85 unsigned get_nchan () const;
86
88 unsigned get_ndata (unsigned ichan) const;
89
91 virtual unsigned get_nstate () const;
92
94 virtual unsigned get_nstate_pulsar () const;
95
97 virtual unsigned get_state_is_pulsar (unsigned istate) const;
98
100 virtual bool has_cal () const { return calibrator_estimate.size(); }
101
103 virtual Calibrator::Info* new_info_pulsar (unsigned istate) const;
104
106 void set_refcal_through_frontend (bool flag = true);
107
109 void set_flux_calibrator (const FluxCalibrator* fluxcal);
110
112 void set_calibrators (const std::vector<std::string>& filenames);
113
116
118 virtual void set_calibrator (const Archive*);
119
121 virtual void set_response( MEAL::Complex2* );
122
125
128
130 void set_response_fixed (const std::vector<unsigned>&);
131
133 virtual void set_response_variation ( unsigned iparam,
135
137 virtual void set_impurity( MEAL::Real4* );
138
141
144
147
150
153
155 virtual void add_gain_step (const MJD&);
156
158 virtual void add_diff_gain_step (const MJD&);
159
161 virtual void add_diff_phase_step (const MJD&);
162
164 virtual void add_step (const MJD&, Calibration::VariableBackend*);
165
167 void set_step_after_cal (bool val = true) { step_after_cal = val; }
168 bool get_step_after_cal () const { return step_after_cal; }
169
172 virtual void set_foreach_calibrator( const MEAL::Complex2* );
173
176
178 virtual void preprocess (Archive* data);
179
181 virtual void add_observation (const Archive* data);
182
184 virtual void set_normalize_by_invariant (bool flag = true);
185
187 virtual void set_normalize_calibrated_by_invariant (bool flag = true);
188
190 virtual void add_pulsar (const Archive* data);
191
193 virtual void add_calibrator (const Archive* data);
194
196 virtual void add_calibrator (const ReferenceCalibrator* polncal);
197
199 virtual bool calibrator_match (const Archive*, std::string& reason_for_not_matching);
200
202 virtual void add_epoch (const MJD& epoch);
203
205 MJD get_start_epoch () const { return start_epoch; }
206
208 MJD get_end_epoch () const { return end_epoch; }
209
211 virtual void set_nthread (unsigned nthread);
212
214 virtual void set_equation_configuration (const std::vector<std::string>&);
215
217 virtual bool has_solver () const;
218
220 virtual const Solver* get_solver (unsigned ichan) const;
221
223 virtual void set_solver (Solver*);
224
226 virtual Solver* get_solver ();
227
229 virtual void set_retry_reduced_chisq (float);
230
232 virtual void set_invalid_reduced_chisq (float);
233
235 virtual void set_report_projection (bool);
236
238 virtual void set_report_initial_state (bool flag = true);
239
241 virtual void set_report_input_data (bool flag = true);
242
244 virtual void set_report_input_failed (bool flag = true);
245
247 virtual void set_report_data_and_model (bool flag = true);
248
250 virtual void set_report_total_invariant (bool flag = true);
251
254
257
260
263
266
269
271 void set_step_finder (StepFinder*);
272
274 StepFinder* get_step_finder ();
275
277 virtual void solve ();
278
280 virtual void reset ();
281
283 virtual bool get_solved () const;
284
286 virtual bool get_valid (unsigned ichan) const;
287 virtual void set_valid (unsigned ichan, bool value, const std::string& reason);
288
290 virtual bool has_valid () const;
291
293 float get_reduced_chisq (unsigned ichan) const;
294
296 virtual void precalibrate (Archive* archive);
297
299 virtual MEAL::Complex2* get_transformation (const Archive* data, unsigned isub, unsigned ichan);
300
302 virtual MEAL::Complex2* get_transformation (const MJD& epoch, Signal::Source source, unsigned ichan);
303
305 virtual Archive* new_solution (const std::string& archive_class) const;
306
308 virtual const CalibratorStokes* get_CalibratorStokes () const;
309
311 virtual const Calibration::SignalPath* get_model (unsigned ichan) const;
312
314
315 virtual bool match (const Archive*, bool throw_exception = true);
316
317 std::string get_mismatch_reason () const { return mismatch_reason; }
318
320 class Unloader;
321
322 protected:
323
324 friend class SystemCalibratorManager;
325 bool match_check_nchan;
326 std::string mismatch_reason;
327
329 /* and common polarimetric transformations */
331 void setup_sharing (unsigned ichan);
332
333 friend class SystemCalibratorPlotter;
334 friend class MatrixTemplateMatching;
335
336 std::string instance_name;
337
339 virtual void prepare (const Archive* data);
340
342 virtual void calculate_transformation ();
343
345 void create_model ();
346
349
351 std::vector<std::string> equation_configuration;
352
355
358
361
364
367
370
372 std::vector<unsigned> response_fixed;
373
376
377 typedef MEAL::Univariate<MEAL::Scalar> UniScalar;
378
380 std::map< unsigned, Reference::To<UniScalar> > response_variation;
381
384
387
390
391 std::vector<MJD> gain_steps;
392 std::vector<MJD> diff_gain_steps;
393 std::vector<MJD> diff_phase_steps;
394
397
400
402 virtual void init_model (unsigned ichan);
403
404 typedef Reference::To<Calibration::SourceEstimate> SourceEstimate;
405
407 virtual void init_estimates (std::vector<SourceEstimate>&, unsigned ibin = 0);
408
410 virtual void print_input_failed (const std::vector<SourceEstimate>&);
411 std::vector<std::ofstream*> input_failed;
412 virtual void close_input_failed ();
413
416
418 virtual void create_calibrator_estimate ();
419
421 virtual void copy_calibrator_estimate ();
422
425
427 std::vector< std::vector<Calibration::SourceObservation> > calibrator_data;
428
429 // submit all calibrator data
430 virtual void submit_calibrator_data ();
431
432 virtual void submit_calibrator_data (Calibration::CoherencyMeasurementSet&,
433 const Calibration::SourceObservation&);
434
435 virtual void integrate_calibrator_data (const Calibration::SourceObservation&);
436
437 virtual void integrate_calibrator_solution (const Calibration::SourceObservation&);
438
440 virtual void load_calibrators ();
441
442 Reference::To<StepFinder> step_finder;
443
445 std::vector< std::vector<Calibration::CoherencyMeasurementSet> > pulsar_data;
446
448 virtual void add_pulsar (const Archive* data, unsigned isub);
449
451
452 virtual void add_pulsar (Calibration::CoherencyMeasurementSet&, const Integration*, unsigned ichan) = 0;
453
456
458 virtual void submit_pulsar_data ();
459
462
464 virtual double get_invariant (Integration* subint, unsigned ichan) = 0;
465
467 std::vector<std::string> calibrator_filenames;
468
471
473 std::vector< Reference::To<Calibration::SourceEstimate> > calibrator_estimate;
474
477
480
483
486
489
492
495
498
501
504
507
510
513
516
519
522
525
528
531
534
536 virtual void solve_prepare ();
537
539 void configure ( MEAL::Function* equation );
540
542 virtual void export_prepare () const = 0;
543
546
548 bool get_prepared () const;
549
551 Solver* get_solver (unsigned ichan);
552
554 void resolve (unsigned ichan);
555
557 void check_ichan (const char* name, unsigned ichan) const;
558
559 unsigned get_data_fail;
560 unsigned get_data_call;
561
564
567
569 virtual void load_previous ();
570
572 bool previous_loaded = false;
573
575 bool has_pulsar = false;
576
579
581 std::ofstream invint_out;
582
583 private:
584
585 std::vector<bool> epoch_added;
586
588 bool is_solved;
589
591 bool is_prepared;
592
593 };
594
595}
596
597#endif
598
The primary interface to pulsar observational data.
Definition Archive.h:46
A CoherencyMeasurement set and their coordinates.
Definition CoherencyMeasurementSet.h:22
Solve the measurement equation by non-linear least squares minimization.
Definition ReceptionModelSolver.h:22
Manages multiple signal path transformations in a reception model.
Definition SignalPath.h:49
Physical parameterization of the instrumental response.
Definition VariableBackend.h:31
The primary interface to pulsar observational data.
Definition Archive.h:46
Stores the Stokes parameters of the reference source.
Definition CalibratorStokes.h:23
Definition Calibrator.h:151
Calibrates flux using standard candles and artificial sources.
Definition FluxCalibrator.h:24
Array of Profiles integrated over the same time interval.
Definition Integration.h:37
Polarimetric calibrators.
Definition PolnCalibrator.h:37
Index subint
The sub-integration from which to construct a solution.
Definition PolnCalibrator.h:202
PolnCalibrator(const Archive *archive=0)
Construct with optional processed calibrator Archive.
Definition PolnCalibrator.C:76
Interface to any object that processes data in an Archive.
Definition Processor.h:23
Calibrators derived from reference source observations.
Definition ReferenceCalibrator.h:27
bool report_initial_state
Report the initial state of model before fitting.
Definition SystemCalibrator.h:512
virtual bool has_valid() const
Returns true if at least one channel returns get_valid == true.
Definition SystemCalibrator.C:2185
double cal_intensity_threshold
Threshold used to reject CAL observations with no signal.
Definition SystemCalibrator.h:530
virtual bool has_cal() const
Return true if calibrator (e.g. noise diode) data are incorporated.
Definition SystemCalibrator.h:100
bool solve_in_reverse_channel_order
Solve measurement equations in reverse channel order.
Definition SystemCalibrator.h:491
std::ofstream invint_out
File to which total invariant will be written.
Definition SystemCalibrator.h:581
virtual void set_report_initial_state(bool flag=true)
Report on the initial state of the model before fitting.
Definition SystemCalibrator.C:2555
virtual void print_input_failed(const std::vector< SourceEstimate > &)
Report on input data failure rates.
Definition SystemCalibrator.C:1802
Reference::To< const PolnCalibrator > previous
Previous solution of the frontend from which to copy initial guess.
Definition SystemCalibrator.h:563
bool report_input_data
Report on the data included as constraints.
Definition SystemCalibrator.h:515
void set_previous_solution(const PolnCalibrator *)
Set the response to a previous solution (for the first guess)
Definition SystemCalibrator.C:710
void set_previous_cal(const CalibratorStokes *)
Set the calibrator Stokes parameters to a previous solution (for the first guess)
Definition SystemCalibrator.C:715
virtual bool has_solver() const
Return true if least squares minimization solvers are available.
Definition SystemCalibrator.C:175
virtual void set_response(MEAL::Complex2 *)
Set the response (pure Jones) transformation.
Definition SystemCalibrator.C:325
std::vector< std::string > equation_configuration
Meausrement equation configuration options.
Definition SystemCalibrator.h:351
SystemCalibrator(Archive *archive=0)
Construct with optional processed calibrator Archive.
Definition SystemCalibrator.C:61
virtual void add_diff_gain_step(const MJD &)
Add a step to the differential gain variations.
Definition SystemCalibrator.C:376
virtual void set_response_variation(unsigned iparam, MEAL::Univariate< MEAL::Scalar > *)
Set the temporal variation function of a specified response parameter.
Definition SystemCalibrator.C:335
virtual void add_pulsar(Calibration::CoherencyMeasurementSet &, const Integration *, unsigned ichan)=0
Add pulsar data constraints to coherency measurement set.
virtual void set_faraday_rotation(VariableFaradayRotation *)
Set the ionospheric and interstellar Faraday rotation transformation.
Definition SystemCalibrator.C:159
virtual void integrate_pulsar_data(const Calibration::CoherencyMeasurementSet &)
add pulsar data to mean estimate used as initial guess
Definition SystemCalibrator.h:455
virtual void init_estimates(std::vector< SourceEstimate > &, unsigned ibin=0)
Initialize a vector of SourceEstimate instances.
Definition SystemCalibrator.C:1252
virtual void prepare(const Archive *data)
Prepare the model.
Definition SystemCalibrator.C:465
std::vector< unsigned > response_fixed
Indeces of response parameters to be held fixed.
Definition SystemCalibrator.h:372
void set_cal_outlier_threshold(float f)
Set the threshold used to reject outliers when computing CAL levels.
Definition SystemCalibrator.h:253
Reference::To< const CalibratorStokes > calibrator_stokes
The CalibratorStokesExtension of the Archive passed during construction.
Definition SystemCalibrator.h:366
virtual void add_observation(const Archive *data)
Add the observation to the set of constraints.
Definition SystemCalibrator.C:423
unsigned get_nchan() const
Get the number of frequency channels.
Definition SystemCalibrator.C:293
virtual void add_calibrator(const Archive *data)
Add the calibrator observation to the set of constraints.
Definition SystemCalibrator.C:824
bool report_data_and_model
Report on the data and model before and after the fit.
Definition SystemCalibrator.h:521
virtual Archive * new_solution(const std::string &archive_class) const
Return a Calibrator::new_solution with a CalibratorStokesExtension.
Definition SystemCalibrator.C:2483
bool has_pulsar
Flag set after the first pulsar observation is added.
Definition SystemCalibrator.h:575
virtual void set_stepeach_calibrator(const Calibration::VariableBackend *)
Set the VariableBackend step to be cloned for each calibrator.
Definition SystemCalibrator.C:351
virtual void load_calibrators()
Load any postponed calibrators and those set by set_calibrators.
Definition SystemCalibrator.C:730
virtual bool get_valid(unsigned ichan) const
Return true if the model for the specified channel is valid.
Definition SystemCalibrator.C:2175
void set_refcal_through_frontend(bool flag=true)
True if noise diode illuminates feed; false if coupled after OMT.
Definition SystemCalibrator.C:240
virtual unsigned get_state_is_pulsar(unsigned istate) const
Return true if the state index is a pulsar.
Definition SystemCalibrator.C:270
void create_model()
Create the model array.
Definition SystemCalibrator.C:1546
virtual void set_foreach_calibrator(const MEAL::Complex2 *)
Definition SystemCalibrator.C:346
void resolve(unsigned ichan)
Solve the specified channel after copying a good solution from another.
Definition SystemCalibrator.C:2087
bool correct_interstellar_Faraday_rotation
Include a correction for Faraday rotation in the ISM.
Definition SystemCalibrator.h:494
std::string get_name() const
Get the name associated with this SystemCalibrator instance.
Definition SystemCalibrator.C:149
double cal_polarization_threshold
Minimum degree of polarization of CAL observations.
Definition SystemCalibrator.h:533
MJD start_epoch
Epoch of the first observation.
Definition SystemCalibrator.h:476
virtual void create_calibrator_estimate()
Create the calibrator estimate.
Definition SystemCalibrator.C:1341
virtual bool calibrator_match(const Archive *, std::string &reason_for_not_matching)
Return true if this calibrator can be applied to the data.
Definition SystemCalibrator.C:2224
virtual Solver * get_solver()
Get the algorithm used to solve the measurement equation.
Definition SystemCalibrator.C:202
virtual void copy_calibrator_estimate()
Copy the calibrator estimates from sharing partner.
Definition SystemCalibrator.C:1318
bool normalize_by_invariant
Normalize pulsar Stokes parameters by the invariant interval.
Definition SystemCalibrator.h:485
Reference::To< Processor > calibrator_preprocessor
The calibrator pre-processor.
Definition SystemCalibrator.h:470
virtual void set_calibrator(const Archive *)
Set the calibrator.
Definition SystemCalibrator.C:131
Reference::Vector< Calibration::SignalPath > model
The standard calibration model as a function of frequency.
Definition SystemCalibrator.h:348
std::vector< std::vector< Calibration::CoherencyMeasurementSet > > pulsar_data
Pulsar data loaded but not submitted or integrated.
Definition SystemCalibrator.h:445
void set_name(const std::string &name)
Set the name associated with this SystemCalibrator instance.
Definition SystemCalibrator.C:144
virtual void precalibrate(Archive *archive)
Pre-calibrate the polarization of the given archive.
Definition SystemCalibrator.C:2230
Reference::To< UniScalar > diff_gain_variation
Time variation of differential gain.
Definition SystemCalibrator.h:386
MJD get_start_epoch() const
Get the epoch of the first observation.
Definition SystemCalibrator.h:205
MJD get_epoch() const
Return the reference epoch of the calibration experiment.
Definition SystemCalibrator.C:245
virtual bool match(const Archive *, bool throw_exception=true)
Ensure that the pulsar observation can be added to the data set.
Definition SystemCalibrator.C:667
virtual void set_diff_gain(MEAL::Univariate< MEAL::Scalar > *)
Set the time variation of differential gain.
Definition SystemCalibrator.C:361
bool report_projection
Report on the projection transformation used in add_pulsar.
Definition SystemCalibrator.h:509
virtual void add_pulsar(const Archive *data)
Add the pulsar observation to the set of constraints.
Definition SystemCalibrator.C:439
void set_cal_polarization_threshold(float f)
Set the minimum degree of polarization of CAL observations.
Definition SystemCalibrator.h:265
Reference::To< const FluxCalibrator > flux_calibrator
The FluxCalibrator solution.
Definition SystemCalibrator.h:357
virtual void add_diff_phase_step(const MJD &)
Add a step to the differential phase variations.
Definition SystemCalibrator.C:381
Reference::To< VariableFaradayRotation > faraday_rotation
The ionospheric and interstellar Faraday rotation transformation.
Definition SystemCalibrator.h:363
Reference::To< MEAL::Complex2 > response
Response transformation.
Definition SystemCalibrator.h:369
virtual void calculate_transformation()
Initialize the PolnCalibration::transformation attribute.
Definition SystemCalibrator.C:2207
virtual void set_gain(MEAL::Univariate< MEAL::Scalar > *)
Set the time variation of absolute gain.
Definition SystemCalibrator.C:356
void check_ichan(const char *name, unsigned ichan) const
ensure that ichan < model.size()
Definition SystemCalibrator.C:2580
virtual void set_normalize_calibrated_by_invariant(bool flag=true)
Normalize each pulsar Stokes vector by the mean on-pulse invariant.
Definition SystemCalibrator.C:169
std::vector< Reference::To< Calibration::SourceEstimate > > calibrator_estimate
Uncalibrated estimate of calibrator polarization.
Definition SystemCalibrator.h:473
void set_calibrators(const std::vector< std::string > &filenames)
Set the calibrator observations to be loaded after first pulsar.
Definition SystemCalibrator.C:700
virtual const Calibration::SignalPath * get_model(unsigned ichan) const
Return the SignalPath for the specified channel.
Definition SystemCalibrator.C:1746
MJD get_end_epoch() const
Get the epoch of the last observation.
Definition SystemCalibrator.h:208
Reference::To< Solver > solver
The algorithm used to solve the measurement equation.
Definition SystemCalibrator.h:354
bool refcal_through_frontend
True if noise diode illuminates feed; false if coupled after OMT.
Definition SystemCalibrator.h:497
void set_step_finder(StepFinder *)
Set the algorithm used to automatically insert steps in response.
Definition SystemCalibrator.C:222
virtual void set_report_input_data(bool flag=true)
Report on the data included as constraints before fitting.
Definition SystemCalibrator.C:2560
virtual void set_nthread(unsigned nthread)
Set the number of channels that may be simultaneously solved.
Definition SystemCalibrator.C:1752
Reference::To< MEAL::Real4 > impurity
Impurity transformation.
Definition SystemCalibrator.h:375
void set_response_fixed(const std::vector< unsigned > &)
Set the response parameters to be held fixed.
Definition SystemCalibrator.C:720
virtual void set_retry_reduced_chisq(float)
Set the reduced chisq above which the solution will be retried.
Definition SystemCalibrator.C:2540
float get_cal_outlier_threshold() const
Get the threshold used to reject outliers when computing CAL levels.
Definition SystemCalibrator.h:256
Jones< double > invert_basis
Transformation that inverts the receptor basis.
Definition SystemCalibrator.h:578
virtual void set_projection(VariableTransformationManager *)
Set the projection transformation.
Definition SystemCalibrator.C:154
Reference::To< const MEAL::Complex2 > foreach_calibrator
Transformation cloned for each calibrator observation.
Definition SystemCalibrator.h:396
void configure(MEAL::Function *equation)
Configure a measurement equation.
Definition SystemCalibrator.C:1773
virtual ~SystemCalibrator()
Destructor.
Definition SystemCalibrator.C:217
bool report_total_invariant
Report on the total invariant used to normalize each profile.
Definition SystemCalibrator.h:524
virtual void set_report_projection(bool)
Report on the projection correction used in add_pulsar method.
Definition SystemCalibrator.C:2550
virtual void preprocess(Archive *data)
Prepare the data for inclusion in the model.
Definition SystemCalibrator.C:397
float get_reduced_chisq(unsigned ichan) const
Get the reduced chisq of the best fit in the specified channel.
Definition SystemCalibrator.C:1935
std::vector< std::vector< Calibration::SourceObservation > > calibrator_data
Calibrator data loaded but not submitted or integrated.
Definition SystemCalibrator.h:427
Reference::To< SystemCalibrator > partner
SystemCalibrator with whom common reception model is shared.
Definition SystemCalibrator.h:330
float get_cal_intensity_threshold() const
Get the threshold used to reject CAL observations with no signal.
Definition SystemCalibrator.h:262
virtual unsigned get_nstate() const
Get the total number of input polarization states (pulsar and cal)
Definition SystemCalibrator.C:259
virtual MEAL::Complex2 * get_transformation(const Archive *data, unsigned isub, unsigned ichan)
Return the transformation to be used for precalibration.
Definition SystemCalibrator.C:2430
bool data_submitted
Flag set when data have been integrated with measurement equation.
Definition SystemCalibrator.h:424
Calibrator::Info * get_Info() const
Return the Calibrator information.
Definition SystemCalibrator.C:233
Reference::To< UniScalar > gain_variation
Time variation of absolute gain.
Definition SystemCalibrator.h:383
float retry_chisq
The maximum reduced chisq before another fit will be attempted.
Definition SystemCalibrator.h:503
virtual const CalibratorStokes * get_CalibratorStokes() const
Return the CalibratorStokesExtension.
Definition SystemCalibrator.C:1498
void set_step_after_cal(bool val=true)
Apply time steps afer cals.
Definition SystemCalibrator.h:167
virtual void add_gain_step(const MJD &)
Add a step to the gain variations.
Definition SystemCalibrator.C:371
void set_calibrator_preprocessor(Processor *)
Set the calibrator preprocessor.
Definition SystemCalibrator.C:725
virtual Calibrator::Info * new_info_pulsar(unsigned istate) const
Return a new plot information interface for the specified pulsar state.
Definition SystemCalibrator.C:287
virtual void reset()
Reset the response in each frequency to its initial value.
Definition SystemCalibrator.C:2196
virtual void load_previous()
Load any previous solutions.
Definition SystemCalibrator.C:498
virtual void set_diff_phase(MEAL::Univariate< MEAL::Scalar > *)
Set the time variation of differential phase.
Definition SystemCalibrator.C:366
MJD end_epoch
Epoch of the last observation.
Definition SystemCalibrator.h:479
virtual void solve()
Solve equation for each frequency.
Definition SystemCalibrator.C:1950
bool previous_loaded
Flag set after previous solutions are loaded.
Definition SystemCalibrator.h:572
virtual void set_solver(Solver *)
Set the algorithm used to solve the measurement equation.
Definition SystemCalibrator.C:196
Reference::To< UniScalar > diff_phase_variation
Time variation of differential phase.
Definition SystemCalibrator.h:389
void set_flux_calibrator(const FluxCalibrator *fluxcal)
Set the flux calibrator solution used to estimate calibrator Stokes.
Definition SystemCalibrator.C:705
virtual void submit_pulsar_data()
add all pulsar data constraints to measurement equation
Definition SystemCalibrator.C:1141
bool normalize_calibrated_by_invariant
Normalize pulsar Stokes parameters by the invariant interval.
Definition SystemCalibrator.h:488
virtual void add_epoch(const MJD &epoch)
Add an observational epoch.
Definition SystemCalibrator.C:250
virtual void set_report_data_and_model(bool flag=true)
Report on the data and model before and after the fit.
Definition SystemCalibrator.C:2565
void set_cal_intensity_threshold(float f)
Set the threshold used to reject CAL observations with no signal.
Definition SystemCalibrator.h:259
virtual unsigned get_nstate_pulsar() const
Get the number of pulsar polarization states in the model.
Definition SystemCalibrator.C:280
bool step_after_cal
Apply time step after rather than before cals.
Definition SystemCalibrator.h:482
virtual void set_impurity(MEAL::Real4 *)
Set the impurity transformation.
Definition SystemCalibrator.C:341
virtual void set_equation_configuration(const std::vector< std::string > &)
Set the measurement equation configuration options.
Definition SystemCalibrator.C:1758
virtual void set_invalid_reduced_chisq(float)
Set the reduced chisq above which a solution will be flagged invalid.
Definition SystemCalibrator.C:2545
Reference::To< VariableTransformationManager > projection
The projection transformation (overrides ProjectionCorrection)
Definition SystemCalibrator.h:360
virtual double get_invariant(Integration *subint, unsigned ichan)=0
Return the invariant for the specified integration and frequency channel.
BatchQueue queue
Controls the number of channels that may be simultaneously solved.
Definition SystemCalibrator.h:545
StepFinder * get_step_finder()
Get the algorithm used to automatically insert steps in response.
Definition SystemCalibrator.C:228
virtual void share(SystemCalibrator *other)
Share reception model and common transformations of other instance.
Definition SystemCalibrator.C:104
Reference::To< const CalibratorStokes > previous_cal
Previous solution of the calibrator Stokes parameters from which to copy initial guess.
Definition SystemCalibrator.h:566
std::map< unsigned, Reference::To< UniScalar > > response_variation
Temporal variation of response parameters.
Definition SystemCalibrator.h:380
virtual bool get_solved() const
Get the status of the model.
Definition SystemCalibrator.C:2170
virtual void set_normalize_by_invariant(bool flag=true)
Normalize each pulsar Stokes vector by the mean on-pulse invariant.
Definition SystemCalibrator.C:164
virtual void prepare_calibrator_estimate(Signal::Source)
Prepare any calibrator estimates.
Definition SystemCalibrator.C:1300
float invalid_chisq
The maximum reduced chisq before a fit will be flagged invalid.
Definition SystemCalibrator.h:506
virtual void init_model(unsigned ichan)
Initialize the SignalPath of the specified channel.
Definition SystemCalibrator.C:1639
float get_cal_polarization_threshold() const
Get the minimum degree of polarization of CAL observations.
Definition SystemCalibrator.h:268
std::vector< std::string > calibrator_filenames
The calibrators to be loaded after first pulsar observation.
Definition SystemCalibrator.h:467
virtual void add_step(const MJD &, Calibration::VariableBackend *)
Add a VariableBackend step at the specified MJD.
Definition SystemCalibrator.C:387
virtual void export_prepare() const =0
Prepare to export the solution in current state; e.g. for plotting.
bool guess_physical_calibrator_stokes
Ensure that first guess of calibrator Stokes parameters is physical.
Definition SystemCalibrator.h:500
double cal_outlier_threshold
Threshold used to reject outliers when computing CAL levels.
Definition SystemCalibrator.h:527
virtual void solve_prepare()
Prepare the measurement equations for fitting.
Definition SystemCalibrator.C:1824
unsigned get_ndata(unsigned ichan) const
Get the number of data points in the given frequency channel.
Definition SystemCalibrator.C:317
bool report_input_failed
Report the number of input failures.
Definition SystemCalibrator.h:518
bool get_prepared() const
Get the state of the prepared flag.
Definition SystemCalibrator.C:2165
Reference::To< const Calibration::VariableBackend > stepeach_calibrator
Step in backend response at each calibrator observation.
Definition SystemCalibrator.h:399
virtual void set_report_input_failed(bool flag=true)
Report on the number of failed attempts to add data.
Definition SystemCalibrator.C:2575
virtual void set_report_total_invariant(bool flag=true)
Report on the total invariant used to normalize each profile.
Definition SystemCalibrator.C:2570
Encapsulates known interstellar and ionospheric Faraday rotation.
Definition VariableFaradayRotation.h:19
Manager of variable transformations.
Definition VariableTransformationManager.h:20
Defines the PSRCHIVE library.
Definition CalSource.h:17

Generated using doxygen 1.14.0