BasebandArchive.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/Base/Formats/Timer/Pulsar/BasebandArchive.h
10
11#ifndef __Baseband_Archive_h
12#define __Baseband_Archive_h
13
14#include "Pulsar/TimerArchive.h"
15#include "Pulsar/baseband_header.h"
16
17#include "Pulsar/Passband.h"
18#include "Pulsar/dspReduction.h"
19#include "Pulsar/TwoBitStats.h"
20
21namespace Pulsar {
22
25
26 public:
27
30
32 BasebandArchive (const BasebandArchive& archive);
33
36
38 const BasebandArchive& operator = (const BasebandArchive& archive);
39
41 BasebandArchive (const Archive& archive);
42
44 void copy (const Archive& archive);
45
47 virtual BasebandArchive* clone () const;
48
49 // //////////////////////////////////////////////////////////////////
50 //
51 // BasebandArchive specific
52 //
53
55 int get_npassband () const { return bhdr.pband_channels; };
57 const std::vector<float>& get_passband (unsigned channel) const;
58
60 int get_nhistogram () const { return bhdr.analog_channels; };
62 const std::vector<float>& get_histogram (unsigned channel) const;
63
65 void set_hanning_smoothing_factor (int factor);
66
69
71 float get_tolerance () const;
72
74 const char* get_apodizing_name () const;
75
78
80 bool get_coherent_calibration () const;
81
82
83 protected:
84
85 friend class Archive::Advocate<BasebandArchive>;
86
87 // Advocates the use of the BasebandArchive plugin
88 class Agent : public Archive::Advocate<BasebandArchive> {
89
90 public:
91
93 Agent () {}
94
96 bool advocate (const char* filename);
97
99 std::string get_name () { return "Baseband"; }
100
102 std::string get_description ();
103
104 };
105
107 baseband_header bhdr;
108
110 void set_header ();
111
113 void set_reduction ();
114
116 void backend_load (FILE* fptr);
117
119 void backend_unload (FILE* fptr) const;
120
122 void convert_hdr_Endian ();
123
125 void correct ();
126
128 void set_be_data_size ();
129
131 void check_be_data_size ();
132
134 void check_extensions ();
135
136 void init ();
137
140
141 };
142
143
144}
145
146#endif
147
148
The primary interface to pulsar observational data.
Definition Archive.h:46
Pulsar Archive produced by psrdisp.
Definition BasebandArchive.h:24
bool get_coherent_calibration() const
Return true if phase-coherent polarimetric calibration was performed.
Definition BasebandArchive.C:732
void fix_header_memory_alignment()
Correct memory alignment error in pre-Version 5 headers.
Definition BasebandArchive.C:420
void set_reduction()
Update the reduction attribute with the current state.
Definition BasebandArchive.C:326
void backend_unload(FILE *fptr) const
Unload BasebandArchive specific information.
Definition BasebandArchive.C:616
void check_extensions()
Check the Passband and TwoBitStats Extensions.
Definition BasebandArchive.C:289
const BasebandArchive & operator=(const BasebandArchive &archive)
Assignment operator.
Definition BasebandArchive.C:70
float get_tolerance() const
Get the tolerance (old - disused)
Definition BasebandArchive.C:753
const std::vector< float > & get_passband(unsigned channel) const
Return a reference to the bandpass in the given channel.
Definition BasebandArchive.C:706
int get_npassband() const
Return the number of passbands.
Definition BasebandArchive.h:55
void set_header()
Update the baseband_header struct with the current state.
Definition BasebandArchive.C:236
BasebandArchive()
Default constructor.
Definition BasebandArchive.C:37
virtual BasebandArchive * clone() const
Return a pointer to a new copy constructed instance equal to this.
Definition BasebandArchive.C:121
~BasebandArchive()
Destructor.
Definition BasebandArchive.C:60
const char * get_apodizing_name() const
Get the name of the apodizing function.
Definition BasebandArchive.C:758
baseband_header bhdr
Baseband data reduction specific header information.
Definition BasebandArchive.h:107
void check_be_data_size()
Check the backend data size information without reseting header.
Definition BasebandArchive.C:377
int get_hanning_smoothing_factor() const
Get the hanning smoothing factor.
Definition BasebandArchive.C:745
void correct()
Over-ride TimerArchive::correct.
Definition BasebandArchive.C:360
void set_hanning_smoothing_factor(int factor)
Set the hanning smoothing factor.
Definition BasebandArchive.C:736
const std::vector< float > & get_histogram(unsigned channel) const
Return a reference to the digitization histogram in the given channel.
Definition BasebandArchive.C:717
void backend_load(FILE *fptr)
Load BasebandArchive specific information.
Definition BasebandArchive.C:438
void set_be_data_size()
Set the backend data size information in the timer header.
Definition BasebandArchive.C:371
int get_nhistogram() const
Return the number of analog channels.
Definition BasebandArchive.h:60
void convert_hdr_Endian()
Convert the endian of baseband_header.
Definition BasebandArchive.C:200
bool get_scattered_power_corrected() const
Return true if data was scattered power corrected.
Definition BasebandArchive.C:728
void copy(const Archive &archive)
Copy all of the class attributes and the selected Integration data.
Definition BasebandArchive.C:94
TimerArchive()
Default constructor.
Definition TimerArchive.C:31
Defines the PSRCHIVE library.
Definition CalSource.h:17

Generated using doxygen 1.14.0