Logo ROOT   6.08/07
Reference Guide
TSpectrum2Transform.h
Go to the documentation of this file.
1 // @(#)root/spectrum:$Id$
2 // Author: Miroslav Morhac 25/09/06
3 
4 /*************************************************************************
5  * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
6  * All rights reserved. *
7  * *
8  * For the licensing terms see $ROOTSYS/LICENSE. *
9  * For the list of contributors see $ROOTSYS/README/CREDITS. *
10  *************************************************************************/
11 #ifndef ROOT_TSpectrum2Transform
12 #define ROOT_TSpectrum2Transform
13 
14 #ifndef ROOT_TNamed
15 #include "TNamed.h"
16 #endif
17 
18 class TSpectrum2Transform : public TObject {
19 protected:
20  Int_t fSizeX; ///< x length of transformed data
21  Int_t fSizeY; ///< y length of transformed data
22  Int_t fTransformType; ///< type of transformation (Haar, Walsh, Cosine, Sine, Fourier, Hartley, Fourier-Walsh, Fourier-Haar, Walsh-Haar, Cosine-Walsh, Cosine-Haar, Sine-Walsh, Sine-Haar)
23  Int_t fDegree; ///< degree of mixed transform, applies only for Fourier-Walsh, Fourier-Haar, Walsh-Haar, Cosine-Walsh, Cosine-Haar, Sine-Walsh, Sine-Haar transforms
24  Int_t fDirection; ///< forward or inverse transform
25  Int_t fXmin; ///< first channel x of filtered or enhanced region
26  Int_t fXmax; ///< last channel x of filtered or enhanced region
27  Int_t fYmin; ///< first channel y of filtered or enhanced region
28  Int_t fYmax; ///< last channel y of filtered or enhanced region
29  Double_t fFilterCoeff; ///< value set in the filtered region
30  Double_t fEnhanceCoeff; ///< multiplication coefficient applied in enhanced region;
31 public:
32  enum {
48  };
50  TSpectrum2Transform(Int_t sizeX, Int_t sizeY);
51  virtual ~TSpectrum2Transform();
52 
53 protected:
54  void BitReverse(Double_t *working_space,Int_t num);
55  void BitReverseHaar(Double_t *working_space,Int_t shift,Int_t num,Int_t start);
56  void FourCos2(Double_t **working_matrix,Double_t *working_vector,Int_t numx,Int_t numy,Int_t direction,Int_t type);
57  void Fourier(Double_t *working_space,Int_t num,Int_t hartley,Int_t direction,Int_t zt_clear);
58  void General2(Double_t **working_matrix,Double_t *working_vector,Int_t numx,Int_t numy,Int_t direction,Int_t type,Int_t degree);
59  Int_t GeneralExe(Double_t *working_space,Int_t zt_clear,Int_t num,Int_t degree,Int_t type);
60  Int_t GeneralInv(Double_t *working_space,Int_t num,Int_t degree,Int_t type);
61  void Haar(Double_t *working_space,Int_t num,Int_t direction);
62  void HaarWalsh2(Double_t **working_matrix,Double_t *working_vector,Int_t numx,Int_t numy,Int_t direction,Int_t type);
63  void Walsh(Double_t *working_space,Int_t num);
64 
65 public:
66  void Enhance(const Double_t **fSource, Double_t **fDest);
67  void FilterZonal(const Double_t **fSource, Double_t **fDest);
68  void SetDirection(Int_t direction);
69  void SetEnhanceCoeff(Double_t enhanceCoeff);
70  void SetFilterCoeff(Double_t filterCoeff);
72  void SetTransformType(Int_t transType, Int_t degree);
73  void Transform(const Double_t **fSource, Double_t **fDest);
74 
75  ClassDef(TSpectrum2Transform,1) //Spectrum2 Transformer, it calculates classic orthogonal 2D transforms
76 };
77 
78 #endif
void SetRegion(Int_t xmin, Int_t xmax, Int_t ymin, Int_t ymax)
This function sets the filtering or enhancement region:
void BitReverseHaar(Double_t *working_space, Int_t shift, Int_t num, Int_t start)
This function carries out bit-reverse reordering for Haar transform.
float xmin
Definition: THbookFile.cxx:93
Int_t fSizeY
y length of transformed data
Int_t fTransformType
type of transformation (Haar, Walsh, Cosine, Sine, Fourier, Hartley, Fourier-Walsh, Fourier-Haar, Walsh-Haar, Cosine-Walsh, Cosine-Haar, Sine-Walsh, Sine-Haar)
TSpectrum2Transform()
Default constructor.
virtual ~TSpectrum2Transform()
Destructor.
float ymin
Definition: THbookFile.cxx:93
Double_t fFilterCoeff
value set in the filtered region
int Int_t
Definition: RtypesCore.h:41
void SetDirection(Int_t direction)
This function sets the direction of the transform:
void Transform(const Double_t **fSource, Double_t **fDest)
This function transforms the source spectrum.
Int_t fXmax
last channel x of filtered or enhanced region
void Haar(Double_t *working_space, Int_t num, Int_t direction)
This function calculates Haar transform of a part of data.
#define ClassDef(name, id)
Definition: Rtypes.h:254
Int_t fYmax
last channel y of filtered or enhanced region
Int_t GeneralInv(Double_t *working_space, Int_t num, Int_t degree, Int_t type)
This function calculates inverse generalized (mixed) transforms Function parameters: ...
void FilterZonal(const Double_t **fSource, Double_t **fDest)
This function transforms the source spectrum.
Advanced 2-dimensional orthogonal transform functions.
float ymax
Definition: THbookFile.cxx:93
void SetFilterCoeff(Double_t filterCoeff)
This function sets the filter coefficient:
Int_t GeneralExe(Double_t *working_space, Int_t zt_clear, Int_t num, Int_t degree, Int_t type)
This function calculates generalized (mixed) transforms of different degrees.
Int_t fSizeX
x length of transformed data
float xmax
Definition: THbookFile.cxx:93
void Enhance(const Double_t **fSource, Double_t **fDest)
This function transforms the source spectrum.
void SetEnhanceCoeff(Double_t enhanceCoeff)
This function sets the enhancement coefficient:
void SetTransformType(Int_t transType, Int_t degree)
This function sets the following parameters for transform:
void Walsh(Double_t *working_space, Int_t num)
This function calculates Walsh transform of a part of data.
double Double_t
Definition: RtypesCore.h:55
void HaarWalsh2(Double_t **working_matrix, Double_t *working_vector, Int_t numx, Int_t numy, Int_t direction, Int_t type)
This function calculates 2D Haar and Walsh transforms Function parameters:
int type
Definition: TGX11.cxx:120
void BitReverse(Double_t *working_space, Int_t num)
This function carries out bit-reverse reordering of data.
Int_t fDegree
degree of mixed transform, applies only for Fourier-Walsh, Fourier-Haar, Walsh-Haar, Cosine-Walsh, Cosine-Haar, Sine-Walsh, Sine-Haar transforms
void Fourier(Double_t *working_space, Int_t num, Int_t hartley, Int_t direction, Int_t zt_clear)
This function calculates Fourier based transform of a part of data.
Int_t fYmin
first channel y of filtered or enhanced region
Mother of all ROOT objects.
Definition: TObject.h:37
void General2(Double_t **working_matrix, Double_t *working_vector, Int_t numx, Int_t numy, Int_t direction, Int_t type, Int_t degree)
This function calculates generalized (mixed) 2D transforms Function parameters:
Double_t fEnhanceCoeff
multiplication coefficient applied in enhanced region;
Int_t fXmin
first channel x of filtered or enhanced region
Int_t fDirection
forward or inverse transform
void FourCos2(Double_t **working_matrix, Double_t *working_vector, Int_t numx, Int_t numy, Int_t direction, Int_t type)
This function calculates 2D Fourier based transforms Function parameters: