CMS 3D CMS Logo

Public Member Functions | Public Attributes

DebugProposal Class Reference

#include <DebugProposal.h>

List of all members.

Public Member Functions

 DebugProposal ()
 DebugProposal (RooStats::ProposalFunction *p, RooAbsPdf *pdf, RooAbsData *data, int tries)
virtual Double_t GetProposalDensity (RooArgSet &x1, RooArgSet &x2)
virtual Bool_t IsSymmetric (RooArgSet &x1, RooArgSet &x2)
virtual void Propose (RooArgSet &xPrime, RooArgSet &x)
void tracePdf (RooAbsReal *pdf)
virtual ~DebugProposal ()

Public Attributes

ClassDef(DebugProposal,
1) private std::auto_ptr
< RooAbsReal > 
nll_
RooArgSet params_
RooAbsPdf * pdf_
int tries_

Detailed Description

Definition at line 14 of file DebugProposal.h.


Constructor & Destructor Documentation

DebugProposal::DebugProposal ( ) [inline]

Definition at line 17 of file DebugProposal.h.

: RooStats::ProposalFunction(), prop_(0), nll_(0), params_(), tries_(0)  {}
DebugProposal::DebugProposal ( RooStats::ProposalFunction *  p,
RooAbsPdf *  pdf,
RooAbsData *  data,
int  tries 
)

Definition at line 8 of file DebugProposal.cc.

References nll_, and params_.

                                                                                                     : 
    RooStats::ProposalFunction(), prop_(p), pdf_(pdf), tries_(tries) 
{
    if (pdf && data) {
        nll_.reset(pdf->createNLL(*data));
        RooArgSet *par = pdf->getParameters(*data);
        RooStats::RemoveConstantParameters(par);
        params_.add(*par);
        delete par;
    }
    if (tries) {
        p->Print("V");
    }
}
virtual DebugProposal::~DebugProposal ( ) [inline, virtual]

Definition at line 32 of file DebugProposal.h.

{}

Member Function Documentation

Double_t DebugProposal::GetProposalDensity ( RooArgSet &  x1,
RooArgSet &  x2 
) [virtual]

Definition at line 51 of file DebugProposal.cc.

References gather_cfg::cout, run_regression::ret, and tries_.

{
   if (tries_ > 0) {  
       std::cout << "DebugProposal::GetProposalDensity: x1" << std::endl; x1.Print("V"); 
       std::cout << "DebugProposal::GetProposalDensity: x2" << std::endl; x2.Print("V"); 
   }
   Double_t ret = prop_->GetProposalDensity(x1,x2);
   if (tries_ > 0) { std::cout << "DebugProposal::GetProposalDensity: return " << ret << std::endl; }
   return ret;
}
Bool_t DebugProposal::IsSymmetric ( RooArgSet &  x1,
RooArgSet &  x2 
) [virtual]

Definition at line 64 of file DebugProposal.cc.

References gather_cfg::cout, run_regression::ret, and tries_.

                                                              {
   if (tries_ > 0) {  
       std::cout << "DebugProposal::IsSymmetric: x1" << std::endl; x1.Print("V"); 
       std::cout << "DebugProposal::IsSymmetric: x2" << std::endl; x2.Print("V"); 
   }
   Bool_t ret = prop_->IsSymmetric(x1,x2);
   if (tries_ > 0) { std::cout << "DebugProposal::IsSymmetric: return " << ret << std::endl; }
   return ret;
}
void DebugProposal::Propose ( RooArgSet &  xPrime,
RooArgSet &  x 
) [virtual]

Definition at line 24 of file DebugProposal.cc.

References gather_cfg::cout, create_public_lumi_plots::exp, nll_, params_, tracePdf(), and tries_.

{
   prop_->Propose(xPrime,x);
   if (tries_ > 0) {  
        std::cout << "DebugProposal::Propose: x'" << std::endl; xPrime.Print("V"); 
        std::cout << "DebugProposal::Propose: x " << std::endl; x.Print("V"); 
        if (nll_.get()) {
            RooStats::SetParameters(&xPrime, &params_);
            double nllXP = nll_->getVal();
            RooStats::SetParameters(&x, &params_);
            double nllX  = nll_->getVal();
            std::cout << "DebugProposal::Propose: NLL(x)  = " << nllX  << std::endl;
            std::cout << "DebugProposal::Propose: NLL(x') = " << nllXP << std::endl;
            std::cout << "DebugProposal::Propose: uncorrected acc prob. = " << exp(nllX - nllXP) << std::endl;
            std::cout << "DebugProposal::Propose: tracing NLL(x')" << std::endl;
            RooStats::SetParameters(&xPrime, &params_);
            tracePdf(nll_.get());
            std::cout << "DebugProposal::Propose: tracing NLL(x)" << std::endl;
            RooStats::SetParameters(&x, &params_);
            tracePdf(nll_.get());
        }
        --tries_;
   }
}
void DebugProposal::tracePdf ( RooAbsReal *  pdf)

Definition at line 74 of file DebugProposal.cc.

References gather_cfg::cout, i, and n.

Referenced by Propose().

                                            {
   RooArgList deps;
   deps.add(*pdf);
   pdf->treeNodeServerList(&deps);
   for (int i = 0, n = deps.getSize(); i < n; ++i) {
      RooAbsReal *rar = dynamic_cast<RooAbsReal *>(deps.at(i));
      if (typeid(*rar) == typeid(RooRealVar) || rar->isConstant()) continue;
      if (rar != 0) {
        std::cout << "   " << rar->GetName() << " = " << rar->getVal() << std::endl;
      }
   }
}

Member Data Documentation

ClassDef (DebugProposal,1) private std::auto_ptr<RooAbsReal> DebugProposal::nll_

Definition at line 34 of file DebugProposal.h.

Referenced by DebugProposal(), and Propose().

Definition at line 40 of file DebugProposal.h.

Referenced by DebugProposal(), and Propose().

RooAbsPdf* DebugProposal::pdf_

Definition at line 39 of file DebugProposal.h.

Definition at line 41 of file DebugProposal.h.

Referenced by GetProposalDensity(), IsSymmetric(), and Propose().