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