CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_5_3_13_patch3/src/HiggsAnalysis/CombinedLimit/interface/TestProposal.h

Go to the documentation of this file.
00001 #ifndef HiggsAnalysis_CombinedLimit_TestProposal_h
00002 #define HiggsAnalysis_CombinedLimit_TestProposal_h
00003 
00004 #include <Rtypes.h>
00005 
00006 struct RooRealVar;
00007 
00008 #include <RooArgSet.h>
00009 
00010 #include <RooStats/ProposalFunction.h>
00011 
00012 class TestProposal : public RooStats::ProposalFunction {
00013 
00014    public:
00015       TestProposal() : RooStats::ProposalFunction() {}
00016       TestProposal(double divisor, const RooRealVar *alwaysStepMe=0) ;
00017       TestProposal(double divisor, const RooArgList &alwaysStepMe) ;
00018 
00019       // Populate xPrime with a new proposed point
00020       virtual void Propose(RooArgSet& xPrime, RooArgSet& x);
00021 
00022       // Determine whether or not the proposal density is symmetric for
00023       // points x1 and x2 - that is, whether the probabilty of reaching x2
00024       // from x1 is equal to the probability of reaching x1 from x2
00025       virtual Bool_t IsSymmetric(RooArgSet& x1, RooArgSet& x2) ;
00026 
00027       // Return the probability of proposing the point x1 given the starting
00028       // point x2
00029       virtual Double_t GetProposalDensity(RooArgSet& x1, RooArgSet& x2);
00030 
00031       virtual ~TestProposal() {}
00032 
00033       ClassDef(TestProposal,1) // A concrete implementation of ProposalFunction, that uniformly samples the parameter space.
00034 
00035     private:
00036       double divisor_, poiDivisor_;
00037       RooArgList alwaysStepMe_;
00038 };
00039 
00040 #endif