Hello,
I am running RooMCStudy manager to test my fitter, its stability and
possible biases. I have a simple question: I am running
many job segments on the Grid ( ~24hrs CPU per segment),
save the fitParDataset() to file and then merge/analyze
the results offline.
The code looks like this:
…
RooMCStudy* mcstudy = new RooMCStudy( (*modelTot), sbmQvalue, Binned(kFALSE), Silence(),
Extended(kTRUE), FitOptions( Hesse(kTRUE), Save(kTRUE), PrintEvalErrors(0) ) );
…
mcstudy ->generateAndFit(350, 0, kTRUE);
const RooDataSet& resultPars1 = mcstudy ->fitParDataSet();
printf("\n>>>> RooMCStudy: Tested PDF: print internal fit par dataset.\n");
resultPars1.Print(“v”);
// clone fit par dataset:
RooDataSet* outParameters1 = new RooDataSet(resultPars1, “fitParData_TestPdf”);
printf("\n>>>> RooMCStudy: Tested PDF: print fit par dataset (cloned) to be exported.\n");
Int_t nEntries1 = outParameters1 ->numEntries();
printf("\n\n>>>>>>> The size of this dataset: = %d:\n", nEntries1);
outParameters1 ->Print(“v”);
…
//----------------------------------------------------------------------------
// C r e a t e w o r k s p a c e a n d w r i t e i t t o f i l e :
//----------------------------------------------------------------------------
// Create a new empty workspace with name: "wrksp"
RooWorkspace* wrksp = new RooWorkspace(“wrksp”,“workspace”);
// Import cloned fit par dataset into the workspace
wrksp ->import((*outParameters1));
// Print workspace content
wrksp ->Print(“v”);
// Save the workspace into a file
wrksp ->writeToFile(outfitfile);
// Workspace will remain in memory after macro finishes
gDirectory->Add(wrksp) ;
…
My question:
What is the MIGRAD return code for every fit of every trial?
Are they ALL by default converged in MIGRAD and have rc=0
or, better,
When do fit results get saved into
. const RooDataSet& fitParDataSet()
. const RooFitResult* fitResult(Int_t sampleNum) const
???
If not how do I analyze the status of every fit in my case offline
after burning many CPU hrs on the Grid ?
Thank you in advance.
Igor.