71 if (fIndex >= fNToys) {
77 nuisPoint = *fPoints->get(fIndex++);
78 weight = fPoints->weight();
81 if(fPoints->weight() == 0.0) {
83 NextPoint(nuisPoint, weight);
93 void NuisanceParametersSampler::Refresh() {
95 if (!fPrior || !fParams)
return;
97 if (fPoints)
delete fPoints;
107 TIter it2 = fParams->createIterator();
109 while ((myarg2 = dynamic_cast<RooRealVar*>(it2.
Next()))) {
114 fPoints = fPrior->generate(
120 if(fPoints->numEntries() != fNToys) {
121 fNToys = fPoints->numEntries();
123 "Adjusted number of toys to number of bins of nuisance parameters: " << fNToys << endl;
141 fPoints = fPrior->generate(*fParams, fNToys);
149 void ToyMCSampler::SetAlwaysUseMultiGen(
Bool_t flag) { fgAlwaysUseMultiGen = flag ; }
154 ToyMCSampler::ToyMCSampler() : fSamplingDistName(
"SD"), fNToys(1)
248 bool goodConfig =
true;
274 if (!allTS)
return 0;
296 if (saveAll) *allVars = *saveAll;
337 <<
"Bad COnfiguration in ToyMCSampler " 346 <<
"Adaptive sampling in ToyMCSampler is not supported for parallel runs." 392 <<
"Bad COnfiguration in ToyMCSampler " 415 if ( i% 500 == 0 && i>0 ) {
424 Double_t valueFirst = -999.0, weight = 1.0;
437 valueFirst = firstTS->getVal();
442 if(valueFirst != valueFirst) {
451 if(weight >= 0.) toysInTails += weight;
452 else toysInTails += 1.;
496 for (
int i=0; i < nCat; ++i){
508 list<RooArgSet*>::iterator oiter =
_obsList.begin();
509 list<RooAbsPdf::GenSpec*>::iterator giter =
_gsList.begin();
510 for (list<RooAbsPdf*>::iterator iter =
_pdfList.begin(); iter !=
_pdfList.end(); ++iter, ++giter, ++oiter) {
513 **oiter = *tmp->
get(0);
548 *allVars = paramPoint;
578 RooArgSet allVarsMinusParamPoint(*allVars);
593 *allVars = *saveVars;
615 int events = forceEvents;
647 <<
"ToyMCSampler: Error : pdf is not extended and number of events per toy is zero" 696 last->
Add(newSamples);
721 std::list<RooArgSet*>::iterator oiter =
_obsList.begin();
722 for (std::list<RooAbsPdf::GenSpec*>::iterator giter =
_gsList.begin(); giter !=
_gsList.end(); ++giter, ++oiter) {
RooArgSet * getVariables(Bool_t stripDisconnected=kTRUE) const
Return RooArgSet with all variables (tree leaf nodes of expresssion tree)
virtual const char * GetName() const
Returns name of object.
RooArgSet * getObservables(const RooArgSet &set, Bool_t valueOnly=kTRUE) const
virtual SamplingDistribution * GetSamplingDistribution(RooArgSet ¶mPoint)
const char * GetHost(void) const
Bool_t fGenerateAutoBinned
Bool_t GetShowGui(void) const
virtual RooDataSet * GetSamplingDistributions(RooArgSet ¶mPoint)
Use for serial and parallel runs.
virtual Bool_t setIndex(Int_t index, Bool_t printError=kTRUE)
Set value by specifying the index code of the desired state.
RooAbsData * Generate(RooAbsPdf &pdf, RooArgSet &observables, const RooDataSet *protoData=NULL, int forceEvents=0) const
This is the generate function to use in the context of the ToyMCSampler instead of the standard RooAb...
RooAbsPdf::GenSpec * _gs1
RooCmdArg NumEvents(Int_t numEvents)
RooWorkspace & GetWorkspace(void) const
std::string fSamplingDistName
StreamConfig & getStream(Int_t id)
GenSpec * prepareMultiGen(const RooArgSet &whatVars, 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())
Prepare GenSpec configuration object for efficient generation of multiple datasets from idetical spec...
NuisanceParametersSampler * fNuisanceParametersSampler
void removeTopic(RooFit::MsgTopic oldTopic)
static RooMsgService & instance()
Return reference to singleton instance.
const RooArgList * GetAsArgList() const
RooCmdArg Extended(Bool_t flag=kTRUE)
void SetRandomSeed(unsigned int seed)
This class is designed to aid in the construction of RooDataSets and RooArgSets, particularly those n...
Double_t fAdaptiveLowLimit
void SetParamPoint(const RooArgSet ¶mPoint)
ToyMCStudy is an implementation of RooAbsStudy for toy Monte Carlo sampling.
Int_t numTypes(const char *=0) const
static TString Format(const char *fmt,...)
Static method which formats a string using a printf style format descriptor and return a TString...
TString fGenerateBinnedTag
virtual SamplingDistribution * AppendSamplingDistribution(RooArgSet &allParameters, SamplingDistribution *last, Int_t additionalMC)
Extended interface to append to sampling distribution more samples.
virtual RooArgList * EvaluateAllTestStatistics(RooAbsData &data, const RooArgSet &poi)
Evaluate all test statistics, returning result and any detailed output.
virtual RooDataSet * GetSamplingDistributionsSingleWorker(RooArgSet ¶mPoint)
This is the main function for serial runs.
static TRandom * randomGenerator()
Return a pointer to a singleton random-number generator implementation.
Bool_t CheckConfig(void)
only checks, no guessing/determination (do this in calculators, e.g.
Double_t fAdaptiveHighLimit
void setBins(Int_t nBins, const char *name=0)
void CommitSet(double weight=1.0)
Commit to the result RooDataSet.
virtual Double_t expectedEvents(const RooArgSet *nset) const
Return expected number of events from this p.d.f for use in extended likelihood calculations.
RooCmdArg ExpectedData(Bool_t flag=kTRUE)
RooRealVar represents a fundamental (non-derived) real valued object.
std::list< RooArgSet * > _obsList
void AppendArgSet(const RooAbsCollection *aset, TString prefix="")
For each variable in aset, prepend prefix to its name and add to the internal store.
RooAbsCollection * snapshot(Bool_t deepCopy=kTRUE) const
Take a snap shot of current collection contents: An owning collection is returned containing clones o...
const RooAbsCategoryLValue & indexCat() const
RooAbsArg * first() const
const RooDataSet * fProtoData
Int_t GetNExperiments(void) const
virtual void ClearCache()
clear the cache obtained from the pdf used for speeding the toy and global observables generation nee...
ProofConfig * fProofConfig
static Double_t infinity()
Return internal infinity representation.
std::vector< TestStatistic * > fTestStatistics
const RooArgSet * fGlobalObservables
RooStudyManager is a utility class to manage studies that consist of repeated applications of generat...
RooAbsData is the common abstract base class for binned and unbinned datasets.
ToyMCSampler is an implementation of the TestStatSampler interface.
RooCmdArg GenBinned(const char *tag)
void Add(const SamplingDistribution *other)
merge two sampling distributions
RooDataSet * GetAsDataSet(TString name, TString title)
Returns all detailed output as a dataset.
RooDataSet is a container class to hold unbinned data.
This class simply holds a sampling distribution of some test statistic.
RooCategory represents a fundamental (non-derived) discrete value object.
Bool_t canBeExtended() const
virtual const RooArgSet * get(Int_t index) const
Return RooArgSet with coordinates of event 'index'.
Namespace for the RooStats classes.
RooAbsPdf::GenSpec * _gs4
GenSpec #3.
RooCmdArg AutoBinned(Bool_t flag=kTRUE)
RooCmdArg ProtoData(const RooDataSet &protoData, Bool_t randomizeOrder=kFALSE, Bool_t resample=kFALSE)
std::list< RooAbsPdf::GenSpec * > _gsList
void SetToyMCSampler(ToyMCSampler &t)
virtual const char * getLabel() const
Return label string of current state.
static Bool_t fgAlwaysUseMultiGen
GenSpec #4.
virtual RooAbsData * GenerateToyData(RooArgSet ¶mPoint, RooAbsPdf &pdf) const
Mother of all ROOT objects.
virtual Bool_t remove(const RooAbsArg &var, Bool_t silent=kFALSE, Bool_t matchByNameOnly=kFALSE)
Remove the specified argument from our list.
RooAbsPdf * getPdf(const char *catName) const
Return the p.d.f associated with the given index category name.
ToyMCSampler()
Proof constructor. Do not use.
const RooArgSet * fObservables
RooAbsPdf is the abstract interface for all probability density functions The class provides hybrid a...
const RooArgSet * fParametersForTestStat
RooDataSet * generate(const RooArgSet &whatVars, Int_t nEvents, const RooCmdArg &arg1, const RooCmdArg &arg2=RooCmdArg::none(), const RooCmdArg &arg3=RooCmdArg::none(), const RooCmdArg &arg4=RooCmdArg::none(), const RooCmdArg &arg5=RooCmdArg::none())
Generate a new dataset containing the specified variables with events sampled from our distribution...
RooAbsPdf::GenSpec * _gs3
GenSpec #2.
virtual void GenerateGlobalObservables(RooAbsPdf &pdf) const
RooAbsPdf::GenSpec * _gs2
GenSpec #1.
const RooArgSet * fNuisancePars
RooSimultaneous facilitates simultaneous fitting of multiple PDFs to subsets of a given dataset...
virtual RooDataSet * generateSimGlobal(const RooArgSet &whatVars, Int_t nEvents)
Special generator interface for generation of 'global observables' – for RooStats tools...
Bool_t fExpectedNuisancePar
TestStatistic is an interface class to provide a facility for construction test statistics distributi...
virtual void AddTestStatistic(TestStatistic *t=NULL)
RooAbsPdf * fPriorNuisance
std::list< RooAbsPdf * > _pdfList
The RooWorkspace is a persistable container for RooFit projects.
virtual Int_t numEntries() const
virtual const char * GetTitle() const
Returns title of object.