Loading [MathJax]/extensions/tex2jax.js
JHUGen MELA  JHUGen v7.5.6, MELA v2.4.2
Matrix element calculations as used in JHUGen.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
MELAFuncPdf.h
Go to the documentation of this file.
1 #ifndef MELAFUNCPDF
2 #define MELAFUNCPDF
3 
4 #include "RooRealProxy.h"
5 #include "RooAbsPdf.h"
6 
7 class MELAFuncPdf : public RooAbsPdf{
8 protected:
9  RooRealProxy theFunc;
10 
11 public:
12  MELAFuncPdf() : RooAbsPdf(){}
14  const char* name,
15  const char* title
16  ) : RooAbsPdf(name, title), theFunc("theFunc","theFunc",this){}
18  const char* name,
19  const char* title,
20  RooAbsReal& inFunc
21  ) : RooAbsPdf(name, title), theFunc("theFunc", "theFunc", this, inFunc){}
22  MELAFuncPdf(const MELAFuncPdf& other, const char* name=0) : RooAbsPdf(other, name), theFunc("theFunc", this, other.theFunc){}
23  TObject* clone(const char* newname)const{ return new MELAFuncPdf(*this, newname); }
24  inline virtual ~MELAFuncPdf(){}
25 
26  Int_t getAnalyticalIntegral(RooArgSet& allVars, RooArgSet& analVars, const char* rangeName=0)const{ return dynamic_cast<RooAbsReal*>(theFunc.absArg())->getAnalyticalIntegral(allVars, analVars, rangeName); }
27  Double_t analyticalIntegral(Int_t code, const char* rangeName=0)const{ return dynamic_cast<RooAbsReal*>(theFunc.absArg())->analyticalIntegral(code, rangeName); }
28 
29  Int_t getAnalyticalIntegralWN(RooArgSet& allVars, RooArgSet& analVars, const RooArgSet *normSet, const char* rangeName=0)const{ return dynamic_cast<RooAbsReal*>(theFunc.absArg())->getAnalyticalIntegralWN(allVars, analVars, normSet, rangeName); }
30  Double_t analyticalIntegralWN(Int_t code, const RooArgSet* normSet, const char* rangeName=0)const{
31  RooAbsPdf* pdfcast = dynamic_cast<RooAbsPdf*>(theFunc.absArg());
32  if (pdfcast!=0) return pdfcast->analyticalIntegralWN(code, normSet, rangeName);
33  else return RooAbsPdf::analyticalIntegralWN(code, normSet, rangeName);
34  }
35 
36 protected:
37  Double_t evaluate()const{ return theFunc; }
38 
39 
40  ClassDef(MELAFuncPdf, 0)
41 
42 };
43 
45 
46 #endif
MELAFuncPdf::MELAFuncPdf
MELAFuncPdf(const char *name, const char *title, RooAbsReal &inFunc)
Definition: MELAFuncPdf.h:17
MELAFuncPdf::MELAFuncPdf
MELAFuncPdf(const MELAFuncPdf &other, const char *name=0)
Definition: MELAFuncPdf.h:22
MELAFuncPdf::getAnalyticalIntegral
Int_t getAnalyticalIntegral(RooArgSet &allVars, RooArgSet &analVars, const char *rangeName=0) const
Definition: MELAFuncPdf.h:26
ClassImp
ClassImp(MELALinearInterpFunc) MELALinearInterpFunc
Definition: MELALinearInterpFunc.cc:12
MELAFuncPdf::~MELAFuncPdf
virtual ~MELAFuncPdf()
Definition: MELAFuncPdf.h:24
MELAFuncPdf::MELAFuncPdf
MELAFuncPdf()
Definition: MELAFuncPdf.h:12
MELAFuncPdf::evaluate
Double_t evaluate() const
Definition: MELAFuncPdf.h:37
MELAFuncPdf::clone
TObject * clone(const char *newname) const
Definition: MELAFuncPdf.h:23
MELAFuncPdf::theFunc
RooRealProxy theFunc
Definition: MELAFuncPdf.h:9
MELAFuncPdf::getAnalyticalIntegralWN
Int_t getAnalyticalIntegralWN(RooArgSet &allVars, RooArgSet &analVars, const RooArgSet *normSet, const char *rangeName=0) const
Definition: MELAFuncPdf.h:29
MELAFuncPdf::analyticalIntegral
Double_t analyticalIntegral(Int_t code, const char *rangeName=0) const
Definition: MELAFuncPdf.h:27
MELAFuncPdf
Definition: MELAFuncPdf.h:7
MELAFuncPdf::analyticalIntegralWN
Double_t analyticalIntegralWN(Int_t code, const RooArgSet *normSet, const char *rangeName=0) const
Definition: MELAFuncPdf.h:30
MELAFuncPdf::MELAFuncPdf
MELAFuncPdf(const char *name, const char *title)
Definition: MELAFuncPdf.h:13