Back to home page

EIC code displayed by LXR

 
 

    


Warning, file /include/root/RooJeffreysPrior.h was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 /*****************************************************************************
0002  * Project: RooStats
0003  * Package: RooStats
0004  *    File: $Id$
0005  * author: Kyle Cranmer
0006  *****************************************************************************/
0007 #ifndef JEFFREYSPRIOR
0008 #define JEFFREYSPRIOR
0009 
0010 #include "RooAbsPdf.h"
0011 #include "RooRealProxy.h"
0012 #include "RooListProxy.h"
0013 
0014 class RooRealVar;
0015 class RooArgList ;
0016 
0017 class RooJeffreysPrior : public RooAbsPdf {
0018 public:
0019 
0020   RooJeffreysPrior() : _cacheMgr(this, 1, true, false) {}
0021   RooJeffreysPrior(const char *name, const char *title, RooAbsPdf& nominal, const RooArgList& paramSet, const RooArgList& obsSet) ;
0022 
0023   RooJeffreysPrior(const RooJeffreysPrior& other, const char *name = nullptr);
0024   TObject* clone(const char* newname) const override { return new RooJeffreysPrior(*this, newname); }
0025 
0026   const RooArgList& lowList() const { return _obsSet ; }
0027   const RooArgList& paramList() const { return _paramSet ; }
0028 
0029 protected:
0030 
0031   RooTemplateProxy<RooAbsPdf> _nominal;    // Proxy to the PDF for this prior.
0032   RooListProxy _obsSet ;   // Observables of the PDF.
0033   RooListProxy _paramSet ; // Parameters of the PDF.
0034 
0035   double evaluate() const override;
0036 
0037 private:
0038   struct CacheElem : public RooAbsCacheElement {
0039   public:
0040       // Payload
0041       std::unique_ptr<RooAbsPdf> _pdf;
0042       std::unique_ptr<RooArgSet> _pdfVariables;
0043 
0044       RooArgList containedArgs(Action) override {
0045         RooArgList list(*_pdf);
0046         list.add(*_pdfVariables, true);
0047         return list;
0048       }
0049   };
0050   mutable RooObjCacheManager _cacheMgr; //!
0051 
0052   ClassDefOverride(RooJeffreysPrior,2) // Sum of RooAbsReal objects
0053 };
0054 
0055 #endif