// @(#)root/roostats:$Id$
// Authors: Giovanni Petrucciani 4/21/2011
/*************************************************************************
 * 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_SequentialProposal
#define RooStats_SequentialProposal

#ifndef ROOT_Rtypes
#include "Rtypes.h"
#endif
#ifndef ROOSTATS_ProposalFunction
#include "RooStats/ProposalFunction.h"
#endif
#ifndef ROO_ARG_SET
#include "RooArgSet.h"
#endif

namespace RooStats {


class SequentialProposal : public ProposalFunction {

   public:
   SequentialProposal() : RooStats::ProposalFunction(), fDivisor(0) {}
      SequentialProposal(double divisor) ;

      // Populate xPrime with a new proposed point
      virtual void Propose(RooArgSet& xPrime, RooArgSet& x);

      // Determine whether or not the proposal density is symmetric for
      // points x1 and x2 - that is, whether the probabilty of reaching x2
      // from x1 is equal to the probability of reaching x1 from x2
      virtual Bool_t IsSymmetric(RooArgSet& x1, RooArgSet& x2) ;

      // Return the probability of proposing the point x1 given the starting
      // point x2
      virtual Double_t GetProposalDensity(RooArgSet& x1, RooArgSet& x2);

      virtual ~SequentialProposal() {}

      ClassDef(SequentialProposal,1) // A concrete implementation of ProposalFunction, that uniformly samples the parameter space.

    private:

      double fDivisor;
};

} 

#endif
 SequentialProposal.h:1
 SequentialProposal.h:2
 SequentialProposal.h:3
 SequentialProposal.h:4
 SequentialProposal.h:5
 SequentialProposal.h:6
 SequentialProposal.h:7
 SequentialProposal.h:8
 SequentialProposal.h:9
 SequentialProposal.h:10
 SequentialProposal.h:11
 SequentialProposal.h:12
 SequentialProposal.h:13
 SequentialProposal.h:14
 SequentialProposal.h:15
 SequentialProposal.h:16
 SequentialProposal.h:17
 SequentialProposal.h:18
 SequentialProposal.h:19
 SequentialProposal.h:20
 SequentialProposal.h:21
 SequentialProposal.h:22
 SequentialProposal.h:23
 SequentialProposal.h:24
 SequentialProposal.h:25
 SequentialProposal.h:26
 SequentialProposal.h:27
 SequentialProposal.h:28
 SequentialProposal.h:29
 SequentialProposal.h:30
 SequentialProposal.h:31
 SequentialProposal.h:32
 SequentialProposal.h:33
 SequentialProposal.h:34
 SequentialProposal.h:35
 SequentialProposal.h:36
 SequentialProposal.h:37
 SequentialProposal.h:38
 SequentialProposal.h:39
 SequentialProposal.h:40
 SequentialProposal.h:41
 SequentialProposal.h:42
 SequentialProposal.h:43
 SequentialProposal.h:44
 SequentialProposal.h:45
 SequentialProposal.h:46
 SequentialProposal.h:47
 SequentialProposal.h:48
 SequentialProposal.h:49
 SequentialProposal.h:50
 SequentialProposal.h:51
 SequentialProposal.h:52
 SequentialProposal.h:53
 SequentialProposal.h:54
 SequentialProposal.h:55
 SequentialProposal.h:56