17 #ifndef ROO_XY_CHI2_VAR 
   18 #define ROO_XY_CHI2_VAR 
   26 class RooAbsIntegrator ;
 
   29 class RooXYChi2Var : 
public RooAbsOptTestStatistic {
 
   34   RooXYChi2Var(
const char *name, 
const char* title, RooAbsReal& func, RooDataSet& data, Bool_t integrate=kFALSE) ;
 
   35   RooXYChi2Var(
const char *name, 
const char* title, RooAbsReal& func, RooDataSet& data, RooRealVar& yvar, Bool_t integrate=kFALSE) ;
 
   36   RooXYChi2Var(
const char *name, 
const char* title, RooAbsPdf& extPdf, RooDataSet& data, Bool_t integrate=kFALSE) ;
 
   37   RooXYChi2Var(
const char *name, 
const char* title, RooAbsPdf& extPdf, RooDataSet& data, RooRealVar& yvar, Bool_t integrate=kFALSE) ;
 
   39   RooXYChi2Var(
const RooXYChi2Var& other, 
const char* name=0);
 
   40   virtual TObject* clone(
const char* newname)
 const { 
return new RooXYChi2Var(*
this,newname); }
 
   42   virtual RooAbsTestStatistic* create(
const char *name, 
const char *title, RooAbsReal& pdf, RooAbsData& adata,
 
   43                   const RooArgSet&, 
const char*, 
const char*,Int_t, RooFit::MPSplit,Bool_t, Bool_t, Bool_t) {
 
   45     return new RooXYChi2Var(name,title,pdf,(RooDataSet&)adata) ;
 
   48   virtual ~RooXYChi2Var();
 
   50   virtual Double_t defaultErrorLevel()
 const { 
 
   55   RooNumIntConfig& binIntegratorConfig() { 
return _intConfig ; }
 
   56   const RooNumIntConfig& binIntegratorConfig()
 const { 
return _intConfig ; }
 
   60   Bool_t allowFunctionCache() { 
 
   66   RooArgSet requiredExtraObservables() 
const ;
 
   78   void initIntegrator() ;
 
   79   Double_t xErrorContribution(Double_t ydata) 
const ;
 
   81   virtual Double_t evaluatePartition(std::size_t firstEvent, std::size_t lastEvent, std::size_t stepSize) 
const ;
 
   83   RooNumIntConfig   _intConfig ; 
 
   84   RooAbsReal*       _funcInt ; 
 
   85   std::list<RooAbsBinning*> _binList ; 
 
   87   ClassDef(RooXYChi2Var,1)