12 #ifndef ROOSTATS_MarkovChain
13 #define ROOSTATS_MarkovChain
30 class MarkovChain :
public TNamed {
34 MarkovChain(RooArgSet& parameters);
35 MarkovChain(
const char* name,
const char* title, RooArgSet& parameters);
38 virtual void Add(RooArgSet& entry, Double_t nllValue, Double_t weight = 1.0);
41 virtual void AddFast(RooArgSet& entry, Double_t nllValue, Double_t weight = 1.0);
43 virtual void AddWithBurnIn(MarkovChain& otherChain, Int_t burnIn = 0);
45 virtual void Add(MarkovChain& otherChain, Double_t discardEntries = 0.0);
47 virtual void SetParameters(RooArgSet& parameters);
49 virtual Int_t Size()
const {
return fChain ? fChain->numEntries() : 0; }
51 virtual const RooArgSet* Get(Int_t i)
const {
return fChain->get(i); }
53 virtual const RooArgSet* Get()
const {
return fChain->get(); }
55 virtual Double_t Weight()
const;
57 virtual Double_t Weight(Int_t i)
const;
59 virtual Double_t NLL(Int_t i)
const;
61 virtual Double_t NLL()
const;
67 virtual RooDataSet* GetAsDataSet(RooArgSet* whichVars = NULL)
const;
71 virtual RooDataSet* GetAsDataSet(
const RooCmdArg& arg1,
72 const RooCmdArg& arg2=RooCmdArg::none(),
const RooCmdArg& arg3=RooCmdArg::none(),
73 const RooCmdArg& arg4=RooCmdArg::none(),
const RooCmdArg& arg5=RooCmdArg::none(),
74 const RooCmdArg& arg6=RooCmdArg::none(),
const RooCmdArg& arg7=RooCmdArg::none(),
75 const RooCmdArg& arg8=RooCmdArg::none() )
const;
77 virtual const RooDataSet* GetAsConstDataSet()
const {
return fChain; }
83 virtual RooDataHist* GetAsDataHist(RooArgSet* whichVars = NULL)
const;
87 virtual RooDataHist* GetAsDataHist(
const RooCmdArg & arg1,
88 const RooCmdArg& arg2=RooCmdArg::none(),
const RooCmdArg& arg3=RooCmdArg::none(),
89 const RooCmdArg& arg4=RooCmdArg::none(),
const RooCmdArg& arg5=RooCmdArg::none(),
90 const RooCmdArg& arg6=RooCmdArg::none(),
const RooCmdArg& arg7=RooCmdArg::none(),
91 const RooCmdArg& arg8=RooCmdArg::none() )
const;
95 virtual THnSparse* GetAsSparseHist(RooAbsCollection* whichVars = NULL)
const;
96 virtual THnSparse* GetAsSparseHist(RooAbsCollection& whichVars)
const
97 {
return GetAsSparseHist(&whichVars); }
100 virtual RooRealVar* GetNLLVar()
const
101 {
return (RooRealVar*)fNLL->Clone(); }
104 virtual RooRealVar* GetWeightVar()
const
105 {
return (RooRealVar*)fWeight->Clone(); }
107 virtual ~MarkovChain()
115 RooArgSet * fParameters;
116 RooArgSet * fDataEntry;
121 ClassDef(MarkovChain,1);