ROOT
6.06/09
Reference Guide
ROOT Home Page
Main Page
Related Pages
User's Classes
Namespaces
All Classes
Files
Release Notes
File List
File Members
hist
spectrum
inc
TSpectrumTransform.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-2006, 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_TSpectrumTransform
12
#define ROOT_TSpectrumTransform
13
14
//////////////////////////////////////////////////////////////////////////
15
// //
16
// TSpectrumTransform //
17
// //
18
// Class to carry out transforms of 1D 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
TH1
;
31
32
class
TSpectrumTransform
:
public
TNamed
{
33
34
protected
:
35
Int_t
fSize
;
//length of transformed data
36
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)
37
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
38
Int_t
fDirection
;
//forward or inverse transform
39
Int_t
fXmin
;
//first channel of filtered or enhanced region
40
Int_t
fXmax
;
//last channel 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
44
public
:
45
enum
{
46
kTransformHaar
=0,
47
kTransformWalsh
=1,
48
kTransformCos
=2,
49
kTransformSin
=3,
50
kTransformFourier
=4,
51
kTransformHartley
=5,
52
kTransformFourierWalsh
=6,
53
kTransformFourierHaar
=7,
54
kTransformWalshHaar
=8,
55
kTransformCosWalsh
=9,
56
kTransformCosHaar
=10,
57
kTransformSinWalsh
=11,
58
kTransformSinHaar
=12,
59
kTransformForward
=0,
60
kTransformInverse
=1
61
};
62
TSpectrumTransform
();
63
TSpectrumTransform
(
Int_t
size);
64
virtual
~TSpectrumTransform
();
65
66
protected
:
67
void
BitReverse
(
Double_t
*working_space,
Int_t
num);
68
void
BitReverseHaar
(
Double_t
*working_space,
Int_t
shift,
Int_t
num,
Int_t
start);
69
void
Fourier
(
Double_t
*working_space,
Int_t
num,
Int_t
hartley,
Int_t
direction,
Int_t
zt_clear);
70
Int_t
GeneralExe
(
Double_t
*working_space,
Int_t
zt_clear,
Int_t
num,
Int_t
degree,
Int_t
type
);
71
Int_t
GeneralInv
(
Double_t
*working_space,
Int_t
num,
Int_t
degree,
Int_t
type
);
72
void
Haar
(
Double_t
*working_space,
Int_t
num,
Int_t
direction);
73
void
Walsh
(
Double_t
*working_space,
Int_t
num);
74
75
public
:
76
void
Enhance
(
const
Double_t
*source,
Double_t
*destVector);
77
void
FilterZonal
(
const
Double_t
*source,
Double_t
*destVector);
78
void
SetDirection
(
Int_t
direction);
79
void
SetEnhanceCoeff
(
Double_t
enhanceCoeff);
80
void
SetFilterCoeff
(
Double_t
filterCoeff);
81
void
SetRegion
(
Int_t
xmin
,
Int_t
xmax
);
82
void
SetTransformType
(
Int_t
transType,
Int_t
degree);
83
void
Transform
(
const
Double_t
*source,
Double_t
*destVector);
84
85
ClassDef
(
TSpectrumTransform
,1)
//Spectrum Transformer, it calculates classic orthogonal 1D transforms
86
};
87
88
89
#endif
90
TSpectrumTransform::fXmax
Int_t fXmax
Definition:
TSpectrumTransform.h:40
TSpectrumTransform::~TSpectrumTransform
virtual ~TSpectrumTransform()
destructor
Definition:
TSpectrumTransform.cxx:115
xmin
float xmin
Definition:
THbookFile.cxx:93
TSpectrumTransform::kTransformForward
Definition:
TSpectrumTransform.h:59
TSpectrumTransform::fDirection
Int_t fDirection
Definition:
TSpectrumTransform.h:38
TSpectrumTransform::SetTransformType
void SetTransformType(Int_t transType, Int_t degree)
SETTER FUNCION.
Definition:
TSpectrumTransform.cxx:2691
TSpectrumTransform::fSize
Int_t fSize
Definition:
TSpectrumTransform.h:35
Int_t
int Int_t
Definition:
RtypesCore.h:41
TSpectrumTransform::kTransformFourier
Definition:
TSpectrumTransform.h:50
TSpectrumTransform::kTransformSinWalsh
Definition:
TSpectrumTransform.h:57
TSpectrumTransform
Advanced 1-dimentional orthogonal transform functions.
Definition:
TSpectrumTransform.h:32
TSpectrumTransform::fXmin
Int_t fXmin
Definition:
TSpectrumTransform.h:39
TSpectrumTransform::kTransformHaar
Definition:
TSpectrumTransform.h:46
TSpectrumTransform::kTransformInverse
Definition:
TSpectrumTransform.h:60
TNamed.h
ClassDef
#define ClassDef(name, id)
Definition:
Rtypes.h:254
TSpectrumTransform::kTransformSinHaar
Definition:
TSpectrumTransform.h:58
TNamed
The TNamed class is the base class for all named ROOT classes.
Definition:
TNamed.h:33
TSpectrumTransform::Transform
void Transform(const Double_t *source, Double_t *destVector)
ONE-DIMENSIONAL TRANSFORM FUNCTION This function transforms the source spectrum.
Definition:
TSpectrumTransform.cxx:744
TSpectrumTransform::SetEnhanceCoeff
void SetEnhanceCoeff(Double_t enhanceCoeff)
SETTER FUNCION.
Definition:
TSpectrumTransform.cxx:2771
TSpectrumTransform::FilterZonal
void FilterZonal(const Double_t *source, Double_t *destVector)
ONE-DIMENSIONAL FILTER ZONAL FUNCTION This function transforms the source spectrum.
Definition:
TSpectrumTransform.cxx:1487
TSpectrumTransform::kTransformCosWalsh
Definition:
TSpectrumTransform.h:55
TSpectrumTransform::fFilterCoeff
Double_t fFilterCoeff
Definition:
TSpectrumTransform.h:41
TSpectrumTransform::GeneralInv
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...
Definition:
TSpectrumTransform.cxx:612
TSpectrumTransform::kTransformWalshHaar
Definition:
TSpectrumTransform.h:54
TSpectrumTransform::kTransformHartley
Definition:
TSpectrumTransform.h:51
TSpectrumTransform::kTransformSin
Definition:
TSpectrumTransform.h:49
TSpectrumTransform::SetRegion
void SetRegion(Int_t xmin, Int_t xmax)
SETTER FUNCION.
Definition:
TSpectrumTransform.cxx:2723
TSpectrumTransform::Haar
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...
Definition:
TSpectrumTransform.cxx:131
xmax
float xmax
Definition:
THbookFile.cxx:93
TSpectrumTransform::BitReverse
void BitReverse(Double_t *working_space, Int_t num)
AUXILIARY FUNCION // // This function carries out bir-reverse reordering of data // Function paramete...
Definition:
TSpectrumTransform.cxx:272
TSpectrumTransform::GeneralExe
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/...
Definition:
TSpectrumTransform.cxx:491
Double_t
double Double_t
Definition:
RtypesCore.h:55
TSpectrumTransform::kTransformCos
Definition:
TSpectrumTransform.h:48
type
int type
Definition:
TGX11.cxx:120
TH1
The TH1 histogram class.
Definition:
TH1.h:80
TSpectrumTransform::fEnhanceCoeff
Double_t fEnhanceCoeff
Definition:
TSpectrumTransform.h:42
TSpectrumTransform::fTransformType
Int_t fTransformType
Definition:
TSpectrumTransform.h:36
TSpectrumTransform::fDegree
Int_t fDegree
Definition:
TSpectrumTransform.h:37
TSpectrumTransform::SetFilterCoeff
void SetFilterCoeff(Double_t filterCoeff)
SETTER FUNCION.
Definition:
TSpectrumTransform.cxx:2758
TSpectrumTransform::TSpectrumTransform
TSpectrumTransform()
TSpectrumTransform::kTransformWalsh
Definition:
TSpectrumTransform.h:47
TSpectrumTransform::Enhance
void Enhance(const Double_t *source, Double_t *destVector)
ONE-DIMENSIONAL ENHANCE ZONAL FUNCTION This function transforms the source spectrum.
Definition:
TSpectrumTransform.cxx:2096
TSpectrumTransform::Fourier
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...
Definition:
TSpectrumTransform.cxx:315
TSpectrumTransform::Walsh
void Walsh(Double_t *working_space, Int_t num)
AUXILIARY FUNCION // // This function calculates Walsh transform of a part of data // Function parame...
Definition:
TSpectrumTransform.cxx:214
TSpectrumTransform::kTransformCosHaar
Definition:
TSpectrumTransform.h:56
TSpectrumTransform::kTransformFourierHaar
Definition:
TSpectrumTransform.h:53
TSpectrumTransform::SetDirection
void SetDirection(Int_t direction)
SETTER FUNCION.
Definition:
TSpectrumTransform.cxx:2741
TSpectrumTransform::kTransformFourierWalsh
Definition:
TSpectrumTransform.h:52
TSpectrumTransform::BitReverseHaar
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...
Definition:
TSpectrumTransform.cxx:441