46 class TSVDUnfold :
public TObject {
57 TSVDUnfold(
const TH1D* bdat,
const TH1D* bini,
const TH1D* xini,
const TH2D* Adet );
58 TSVDUnfold(
const TH1D* bdat, TH2D* Bcov,
const TH1D* bini,
const TH1D* xini,
const TH2D* Adet );
59 TSVDUnfold(
const TSVDUnfold& other );
62 virtual ~TSVDUnfold();
66 void SetNormalize ( Bool_t normalize ) { fNormalize = normalize; }
70 TH1D* Unfold ( Int_t kreg );
77 TH2D* GetUnfoldCovMatrix(
const TH2D* cov, Int_t ntoys, Int_t seed = 1 );
83 TH2D* GetAdetCovMatrix( Int_t ntoys, Int_t seed=1 );
86 Int_t GetKReg()
const {
return fKReg; }
95 TH2D* GetXtau()
const;
98 TH2D* GetXinv()
const;
101 TH2D* GetBCov()
const;
104 Double_t ComputeChiSquared(
const TH1D& truspec,
const TH1D& unfspec );
109 void FillCurvatureMatrix( TMatrixD& tCurv, TMatrixD& tC )
const;
110 static Double_t GetCurvature (
const TVectorD& vec,
const TMatrixD& curv );
115 static void H2V (
const TH1D* histo, TVectorD& vec );
116 static void H2Verr (
const TH1D* histo, TVectorD& vec );
117 static void V2H (
const TVectorD& vec, TH1D& histo );
118 static void H2M (
const TH2D* histo, TMatrixD& mat );
119 static void M2H (
const TMatrixD& mat, TH2D& histo );
120 static TMatrixD MatDivVec(
const TMatrixD& mat,
const TVectorD& vec, Int_t zero=0 );
121 static TVectorD CompProd (
const TVectorD& vec1,
const TVectorD& vec2 );
123 static TVectorD VecDiv (
const TVectorD& vec1,
const TVectorD& vec2, Int_t zero = 0 );
124 static void RegularisedSymMatInvert( TMatrixDSym& mat, Double_t eps = 1e-3 );
150 ClassDef( TSVDUnfold, 0 )