|
JHUGen MELA
JHUGen v7.5.6, MELA v2.4.2
Matrix element calculations as used in JHUGen.
|
Go to the documentation of this file.
19 using namespace TUtil;
28 const char* pathtoXSW,
double ebeam,
const char* pathtoPDFSet,
int PDFMember,
TVar::VerbosityLevel verbosity_
30 pathtoPDFSet_(pathtoPDFSet),
31 PDFMember_(PDFMember),
32 verbosity(verbosity_),
44 pathtoPDFSet_(other.pathtoPDFSet_),
45 PDFMember_(other.PDFMember_),
46 verbosity(other.verbosity),
154 const double GeV=1./100.;
156 int init_nl, init_nf;
159 if (
verbosity>=
TVar::DEBUG)
MELAout <<
"TEvtProb::TEvtProb: Initializing the PDF with initial Q=" << init_Q <<
", nloops=" << init_nl <<
", nf=" << init_nf << endl;
160 SetAlphaS(init_Q, init_Q, 1, 1, init_nl, init_nf,
"cteq6_l");
187 char path_nnpdf_c[200];
188 sprintf(path_nnpdf_c,
"%s", path);
189 int pathLength = strlen(path_nnpdf_c);
223 if (whichResonance==1 || whichResonance==-1){
247 if (whichResonance==2){
264 else if (whichResonance==-1){
273 <<
"TEvtProb::SetHiggsMass(" << mass <<
", " << wHiggs <<
", " << whichResonance <<
"):\n"
296 if (
verbosity>=
TVar::INFO)
MELAout <<
"TEvtProb::AppendTopCandidate: No MELACandidates are present to append this top!" << endl;
313 if (
verbosity>=
TVar::INFO &&
GetCurrentCandidateIndex()<0)
MELAout <<
"TEvtProb::SetCurrentCandidate: The current candidate is not in the list of candidates. It is the users' responsibility to delete this candidate and all of its associated particles." << endl;
334 void TEvtProb::ResetMCFM_EWKParameters(
double ext_Gf,
double ext_aemmz,
double ext_mW,
double ext_mZ,
double ext_xW,
int ext_ewscheme){
SetEwkCouplingParameters(ext_Gf, ext_aemmz, ext_mW, ext_mZ, ext_xW, ext_ewscheme); }
386 for (
unsigned int icand=0; icand<
candList.size(); icand++){
399 <<
"TEvtProb::CheckInputPresent: melaCand==" <<
melaCand <<
" is nullPtr!"
420 bool calculateME=
false;
421 bool needBSMHiggs=
false;
442 else if (
verbosity>=
TVar::INFO)
MELAout <<
"TEvtProb::XsecCalc_XVV: MCFM_chooser failed to determine the process configuration." << endl;
448 double Hggcoupl[
SIZE_HGG][2] ={ { 0 } };
449 double Hvvcoupl[
SIZE_HVV][2] ={ { 0 } };
453 double Hvvpcoupl[
SIZE_HVV][2] = { { 0 } };
454 double Hvpvpcoupl[
SIZE_HVV][2] = { { 0 } };
456 double Zqqcoupl[
SIZE_ZQQ][2] ={ { 0 } };
457 double Zvvcoupl[
SIZE_ZVV][2] ={ { 0 } };
459 double Gqqcoupl[
SIZE_GQQ][2] ={ { 0 } };
460 double Gggcoupl[
SIZE_GGG][2] ={ { 0 } };
461 double Gvvcoupl[
SIZE_GVV][2] ={ { 0 } };
462 double Gvvpcoupl[
SIZE_GVV][2] ={ { 0 } };
463 double Gvpvpcoupl[
SIZE_GVV][2] ={ { 0 } };
465 double Zpffcoupl[
SIZE_Vpff][2] ={ { 0 } };
466 double Wpffcoupl[
SIZE_Vpff][2] ={ { 0 } };
467 double M_Zprime = -1;
468 double Ga_Zprime = 0;
469 double M_Wprime = -1;
470 double Ga_Wprime = 0;
472 double AZffcoupl[
SIZE_AZff][2] ={ { 0 } };
473 for (
int j=0; j<2; j++){
497 bool isSpinZero =
false;
498 bool isSpinOne =
false;
499 bool isSpinTwo =
false;
542 for (
int j=0; j<2; j++){
557 for (
int j=0; j<2; j++){
586 for (
int j=0; j<2; j++){
660 for (
int j=0; j<2; j++){
674 for (
int j=0; j<2; j++){
686 for (
int j=0; j<2; j++){
716 <<
"TEvtProb::XsecCalc_XVV: JHUGen ME is not spin zero, one or two! The process is described by "
730 else if (
verbosity>=
TVar::INFO)
MELAout <<
"TEvtProb::XsecCalc_XVV: Madgraph_chooser failed to determine the process configuration." << endl;
753 bool needBSMHiggs=
false;
754 bool needATQGC=
false;
755 bool calculateME=
false;
772 else if (
verbosity>=
TVar::INFO)
MELAout <<
"TEvtProb::XsecCalc_VVXVV: MCFM_chooser failed to determine the process configuration." << endl;
778 <<
" TEvtProb::XsecCalc_VVXVV: dXsec=" << dXsec
805 double Hggcoupl[
SIZE_HGG][2] ={ { 0 } };
809 for (
int j=0; j<2; j++){
816 double Hzzcoupl[
SIZE_HVV][2] ={ { 0 } };
817 double Hwwcoupl[
SIZE_HVV][2] ={ { 0 } };
822 double Hzzpcoupl[
SIZE_HVV][2] = { { 0 } };
823 double Hzpzpcoupl[
SIZE_HVV][2] = { { 0 } };
824 double Zpffcoupl[
SIZE_Vpff][2] = { { 0 } };
825 double Hwwpcoupl[
SIZE_HVV][2] = { { 0 } };
826 double Hwpwpcoupl[
SIZE_HVV][2] = { { 0 } };
827 double Wpffcoupl[
SIZE_Vpff][2] = { { 0 } };
828 double M_Zprime = -1;
829 double Ga_Zprime = 0;
830 double M_Wprime = -1;
831 double Ga_Wprime = 0;
846 for (
int j=0; j<2; j++){
894 double Hggcoupl[
SIZE_HGG][2] ={ { 0 } };
898 for (
int j=0; j<2; j++){
917 bool includeHiggsDecay
928 double Hvvcoupl[
SIZE_HVV][2] ={ { 0 } };
931 double Hvvpcoupl[
SIZE_HVV][2] = { { 0 } };
932 double Hvpvpcoupl[
SIZE_HVV][2] = { { 0 } };
933 double Zpffcoupl[
SIZE_Vpff][2] = { { 0 } };
934 double Wpffcoupl[
SIZE_Vpff][2] = { { 0 } };
935 double M_Zprime = -1;
936 double Ga_Zprime = 0;
937 double M_Wprime = -1;
938 double Ga_Wprime = 0;
953 for (
int j=0; j<2; j++){
961 for (
int j=0; j<2; j++){
993 int topProcess,
int topDecay
1001 double Hqqcoupl[
SIZE_HQQ][2]={ { 0 } };
1006 for (
int j=0; j<2; j++){
1017 else if (
verbosity >=
TVar::ERROR)
MELAout <<
"TEvtProb::XsecCalc_TTX only supports ttH and bbH productions for the moment." << endl;
1038 for (
int vv = 0; vv <
SIZE_HGG; vv++){
1049 for (
int vv = 0; vv <
SIZE_HGG; vv++){
1063 for (
int vv = 0; vv <
SIZE_HQQ; vv++){
1072 for (
int vv = 0; vv <
SIZE_HQQ; vv++){
1084 for (
int vv = 0; vv <
SIZE_HQQ; vv++){
1095 for (
int vv = 0; vv <
SIZE_HQQ; vv++){
1109 for (
int vv = 0; vv <
SIZE_HQQ; vv++){
1120 for (
int vv = 0; vv <
SIZE_HQQ; vv++){
1134 for (
int vv = 0; vv <
SIZE_HVV; vv++){
1145 for (
int vv = 0; vv <
SIZE_HVV; vv++){
int HzzCLambda_qsq[SIZE_HVV_CQSQ]
double XsecCalc_TTX(int topProcess, int topDecay)
std::vector< MELAParticle * > particleList
double Hwpwpcoupl[SIZE_HVV][2]
TVar::LeptonInterference leptonInterf
double ResonancePropagator(double const &sqrts, TVar::ResonancePropagatorScheme scheme)
void SetJHUGenSpinZeroGGCouplings(double Hggcoupl[SIZE_HGG][2])
void SetCandidateDecayMode(TVar::CandidateDecayMode mode)
double GetHiggsWidthAtPoleMass(double mass)
void ResetRenFacScaleMode()
aTQGCCouplings * GetSelfDaTQGCCouplings()
VprimeCouplings * GetSelfDVprimeCouplings()
double H2zzcoupl[SIZE_HVV][2]
TVar::VerbosityLevel verbosity
double BBHiggsMatEl(const TVar::Process &process, const TVar::Production &production, const TVar::MatrixElement &matrixElement, TVar::event_scales_type *event_scales, MelaIO *RcdME, const double &EBEAM, int botProcess, TVar::VerbosityLevel verbosity)
std::vector< MELACandidate * > candList
bool CheckSelfDCouplings_Hgg()
void SetHiggsMass(double mass, double wHiggs=-1., int whichResonance=-1)
void SetJHUGenHiggsMassWidth(double MReso, double GaReso)
double HJJMatEl(const TVar::Process &process, const TVar::Production &production, const TVar::MatrixElement &matrixElement, TVar::event_scales_type *event_scales, MelaIO *RcdME, const double &EBEAM, TVar::VerbosityLevel verbosity)
void SetMCFMAZffCouplings(bool useBSM, AZffCouplings const *Zcouplings)
double Zqqcoupl[SIZE_ZQQ][2]
double aTQGCcoupl[SIZE_ATQGC][2]
double Ht4t4coupl[SIZE_HQQ][2]
std::vector< MELATopCandidate_t * > * GetTopCandidates()
TString ProductionName(TVar::Production temp)
SpinOneCouplings * GetSelfDSpinOneCouplings()
double GetPrimaryWidth(int ipart)
void SetAlphaS(double &Q_ren, double &Q_fac, double multiplier_ren, double multiplier_fac, int mynloop, int mynflav, std::string mypartons)
bool CheckSelfDCouplings_Htt()
double GetPrimaryHiggsMass()
void ResetMCFM_EWKParameters(double ext_Gf, double ext_aemmz, double ext_mW, double ext_mZ, double ext_xW, int ext_ewscheme=3)
void SetWprimeMassWidth(double inmass, double inwidth)
void SetMass(double inmass, int ipart)
bool isAHiggs(const int id)
void SetJHUGenVprimeContactCouplings(double Zpffcoupl[SIZE_Vpff][2], double Wpffcoupl[SIZE_Vpff][2])
double H2b4b4coupl[SIZE_HQQ][2]
double HwwLambda_qsq[SIZE_HVV_LAMBDAQSQ][SIZE_HVV_CQSQ]
double Zpffcoupl[SIZE_Vpff][2]
double Gvpvpcoupl[SIZE_GVV][2]
void SetMCFMSpinZeroCouplings(bool useBSM, SpinZeroCouplings const *Hcouplings, bool forceZZ)
struct @34 spinzerohiggs_anomcoupl_
void nnpdfdriver_(char *gridfilename, int *lenfilename)
void SetJHUGenSpinOneCouplings(double Zqqcoupl[SIZE_ZQQ][2], double Zvvcoupl[SIZE_ZVV][2])
void InitializeJHUGen(const char *pathtoPDFSet, int PDFMember)
void AppendTopCandidate(SimpleParticleCollection_t *TopDaughters)
double Zvvcoupl[SIZE_ZVV][2]
bool CheckSelfDCouplings_Hbb()
bool separateWWZZcouplings
double Httcoupl[SIZE_HQQ][2]
void SetDecayWidth(double inwidth, int ipart)
SpinZeroCouplings selfDSpinZeroCoupl
double Hzzpcoupl[SIZE_HVV][2]
VprimeCouplings selfDVprimeCoupl
TString ProcessName(TVar::Process temp)
const TVar::event_scales_type & GetRenFacScaleMode() const
TVar::event_scales_type event_scales
void SetRenFacScaleMode(TVar::EventScaleScheme renormalizationSch, TVar::EventScaleScheme factorizationSch, double ren_sf, double fac_sf)
struct madMela::@1 widths_
MELAOutputStreamer MELAout
double Hg4g4coupl[SIZE_HGG][2]
void SetLeptonInterf(TVar::LeptonInterference tmp)
MELAHXSWidth const * GetHXSWidthEstimator() const
void SetJHUGenSpinTwoCouplings(double Gacoupl[SIZE_GGG][2], double Gvvcoupl[SIZE_GVV][2], double Gvvpcoupl[SIZE_GVV][2], double Gvpvpcoupl[SIZE_GVV][2], double qLeftRightcoupl[SIZE_GQQ][2])
TVar::Production production
MELACandidate * ConvertVectorFormat(SimpleParticleCollection_t *pDaughters, SimpleParticleCollection_t *pAssociated, SimpleParticleCollection_t *pMothers, bool isGen, std::vector< MELAParticle * > *particleList, std::vector< MELACandidate * > *candList)
void SetCurrentCandidateFromIndex(unsigned int icand)
double Hzpzpcoupl[SIZE_HVV][2]
SpinTwoCouplings * getRef()
void SetJHUGenSpinZeroVVCouplings(double Hvvcoupl[SIZE_HVV][2], double Hvvpcoupl[SIZE_HVV][2], double Hvpvpcoupl[SIZE_HVV][2], int Hvvcoupl_cqsq[SIZE_HVV_CQSQ], double HvvLambda_qsq[SIZE_HVV_LAMBDAQSQ][SIZE_HVV_CQSQ], bool useWWcoupl)
double HiggsWidth(double mH) const
void SetJHUGenDistinguishWWCouplings(bool doAllow)
This is the code that interfaces with the generated Madgraph matrix elements in fortran for specified...
VprimeCouplings * getRef()
void SetInputEvent(SimpleParticleCollection_t *pDaughters, SimpleParticleCollection_t *pAssociated=0, SimpleParticleCollection_t *pMothers=0, bool isGen=false)
void SetJHUGenAZffCouplings(bool needAZff, double AZffcoupl[SIZE_AZff][2])
TVar::MatrixElement matrixElement
AZffCouplings selfDAZffCoupl
void mcfm_init_(char *inputfile, char *workdir)
double Hbbcoupl[SIZE_HQQ][2]
double AZffcoupl[SIZE_AZff][2]
bool CheckSelfDCouplings_AZff()
SpinTwoCouplings * GetSelfDSpinTwoCouplings()
double Hqqcoupl[SIZE_HQQ][2]
bool CheckSelfDCouplings_HVV()
double GetDecayWidth(int ipart)
aTQGCCouplings * getRef()
SpinOneCouplings selfDSpinOneCoupl
double Hzzcoupl[SIZE_HVV][2]
double H2wwcoupl[SIZE_HVV][2]
void SetEwkCouplingParameters(double ext_Gf, double ext_aemmz, double ext_mW, double ext_mZ, double ext_xW, int ext_ewscheme)
double Wpffcoupl[SIZE_Vpff][2]
void ResetMass(double inmass, int ipart)
void SetProcess(TVar::Process proc, TVar::MatrixElement me, TVar::Production prod)
double Hwwpcoupl[SIZE_HVV][2]
SpinTwoCouplings selfDSpinTwoCoupl
void setCandidateDecayMode(TVar::CandidateDecayMode mode)
void addAssociatedTop(MELATopCandidate_t *myParticle)
TVar::EventScaleScheme factorizationScheme
void SetMadgraphSpinZeroCouplings(SpinZeroCouplings const *Hcouplings)
void allow_WWZZSeparation(bool doAllow=true)
double HzzLambda_qsq[SIZE_HVV_LAMBDAQSQ][SIZE_HVV_CQSQ]
SpinZeroCouplings * getRef()
const char * pathtoPDFSet_
double GetPrimaryMass(int ipart)
int GetCurrentCandidateIndex()
double Hwwcoupl[SIZE_HVV][2]
void SetVerbosity(TVar::VerbosityLevel tmp)
void Set_LHAgrid(const char *path, int pdfmember=0)
MELAThreeBodyDecayCandidate * ConvertThreeBodyDecayCandidate(SimpleParticleCollection_t *tbdDaughters, std::vector< MELAParticle * > *particleList, std::vector< MELAThreeBodyDecayCandidate * > *tbdCandList)
double H2g4g4coupl[SIZE_HGG][2]
double GetMass(int ipart)
aTQGCCouplings selfDaTQGCCoupl
MELAOutputStreamer MELAerr
double MadgraphMatEl(const TVar::Process &process, const TVar::Production &production, const TVar::MatrixElement &matrixElement, TVar::event_scales_type *event_scales, MelaIO *RcdME, const double &EBEAM, TVar::VerbosityLevel verbosity)
double H2bbcoupl[SIZE_HQQ][2]
void SetZprimeMassWidth(double inmass, double inwidth)
struct madMela::@0 mad_masses_
ResonancePropagatorScheme
double Gvvcoupl[SIZE_GVV][2]
void SetMCFMaTQGCCouplings(bool useBSM, aTQGCCouplings const *couplings)
SpinZeroCouplings * GetSelfDSpinZeroCouplings()
MELACandidate * GetCurrentCandidate()
double Gqqcoupl[SIZE_GQQ][2]
double TTHiggsMatEl(const TVar::Process &process, const TVar::Production &production, const TVar::MatrixElement &matrixElement, TVar::event_scales_type *event_scales, MelaIO *RcdME, const double &EBEAM, int topDecay, int topProcess, TVar::VerbosityLevel verbosity)
void ResetWidth(double inwidth, int ipart)
double __modparameters_MOD_ckmbare(int *id1in, int *id2in)
void AllowSeparateWWCouplings(bool doAllow=false)
double Gvvpcoupl[SIZE_GVV][2]
void InitJHUGenMELA(const char *pathtoPDFSet, int PDFMember, double collider_sqrts)
SpinOneCouplings * getRef()
double SumMatrixElementPDF(const TVar::Process &process, const TVar::Production &production, const TVar::MatrixElement &matrixElement, const TVar::LeptonInterference &leptonInterf, TVar::event_scales_type *event_scales, MelaIO *RcdME, const double &EBEAM, TVar::VerbosityLevel verbosity)
void SetPrimaryHiggsMass(double mass)
double XsecCalc_VX(bool includeHiggsDecay)
AZffCouplings * GetSelfDAZffCouplings()
int HwwCLambda_qsq[SIZE_HVV_CQSQ]
bool CheckSelfDCouplings_Hqq()
bool CheckSelfDCouplings_aTQGC()
TVar::EventScaleScheme renomalizationScheme
void nninitpdf_(int *irep)
void SetJHUGenSpinZeroQQCouplings(double Hqqcoupl[SIZE_HQQ][2])
std::vector< SimpleParticle_t > SimpleParticleCollection_t
double H2ttcoupl[SIZE_HQQ][2]
std::vector< MELATopCandidate_t * > topCandList
void SetCurrentCandidate(MELACandidate *cand)
double GetXPropagator(TVar::ResonancePropagatorScheme scheme)
double H2t4t4coupl[SIZE_HQQ][2]
double Hb4b4coupl[SIZE_HQQ][2]
void __modjhugenmela_MOD_getpdfconstants(double *pdfzmass, int *pdfnloops, int *pdfnf)
double Gggcoupl[SIZE_GGG][2]
double Hggcoupl[SIZE_HGG][2]
TString MatrixElementName(TVar::MatrixElement temp)
double JHUGenMatEl(const TVar::Process &process, const TVar::Production &production, const TVar::MatrixElement &matrixElement, TVar::event_scales_type *event_scales, MelaIO *RcdME, const double &EBEAM, TVar::VerbosityLevel verbosity)
double VHiggsMatEl(const TVar::Process &process, const TVar::Production &production, const TVar::MatrixElement &matrixElement, TVar::event_scales_type *event_scales, MelaIO *RcdME, const double &EBEAM, bool includeHiggsDecay, TVar::VerbosityLevel verbosity)
double H2qqcoupl[SIZE_HQQ][2]
double H2ggcoupl[SIZE_HGG][2]
void ResetAmplitudeIncludes()