29 class RooAbsRealLValue ;
32 class RooCurve :
public TGraph,
public RooPlotable {
35 enum WingMode { NoWings=0 ,Straight=1, Extended=2 } ;
36 RooCurve(
const RooAbsReal &func, RooAbsRealLValue &x, Double_t xlo, Double_t xhi, Int_t xbins,
37 Double_t scaleFactor= 1,
const RooArgSet *normVars= 0, Double_t prec= 1e-3, Double_t resolution= 1e-3,
38 Bool_t shiftToZero=kFALSE, WingMode wmode=Extended, Int_t nEvalError=-1, Int_t doEEVal=kFALSE, Double_t eeVal=0,
39 Bool_t showProgress=kFALSE);
40 RooCurve(
const char *name,
const char *title,
const RooAbsFunc &func, Double_t xlo,
41 Double_t xhi, UInt_t minPoints, Double_t prec= 1e-3, Double_t resolution= 1e-3,
42 Bool_t shiftToZero=kFALSE, WingMode wmode=Extended, Int_t nEvalError=-1, Int_t doEEVal=kFALSE, Double_t eeVal=0);
45 RooCurve(
const char* name,
const char* title,
const RooCurve& c1,
const RooCurve& c2, Double_t scale1=1., Double_t scale2=1.) ;
47 void addPoint(Double_t x, Double_t y);
49 Double_t getFitRangeBinW()
const;
50 Double_t getFitRangeNEvt(Double_t xlo, Double_t xhi)
const ;
51 Double_t getFitRangeNEvt()
const;
54 virtual void printName(std::ostream& os)
const ;
55 virtual void printTitle(std::ostream& os)
const ;
56 virtual void printClassName(std::ostream& os)
const ;
57 virtual void printMultiline(std::ostream& os, Int_t contents, Bool_t verbose=kFALSE, TString indent=
"")
const;
59 inline virtual void Print(Option_t *options= 0)
const {
61 printStream(defaultPrintStream(),defaultPrintContents(options),defaultPrintStyle(options));
64 Double_t chiSquare(
const RooHist& hist,
int nFitParam)
const ;
65 Int_t findPoint(Double_t value, Double_t tolerance=1e-10)
const ;
66 Double_t average(Double_t lo, Double_t hi)
const ;
67 Double_t interpolate(Double_t x, Double_t tolerance=1e-10)
const ;
69 Bool_t isIdentical(
const RooCurve& other, Double_t tol=1e-6)
const ;
71 RooCurve* makeErrorBand(
const std::vector<RooCurve*>& variations, Double_t Z=1)
const ;
72 RooCurve* makeErrorBand(
const std::vector<RooCurve*>& plusVar,
const std::vector<RooCurve*>& minusVar,
const TMatrixD& V, Double_t Z=1)
const ;
76 void calcBandInterval(
const std::vector<RooCurve*>& variations,Int_t i,Double_t Z,Double_t& lo, Double_t& hi, Bool_t approxGauss)
const ;
77 void calcBandInterval(
const std::vector<RooCurve*>& plusVar,
const std::vector<RooCurve*>& minusVar, Int_t i,
const TMatrixD& V,
78 Double_t Z,Double_t& lo, Double_t& hi)
const ;
81 void addPoints(
const RooAbsFunc &func, Double_t xlo, Double_t xhi,
82 Int_t minPoints, Double_t prec, Double_t resolution, WingMode wmode,
83 Int_t numee=0, Bool_t doEEVal=kFALSE, Double_t eeVal=0.,std::list<Double_t>* samplingHint=0) ;
84 void addRange(
const RooAbsFunc& func, Double_t x1, Double_t x2, Double_t y1,
85 Double_t y2, Double_t minDy, Double_t minDx,
86 Int_t numee=0, Bool_t doEEVal=kFALSE, Double_t eeVal=0.) ;
89 void shiftCurveToZero(Double_t prevYMax) ;
91 Bool_t _showProgress ;