11 #ifndef ROOT_TSpectrum2Transform 
   12 #define ROOT_TSpectrum2Transform 
   16 class TSpectrum2Transform : 
public TObject {
 
   27    Double_t   fFilterCoeff;                
 
   28    Double_t   fEnhanceCoeff;               
 
   37        kTransformFourierWalsh =6,
 
   38        kTransformFourierHaar =7,
 
   39        kTransformWalshHaar =8,
 
   40        kTransformCosWalsh =9,
 
   41        kTransformCosHaar =10,
 
   42        kTransformSinWalsh =11,
 
   43        kTransformSinHaar =12,
 
   47    TSpectrum2Transform();
 
   48    TSpectrum2Transform(Int_t sizeX, Int_t sizeY);
 
   49    virtual ~TSpectrum2Transform();
 
   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);
 
   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);
 
   69    void                SetRegion(Int_t xmin, Int_t xmax, Int_t ymin, Int_t ymax);
 
   70    void                SetTransformType(Int_t transType, Int_t degree);
 
   71    void                Transform(
const Double_t **fSource, Double_t **fDest);
 
   73    ClassDef(TSpectrum2Transform,1)