// @(#)root/roostats:$Id$ // Author: Sven Kreiss and Kyle Cranmer June 2010 /************************************************************************* * Copyright (C) 1995-2008, Rene Brun and Fons Rademakers. * * All rights reserved. * * * * For the licensing terms see $ROOTSYS/LICENSE. * * For the list of contributors see $ROOTSYS/README/CREDITS. * *************************************************************************/ #ifndef ROOSTATS_ToyMCStudy #define ROOSTATS_ToyMCStudy //_________________________________________________ /* BEGIN_HTML

ToyMCStudy is an implementation of RooAbsStudy for toy Monte Carlo sampling. This class is automatically used by ToyMCSampler when given a ProofConfig. This is also its intended use case.

END_HTML */ // #ifndef ROOT_Rtypes #include "Rtypes.h" #endif #include "RooAbsStudy.h" #include "RooStats/ToyMCSampler.h" #include "RooStats/SamplingDistribution.h" #include "RooWorkspace.h" #include "RooArgSet.h" #include "RooDataSet.h" #include "RooLinkedList.h" #include "RooLinkedListIter.h" #include namespace RooStats { class ToyMCStudy: public RooAbsStudy { public: // need to have constructor without arguments for proof ToyMCStudy(const char *name = "ToyMCStudy", const char *title = "ToyMCStudy") : RooAbsStudy(name, title), fToyMCSampler(NULL) { // In this case, this is the normal output. The SamplingDistribution // instances are stored as detailed output. storeDetailedOutput(kTRUE); } RooAbsStudy* clone(const char* /*newname*/="") const { return new ToyMCStudy(*this) ; } virtual ~ToyMCStudy() {} // RooAbsStudy interfaces virtual Bool_t initialize(void); virtual Bool_t execute(void); virtual Bool_t finalize(void); RooDataSet* merge(); void SetToyMCSampler(ToyMCSampler& t) { fToyMCSampler = &t; } void SetParamPoint(const RooArgSet& paramPoint) { fParamPoint.add(paramPoint); } protected: ToyMCSampler *fToyMCSampler; RooArgSet fParamPoint; protected: ClassDef(ToyMCStudy,1); // toy MC study for parallel processing }; class ToyMCPayload : public TNamed { public: ToyMCPayload() { // proof constructor, do not use fDataSet = NULL; } ToyMCPayload(RooDataSet* sd) { fDataSet = sd; } virtual ~ToyMCPayload() { } RooDataSet* GetSamplingDistributions() { return fDataSet; } private: RooDataSet* fDataSet; protected: ClassDef(ToyMCPayload,1); }; } #endif