Back to home page

EIC code displayed by LXR

 
 

    


Warning, file /include/root/RooTFnPdfBinding.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  *
0004  * Copyright (c) 2023, CERN
0005  *
0006  * Redistribution and use in source and binary forms,
0007  * with or without modification, are permitted according to the terms
0008  * listed in LICENSE (http://roofit.sourceforge.net/license.txt)
0009  */
0010 
0011 #ifndef ROOTFNPDFBINDING
0012 #define ROOTFNPDFBINDING
0013 
0014 #include "RooListProxy.h"
0015 #include "RooAbsPdf.h"
0016 class TF1 ;
0017 class TF2 ;
0018 class TF3 ;
0019 
0020 class RooTFnPdfBinding : public RooAbsPdf {
0021 public:
0022   RooTFnPdfBinding() = default;
0023   RooTFnPdfBinding(const char *name, const char *title, TF1* func, const RooArgList& list);
0024   RooTFnPdfBinding(const RooTFnPdfBinding& other, const char* name=nullptr) ;
0025   TObject* clone(const char* newname) const override { return new RooTFnPdfBinding(*this,newname); }
0026 
0027   void printArgs(std::ostream& os) const override ;
0028 
0029 protected:
0030 
0031   RooListProxy _list ;
0032   TF1* _func = nullptr;
0033 
0034   double evaluate() const override ;
0035 
0036 private:
0037 
0038   ClassDefOverride(RooTFnPdfBinding,1) // RooAbsPdf binding to ROOT TF[123] functions
0039 };
0040 
0041 
0042 namespace RooFit {
0043 
0044 RooAbsPdf* bindPdf(TF1* func,RooAbsReal& x) ;
0045 RooAbsPdf* bindPdf(TF2* func,RooAbsReal& x, RooAbsReal& y) ;
0046 RooAbsPdf* bindPdf(TF3* func,RooAbsReal& x, RooAbsReal& y, RooAbsReal& z) ;
0047 
0048 }
0049 
0050 
0051 #endif