New TPC monitoring package from Stefan Kniege. The monitoring package can be started...
[u/mrichter/AliRoot.git] / TPC / AliTPCMonitorFFT.h
1 #ifndef ALITPCMONITORFFT_H
2 #define ALITPCMONITORFFT_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 /* $Id$ */
8
9
10 ////////////////////////////////////////////////////////////////////////
11 //
12 // AliTPCMonitorFFT class
13 //
14 // Wrapper class to perform Fast Fourier Transformations
15 // Code based on Gnu Scientific Library 
16 // See documentation of gsl for further details
17 // 
18 // Author: Stefan Kniege, IKF, Frankfurt
19 //       
20 //
21 /////////////////////////////////////////////////////////////////////////
22
23
24
25 #include <iostream> 
26 #include "TNamed.h"
27 #include <math.h>
28 #define  REAL(a,stride,i) ((a)[2*(stride)*(i)])
29 #define  IMAG(a,stride,i) ((a)[2*(stride)*(i)+1])
30 using namespace std; 
31
32 class AliTPCMonitorFFT : public TNamed { 
33  public:
34     
35     AliTPCMonitorFFT();
36     ~AliTPCMonitorFFT(); 
37     
38     Int_t     ComplexRadix2ForwardWrap(  Double_t* data, Int_t stride, size_t n ); 
39     Int_t     ComplexRadix2BackwardWrap( Double_t* data, Int_t stride, size_t n );  
40     Int_t     ComplexRadix2InverseWrap(  Double_t* data, Int_t stride, size_t n ); 
41     Int_t     ComplexRadix2TransformWrap(Double_t* data, Int_t stride, size_t n, Int_t sign ); 
42     Int_t     ComplexBitReverseOrderWrap(Double_t* data, Int_t stride, size_t n, Int_t logn); 
43     Int_t     FFTBinaryLogn(size_t n);
44
45  private:
46     
47     ClassDef(AliTPCMonitorFFT,1);
48 };
49 #endif
50