Loading [MathJax]/extensions/tex2jax.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
MadMela.cc
Go to the documentation of this file.
1 #include <iostream>
2 #include <stdexcept>
3 #include "MadMela.h"
4 #include "MELAStreamHelpers.hh"
5 #include "TLorentzVector.h"
6 #include "TUtil.hh"
7 #include "TVar.hh"
8 #include "TMCFM.hh"
11 using namespace madMela;
12 std::map<std::pair<TVar::Process, TVar::Production>, MG_process_double>* madMela::updateMap;
13 
250  //Now WIPE all the couplings!!!
251  params_r_.mdl_cg = 0;
252  params_r_.mdl_cw = 0;
253  params_r_.mdl_ch = 0;
254  params_r_.mdl_chbox = 0;
255  params_r_.mdl_chdd = 0;
256  params_r_.mdl_chg = 0;
257  params_r_.mdl_chw = 0;
258  params_r_.mdl_chb = 0;
259  params_r_.mdl_chwb = 0;
260  params_r_.mdl_cehre = 0;
261  params_r_.mdl_cuhre = 0;
262  params_r_.mdl_cdhre = 0;
263  params_r_.mdl_cewre = 0;
264  params_r_.mdl_cebre = 0;
265  params_r_.mdl_cugre = 0;
266  params_r_.mdl_cuwre = 0;
267  params_r_.mdl_cubre = 0;
268  params_r_.mdl_cdgre = 0;
269  params_r_.mdl_cdwre = 0;
270  params_r_.mdl_cdbre = 0;
271  params_r_.mdl_chl1 = 0;
272  params_r_.mdl_chl3 = 0;
273  params_r_.mdl_che = 0;
274  params_r_.mdl_chq1 = 0;
275  params_r_.mdl_chq3 = 0;
276  params_r_.mdl_chu = 0;
277  params_r_.mdl_chd = 0;
278  params_r_.mdl_chudre = 0;
279  params_r_.mdl_cll = 0;
280  params_r_.mdl_cll1 = 0;
281  params_r_.mdl_cqq1 = 0;
282  params_r_.mdl_cqq11 = 0;
283  params_r_.mdl_cqq3 = 0;
284  params_r_.mdl_cqq31 = 0;
285  params_r_.mdl_clq1 = 0;
286  params_r_.mdl_clq3 = 0;
287  params_r_.mdl_cee = 0;
288  params_r_.mdl_cuu = 0;
289  params_r_.mdl_cuu1 = 0;
290  params_r_.mdl_cdd = 0;
291  params_r_.mdl_cdd1 = 0;
292  params_r_.mdl_ceu = 0;
293  params_r_.mdl_ced = 0;
294  params_r_.mdl_cud1 = 0;
295  params_r_.mdl_cud8 = 0;
296  params_r_.mdl_cle = 0;
297  params_r_.mdl_clu = 0;
298  params_r_.mdl_cld = 0;
299  params_r_.mdl_cqe = 0;
300  params_r_.mdl_cqu1 = 0;
301  params_r_.mdl_cqu8 = 0;
302  params_r_.mdl_cqd1 = 0;
303  params_r_.mdl_cqd8 = 0;
304  params_r_.mdl_cledqre = 0;
305  params_r_.mdl_cquqd1re = 0;
306  params_r_.mdl_cquqd11re = 0;
307  params_r_.mdl_cquqd8re = 0;
308  params_r_.mdl_cquqd81re = 0;
309  params_r_.mdl_clequ1re = 0;
310  params_r_.mdl_clequ3re = 0;
311 
312  params_r_.mdl_cgtil = 0;
313  params_r_.mdl_cwtil = 0;
314  params_r_.mdl_chgtil = 0;
315  params_r_.mdl_chwtil = 0;
316  params_r_.mdl_chbtil = 0;
317  params_r_.mdl_chwbtil = 0;
318  params_r_.mdl_cewim = 0;
319  params_r_.mdl_cebim = 0;
320  params_r_.mdl_cugim = 0;
321  params_r_.mdl_cuwim = 0;
322  params_r_.mdl_cubim = 0;
323  params_r_.mdl_cdgim = 0;
324  params_r_.mdl_cdwim = 0;
325  params_r_.mdl_cdbim = 0;
326  params_r_.mdl_chudim = 0;
327  params_r_.mdl_cehim = 0;
328  params_r_.mdl_cuhim = 0;
329  params_r_.mdl_cdhim = 0;
330  params_r_.mdl_cledqim = 0;
331  params_r_.mdl_cquqd1im = 0;
332  params_r_.mdl_cquqd8im = 0;
333  params_r_.mdl_cquqd11im = 0;
334  params_r_.mdl_cquqd81im = 0;
335  params_r_.mdl_clequ1im = 0;
336  params_r_.mdl_clequ3im = 0;
337 }
338 
340 
341  params_r_.mdl_ckmlambda = 2.265000e-01;
342  params_r_.mdl_ckma = 7.900000e-01;
343  params_r_.mdl_ckmrho = 1.410000e-01;
344  params_r_.mdl_ckmeta = 0;
345 
346  params_r_.mdl_lambdasmeft = 1.000000e+03;
347  params_r_.mdl_linearpropcorrections = 0;
348 
349  //Trying to set all the masses the same as the rest of MELA!
350  mad_masses_.mdl_md = TUtil::GetMass(1); //4.670000e-03;
351  mad_masses_.mdl_mu = TUtil::GetMass(2); //2.160000e-03;
352  mad_masses_.mdl_ms = TUtil::GetMass(3); //9.300000e-02;
353  mad_masses_.mdl_mc = TUtil::GetMass(4); //1.270000e+00;
354  mad_masses_.mdl_mb = TUtil::GetMass(5); //4.180000e+00;
355  mad_masses_.mdl_mt = TUtil::GetMass(6); //1.727600e+02;
356 
357  mad_masses_.mdl_me = TUtil::GetMass(11); //5.110000e-04;
358  mad_masses_.mdl_mmu = TUtil::GetMass(13); //1.056600e-01;
359  mad_masses_.mdl_mta = TUtil::GetMass(15); //1.777000e+00;
360 
361  mad_masses_.mdl_mz = TUtil::GetMass(23); //9.118760e+01;
362  mad_masses_.mdl_mw = TUtil::GetMass(24); //7.983133e+01;
363  mad_masses_.mdl_mh = TUtil::GetMass(25); //1.250900e+02;
364 
365  widths_.mdl_wt = TUtil::GetDecayWidth(6);
366  widths_.mdl_wz = TUtil::GetDecayWidth(23);
367  widths_.mdl_ww = TUtil::GetDecayWidth(24);
368  widths_.mdl_wh = TUtil::GetDecayWidth(25);
369 
370  params_r_.mdl_ymdo = TUtil::GetMass(1);
371  params_r_.mdl_ymup = TUtil::GetMass(2);
372  params_r_.mdl_yms = TUtil::GetMass(3);
373  params_r_.mdl_ymc = TUtil::GetMass(4);
374  params_r_.mdl_ymb = TUtil::GetMass(5);
375  params_r_.mdl_ymt = TUtil::GetMass(6);
376 
377  params_r_.mdl_yme = TUtil::GetMass(11);
378  params_r_.mdl_ymm = TUtil::GetMass(13);
379  params_r_.mdl_ymtau = TUtil::GetMass(15);
380 
381  params_r_.mdl_aew = 7.815553e-03;
382  params_r_.mdl_gf = 1.166379e-05;
383  params_r_.as = qcdcouple_.as; //1.179000e-01;
384 
386 
387  updateMap = new std::map<std::pair<TVar::Process, TVar::Production>, MG_process_double>;
388 
389  MG_process_double ggFSIG = {
392  };
393  (*updateMap)[std::make_pair(TVar::HSMHiggs, TVar::ZZGG)] = ggFSIG;
394 
395  MG_process_double qq4lSIG = {
398  };
399  (*updateMap)[std::make_pair(TVar::HSMHiggs, TVar::ZZQQB)] = qq4lSIG;
400 
401  MG_process_double qq4lBKG = {
404  };
405  (*updateMap)[std::make_pair(TVar::bkgZZ, TVar::ZZQQB)] = qq4lBKG;
406 
407  MG_process_double qq4lBSI = {
410  };
411  (*updateMap)[std::make_pair(TVar::bkgZZ_SMHiggs, TVar::ZZQQB)] = qq4lBSI;
412 }
413 
415  std::pair<TVar::Process, TVar::Production> key = std::make_pair(process, production);
416  if ((*updateMap).find(key) == (*updateMap).end()){
417  MELAerr << "madMela::update_all_coup: Incorrect key used!"
418  " The keys provided were process=" << TVar::ProcessName(process) <<
419  ", production=" << TVar::ProductionName(production) <<
420  std::endl;
421  return;
422  }
423  auto updateFunc = (*updateMap)[key].second;
424  updateFunc();
425 }
426 
428  const TVar::Process& process, const TVar::Production& production,
429  int pdgs[], int& procid, const int& npdg, double* p, double& alphas,
430  double& scale2, int& nhel, double& ans
431  ){
432  std::pair<TVar::Process, TVar::Production> key = std::make_pair(process, production);
433  if ((*updateMap).find(key) == (*updateMap).end()){
434  MELAerr << "madMela::smatrixhel: Incorrect key used!"
435  " The keys provided were " << process << ", " << production << std::endl;
436  ans = 0;
437  return;
438  }
439  auto computeFunc = (*updateMap)[std::make_pair(process, production)].first;
440  computeFunc(pdgs, procid, npdg, p, alphas, scale2, nhel, ans);
441 }
madMela::update_all_coup
void update_all_coup(const TVar::Process &process, const TVar::Production &production)
This is the function that redirects the SMEFTSim calculations to the correct process and production m...
Definition: MadMela.cc:414
TMCFM.hh
madMela::initialize_madMELA
void initialize_madMELA()
Initializes all of the values in Madgraph for proper usage. These include values like alpha,...
Definition: MadMela.cc:339
madMela::qq4lBSI_update_all_coup_
void qq4lBSI_update_all_coup_()
madMela
Definition: MadMela.h:23
madMela::ggFSIG_update_all_coup_
void ggFSIG_update_all_coup_()
madMela::updateMap
std::map< std::pair< TVar::Process, TVar::Production >, MG_process_double > * updateMap
Definition: MadMela.cc:12
madMela::MG_process_double
std::pair< std::function< void(int *, int &, const int &, double *, double &, double &, int &, double &)>, std::function< void()> > MG_process_double
Definition: MadMela.h:116
TVar::ProductionName
TString ProductionName(TVar::Production temp)
Definition: TVar.cc:64
TVar::Process
Process
Definition: TVar.hh:124
madMela::qq4lSIG_smatrixhel_
void qq4lSIG_smatrixhel_(int pdgs[], int &procid, const int &npdg, double *p, double &alphas, double &scale2, int &nhel, double &ans)
TVar::ZZQQB
@ ZZQQB
Definition: TVar.hh:63
madMela::qq4lBKG_smatrixhel_
void qq4lBKG_smatrixhel_(int pdgs[], int &procid, const int &npdg, double *p, double &alphas, double &scale2, int &nhel, double &ans)
TVar::ZZGG
@ ZZGG
Definition: TVar.hh:62
TVar::ProcessName
TString ProcessName(TVar::Process temp)
Definition: TVar.cc:6
madMela::widths_
struct madMela::@1 widths_
MELAStreamHelpers::MELAout
MELAOutputStreamer MELAout
madMela::setDefaultMadgraphValues
void setDefaultMadgraphValues()
Sets the Madgraph values to their defaults. This function is called after every call to a compute fun...
Definition: MadMela.cc:249
madMela::qq4lBSI_smatrixhel_
void qq4lBSI_smatrixhel_(int pdgs[], int &procid, const int &npdg, double *p, double &alphas, double &scale2, int &nhel, double &ans)
MadMela.h
This is the code that interfaces with the generated Madgraph matrix elements in fortran for specified...
madMela::qq4lSIG_update_all_coup_
void qq4lSIG_update_all_coup_()
TVar::HSMHiggs
@ HSMHiggs
Definition: TVar.hh:125
TUtil::GetDecayWidth
double GetDecayWidth(int ipart)
Definition: TUtil.cc:1619
madMela::qq4lBKG_update_all_coup_
void qq4lBKG_update_all_coup_()
TUtil.hh
TUtil::GetMass
double GetMass(int ipart)
Definition: TUtil.cc:1582
MELAStreamHelpers::MELAerr
MELAOutputStreamer MELAerr
madMela::mad_masses_
struct madMela::@0 mad_masses_
TVar::bkgZZ_SMHiggs
@ bkgZZ_SMHiggs
Definition: TVar.hh:169
madMela::smatrixhel
void smatrixhel(const TVar::Process &process, const TVar::Production &production, int pdgs[], int &procid, const int &npdg, double *p, double &alphas, double &scale2, int &nhel, double &ans)
This is the function that redirects the SMEFTsim matrix element calculation to the correct smatrix fu...
Definition: MadMela.cc:427
madMela::params_r_
struct madMela::@2 params_r_
TVar::bkgZZ
@ bkgZZ
Definition: TVar.hh:165
modparameters::alphas
real(dp), public alphas
Definition: mod_Parameters.F90:269
TVar.hh
madMela::ggFSIG_smatrixhel_
void ggFSIG_smatrixhel_(int pdgs[], int &procid, const int &npdg, double *p, double &alphas, double &scale2, int &nhel, double &ans)
MELAStreamHelpers.hh
TVar::Production
Production
Definition: TVar.hh:61
qcdcouple_
struct @28 qcdcouple_
modparameters::process
integer, public process
Definition: mod_Parameters.F90:17