ROOT logo
ROOT » ROOFIT » ROOFITCORE » RooMCStudy

class RooMCStudy: public TNamed



RooMCStudy 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.

Class RooMCStudy provides the option to insert add-in modules that modify the generate and fit cycle and allow to perform extra steps in the cycle. Output of these modules can be stored alongside the fit results in the aggregate results dataset. These study modules should derive from classs RooAbsMCStudyModel


Function Members (Methods)

public:
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(const RooAbsPdf& model, const RooArgSet& observables, const RooCmdArg& arg1 = RooCmdArg::none(), const RooCmdArg& arg2 = RooCmdArg::none(), const RooCmdArg& arg3 = RooCmdArg::none(), const RooCmdArg& arg4 = RooCmdArg::none(), const RooCmdArg& arg5 = RooCmdArg::none(), const RooCmdArg& arg6 = RooCmdArg::none(), const RooCmdArg& arg7 = RooCmdArg::none(), const RooCmdArg& arg8 = RooCmdArg::none())
virtual~RooMCStudy()
voidTObject::AbstractMethod(const char* method) const
Bool_taddFitResult(const RooFitResult& fr)
voidaddModule(RooAbsMCStudyModule& module)
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTNamed::Clear(Option_t* option = "")
virtual TObject*TNamed::Clone(const char* newname = "") const
virtual Int_tTNamed::Compare(const TObject* obj) const
virtual voidTNamed::Copy(TObject& named) const
virtual voidTObject::Delete(Option_t* option = "")MENU
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual voidTObject::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
virtual voidTObject::Dump() constMENU
virtual voidTObject::Error(const char* method, const char* msgfmt) const
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidTObject::ExecuteEvent(Int_t event, Int_t px, Int_t py)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
virtual voidTNamed::FillBuffer(char*& buffer)
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
Bool_tfit(Int_t nSamples, const char* asciiFilePat)
Bool_tfit(Int_t nSamples, TList& dataSetList)
const RooArgSet*fitParams(Int_t sampleNum) const
const RooDataSet&fitParDataSet()
const RooFitResult*fitResult(Int_t sampleNum) const
const RooAbsData*genData(Int_t sampleNum) const
Bool_tgenerate(Int_t nSamples, Int_t nEvtPerSample = 0, Bool_t keepGenData = kFALSE, const char* asciiFilePat = 0)
Bool_tgenerateAndFit(Int_t nSamples, Int_t nEvtPerSample = 0, Bool_t keepGenData = kFALSE, const char* asciiFilePat = 0)
const RooDataSet*genParDataSet() const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
virtual const char*TObject::GetIconName() const
virtual const char*TNamed::GetName() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
virtual const char*TNamed::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTNamed::Hash() const
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
virtual voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tTNamed::IsSortable() const
Bool_tTObject::IsZombie() const
virtual voidTNamed::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
virtual Bool_tTObject::Notify()
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const
static voidTObject::operator delete(void* ptr)
static voidTObject::operator delete(void* ptr, void* vp)
static voidTObject::operator delete[](void* ptr)
static voidTObject::operator delete[](void* ptr, void* vp)
void*TObject::operator new(size_t sz)
void*TObject::operator new(size_t sz, void* vp)
void*TObject::operator new[](size_t sz)
void*TObject::operator new[](size_t sz, void* vp)
TNamed&TNamed::operator=(const TNamed& rhs)
virtual voidTObject::Paint(Option_t* option = "")
RooPlot*plotError(const RooRealVar& param, Double_t lo, Double_t hi, Int_t nbins = 100)
RooPlot*plotError(const RooRealVar& param, const RooCmdArg& arg1 = RooCmdArg::none(), const RooCmdArg& arg2 = RooCmdArg::none(), const RooCmdArg& arg3 = RooCmdArg::none(), const RooCmdArg& arg4 = RooCmdArg::none(), const RooCmdArg& arg5 = RooCmdArg::none(), const RooCmdArg& arg6 = RooCmdArg::none(), const RooCmdArg& arg7 = RooCmdArg::none(), const RooCmdArg& arg8 = RooCmdArg::none())
RooPlot*plotNLL(Double_t lo, Double_t hi, Int_t nBins = 100)
RooPlot*plotNLL(const RooCmdArg& arg1 = RooCmdArg::none(), const RooCmdArg& arg2 = RooCmdArg::none(), const RooCmdArg& arg3 = RooCmdArg::none(), const RooCmdArg& arg4 = RooCmdArg::none(), const RooCmdArg& arg5 = RooCmdArg::none(), const RooCmdArg& arg6 = RooCmdArg::none(), const RooCmdArg& arg7 = RooCmdArg::none(), const RooCmdArg& arg8 = RooCmdArg::none())
RooPlot*plotParam(const RooRealVar& param, const RooCmdArg& arg1 = RooCmdArg::none(), const RooCmdArg& arg2 = RooCmdArg::none(), const RooCmdArg& arg3 = RooCmdArg::none(), const RooCmdArg& arg4 = RooCmdArg::none(), const RooCmdArg& arg5 = RooCmdArg::none(), const RooCmdArg& arg6 = RooCmdArg::none(), const RooCmdArg& arg7 = RooCmdArg::none(), const RooCmdArg& arg8 = RooCmdArg::none())
RooPlot*plotParam(const char* paramName, const RooCmdArg& arg1 = RooCmdArg::none(), const RooCmdArg& arg2 = RooCmdArg::none(), const RooCmdArg& arg3 = RooCmdArg::none(), const RooCmdArg& arg4 = RooCmdArg::none(), const RooCmdArg& arg5 = RooCmdArg::none(), const RooCmdArg& arg6 = RooCmdArg::none(), const RooCmdArg& arg7 = RooCmdArg::none(), const RooCmdArg& arg8 = RooCmdArg::none())
RooPlot*plotParamOn(RooPlot* frame, const RooCmdArg& arg1 = RooCmdArg::none(), const RooCmdArg& arg2 = RooCmdArg::none(), const RooCmdArg& arg3 = RooCmdArg::none(), const RooCmdArg& arg4 = RooCmdArg::none(), const RooCmdArg& arg5 = RooCmdArg::none(), const RooCmdArg& arg6 = RooCmdArg::none(), const RooCmdArg& arg7 = RooCmdArg::none(), const RooCmdArg& arg8 = RooCmdArg::none())
RooPlot*plotPull(const RooRealVar& param, Double_t lo = -3.0, Double_t hi = 3.0, Int_t nbins = 25, Bool_t fitGauss = kFALSE)
RooPlot*plotPull(const RooRealVar& param, const RooCmdArg& arg1, const RooCmdArg& arg2 = RooCmdArg::none(), const RooCmdArg& arg3 = RooCmdArg::none(), const RooCmdArg& arg4 = RooCmdArg::none(), const RooCmdArg& arg5 = RooCmdArg::none(), const RooCmdArg& arg6 = RooCmdArg::none(), const RooCmdArg& arg7 = RooCmdArg::none(), const RooCmdArg& arg8 = RooCmdArg::none())
virtual voidTObject::Pop()
virtual voidTNamed::Print(Option_t* option = "") const
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidTObject::ResetBit(UInt_t f)
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(ostream& out, Option_t* option = "")
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
virtual voidTNamed::SetName(const char* name)MENU
virtual voidTNamed::SetNameTitle(const char* name, const char* title)
static voidTObject::SetObjectStat(Bool_t stat)
virtual voidTNamed::SetTitle(const char* title = "")MENU
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector& insp)
virtual Int_tTNamed::Sizeof() const
virtual voidStreamer(TBuffer& b)
voidStreamerNVirtual(TBuffer& b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
virtual voidTObject::UseCurrentStyle()
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0)
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const
protected:
voidcalcPulls()
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
RooFitResult*doFit(RooAbsData* genSample)
Bool_tfitSample(RooAbsData* genSample)
RooPlot*makeFrameAndPlotCmd(const RooRealVar& param, RooLinkedList& cmdList, Bool_t symRange = kFALSE) const
voidTObject::MakeZombie()
RooFitResult*refit(RooAbsData* genSample = 0)
voidresetFitParams()
Bool_trun(Bool_t generate, Bool_t fit, Int_t nSamples, Int_t nEvtPerSample, Bool_t keepGenData, const char* asciiFilePat)
private:
RooMCStudy(const RooMCStudy&)

Data Members

protected:
RooArgSet_allDependentsList of generate + prototype dependents
Bool_t_binGenDataBin data between generating and fitting
Bool_t_canAddFitResultsAllow adding of external fit results?
RooAbsGenContext*_constrGenContextGenerator context for constraints p.d.f
RooAbsPdf*_constrPdfConstraints p.d.f
RooArgSet_dependentsList of dependents
Bool_t_extendedGenAdd poisson term to number of events to generate?
RooArgSet*_fitInitParamsList of initial values of fit parameters
RooAbsPdf*_fitModelFit model
RooLinkedList_fitOptListFit option command list
TString_fitOptionsFit options string
RooDataSet*_fitParDataData set of fit parameters of each sample
RooArgSet*_fitParamsList of actual fit parameters
TList_fitResListList of RooFitResult fit output objects
RooAbsGenContext*_genContextGenerator context
TList_genDataListList of generated data sample
RooArgSet*_genInitParamsList of originalgenerator parameters
RooAbsPdf*_genModelGenerator model
RooDataSet*_genParDataList of of generated parameters of each sample
RooArgSet*_genParamsList of actual generator parameters
const RooDataSet*_genProtoDataGenerator prototype data set
RooAbsData*_genSampleCurrently generated sample
list<RooAbsMCStudyModule*>_modListList of additional study modules ;
Double_t_nExpGenNumber of expected events to generate in extended mode
RooRealVar*_ngenVar
RooRealVar*_nllVar
Bool_t_perExptGenParamsDo generation parameter change per event?
RooArgSet_projDepsList of projected dependents in fit
Bool_t_randProtoRandomize order of prototype data access
Bool_t_silenceSilent running mode?
Bool_t_verboseGenVerbose generation?
TStringTNamed::fNameobject identifier
TStringTNamed::fTitleobject title

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

RooMCStudy(const RooAbsPdf& model, const RooArgSet& observables, const RooCmdArg& arg1 = RooCmdArg::none(), const RooCmdArg& arg2 = RooCmdArg::none(), const RooCmdArg& arg3 = RooCmdArg::none(), const RooCmdArg& arg4 = RooCmdArg::none(), const RooCmdArg& arg5 = RooCmdArg::none(), const RooCmdArg& arg6 = RooCmdArg::none(), const RooCmdArg& arg7 = RooCmdArg::none(), const RooCmdArg& arg8 = RooCmdArg::none())
 Construct Monte Carlo Study Manager. This class automates generating data from a given PDF,
 fitting the PDF to that data and accumulating the fit statistics.

 The constructor accepts the following arguments

 model       -- The PDF to be studied
 observables -- The variables of the PDF to be considered the observables

 Silence()                         -- Suppress all RooFit messages during running below PROGRESS level
 FitModel(const RooAbsPdf&)        -- The PDF for fitting, if it is different from the PDF for generating
 ConditionalObservables
           (const RooArgSet& set)  -- The set of observables that the PDF should _not_ be normalized over
 Binned(Bool_t flag)               -- Bin the dataset before fitting it. Speeds up fitting of large data samples
 FitOptions(const char*)           -- Classic fit options, provided for backward compatibility
 FitOptions(....)                  -- Options to be used for fitting. All named arguments inside FitOptions()
                                                   are passed to RooAbsPdf::fitTo();
 Verbose(Bool_t flag)              -- Activate informational messages in event generation phase
 Extended(Bool_t flag)             -- Determine number of events for each sample anew from a Poisson distribution
 Constrain(const RooArgSet& pars)  -- Apply internal constraints on given parameters in fit and sample constrained parameter
                                      values from constraint p.d.f for each toy.
 ExternalConstraints(const RooArgSet& ) -- Apply internal constraints on given parameters in fit and sample constrained parameter
                                      values from constraint p.d.f for each toy.
 ProtoData(const RooDataSet&,
                 Bool_t randOrder) -- Prototype data for the event generation. If the randOrder flag is
                                      set, the order of the dataset will be re-randomized for each generation
                                      cycle to protect against systematic biases if the number of generated
                                      events does not exactly match the number of events in the prototype dataset
                                      at the cost of reduced precision
                                      with mu equal to the specified number of events
RooMCStudy(const RooAbsPdf& genModel, const RooAbsPdf& fitModel, const RooArgSet& dependents, const char* genOptions = "", const char* fitOptions = "", const RooDataSet* genProtoData = 0, const RooArgSet& projDeps = RooArgSet())
 OBSOLETE, RETAINED FOR BACKWARD COMPATIBILY. PLEASE
 USE CONSTRUCTOR WITH NAMED ARGUMENTS

 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
void addModule(RooAbsMCStudyModule& module)
 Insert given RooMCStudy add-on module to the processing chain
 of this MCStudy object
Bool_t run(Bool_t generate, Bool_t fit, Int_t nSamples, Int_t nEvtPerSample, Bool_t keepGenData, const char* asciiFilePat)
 Run engine method. 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 snprintf, 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 = 0, Bool_t keepGenData = kFALSE, const char* asciiFilePat = 0)
 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 snprintf, 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 = 0, Bool_t keepGenData = kFALSE, const char* asciiFilePat = 0)
 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 snprintf, 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 snprintf, 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'

void resetFitParams()
 Reset all fit parameters to the initial model
 parameters at the time of the RooMCStudy constructor
RooFitResult* doFit(RooAbsData* genSample)
 Internal function. Performs actual fit according to specifications
RooFitResult* refit(RooAbsData* genSample = 0)
 Redo fit on 'current' toy sample, or if genSample is not NULL
 do fit on given sample instead
Bool_t fitSample(RooAbsData* genSample)
 Internal method. 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)
 Utility function to add fit result from external fit to this RooMCStudy
 and process its results through the standard RooMCStudy statistics gathering tools.
 This function allows users to run the toy MC generation and/or fitting
 in a distributed way and to collect and analyze the results in a RooMCStudy
 as if they were run locally.

 This method is only functional if this RooMCStudy object is cleanm, i.e. it was not used
 to generate and/or fit any samples.
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 a RooDataSet the resulting fit parameters of each toy cycle.
 This dataset also contains any additional output that was generated
 by study modules that were added to this RooMCStudy
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 RooFitResult object of the fit to given sample
const RooAbsData* genData(Int_t sampleNum) const
 Return the given generated dataset. This method will only return datasets
 if during the run cycle it was indicated that generator data should be saved.
RooPlot* plotParamOn(RooPlot* frame, const RooCmdArg& arg1 = RooCmdArg::none(), const RooCmdArg& arg2 = RooCmdArg::none(), const RooCmdArg& arg3 = RooCmdArg::none(), const RooCmdArg& arg4 = RooCmdArg::none(), const RooCmdArg& arg5 = RooCmdArg::none(), const RooCmdArg& arg6 = RooCmdArg::none(), const RooCmdArg& arg7 = RooCmdArg::none(), const RooCmdArg& arg8 = RooCmdArg::none())
 Plot the distribution of fitted values of a parameter. The parameter shown is the one from which the RooPlot
 was created, e.g.

 RooPlot* frame = param.frame(100,-10,10) ;
 mcstudy.paramOn(frame,LineStyle(kDashed)) ;

 Any named arguments passed to plotParamOn() are forwarded to the underlying plotOn() call
RooPlot* plotParam(const char* paramName, const RooCmdArg& arg1 = RooCmdArg::none(), const RooCmdArg& arg2 = RooCmdArg::none(), const RooCmdArg& arg3 = RooCmdArg::none(), const RooCmdArg& arg4 = RooCmdArg::none(), const RooCmdArg& arg5 = RooCmdArg::none(), const RooCmdArg& arg6 = RooCmdArg::none(), const RooCmdArg& arg7 = RooCmdArg::none(), const RooCmdArg& arg8 = RooCmdArg::none())
 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* plotParam(const RooRealVar& param, const RooCmdArg& arg1 = RooCmdArg::none(), const RooCmdArg& arg2 = RooCmdArg::none(), const RooCmdArg& arg3 = RooCmdArg::none(), const RooCmdArg& arg4 = RooCmdArg::none(), const RooCmdArg& arg5 = RooCmdArg::none(), const RooCmdArg& arg6 = RooCmdArg::none(), const RooCmdArg& arg7 = RooCmdArg::none(), const RooCmdArg& arg8 = RooCmdArg::none())
 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 = RooCmdArg::none(), const RooCmdArg& arg2 = RooCmdArg::none(), const RooCmdArg& arg3 = RooCmdArg::none(), const RooCmdArg& arg4 = RooCmdArg::none(), const RooCmdArg& arg5 = RooCmdArg::none(), const RooCmdArg& arg6 = RooCmdArg::none(), const RooCmdArg& arg7 = RooCmdArg::none(), const RooCmdArg& arg8 = RooCmdArg::none())
 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 = RooCmdArg::none(), const RooCmdArg& arg2 = RooCmdArg::none(), const RooCmdArg& arg3 = RooCmdArg::none(), const RooCmdArg& arg4 = RooCmdArg::none(), const RooCmdArg& arg5 = RooCmdArg::none(), const RooCmdArg& arg6 = RooCmdArg::none(), const RooCmdArg& arg7 = RooCmdArg::none(), const RooCmdArg& arg8 = RooCmdArg::none())
 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 = RooCmdArg::none(), const RooCmdArg& arg3 = RooCmdArg::none(), const RooCmdArg& arg4 = RooCmdArg::none(), const RooCmdArg& arg5 = RooCmdArg::none(), const RooCmdArg& arg6 = RooCmdArg::none(), const RooCmdArg& arg7 = RooCmdArg::none(), const RooCmdArg& arg8 = RooCmdArg::none())
 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 = kFALSE) const
 Internal function. Construct RooPlot from given parameter and modify the list of named
 arguments 'cmdList' to only contain the plot arguments that should be forwarded to
 RooAbsData::plotOn()
RooPlot* plotNLL(Double_t lo, Double_t hi, Int_t nBins = 100)
 Create a RooPlot of the -log(L) distribution in the range lo-hi
 with 'nBins' bins
RooPlot* plotError(const RooRealVar& param, Double_t lo, Double_t hi, Int_t nbins = 100)
 Create a RooPlot of the distribution of the fitted errors of the given parameter.
 The frame is created with a range [lo,hi] and plotted data will be binned in 'nbins' bins
RooPlot* plotPull(const RooRealVar& param, Double_t lo = -3.0, Double_t hi = 3.0, Int_t nbins = 25, Bool_t fitGauss = kFALSE)
 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 ML fit of the distribution to a Gaussian p.d.f
 is performed. The fit result is overlaid on the returned RooPlot
 and a box with the fitted mean and sigma is added.
RooMCStudy(const RooAbsPdf& model, const RooArgSet& observables, const RooCmdArg& arg1 = RooCmdArg::none(), const RooCmdArg& arg2 = RooCmdArg::none(), const RooCmdArg& arg3 = RooCmdArg::none(), const RooCmdArg& arg4 = RooCmdArg::none(), const RooCmdArg& arg5 = RooCmdArg::none(), const RooCmdArg& arg6 = RooCmdArg::none(), const RooCmdArg& arg7 = RooCmdArg::none(), const RooCmdArg& arg8 = RooCmdArg::none())
const RooDataSet* genParDataSet() const
 Return dataset with generator parameters for each toy. When constraints are used these
 may generally not be the same