Logo ROOT   6.21/01
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 #include "TNamed.h"
15 
16 class TSpectrum2Transform : public TObject {
17 protected:
18  Int_t fSizeX; ///< x length of transformed data
19  Int_t fSizeY; ///< y length of transformed data
20  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)
21  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
22  Int_t fDirection; ///< forward or inverse transform
23  Int_t fXmin; ///< first channel x of filtered or enhanced region
24  Int_t fXmax; ///< last channel x of filtered or enhanced region
25  Int_t fYmin; ///< first channel y of filtered or enhanced region
26  Int_t fYmax; ///< last channel y of filtered or enhanced region
27  Double_t fFilterCoeff; ///< value set in the filtered region
28  Double_t fEnhanceCoeff; ///< multiplication coefficient applied in enhanced region;
29 public:
30  enum {
46  };
48  TSpectrum2Transform(Int_t sizeX, Int_t sizeY);
49  virtual ~TSpectrum2Transform();
50 
51 protected:
52  void BitReverse(Double_t *working_space,Int_t num);
53  void BitReverseHaar(Double_t *working_space,Int_t shift,Int_t num,Int_t start);
54  void FourCos2(Double_t **working_matrix,Double_t *working_vector,Int_t numx,Int_t numy,Int_t direction,Int_t type);
55  void Fourier(Double_t *working_space,Int_t num,Int_t hartley,Int_t direction,Int_t zt_clear);
56  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);
57  Int_t GeneralExe(Double_t *working_space,Int_t zt_clear,Int_t num,Int_t degree,Int_t type);
58  Int_t GeneralInv(Double_t *working_space,Int_t num,Int_t degree,Int_t type);
59  void Haar(Double_t *working_space,Int_t num,Int_t direction);
60  void HaarWalsh2(Double_t **working_matrix,Double_t *working_vector,Int_t numx,Int_t numy,Int_t direction,Int_t type);
61  void Walsh(Double_t *working_space,Int_t num);
62 
63 public:
64  void Enhance(const Double_t **fSource, Double_t **fDest);
65  void FilterZonal(const Double_t **fSource, Double_t **fDest);
66  void SetDirection(Int_t direction);
67  void SetEnhanceCoeff(Double_t enhanceCoeff);
68  void SetFilterCoeff(Double_t filterCoeff);
70  void SetTransformType(Int_t transType, Int_t degree);
71  void Transform(const Double_t **fSource, Double_t **fDest);
72 
73  ClassDef(TSpectrum2Transform,1) //Spectrum2 Transformer, it calculates classic orthogonal 2D transforms
74 };
75 
76 #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:326
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.
static constexpr double degree
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: