Warning, file /include/root/RooChebychev.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 #ifndef ROO_CHEBYCHEV
0016 #define ROO_CHEBYCHEV
0017
0018 #include "RooAbsPdf.h"
0019 #include "RooRealProxy.h"
0020 #include "RooListProxy.h"
0021
0022 class RooRealVar;
0023 class RooArgList ;
0024
0025 class RooChebychev : public RooAbsPdf {
0026 public:
0027
0028 RooChebychev() ;
0029 RooChebychev(const char *name, const char *title,
0030 RooAbsReal& _x, const RooArgList& _coefList) ;
0031
0032 RooChebychev(const RooChebychev& other, const char *name = nullptr);
0033 TObject* clone(const char* newname) const override { return new RooChebychev(*this, newname); }
0034
0035 Int_t getAnalyticalIntegral(RooArgSet& allVars, RooArgSet& analVars, const char* rangeName=nullptr) const override ;
0036 double analyticalIntegral(Int_t code, const char* rangeName=nullptr) const override ;
0037
0038 void selectNormalizationRange(const char* rangeName=nullptr, bool force=false) override ;
0039
0040 void translate(RooFit::Detail::CodeSquashContext &ctx) const override;
0041 std::string
0042 buildCallToAnalyticIntegral(Int_t code, const char *rangeName, RooFit::Detail::CodeSquashContext &ctx) const override;
0043
0044 private:
0045 RooRealProxy _x;
0046 RooListProxy _coefList ;
0047 mutable TNamed* _refRangeName = nullptr;
0048
0049 double evaluate() const override;
0050 void doEval(RooFit::EvalContext &) const override;
0051 inline bool canComputeBatchWithCuda() const override { return true; }
0052
0053 double evalAnaInt(const double a, const double b) const;
0054
0055 ClassDefOverride(RooChebychev,2)
0056 };
0057
0058 #endif