MINT2
RooSplineProduct.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * Project: RooFit *
3  * Package: RooFitModels *
4  * File: $Id$
5  * Authors: *
6  * Katya Govorkova, Nikhef 2k17
7  * *
8  *****************************************************************************/
9 #ifndef ROO_SPLINEPRODUCT
10 #define ROO_SPLINEPRODUCT
11 
12 #include "RooRealProxy.h"
13 #include "RooListProxy.h"
14 
16 #include "Mint/RooCubicSplineFun.h"
18 
19 class RooRealVar;
20 class RooArgList ;
21 class TH1;
22 class TGraph;
23 class TGraphErrors;
24 
26 public:
28  RooSplineProduct(const char* name, const char* title, RooRealVar& x,
29  const RooCubicSplineFun& sp1, const RooCubicSplineFun& sp2);
31 
32  RooSplineProduct(const RooSplineProduct& other, const char* name = 0);
33  TObject* clone(const char* newname) const { return new RooSplineProduct(*this, newname); }
34 
35  Int_t getAnalyticalIntegral(RooArgSet& allVars, RooArgSet& analVars, const char* rangeName) const;
36  Double_t analyticalIntegral(Int_t code, const char* rangeName) const;
37 
38  // for use as RooAbsGaussModelEfficiency...
39  std::complex<double> productAnalyticalIntegral(Double_t umin, Double_t umax
40  ,Double_t scale, Double_t offset
41  ,const std::complex<double>& z) const;
42 
43 private:
44 
45  RooRealProxy _x;
48  RooListProxy _coefList1;
49  RooListProxy _coefList2;
50 
51  void init();
52 
53  Double_t evaluate() const;
54 
55  // for use in RooGaussEfficiencyModel...
56  std::complex<double> gaussIntegralE(bool left, const RooGaussModelAcceptance::M_n<7U>& dM,
58  double offset, double* sc) const ;
59 
60  //ClassDef(RooSplineProduct,1) // Product of two cubic splines polynomial PDF
61 };
62 
63 #endif
std::complex< double > productAnalyticalIntegral(Double_t umin, Double_t umax, Double_t scale, Double_t offset, const std::complex< double > &z) const
TObject * clone(const char *newname) const
RooCubicSplineFun _sp1
RooListProxy _coefList1
RooListProxy _coefList2
Int_t getAnalyticalIntegral(RooArgSet &allVars, RooArgSet &analVars, const char *rangeName) const
std::complex< double > gaussIntegralE(bool left, const RooGaussModelAcceptance::M_n< 7U > &dM, const RooGaussModelAcceptance::K_n &K, double offset, double *sc) const
RooCubicSplineFun _sp2
Double_t evaluate() const
Double_t analyticalIntegral(Int_t code, const char *rangeName) const