Polarimetry.h
1 #ifndef _POLARIMETRY_HH
2 #define _POLARIMETRY_HH
3 
4 /* some polarimetry utilities */
5 
6 #include "TMultiGraph.h"
7 
8 class AnalysisWaveform;
9 
10 namespace polarimetry
11 {
12 
14  {
15 
16  public:
17 
18  StokesAnalysis(const AnalysisWaveform * H, const AnalysisWaveform *V, double correlate=0);
19  StokesAnalysis(const StokesAnalysis & other);
20  ~StokesAnalysis() { ; }
21 
26  int computeWindowedAverage(double minIfrac, double * I = 0, double * Q = 0, double * U = 0 ,double * V = 0, double * PoPerr = 0) const;
27 
28 
29 
30  TGraph & instI() { return *dI; }
31  TGraph & instQ() { return *dQ; }
32  TGraph & instU() { return *dU; }
33  TGraph & instV() { return *dV; }
34 
35  TGraph & cumuI() { return *cI; }
36  TGraph & cumuQ() { return *cQ; }
37  TGraph & cumuU() { return *cU; }
38  TGraph & cumuV() { return *cV; }
39 
40  double getAvgI() const { return avgI; }
41  double getAvgQ() const { return avgQ; }
42  double getAvgU() const { return avgU; }
43  double getAvgV() const { return avgV; }
44 
45  void getAvgs(double * I, double * Q, double * U, double * V) const
46  {
47  *I = avgI; *Q=avgQ; *U=avgU; *V=avgV;
48  }
49 
50  TMultiGraph & instGraphs() { return instantaneous; }
51  TMultiGraph & cumuGraphs() { return cumulative; }
52 
53  private:
54  TGraph * dI, *dQ, *dU, *dV;
55  TGraph * cI, *cQ, *cU, *cV;
56  double avgI, avgQ, avgU, avgV;
57  TMultiGraph instantaneous;
58  TMultiGraph cumulative;
59 
60 
61  };
62 
63 
64 
65 }
66 
67 #endif
int computeWindowedAverage(double minIfrac, double *I=0, double *Q=0, double *U=0, double *V=0, double *PoPerr=0) const
Definition: Polarimetry.cc:164
This class is intended to be the main storage vessel for ANITA waveforms. It is similar in principle ...