Back to home page

EIC code displayed by LXR

 
 

    


Warning, file /include/root/RooRatio.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: RooFit
0003  * Author:
0004  *   Rahul Balasubramanian, Nikhef 01 Apr 2021
0005  *
0006  * Copyright (c) 2023, CERN
0007  *
0008  * Redistribution and use in source and binary forms,
0009  * with or without modification, are permitted according to the terms
0010  * listed in LICENSE (http://roofit.sourceforge.net/license.txt)
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 protected:
0035    double evaluate() const override;
0036    void doEval(RooFit::EvalContext &) const override;
0037    inline bool canComputeBatchWithCuda() const override { return true; }
0038 
0039    void translate(RooFit::Detail::CodeSquashContext &ctx) const override;
0040 
0041    RooRealProxy _numerator;
0042    RooRealProxy _denominator;
0043 
0044    ClassDefOverride(RooRatio, 2) // Ratio of two RooAbsReal and/or numbers
0045 };
0046 
0047 #endif