Loading [MathJax]/jax/input/TeX/config.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
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
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