File indexing completed on 2025-09-17 09:15:11
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016 #ifndef ROO_EXPONENTIAL
0017 #define ROO_EXPONENTIAL
0018
0019 #include <RooAbsPdf.h>
0020 #include <RooRealProxy.h>
0021
0022 class RooExponential : public RooAbsPdf {
0023 public:
0024 RooExponential() {}
0025 RooExponential(const char *name, const char *title, RooAbsReal &variable, RooAbsReal &coefficient,
0026 bool negateCoefficient = false);
0027 RooExponential(const RooExponential &other, const char *name = nullptr);
0028 TObject *clone(const char *newname) const override { return new RooExponential(*this, newname); }
0029
0030 Int_t getAnalyticalIntegral(RooArgSet &allVars, RooArgSet &analVars, const char *rangeName = nullptr) const override;
0031 double analyticalIntegral(Int_t code, const char *rangeName = nullptr) const override;
0032
0033
0034 RooAbsReal const &variable() const { return x.arg(); }
0035
0036
0037 RooAbsReal const &coefficient() const { return c.arg(); }
0038
0039 bool negateCoefficient() const { return _negateCoefficient; }
0040
0041 protected:
0042 RooRealProxy x;
0043 RooRealProxy c;
0044 bool _negateCoefficient = false;
0045
0046 double evaluate() const override;
0047 void doEval(RooFit::EvalContext &) const override;
0048 inline bool canComputeBatchWithCuda() const override { return true; }
0049
0050 private:
0051 ClassDefOverride(RooExponential, 2)
0052 };
0053
0054 #endif