File indexing completed on 2025-11-27 10:23:43
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013 #ifndef RooFit_RooRatio_h
0014 #define RooFit_RooRatio_h
0015
0016 #include <RooAbsReal.h>
0017 #include <RooRealProxy.h>
0018
0019 class RooArgList;
0020
0021 class RooRatio : public RooAbsReal {
0022 public:
0023 RooRatio();
0024 RooRatio(const char *name, const char *title, double numerator, double denominator);
0025 RooRatio(const char *name, const char *title, double numerator, RooAbsReal &denominator);
0026 RooRatio(const char *name, const char *title, RooAbsReal &numerator, double denominator);
0027 RooRatio(const char *name, const char *title, RooAbsReal &numerator, RooAbsReal &denominator);
0028 RooRatio(const char *name, const char *title, const RooArgList &num, const RooArgList &denom);
0029
0030 RooRatio(const RooRatio &other, const char *name = nullptr);
0031 TObject *clone(const char *newname) const override { return new RooRatio(*this, newname); }
0032 ~RooRatio() override;
0033
0034 RooAbsReal const &numerator() const { return *_numerator; }
0035 RooAbsReal const &denominator() const { return *_denominator; }
0036
0037 protected:
0038 double evaluate() const override;
0039 void doEval(RooFit::EvalContext &) const override;
0040 inline bool canComputeBatchWithCuda() const override { return true; }
0041
0042 RooRealProxy _numerator;
0043 RooRealProxy _denominator;
0044
0045 ClassDefOverride(RooRatio, 2)
0046 };
0047
0048 #endif