source: trunk/Mars/mhft/MHexagonFFT.h@ 19935

Last change on this file since 19935 was 5691, checked in by tbretz, 20 years ago
*** empty log message ***
File size: 1.7 KB
Line 
1#ifndef MARS_MHexagonFFT
2#define MARS_MHexagonFFT
3
4#ifndef ROOT_TObject
5#include <TObject.h>
6#endif
7#ifndef ROOT_MArrayF
8#include "MArrayF.h"
9#endif
10#ifndef ROOT_MArrayI
11#include "MArrayI.h"
12#endif
13
14class MHexagonFFT : public TObject
15{
16private:
17 static float P(int j, int n)
18 {
19 const Int_t a = (j+n)%34 ? 0 : 1;
20 const Int_t b = j%34 ? 0 : 1;
21 const Int_t c = n%34 ? 0 : 1;
22
23 return 6./((1+a)*(1+b+c));
24 }
25
26 Int_t fNum;
27
28 MArrayF fPsi;
29
30 MArrayI fM;
31 MArrayI fK;
32
33 MArrayF fP;
34
35 MArrayI fIdx;
36
37public:
38 MHexagonFFT();
39 MHexagonFFT(Float_t scale, Int_t num)
40 {
41 Prepare(scale, num);
42 }
43
44 void Prepare(Float_t scale, Int_t num);
45
46 void TransformFastFWD(const MArrayD &inre, MArrayD &outre, MArrayD &outim) const;
47 void TransformFastBWD(const MArrayD &inre, const MArrayD &inim, MArrayD &outre) const;
48
49 void TransformSlow(const MArrayD &inre,
50 const MArrayD &inim,
51 MArrayD &outre,
52 MArrayD &outim,
53 Float_t scale,
54 Bool_t fwd=kTRUE);
55 /*
56 void DGT2(const MArrayD &inre,
57 const MArrayD &inim,
58 MArrayD &outre,
59 MArrayD &outim,
60 Float_t scale,
61 Bool_t fwd=kTRUE);
62 void DGT3(const MArrayD &inre,
63 const MArrayD &inim,
64 MArrayD &outre,
65 MArrayD &outim,
66 Float_t scale,
67 Bool_t fwd=kTRUE);
68 void DGT4(const MArrayD &inre,
69 const MArrayD &inim,
70 MArrayD &outre,
71 MArrayD &outim,
72 Float_t scale,
73 Bool_t fwd=kTRUE);
74 */
75 ClassDef(MHexagonFFT,0)
76};
77
78#endif
Note: See TracBrowser for help on using the repository browser.