Logo Coherent WaveBurst  
Reference Guide
Logo
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Wavelet.hh
Go to the documentation of this file.
1 // Wavelet Analysis Tool
2 //$Id: Wavelet.hh,v 1.2 2001/12/18 18:50:13 klimenko Exp $
3 
4 #ifndef WAVELET_HH
5 #define WAVELET_HH
6 
7 #include "watfun.hh"
8 #include <iostream>
9 #include "TNamed.h"
10 
11 using std::cout;
12 using std::endl;
13 
14 //namespace datacondAPIwat {
15 //namespace wat {
16 
17 //: constants which rule the boundary processing
23 
24 
25 //: wavelet types
26 enum WAVETYPE {HAAR,
31  WDMT};
32 
33 class Wavelet : public TNamed // Wavelet base class
34 {
35  public:
36 
37 // constructors
38 
39  //: constructor
40  Wavelet(int mH=1, int mL=1, int tree=0, enum BORDER border=B_CYCLE);
41 
42  //: copy constructor
43  Wavelet(const Wavelet &);
44 
45  //: Virtual destructor
46  virtual ~Wavelet();
47 
48  //: duplicate on heap
49  //!return: Wavelet* - duplicate of *this, allocated on heap
50  virtual Wavelet* Clone() const;
51 
52 // access functions
53 
54  //: get array index of the first sample for (level,layer)
55  virtual int getOffset(int,int);
56  //: get offset from level and frequency index
57  virtual int convertF2O(int,int);
58  //: get frequency index from level and offset
59  virtual int convertO2F(int,int);
60  //: get frequency index for (level,layer)
61  virtual int convertL2F(int,int);
62  //: get layer index for (level,frequency index)
63  virtual int convertF2L(int,int);
64 
65 // mutators
66 
67  //: set level
68  inline virtual void reset() { m_Level = 0; }
69  inline virtual void setLevel(int level) { m_Level = level; };
70  inline virtual int getLevel() { return m_Level; };
71  inline virtual int maxLayer() { return m_Layer; };
72  inline virtual void parity(bool f) { m_Parity = f; };
73  inline virtual void heterodine(bool f) { m_Heterodine = f; };
74  inline virtual bool parity() { return m_Parity; };
75  inline virtual bool heterodine() { return m_Heterodine; };
76  inline virtual int getMaxLevel(int);
77 
78  //: check type of wavelet tree
79  inline bool BinaryTree(){ return (m_TreeType) ? true : false; }
80 
81  // print wavelet parameters
82  void print(); // *MENU*
83  virtual void Browse(TBrowser *b) {print();}
84 
85 // data members
86 
87  //: wavelet type
89 
90  //: borders handling: see BORDER constants definitions above
92 
93  //: wavelet tree type: 0-diadic, 1-binary tree
95 
96  //: current level of decomposition
97  int m_Level;
98 
99  //: number of layers
100  int m_Layer;
101 
102  //: number of highpass wavelet filter coefficients
103  int m_H;
104 
105  //: number of lowpass wavelet filter coefficients
106  int m_L;
107 
108  bool m_Heterodine; // default is false
109  bool m_Parity; // default is true (0 delay for symmetric wavelets)
110 
111  ClassDef(Wavelet,1)
112 
113 }; // class Wavelet
114 
115 // inlines
116 inline int Wavelet::getMaxLevel(int n)
117 {
118  int maxLevel = 0;
119  for(; (n>=2*m_H) && (n>=2*m_L) && !(n&1); n/=2) maxLevel++;
120  return maxLevel;
121 }
122 
123 
124 //}; // namespace wat
125 //}; // namespace datacondAPI
126 
127 #endif // WAVELET_HH
128 
129 
130 
131 
132 
133 
134 
135 
136 
137 
138 
139 
140 
141 
142 
143 
144 
TTree * tree
Definition: TimeSortTree.C:20
bool m_Parity
Definition: Wavelet.hh:109
Definition: Wavelet.hh:26
virtual void parity(bool f)
Definition: Wavelet.hh:72
tuple f
Definition: cwb_online.py:91
virtual int getLevel()
Definition: Wavelet.hh:70
int n
Definition: cwb_net.C:10
int m_TreeType
Definition: Wavelet.hh:94
BORDER
Definition: Wavelet.hh:18
virtual void setLevel(int level)
Definition: Wavelet.hh:69
virtual int convertL2F(int, int)
Definition: Wavelet.cc:62
virtual void reset()
Definition: Wavelet.hh:68
virtual int maxLayer()
Definition: Wavelet.hh:71
virtual void Browse(TBrowser *b)
Definition: Wavelet.hh:83
virtual int convertF2O(int, int)
Definition: Wavelet.cc:92
int m_L
Definition: Wavelet.hh:106
virtual bool heterodine()
Definition: Wavelet.hh:75
virtual void heterodine(bool f)
Definition: Wavelet.hh:73
virtual bool parity()
Definition: Wavelet.hh:74
virtual int convertF2L(int, int)
Definition: Wavelet.cc:75
enum BORDER m_Border
Definition: Wavelet.hh:91
Definition: Wavelet.hh:31
Definition: Wavelet.hh:30
virtual int convertO2F(int, int)
Definition: Wavelet.cc:87
int m_Level
Definition: Wavelet.hh:97
bool m_Heterodine
Definition: Wavelet.hh:108
bool BinaryTree()
Definition: Wavelet.hh:79
void print()
Definition: Wavelet.cc:97
virtual Wavelet * Clone() const
return: Wavelet* - duplicate of *this, allocated on heap
Definition: Wavelet.cc:42
Wavelet(int mH=1, int mL=1, int tree=0, enum BORDER border=B_CYCLE)
Definition: Wavelet.cc:14
virtual int getOffset(int, int)
Definition: Wavelet.cc:51
WAVETYPE
Definition: Wavelet.hh:26
enum WAVETYPE m_WaveType
Definition: Wavelet.hh:88
virtual int getMaxLevel(int)
Definition: Wavelet.hh:116
int m_Layer
Definition: Wavelet.hh:100
virtual ~Wavelet()
Definition: Wavelet.cc:39
int m_H
Definition: Wavelet.hh:103