JHUGen MELA  v2.4.1
Matrix element calculations as used in JHUGen. MELA is an important tool that was used for the Higgs boson discovery and for precise measurements of its structure and interactions. Please see the website https://spin.pha.jhu.edu/ and papers cited there for more details, and kindly cite those papers when using this code.
RooRapiditySig.cc
Go to the documentation of this file.
1 /*****************************************************************************
2  * Project: RooFit *
3  * *
4  * This code was autogenerated by RooClassFactory *
5  *****************************************************************************/
6 
7 // Your description goes here...
8 
9 #include <cmath>
10 #include "RooRapiditySig.h"
11 #include "Riostream.h"
12 #include "RooAbsReal.h"
13 #include "RooAbsCategory.h"
14 //#include "RooComplex.h"
15 #include "RooMath.h"
16 #include "TMath.h"
17 
18 //ClassImp(RooRapiditySig)
19 
20 RooRapiditySig::RooRapiditySig(const char *name, const char *title,
21  RooAbsReal& _Y,
22  RooAbsReal& _m,
23  RooAbsReal& _sqrtS) :
24 RooAbsPdf(name,title),
25 Y("Y","Y",this,_Y),
26 m("m","m",this,_m),
27 sqrtS("sqrtS","sqrtS",this,_sqrtS)
28 {
29 }
30 
31 
32 RooRapiditySig::RooRapiditySig(const RooRapiditySig& other, const char* name) :
33 RooAbsPdf(other,name),
34 Y("Y",this,other.Y),
35 m("m",this,other.m),
36 sqrtS("sqrtS",this,other.sqrtS)
37 {
38 }
39 
40 
41 
42 Double_t RooRapiditySig::evaluate() const
43 {
44  Double_t s0 = sqrtS*sqrtS;
45  Double_t s = m*m;
46  Double_t Q = m;
47  Double_t xa = exp(Y)*sqrt(s/s0);
48  Double_t xb = exp(-Y)*sqrt(s/s0);
49 
50  Double_t weightg = 1.0;
51 
52  //gluon params
53  Double_t g0par0 = 0.2282; Double_t g0par1 = -0.0002252; Double_t g0par2 = 1.383e-07;
54  Double_t g1par0 = 0.01968; Double_t g1par1 = -0.0002993; Double_t g1par2 = 1.986e-07;
55  Double_t g2par0 = 3.624; Double_t g2par1 = -0.003164; Double_t g2par2 = 1.941e-06;
56  Double_t g3par0 = -0.578; Double_t g3par1 = -0.0003; Double_t g3par2 = 1.828e-07;
57  Double_t g4par0 = -7.515; Double_t g4par1 = -0.001355; Double_t g4par2 = 8.199e-07;
58 
59  Double_t gluon0 = g0par0 + g0par1*Q + g0par2*Q*Q;
60  Double_t gluon1 = g1par0 + g1par1*Q + g1par2*Q*Q;
61  Double_t gluon2 = g2par0 + g2par1*Q + g2par2*Q*Q;
62  Double_t gluon3 = g3par0 + g3par1*Q + g3par2*Q*Q;
63  Double_t gluon4 = g4par0 + g4par1*Q + g4par2*Q*Q;
64 
65  Double_t Funcga = (gluon0+gluon1*xa+gluon2*pow(xa,2))*pow((1-xa),4)*pow(xa,gluon3)*exp(1.0+gluon4*xa);
66  Double_t Funcgb = (gluon0+gluon1*xb+gluon2*pow(xb,2))*pow((1-xb),4)*pow(xb,gluon3)*exp(1.0+gluon4*xb);
67  Double_t FuncABg = Funcga*Funcgb/xa/xb;
68 
69  Double_t totSec = 2*m*((FuncABg)*weightg);
70 
71  if(( m <= 600. && TMath::Abs(Y) > 20*pow(m,-0.32)) || ( m > 600. && TMath::Abs(Y) > 21*pow(m,-0.34)))
72  {
73  //Find totSec when mZZ, Y=0
74  Double_t xa0 = sqrt(s/s0); //at Y=0 xa=xb
75  //if xa=xb then Funcga=Funcgb
76  Funcga = (gluon0+gluon1*xa0+gluon2*pow(xa0,2))*pow((1-xa0),4)*pow(xa0,gluon3)*exp(1.0+gluon4*xa0);
77  FuncABg = Funcga*Funcga/xa0/xa0;
78  Double_t totSec0 = 2*m*((FuncABg)*weightg);
79  totSec = 1.e-5*totSec0;
80  }
81 
82  if (totSec <= 0.) totSec = 0.00001;
83  return totSec;
84 
85 
86 
87 }
88 
89 
90 
91 
92 
93 
RooRapiditySig::m
RooRealProxy m
Definition: RooRapiditySig.h:33
RooRapiditySig
Definition: RooRapiditySig.h:16
mela.m
m
Definition: mela.py:715
RooRapiditySig::sqrtS
RooRealProxy sqrtS
Definition: RooRapiditySig.h:34
RooRapiditySig.h
RooRapiditySig::evaluate
Double_t evaluate() const
Definition: RooRapiditySig.cc:42
hto_aux_hbb::xb
real *8 xb
Definition: CALLING_cpHTO.f:226
RooRapiditySig::Y
RooRealProxy Y
Definition: RooRapiditySig.h:32
RooRapiditySig::RooRapiditySig
RooRapiditySig()
Definition: RooRapiditySig.h:22
Q
double Q[11]
Definition: TMCFM.hh:121