MINT2
RooHILLdini.cpp
Go to the documentation of this file.
1 
2 #include "RooFit.h"
3 #include <iostream>
4 #include <math.h>
5 
6 #include "Mint/RooHILLdini.h"
7 #include "RooAbsReal.h"
8 #include "RooRealVar.h"
9 #include "TMath.h"
10 
11 
12  RooHILLdini::RooHILLdini(const char *name, const char *title,
13  RooAbsReal& _m, RooAbsReal& _a, RooAbsReal& _b, RooAbsReal& _csi, RooAbsReal& _shift, RooAbsReal& _sigma, RooAbsReal& _ratio_sigma, RooAbsReal& _fraction_sigma ) :
14 
15 
16  RooAbsPdf(name, title),
17  m("m", "Dependent", this, _m),
18  a("a", "a", this, _a),
19  b("b", "b", this, _b),
20  csi("csi", "csi", this, _csi),
21  shift("shift", "shift", this, _shift),
22  sigma("sigma", "sigma", this, _sigma),
23  ratio_sigma("ratio_sigma", "ratio_sigma", this, _ratio_sigma),
24  fraction_sigma("fraction_sigma", "fraction_sigma", this, _fraction_sigma)
25 {
26 }
27 
28 
29 RooHILLdini::RooHILLdini(const RooHILLdini& other, const char* name) :
30  RooAbsPdf(other, name), m("m", this, other.m), a("a", this, other.a), b("b", this, other.b), csi("csi", this, other.csi), shift("shift", this, other.shift), sigma("sigma", this, other.sigma), ratio_sigma("ratio_sigma", this, other.ratio_sigma), fraction_sigma("fraction_sigma", this, other.fraction_sigma)
31 {
32 }
33 
34 
35 
36 
37 
38 Double_t RooHILLdini::evaluate() const
39 {
40 
42  double a_new = a;
43  double b_new = b;
44  double sigma2 = sigma * ratio_sigma;
46 
47 
48 
50  double firstG1 = (2*exp(-((a_new-(m-shift))*(a_new-(m-shift))/(2*(sigma*sigma))))*sigma*(b_new-(m-shift))+2*exp(-((b_new-(m-shift))*(b_new-(m-shift))/(2*(sigma*sigma))))*sigma*(-a_new+(m-shift))-sqrt(2*TMath::Pi())*(a_new*b_new+(sigma*sigma)-(a_new+b_new)*(m-shift)+((m-shift)*(m-shift)))*TMath::Erf((-a_new+(m-shift))/(sqrt(2)*sigma))+sqrt(2*TMath::Pi())*(a_new*b_new+(sigma*sigma)-(a_new+b_new)*(m-shift)+((m-shift)*(m-shift)))*TMath::Erf((-b_new+(m-shift))/(sqrt(2)*sigma)))/(2*sqrt(2*TMath::Pi()));
51  //double CURVEG1 = fabs( (1-csi)/(b_new-a_new)*(m-shift) + (b_new*csi - a_new)/(b_new-a_new) )*fabs(firstG1);
52  double CURVEG1 = fabs( (1-csi)/(b_new-a_new)*(m) + (b_new*csi - a_new)/(b_new-a_new) )*fabs(firstG1);
54 
55 
56 
58  double firstG2 = (2*exp(-((a_new-(m-shift))*(a_new-(m-shift))/(2*(sigma2*sigma2))))*sigma2*(b_new-(m-shift))+2*exp(-((b_new-(m-shift))*(b_new-(m-shift))/(2*(sigma2*sigma2))))*sigma2*(-a_new+(m-shift))-sqrt(2*TMath::Pi())*(a_new*b_new+(sigma2*sigma2)-(a_new+b_new)*(m-shift)+((m-shift)*(m-shift)))*TMath::Erf((-a_new+(m-shift))/(sqrt(2)*sigma2))+sqrt(2*TMath::Pi())*(a_new*b_new+(sigma2*sigma2)-(a_new+b_new)*(m-shift)+((m-shift)*(m-shift)))*TMath::Erf((-b_new+(m-shift))/(sqrt(2)*sigma2)))/(2*sqrt(2*TMath::Pi()));
59  //double CURVEG2 = fabs( (1-csi)/(b_new-a_new)*(m-shift) + (b_new*csi - a_new)/(b_new-a_new) )*fabs(firstG2);
60  double CURVEG2 = fabs( (1-csi)/(b_new-a_new)*(m) + (b_new*csi - a_new)/(b_new-a_new) )*fabs(firstG2);
62 
63 
64  return fabs(fraction_sigma*CURVEG1 + (1-fraction_sigma)*CURVEG2);
65 
66 
67 
68 }
RooRealProxy ratio_sigma
Definition: RooHILLdini.h:45
RooRealProxy csi
Definition: RooHILLdini.h:42
RooRealProxy sigma
Definition: RooHILLdini.h:44
RooRealProxy shift
Definition: RooHILLdini.h:43
static const double m
RooRealProxy b
Definition: RooHILLdini.h:41
RooHILLdini(const char *name, const char *title, RooAbsReal &_m, RooAbsReal &_a, RooAbsReal &_b, RooAbsReal &_csi, RooAbsReal &_shift, RooAbsReal &_sigma, RooAbsReal &_ratio_sigma, RooAbsReal &_fraction_sigma)
Definition: RooHILLdini.cpp:12
RooRealProxy m
Definition: RooHILLdini.h:39
RooRealProxy a
Definition: RooHILLdini.h:40
RooRealProxy fraction_sigma
Definition: RooHILLdini.h:46
Double_t evaluate() const
Definition: RooHILLdini.cpp:38