Back to home page

EIC code displayed by LXR

 
 

    


Warning, file /include/root/RooGaussExpTails.h was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 #ifndef RooFit_RooFit_RooGaussExpTails_h
0002 #define RooFit_RooFit_RooGaussExpTails_h
0003 
0004 #include "RooAbsPdf.h"
0005 #include "RooRealProxy.h"
0006 
0007 class RooAbsReal;
0008 
0009 class RooGaussExpTails : public RooAbsPdf {
0010 public:
0011    RooGaussExpTails() {}
0012    RooGaussExpTails(const char *name, const char *title, RooAbsReal::Ref x, RooAbsReal::Ref x0, RooAbsReal::Ref sigma,
0013                     RooAbsReal::Ref kL, RooAbsReal::Ref kH);
0014    RooGaussExpTails(const RooGaussExpTails &other, const char *name = nullptr);
0015    TObject *clone(const char *newname) const override { return new RooGaussExpTails(*this, newname); }
0016 
0017    Int_t getAnalyticalIntegral(RooArgSet &allVars, RooArgSet &analVars, const char *rangeName = nullptr) const override;
0018    double analyticalIntegral(Int_t code, const char *rangeName = nullptr) const override;
0019 
0020    RooAbsReal const &x() const { return *_x; }
0021    RooAbsReal const &x0() const { return *_x0; }
0022    RooAbsReal const &sigma() const { return *_sigma; }
0023    RooAbsReal const &kL() const { return *_kL; }
0024    RooAbsReal const &kH() const { return *_kH; }
0025 
0026 protected:
0027    double evaluate() const override;
0028 
0029 private:
0030    RooRealProxy _x;
0031    RooRealProxy _x0;
0032    RooRealProxy _sigma;
0033    RooRealProxy _kL;
0034    RooRealProxy _kH;
0035 
0036 private:
0037    ClassDefOverride(RooGaussExpTails, 1) // Gaussian with double-sided exponential tails PDF, see https://arxiv.org/abs/1603.08591v1
0038 };
0039 
0040 #endif