ROOT  6.06/09
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 //////////////////////////////////////////////////////////////////////////
15 // //
16 // TSpectrum2Transform //
17 // //
18 // Class to carry out transforms of 2D spectra, its filtering and //
19 // enhancement. It allows to calculate classic Fourier, Cosine, Sin, //
20 // Hartley, Walsh, Haar transforms as well as mixed transforms (Fourier-//
21 // Walsh, Fourier-Haar, Walsh-Haar, Cosine-Walsh, Cosine-Haar, Sin-Walsh//
22 // and Sin-Haar). All the transforms are fast. //
23 // //
24 //////////////////////////////////////////////////////////////////////////
25 
26 #ifndef ROOT_TNamed
27 #include "TNamed.h"
28 #endif
29 
30 class TSpectrum2Transform : public TObject {
31 protected:
32  Int_t fSizeX; //x length of transformed data
33  Int_t fSizeY; //y length of transformed data
34  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)
35  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
36  Int_t fDirection; //forward or inverse transform
37  Int_t fXmin; //first channel x of filtered or enhanced region
38  Int_t fXmax; //last channel x of filtered or enhanced region
39  Int_t fYmin; //first channel y of filtered or enhanced region
40  Int_t fYmax; //last channel y of filtered or enhanced region
41  Double_t fFilterCoeff; //value set in the filtered region
42  Double_t fEnhanceCoeff; //multiplication coefficient applied in enhanced region;
43 public:
44  enum {
60  };
62  TSpectrum2Transform(Int_t sizeX, Int_t sizeY);
63  virtual ~TSpectrum2Transform();
64 
65 protected:
66  void BitReverse(Double_t *working_space,Int_t num);
67  void BitReverseHaar(Double_t *working_space,Int_t shift,Int_t num,Int_t start);
68  void FourCos2(Double_t **working_matrix,Double_t *working_vector,Int_t numx,Int_t numy,Int_t direction,Int_t type);
69  void Fourier(Double_t *working_space,Int_t num,Int_t hartley,Int_t direction,Int_t zt_clear);
70  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);
71  Int_t GeneralExe(Double_t *working_space,Int_t zt_clear,Int_t num,Int_t degree,Int_t type);
72  Int_t GeneralInv(Double_t *working_space,Int_t num,Int_t degree,Int_t type);
73  void Haar(Double_t *working_space,Int_t num,Int_t direction);
74  void HaarWalsh2(Double_t **working_matrix,Double_t *working_vector,Int_t numx,Int_t numy,Int_t direction,Int_t type);
75  void Walsh(Double_t *working_space,Int_t num);
76 
77 public:
78  void Enhance(const Double_t **fSource, Double_t **fDest);
79  void FilterZonal(const Double_t **fSource, Double_t **fDest);
80  void SetDirection(Int_t direction);
81  void SetEnhanceCoeff(Double_t enhanceCoeff);
82  void SetFilterCoeff(Double_t filterCoeff);
84  void SetTransformType(Int_t transType, Int_t degree);
85  void Transform(const Double_t **fSource, Double_t **fDest);
86 
87  ClassDef(TSpectrum2Transform,1) //Spectrum2 Transformer, it calculates classic orthogonal 2D transforms
88 };
89 
90 #endif
void SetRegion(Int_t xmin, Int_t xmax, Int_t ymin, Int_t ymax)
SETTER FUNCION.
void BitReverseHaar(Double_t *working_space, Int_t shift, Int_t num, Int_t start)
AUXILIARY FUNCION // // This function carries out bir-reverse reordering for Haar transform // Functi...
float xmin
Definition: THbookFile.cxx:93
virtual ~TSpectrum2Transform()
destructor
float ymin
Definition: THbookFile.cxx:93
int Int_t
Definition: RtypesCore.h:41
void SetDirection(Int_t direction)
SETTER FUNCION.
void Transform(const Double_t **fSource, Double_t **fDest)
void Haar(Double_t *working_space, Int_t num, Int_t direction)
AUXILIARY FUNCION // // This function calculates Haar transform of a part of data // Function paramet...
#define ClassDef(name, id)
Definition: Rtypes.h:254
Int_t GeneralInv(Double_t *working_space, Int_t num, Int_t degree, Int_t type)
AUXILIARY FUNCION // // This function calculates inverse generalized (mixed) transforms // Function p...
void FilterZonal(const Double_t **fSource, Double_t **fDest)
Advanced 2-dimentional orthogonal transform functions.
float ymax
Definition: THbookFile.cxx:93
void SetFilterCoeff(Double_t filterCoeff)
SETTER FUNCION.
Int_t GeneralExe(Double_t *working_space, Int_t zt_clear, Int_t num, Int_t degree, Int_t type)
AUXILIARY FUNCION // // This function calculates generalized (mixed) transforms of different degrees/...
float xmax
Definition: THbookFile.cxx:93
void Enhance(const Double_t **fSource, Double_t **fDest)
void SetEnhanceCoeff(Double_t enhanceCoeff)
SETTER FUNCION.
void SetTransformType(Int_t transType, Int_t degree)
SETTER FUNCION.
void Walsh(Double_t *working_space, Int_t num)
AUXILIARY FUNCION // // This function calculates Walsh transform of a part of data // Function parame...
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)
AUXILIARY FUNCION // // 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)
AUXILIARY FUNCION // // This function carries out bir-reverse reordering of data // Function paramete...
void Fourier(Double_t *working_space, Int_t num, Int_t hartley, Int_t direction, Int_t zt_clear)
AUXILIARY FUNCION // // This function calculates Fourier based transform of a part of data // Functio...
Mother of all ROOT objects.
Definition: TObject.h: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)
AUXILIARY FUNCION // // This function calculates generalized (mixed) 2D transforms // Function parame...
void FourCos2(Double_t **working_matrix, Double_t *working_vector, Int_t numx, Int_t numy, Int_t direction, Int_t type)
AUXILIARY FUNCION // // This function calculates 2D Fourier based transforms // Function parameters: ...