00001 // @(#)root/minuit2:$Id: TChi2ExtendedFitData.h 20880 2007-11-19 11:23:41Z rdm $ 00002 // Author: L. Moneta 10/2005 00003 00004 /********************************************************************** 00005 * * 00006 * Copyright (c) 2005 ROOT Foundation, CERN/PH-SFT * 00007 * * 00008 **********************************************************************/ 00009 00010 #ifndef ROOT_TChi2ExtendedFitData_H_ 00011 #define ROOT_TChi2ExtendedFitData_H_ 00012 00013 #include "RConfig.h" 00014 #include <vector> 00015 #include "TChi2FitData.h" 00016 00017 // class TObject; 00018 class TVirtualFitter; 00019 class TGraph; 00020 00021 /** 00022 class holding the data of the fit . 00023 For extended chi2 fits which contains also error in x (asymmetrics) 00024 the data are: 00025 00026 coords() , value , sigma Y, sigma X_low sigma X_up 00027 */ 00028 00029 00030 class TChi2ExtendedFitData : public TChi2FitData { 00031 00032 00033 public: 00034 00035 typedef std::vector<double> CoordData; 00036 00037 00038 /** 00039 construct the Fit data object 00040 */ 00041 TChi2ExtendedFitData() {} 00042 00043 TChi2ExtendedFitData(const TVirtualFitter & fitter); 00044 00045 virtual ~TChi2ExtendedFitData() {} 00046 00047 double ErrorY(unsigned int i) const { return fErrorsY[i]; } 00048 00049 double ErrorXLow(unsigned int i) const { return fErrorsXLow[i]; } 00050 00051 double ErrorXUp(unsigned int i) const { return fErrorsXUp[i]; } 00052 00053 00054 protected: 00055 00056 00057 void GetExtendedFitData(const TGraph * graph, const TF1 * func, const TVirtualFitter * fitter); 00058 00059 void SetDataPoint( const CoordData & x, double y, double errorY, double errorXlow, double errorXup ); 00060 00061 00062 private: 00063 00064 std::vector<double> fErrorsY; 00065 std::vector<double> fErrorsXLow; 00066 std::vector<double> fErrorsXUp; 00067 // to do add asymmetric error in y 00068 00069 }; 00070 00071 #endif