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.
TJHUGenUtils.cc
Go to the documentation of this file.
1 #include "TModHashCollection.hh"
2 #include "TJHUGenUtils.hh"
3 #include "TMath.h"
4 
5 using namespace std;
6 using namespace TNumericUtil;
7 
8 namespace TJHUGenUtils{
9  const std::vector<TNumericUtil::intTriplet_t> JHUGenHash_OnshellHJJHash = Hash_OnshellHJJHash();
10  const std::vector<TNumericUtil::intTriplet_t> JHUGenHash_OnshellVBFHash = Hash_OnshellVBFHash();
11  const std::vector<TNumericUtil::intTriplet_t> JHUGenHash_OnshellTQHHash = Hash_OnshellTQHHash();
12 }
13 
14 std::vector<intTriplet_t> TJHUGenUtils::Hash_OnshellHJJHash(){
15  int ijsel[3][121];
16  int nijchannels=77;
18  std::vector<intTriplet_t> pcfg; pcfg.reserve(nijchannels);
19  for (int ic=0; ic<nijchannels; ic++) pcfg.emplace_back(ijsel[0][ic], ijsel[1][ic], ijsel[2][ic]);
20  return pcfg;
21 }
22 std::vector<intTriplet_t> TJHUGenUtils::Hash_OnshellVBFHash(){
23  int ijsel[3][121];
24  int nijchannels=68;
26  std::vector<intTriplet_t> pcfg; pcfg.reserve(nijchannels);
27  for (int ic=0; ic<nijchannels; ic++) pcfg.emplace_back(ijsel[0][ic], ijsel[1][ic], ijsel[2][ic]);
28  return pcfg;
29 }
30 std::vector<intTriplet_t> TJHUGenUtils::Hash_OnshellTQHHash(){
31  int ijsel[3][121];
33  std::vector<intTriplet_t> pcfg; pcfg.reserve(121);
34  for (int ic=0; ic<121; ic++){
35  if (ijsel[2][ic]>=0) pcfg.emplace_back(ijsel[0][ic], ijsel[1][ic], ijsel[2][ic]);
36  else break;
37  }
38  return pcfg;
39 }
40 
41 const std::vector<TNumericUtil::intTriplet_t>& TJHUGenUtils::Get_JHUGenHash_OnshellHJJHash(){ return JHUGenHash_OnshellHJJHash; }
42 const std::vector<TNumericUtil::intTriplet_t>& TJHUGenUtils::Get_JHUGenHash_OnshellVBFHash(){ return JHUGenHash_OnshellVBFHash; }
43 const std::vector<TNumericUtil::intTriplet_t>& TJHUGenUtils::Get_JHUGenHash_OnshellTQHHash(){ return JHUGenHash_OnshellTQHHash; }
TJHUGenUtils::Hash_OnshellTQHHash
std::vector< TNumericUtil::intTriplet_t > Hash_OnshellTQHHash()
Definition: TJHUGenUtils.cc:30
TJHUGenUtils::Hash_OnshellVBFHash
std::vector< TNumericUtil::intTriplet_t > Hash_OnshellVBFHash()
Definition: TJHUGenUtils.cc:22
TJHUGenUtils.hh
TJHUGenUtils::Get_JHUGenHash_OnshellVBFHash
const std::vector< TNumericUtil::intTriplet_t > & Get_JHUGenHash_OnshellVBFHash()
Definition: TJHUGenUtils.cc:42
TJHUGenUtils::Get_JHUGenHash_OnshellTQHHash
const std::vector< TNumericUtil::intTriplet_t > & Get_JHUGenHash_OnshellTQHHash()
Definition: TJHUGenUtils.cc:43
TJHUGenUtils::JHUGenHash_OnshellVBFHash
const std::vector< TNumericUtil::intTriplet_t > JHUGenHash_OnshellVBFHash
Definition: TJHUGenUtils.cc:10
__modhashcollection_MOD_get_thchannelhash
void __modhashcollection_MOD_get_thchannelhash(int ijSel[3][121])
TJHUGenUtils
Definition: TJHUGenUtils.hh:13
TJHUGenUtils::JHUGenHash_OnshellTQHHash
const std::vector< TNumericUtil::intTriplet_t > JHUGenHash_OnshellTQHHash
Definition: TJHUGenUtils.cc:11
TJHUGenUtils::Get_JHUGenHash_OnshellHJJHash
const std::vector< TNumericUtil::intTriplet_t > & Get_JHUGenHash_OnshellHJJHash()
Definition: TJHUGenUtils.cc:41
TNumericUtil
Definition: MELAAccumulators.h:6
__modhashcollection_MOD_get_hjjchannelhash_nosplit
void __modhashcollection_MOD_get_hjjchannelhash_nosplit(int ijSel[3][121], int *nijchannels)
TJHUGenUtils::Hash_OnshellHJJHash
std::vector< TNumericUtil::intTriplet_t > Hash_OnshellHJJHash()
Definition: TJHUGenUtils.cc:14
TModHashCollection.hh
__modhashcollection_MOD_get_vbfchannelhash_nosplit
void __modhashcollection_MOD_get_vbfchannelhash_nosplit(int ijSel[3][121], int *nijchannels)
TJHUGenUtils::JHUGenHash_OnshellHJJHash
const std::vector< TNumericUtil::intTriplet_t > JHUGenHash_OnshellHJJHash
Definition: TJHUGenUtils.cc:9