19 #ifndef ROOT_TUnfoldSys
20 #define ROOT_TUnfoldSys
55 class TUnfoldSys :
public TUnfold {
57 void InitTUnfoldSys(
void);
60 TMatrixDSparse *fDAinRelSq;
62 TMatrixD* fDAinColRelSq;
70 TMap *fBgrErrUncorrInSq;
78 TMatrixDSparse *fVyyData;
80 TMatrixDSparse *fEmatUncorrX;
82 TMatrixDSparse *fEmatUncorrAx;
88 TMatrixDSparse *fDeltaSysTau;
90 virtual void ClearResults(
void);
91 virtual void PrepareSysError(
void);
92 virtual TMatrixDSparse *PrepareUncorrEmat(
const TMatrixDSparse *m1,
const TMatrixDSparse *m2);
93 virtual TMatrixDSparse *PrepareCorrEmat(
const TMatrixDSparse *m1,
const TMatrixDSparse *m2,
const TMatrixDSparse *dsys);
94 void ScaleColumnsByVector(TMatrixDSparse *m,
const TMatrixTBase<Double_t> *v)
const;
95 void VectorMapToHist(TH1 *hist_delta,
const TMatrixDSparse *delta,
const Int_t *binMap);
96 void GetEmatrixFromVyy(
const TMatrixDSparse *vyy,TH2 *ematrix,
const Int_t *binMap,Bool_t clearEmat);
97 void DoBackgroundSubtraction(
void);
98 TMatrixDSparse *GetSummedErrorMatrixYY(
void);
99 TMatrixDSparse *GetSummedErrorMatrixXX(
void);
108 kSysErrModeRelative=2
110 TUnfoldSys(
const TH2 *hist_A, EHistMap histmap, ERegMode regmode = kRegModeSize,
111 EConstraint constraint=kEConstraintArea);
113 virtual ~ TUnfoldSys(
void);
114 void AddSysError(
const TH2 *sysError,
const char *name, EHistMap histmap,
116 void SubtractBackground(
const TH1 *hist_bgr,
const char *name,
118 Double_t scale_error=0.0);
119 virtual Int_t SetInput(
const TH1 *hist_y,Double_t scaleBias=0.0,Double_t oneOverZeroError=0.0,
const TH2 *hist_vyy=0,
const TH2 *hist_vyy_inv=0);
120 void SetTauError(Double_t delta_tau);
121 TSortedList *GetBgrSources(
void)
const;
122 TSortedList *GetSysSources(
void)
const;
123 void GetBackground(TH1 *bgr,
const char *bgrSource=0,
const Int_t *binMap=0,Int_t includeError=3,Bool_t clearHist=kTRUE)
const;
124 void GetEmatrixSysBackgroundUncorr(TH2 *ematrix,
const char *source,
125 const Int_t *binMap=0,Bool_t clearEmat=kTRUE);
126 void GetEmatrixSysBackgroundScale(TH2 *ematrix,
const char *source,
127 const Int_t *binMap=0,Bool_t clearEmat=kTRUE);
128 Bool_t GetDeltaSysBackgroundScale(TH1 *delta,
const char *source,
129 const Int_t *binMap=0);
130 void GetEmatrixSysUncorr(TH2 *ematrix,
const Int_t *binMap=0,Bool_t clearEmat=kTRUE);
131 void GetEmatrixSysSource(TH2 *ematrix,
const char *source,
132 const Int_t *binMap=0,Bool_t clearEmat=kTRUE);
133 Bool_t GetDeltaSysSource(TH1 *hist_delta,
const char *source,
134 const Int_t *binMap=0);
135 void GetEmatrixSysTau(TH2 *ematrix,
136 const Int_t *binMap=0,Bool_t clearEmat=kTRUE);
137 Bool_t GetDeltaSysTau(TH1 *delta,
const Int_t *binMap=0);
138 void GetEmatrixInput(TH2 *ematrix,
const Int_t *binMap=0,Bool_t clearEmat=kTRUE);
139 void GetEmatrixTotal(TH2 *ematrix,
const Int_t *binMap=0);
140 void GetRhoItotal(TH1 *rhoi,
const Int_t *binMap=0,TH2 *invEmat=0);
141 Double_t GetChi2Sys(
void);
142 ClassDef(TUnfoldSys, TUnfold_CLASS_VERSION)