16 #ifndef ROO_FIT_RESULT
17 #define ROO_FIT_RESULT
38 typedef RooArgSet* pRooArgSet ;
40 class RooFitResult :
public TNamed,
public RooPrintable,
public RooDirItem {
44 RooFitResult(
const char* name=0,
const char* title=0) ;
45 RooFitResult(
const RooFitResult& other) ;
46 virtual TObject* Clone(
const char* newname = 0)
const {
47 RooFitResult* r =
new RooFitResult(*
this) ;
48 if (newname && *newname) r->SetName(newname) ;
51 virtual TObject* clone()
const {
return new RooFitResult(*
this); }
52 virtual ~RooFitResult() ;
54 static RooFitResult* lastMinuitFit(
const RooArgList& varList=RooArgList()) ;
56 static RooFitResult *prefitResult(
const RooArgList ¶mList);
59 virtual void printValue(std::ostream& os)
const ;
60 virtual void printName(std::ostream& os)
const ;
61 virtual void printTitle(std::ostream& os)
const ;
62 virtual void printClassName(std::ostream& os)
const ;
63 virtual void printArgs(std::ostream& os)
const ;
64 void printMultiline(std::ostream& os, Int_t contents, Bool_t verbose=kFALSE, TString indent=
"")
const ;
66 inline virtual void Print(Option_t *options= 0)
const {
68 printStream(defaultPrintStream(),defaultPrintContents(options),defaultPrintStyle(options));
71 virtual Int_t defaultPrintContents(Option_t* opt)
const ;
72 virtual StyleOption defaultPrintStyle(Option_t* opt)
const ;
74 RooAbsPdf* createHessePdf(
const RooArgSet& params)
const ;
77 inline Int_t status()
const {
82 inline UInt_t numStatusHistory()
const {
return _statusHistory.size() ; }
83 Int_t statusCodeHistory(UInt_t icycle)
const ;
84 const char* statusLabelHistory(UInt_t icycle)
const ;
86 inline Int_t covQual()
const {
90 inline Int_t numInvalidNLL()
const {
94 inline Double_t edm()
const {
98 inline Double_t minNll()
const {
102 inline const RooArgList& constPars()
const {
106 inline const RooArgList& floatParsInit()
const {
110 inline const RooArgList& floatParsFinal()
const {
115 TH2* correlationHist(
const char* name =
"correlation_matrix")
const ;
117 Double_t correlation(
const RooAbsArg& par1,
const RooAbsArg& par2)
const {
119 return correlation(par1.GetName(),par2.GetName()) ;
121 const RooArgList* correlation(
const RooAbsArg& par)
const {
123 return correlation(par.GetName()) ;
126 Double_t correlation(
const char* parname1,
const char* parname2)
const ;
127 const RooArgList* correlation(
const char* parname)
const ;
130 const TMatrixDSym& covarianceMatrix()
const ;
131 const TMatrixDSym& correlationMatrix()
const ;
132 TMatrixDSym reducedCovarianceMatrix(
const RooArgList& params)
const ;
133 TMatrixDSym conditionalCovarianceMatrix(
const RooArgList& params)
const ;
137 Double_t globalCorr(
const RooAbsArg& par) {
return globalCorr(par.GetName()) ; }
138 Double_t globalCorr(
const char* parname) ;
139 const RooArgList* globalCorr() ;
143 inline RooPlot *plotOn(RooPlot *frame,
const RooAbsArg &par1,
const RooAbsArg &par2,
144 const char *options=
"ME")
const {
146 return plotOn(frame,par1.GetName(),par2.GetName(),options);
148 RooPlot *plotOn(RooPlot *plot,
const char *parName1,
const char *parName2,
149 const char *options=
"ME")
const;
152 const RooArgList& randomizePars()
const;
154 Bool_t isIdentical(
const RooFitResult& other, Double_t tol=1e-6, Double_t tolCorr=1e-4, Bool_t verbose=kTRUE)
const ;
156 void SetName(
const char *name) ;
157 void SetNameTitle(
const char *name,
const char* title) ;
161 friend class RooMinuit ;
162 friend class RooMinimizer ;
163 void setCovarianceMatrix(TMatrixDSym& V) ;
164 void setConstParList(
const RooArgList& list) ;
165 void setInitParList(
const RooArgList& list) ;
166 void setFinalParList(
const RooArgList& list) ;
167 inline void setMinNLL(Double_t val) { _minNLL = val ; }
168 inline void setEDM(Double_t val) { _edm = val ; }
169 inline void setStatus(Int_t val) { _status = val ; }
170 inline void setCovQual(Int_t val) { _covQual = val ; }
171 inline void setNumInvalidNLL(Int_t val) { _numBadNLL=val ; }
172 void fillCorrMatrix() ;
173 void fillCorrMatrix(
const std::vector<double>& globalCC,
const TMatrixDSym& corrs,
const TMatrixDSym& covs) ;
174 void fillLegacyCorrMatrix()
const ;
175 void fillPrefitCorrMatrix();
176 void setStatusHistory(std::vector<std::pair<std::string,int> >& hist) { _statusHistory = hist ; }
178 Double_t correlation(Int_t row, Int_t col)
const;
179 Double_t covariance(Int_t row, Int_t col)
const;
186 RooArgList* _constPars ;
187 RooArgList* _initPars ;
188 RooArgList* _finalPars ;
190 mutable RooArgList* _globalCorr ;
191 mutable TList _corrMatrix ;
193 mutable RooArgList *_randomPars;
194 mutable TMatrixF* _Lt;
200 std::vector<std::pair<std::string,int> > _statusHistory ;
202 ClassDef(RooFitResult,5)