JHUGen MELA  JHUGen v7.5.6, MELA v2.4.2
Matrix element calculations as used in JHUGen.
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