15 #ifndef ROOSTATS_ProposalFunction
16 #define ROOSTATS_ProposalFunction
42 class ProposalFunction :
public TObject {
48 virtual ~ProposalFunction() {}
52 virtual void Propose(RooArgSet& xPrime, RooArgSet& x) = 0;
57 virtual Bool_t IsSymmetric(RooArgSet& x1, RooArgSet& x2) = 0;
61 virtual Double_t GetProposalDensity(RooArgSet& x1, RooArgSet& x2) = 0;
66 virtual bool CheckParameters(RooArgSet& params)
68 TIterator* it = params.createIterator();
70 while ((obj = it->Next()) != NULL) {
71 if (!dynamic_cast<RooRealVar*>(obj)) {
72 coutE(Eval) <<
"Error when checking parameters in"
73 <<
"ProposalFunction: "
74 <<
"Object \"" << obj->GetName() <<
"\" not of type "
75 <<
"RooRealVar" << std::endl;
86 ClassDef(ProposalFunction,1)