Docs | All | Real | Category | PDF | DataSet | Plot | Container | Misc | Aux | User |
RooMCStudyclass description - source file - inheritance tree (.pdf) class RooMCStudy
private: Data Membersprotected: Class DescriptionRooMCStudy is a help class to facilitate Monte Carlo studies such as 'goodness-of-fit' studies, that involve fitting a PDF to multiple toy Monte Carlo sets generated from the same PDF or another PDF. Given a fit PDF and a generator PDF, RooMCStudy can produce large numbers of toyMC samples and/or fit these samples and acculumate the final parameters of each fit in a dataset. Additional plotting routines simplify the task of plotting the distribution of the minimized likelihood, each parameters fitted value, fitted error and pull distribution. RooMCStudy(const RooAbsPdf& genModel, const RooAbsPdf& fitModel, const RooArgSet& dependents, const char* genOptions, const char* fitOptions, const RooDataSet* genProtoData, const RooArgSet& projDeps) : _genModel((RooAbsPdf*)&genModel), _genProtoData(genProtoData), _projDeps(projDeps), _dependents(dependents), _allDependents(dependents), _fitModel((RooAbsPdf*)&fitModel), _fitOptions(fitOptions), _canAddFitResults(kTRUE) Constructor with a generator and fit model. Both models may point to the same object. The 'dependents' set of variables is generated in the generator phase. The optional prototype dataset is passed to the generator Available generator options v - Verbose e - Extended: use Poisson distribution for Nevts generated Available fit options See RooAbsPdf::fitTo() ~RooMCStudy() Destructor Bool_t run(Bool_t generate, Bool_t fit, Int_t nSamples, Int_t nEvtPerSample, Bool_t keepGenData, const char* asciiFilePat) Run engine. Generate and/or fit, according to flags, 'nSamples' samples of 'nEvtPerSample' events. If keepGenData is set, all generated data sets will be kept in memory and can be accessed later via genData(). When generating, data sets will be written out in ascii form if the pattern string is supplied The pattern, which is a template for sprintf, should look something like "data/toymc_%04d.dat" and should contain one integer field that encodes the sample serial number. When fitting only, data sets may optionally be read from ascii files, using the same file pattern. Bool_t generateAndFit(Int_t nSamples, Int_t nEvtPerSample, Bool_t keepGenData, const char* asciiFilePat) Generate and fit 'nSamples' samples of 'nEvtPerSample' events. If keepGenData is set, all generated data sets will be kept in memory and can be accessed later via genData(). Data sets will be written out is ascii form if the pattern string is supplied. The pattern, which is a template for sprintf, should look something like "data/toymc_%04d.dat" and should contain one integer field that encodes the sample serial number. Bool_t generate(Int_t nSamples, Int_t nEvtPerSample, Bool_t keepGenData, const char* asciiFilePat) Generate 'nSamples' samples of 'nEvtPerSample' events. If keepGenData is set, all generated data sets will be kept in memory and can be accessed later via genData(). Data sets will be written out in ascii form if the pattern string is supplied. The pattern, which is a template for sprintf, should look something like "data/toymc_%04d.dat" and should contain one integer field that encodes the sample serial number. Bool_t fit(Int_t nSamples, const char* asciiFilePat) Fit 'nSamples' datasets, which are read from ASCII files. The ascii file pattern, which is a template for sprintf, should look something like "data/toymc_%04d.dat" and should contain one integer field that encodes the sample serial number. Bool_t fit(Int_t nSamples, TList& dataSetList) Fit 'nSamples' datasets, as supplied in 'dataSetList' Bool_t fitSample(RooAbsData* genSample) Fit given dataset with fit model. If fit converges (TMinuit status code zero) The fit results are appended to the fit results dataset If the fit option "r" is supplied, the RooFitResult objects will always be saved, regardless of the fit status. RooFitResults objects can be retrieved later via fitResult(). Bool_t addFitResult(const RooFitResult& fr) void calcPulls() Calculate the pulls for all fit parameters in the fit results data set, and add them to that dataset const RooDataSet& fitParDataSet() Return the fit parameter dataset const RooArgSet* fitParams(Int_t sampleNum) const Return an argset with the fit parameters for the given sample number NB: The fit parameters are only stored for successfull fits, thus the maximum sampleNum can be less that the number of generated samples and if so, the indeces will be out of synch with genData() and fitResult() const RooFitResult* fitResult(Int_t sampleNum) const Return the fit result object of the fit to given sample const RooDataSet* genData(Int_t sampleNum) const Return the given generated dataset RooPlot* plotParamOn(RooPlot* frame, const RooCmdArg& arg1, const RooCmdArg& arg2, const RooCmdArg& arg3, const RooCmdArg& arg4, const RooCmdArg& arg5, const RooCmdArg& arg6, const RooCmdArg& arg7, const RooCmdArg& arg8) Plot the distribution of the fitted value of the given parameter on the specified frame Any specified named argument is passed to the RooAbsData::plotOn() call. See that function for allowed options RooPlot* plotParam(const RooRealVar& param, const RooCmdArg& arg1, const RooCmdArg& arg2, const RooCmdArg& arg3, const RooCmdArg& arg4, const RooCmdArg& arg5, const RooCmdArg& arg6, const RooCmdArg& arg7, const RooCmdArg& arg8) Plot the distribution of the fitted value of the given parameter on a newly created frame. This function accepts the following optional arguments FrameRange(double lo, double hi) -- Set range of frame to given specification FrameBins(int bins) -- Set default number of bins of frame to given number Frame(...) -- Pass supplied named arguments to RooAbsRealLValue::frame() function. See frame() function for list of allowed arguments If no frame specifications are given, the AutoRange() feature will be used to set the range Any other named argument is passed to the RooAbsData::plotOn() call. See that function for allowed options RooPlot* plotNLL(const RooCmdArg& arg1, const RooCmdArg& arg2, const RooCmdArg& arg3, const RooCmdArg& arg4, const RooCmdArg& arg5, const RooCmdArg& arg6, const RooCmdArg& arg7, const RooCmdArg& arg8) Plot the distribution of the -log(l) values on a newly created frame. This function accepts the following optional arguments FrameRange(double lo, double hi) -- Set range of frame to given specification FrameBins(int bins) -- Set default number of bins of frame to given number Frame(...) -- Pass supplied named arguments to RooAbsRealLValue::frame() function. See frame() function for list of allowed arguments If no frame specifications are given, the AutoRange() feature will be used to set the range Any other named argument is passed to the RooAbsData::plotOn() call. See that function for allowed options RooPlot* plotError(const RooRealVar& param, const RooCmdArg& arg1, const RooCmdArg& arg2, const RooCmdArg& arg3, const RooCmdArg& arg4, const RooCmdArg& arg5, const RooCmdArg& arg6, const RooCmdArg& arg7, const RooCmdArg& arg8) Plot the distribution of the fit errors for the specified parameter on a newly created frame. This function accepts the following optional arguments FrameRange(double lo, double hi) -- Set range of frame to given specification FrameBins(int bins) -- Set default number of bins of frame to given number Frame(...) -- Pass supplied named arguments to RooAbsRealLValue::frame() function. See frame() function for list of allowed arguments If no frame specifications are given, the AutoRange() feature will be used to set the range Any other named argument is passed to the RooAbsData::plotOn() call. See that function for allowed options RooPlot* plotPull(const RooRealVar& param, const RooCmdArg& arg1, const RooCmdArg& arg2, const RooCmdArg& arg3, const RooCmdArg& arg4, const RooCmdArg& arg5, const RooCmdArg& arg6, const RooCmdArg& arg7, const RooCmdArg& arg8) Plot the distribution of pull values for the specified parameter on a newly created frame. If asymmetric errors are calculated in the fit (by MINOS) those will be used in the pull calculation This function accepts the following optional arguments FrameRange(double lo, double hi) -- Set range of frame to given specification FrameBins(int bins) -- Set default number of bins of frame to given number Frame(...) -- Pass supplied named arguments to RooAbsRealLValue::frame() function. See frame() function for list of allowed arguments FitGauss(Bool_t flag) -- Add a gaussian fit to the frame If no frame specifications are given, the AutoSymRange() feature will be used to set the range Any other named argument is passed to the RooAbsData::plotOn() call. See that function for allowed options RooPlot* makeFrameAndPlotCmd(const RooRealVar& param, RooLinkedList& cmdList, Bool_t symRange) const RooPlot* plotNLL(Double_t lo, Double_t hi, Int_t nBins) Create a RooPlot of the NLL distribution in the range lo-hi with 'nBins' bins RooPlot* plotError(const RooRealVar& param, Double_t lo, Double_t hi, Int_t nbins) Create a RooPlot of the distribution of the fitted errors of the given parameter. The range lo-hi is plotted in nbins bins RooPlot* plotPull(const RooRealVar& param, Double_t lo, Double_t hi, Int_t nbins, Bool_t fitGauss) Create a RooPlot of the pull distribution for the given parameter. The range lo-hi is plotted in nbins. If fitGauss is set, an unbinned max. likelihood fit of the distribution to a Gaussian model is performed. The fit result is overlaid on the returned RooPlot and a box with the fitted mean and sigma is added. Inline FunctionsRooMCStudy RooMCStudy(const RooAbsPdf& genModel, const RooAbsPdf& fitModel, const RooArgSet& dependents, const char* genOptions = "", const char* fitOptions = "", const RooDataSet* genProtoData = 0, const RooArgSet& projDeps = RooArgSet()) RooMCStudy RooMCStudy(const RooMCStudy&) TClass* Class() TClass* IsA() const void ShowMembers(TMemberInspector& insp, char* parent) void Streamer(TBuffer& b) void StreamerNVirtual(TBuffer& b)
|
Page maintained by Wouter Verkerke and David Kirkby |