Warning, file /include/root/RooExtendPdf.h was not indexed
or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016 #ifndef ROO_EXTEND_PDF
0017 #define ROO_EXTEND_PDF
0018
0019 #include "RooAbsPdf.h"
0020 #include "RooRealProxy.h"
0021
0022 class RooExtendPdf : public RooAbsPdf {
0023 public:
0024
0025 RooExtendPdf() = default;
0026
0027 RooExtendPdf(const char *name, const char *title, RooAbsPdf& pdf,
0028 RooAbsReal& norm, const char* rangeName=nullptr);
0029 RooExtendPdf(const char *name, const char *title, RooAbsPdf& pdf,
0030 RooAbsReal::Ref norm, const char* rangeName=nullptr) ;
0031 RooExtendPdf(const RooExtendPdf& other, const char* name=nullptr) ;
0032 TObject* clone(const char* newname) const override { return new RooExtendPdf(*this,newname) ; }
0033
0034 double evaluate() const override { return _pdf ; }
0035
0036 bool forceAnalyticalInt(const RooAbsArg& ) const override { return true ; }
0037
0038 Int_t getAnalyticalIntegralWN(RooArgSet& allVars, RooArgSet& analVars, const RooArgSet* normSet, const char* rangeName=nullptr) const override {
0039 return _pdf->getAnalyticalIntegralWN(allVars, analVars, normSet, rangeName) ;
0040 }
0041
0042 double analyticalIntegralWN(Int_t code, const RooArgSet* normSet, const char* rangeName=nullptr) const override {
0043 return _pdf->analyticalIntegralWN(code, normSet, rangeName) ;
0044 }
0045
0046 bool selfNormalized() const override { return true ; }
0047 ExtendMode extendMode() const override { return CanBeExtended ; }
0048 double expectedEvents(const RooArgSet* nset) const override ;
0049 std::unique_ptr<RooAbsReal> createExpectedEventsFunc(const RooArgSet* nset) const override;
0050
0051 void translate(RooFit::Detail::CodeSquashContext &ctx) const override;
0052
0053 protected:
0054
0055 RooTemplateProxy<RooAbsPdf> _pdf;
0056 RooTemplateProxy<RooAbsReal> _n;
0057 const TNamed* _rangeName = nullptr;
0058
0059
0060 ClassDefOverride(RooExtendPdf,2)
0061 };
0062
0063 #endif