CARMA C++
TipperReduction.h
1 #ifndef _TIPPERREDUCTIONSET_H
2 #define _TIPPERREDUCTIONSET_H
3 
4 
5 namespace carma
6 {
7  namespace tipper
8  {
9 
10  class Stat {
11  public:
12  Stat();
13  double samp(); // Retrieve last sample
14  double ave(); // 1st moment
15  double mom2(); // 2nd moment
16  double rms();
17  double mse(); // mean squared error (rms**2)
18  void add(double x); // Add in another sample
19  void init(); // Clear all sums
20  int n(); // Number of samples
21  private:
22  int num; // Number of samples
23  double x; // Most recent sample (add())
24  double xSum;
25  double xxSum;
26  };
27 
28 
29 
30  class TipperReduction
31  {
32  public:
33  TipperReduction( TipperDataSet &t );
34  int seq;
35  double mjd;
36  const double LOfudge;
37  const double Tfudge;
38  const double Gfudge;
39  double aveGain; // From 2 temp loads
40  double aveTa; // Ambient temp
41  double aveTc; // Cal temp (ref temp)
42  double tauZen;
43  double gainTip; // From best fit of the tip curve
44  double tauTip; // Fit tip curve
45  double rmsTauTip;
46  double tauTipPE; // Percent Error
47  double gainTipIter; // From best fit of the tip curve, iterated
48  double tauTipIter;
49  double rmsTauTipIter;
50  double tauTipIterPE; // Percent Error
51  void dump();
52  private:
53  TipperDataSet &_tip;
54  int n; // Number of readings
55  double gainEqn;
56  double tauEqn;
57  double rmsTauEqn;
58  void makeAves();
59  void solveTauZen();
61  int solveTipEqn(double gain, bool dolog);
63  void solveTauTip();
64  void solveTauTipIter();
65  };
66 
67  } // namespace tipper
68 } // namespace carma
69 
70 
71 #endif // _TIPPERREDUCTIONSET_H