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.
Namespaces | Functions | Variables
TUtil.hh File Reference
#include <string>
#include <vector>
#include "MelaIO.h"
#include "TCouplings.hh"
#include "TMCFMUtils.hh"
#include "TModParameters.hh"
#include "TNNPDFDriver.hh"
#include "TModKinematics.hh"
#include "TModJHUGen.hh"
#include "TModJHUGenMELA.hh"
#include "TModHiggsMatEl.hh"
#include "TModGravitonMatEl.hh"
#include "TModZprimeMatEl.hh"
#include "TModHiggsJJMatEl.hh"
#include "TModHiggsJMatEl.hh"
#include "TModVHiggsMatEl.hh"
#include "TModTTBHMatEl.hh"
#include "TLorentzVector.h"
#include "TTree.h"
#include "TH1F.h"
#include "TH2F.h"
#include "TH1D.h"
#include "TH2D.h"
#include "TFile.h"
#include "TF1.h"
Include dependency graph for TUtil.hh:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

 TUtil
 

Functions

void TUtil::applyLeptonMassCorrection (bool flag=true)
 
void TUtil::applyJetMassCorrection (bool flag=true)
 
void TUtil::setLeptonMassScheme (TVar::FermionMassRemoval scheme=TVar::ConserveDifermionMass)
 
void TUtil::setJetMassScheme (TVar::FermionMassRemoval scheme=TVar::ConserveDifermionMass)
 
void TUtil::constrainedRemovePairMass (TLorentzVector &p1, TLorentzVector &p2, double m1=0, double m2=0)
 
void TUtil::scaleMomentumToEnergy (const TLorentzVector &massiveJet, TLorentzVector &masslessJet, double mass=0)
 
std::pair< TLorentzVector, TLorentzVector > TUtil::removeMassFromPair (TLorentzVector const &jet1, int const &jet1Id, TLorentzVector const &jet2, int const &jet2Id, double m1=0, double m2=0)
 
void TUtil::adjustTopDaughters (SimpleParticleCollection_t &daughters)
 
void TUtil::computeFakeJet (TLorentzVector const &realJet, TLorentzVector const &others, TLorentzVector &fakeJet)
 
std::pair< TLorentzVector, TLorentzVector > TUtil::ComplexBoost (TVector3 const &beta, TLorentzVector const &p4)
 
void TUtil::computeAngles (float &costhetastar, float &costheta1, float &costheta2, float &Phi, float &Phi1, TLorentzVector Z1_lept1, int Z1_lept1Id, TLorentzVector Z1_lept2, int Z1_lept2Id, TLorentzVector Z2_lept1, int Z2_lept1Id, TLorentzVector Z2_lept2, int Z2_lept2Id)
 
void TUtil::computeAnglesCS (float const &pbeam, float &costhetastar, float &costheta1, float &costheta2, float &Phi, float &Phi1, TLorentzVector Z1_lept1, int Z1_lept1Id, TLorentzVector Z1_lept2, int Z1_lept2Id, TLorentzVector Z2_lept1, int Z2_lept1Id, TLorentzVector Z2_lept2, int Z2_lept2Id)
 
void TUtil::computeVBFAngles (float &costhetastar, float &costheta1, float &costheta2, float &Phi, float &Phi1, float &Q2V1, float &Q2V2, TLorentzVector p4M11, int Z1_lept1Id, TLorentzVector p4M12, int Z1_lept2Id, TLorentzVector p4M21, int Z2_lept1Id, TLorentzVector p4M22, int Z2_lept2Id, TLorentzVector jet1, int jet1Id, TLorentzVector jet2, int jet2Id, TLorentzVector *injet1=0, int injet1Id=0, TLorentzVector *injet2=0, int injet2Id=0)
 
void TUtil::computeVBFAngles_ComplexBoost (float &costhetastar, float &costheta1_real, float &costheta1_imag, float &costheta2_real, float &costheta2_imag, float &Phi, float &Phi1, float &Q2V1, float &Q2V2, TLorentzVector p4M11, int Z1_lept1Id, TLorentzVector p4M12, int Z1_lept2Id, TLorentzVector p4M21, int Z2_lept1Id, TLorentzVector p4M22, int Z2_lept2Id, TLorentzVector jet1, int jet1Id, TLorentzVector jet2, int jet2Id, TLorentzVector *injet1=0, int injet1Id=0, TLorentzVector *injet2=0, int injet2Id=0)
 
void TUtil::computeVHAngles (float &costhetastar, float &costheta1, float &costheta2, float &Phi, float &Phi1, float &m1, float &m2, TLorentzVector p4M11, int Z1_lept1Id, TLorentzVector p4M12, int Z1_lept2Id, TLorentzVector p4M21, int Z2_lept1Id, TLorentzVector p4M22, int Z2_lept2Id, TLorentzVector jet1, int jet1Id, TLorentzVector jet2, int jet2Id, TLorentzVector *injet1=0, int injet1Id=0, TLorentzVector *injet2=0, int injet2Id=0)
 
void TUtil::computeTTHAngles (float &hs, float &hincoming, float &hTT, float &PhiTT, float &Phi1, float &hbb, float &hWW, float &Phibb, float &Phi1bb, float &hWplusf, float &PhiWplusf, float &hWminusf, float &PhiWminusf, TLorentzVector p4M11, int Z1_lept1Id, TLorentzVector p4M12, int Z1_lept2Id, TLorentzVector p4M21, int Z2_lept1Id, TLorentzVector p4M22, int Z2_lept2Id, TLorentzVector b, int bId, TLorentzVector Wplusf, int WplusfId, TLorentzVector Wplusfb, int WplusfbId, TLorentzVector bbar, int bbarId, TLorentzVector Wminusf, int WminusfId, TLorentzVector Wminusfb, int WminusfbId, TLorentzVector *injet1=0, int injet1Id=0, TLorentzVector *injet2=0, int injet2Id=0)
 
void TUtil::SetEwkCouplingParameters (double ext_Gf, double ext_aemmz, double ext_mW, double ext_mZ, double ext_xW, int ext_ewscheme)
 
void TUtil::SetMass (double inmass, int ipart)
 
void TUtil::SetDecayWidth (double inwidth, int ipart)
 
double TUtil::GetMass (int ipart)
 
double TUtil::GetDecayWidth (int ipart)
 
double TUtil::GetMass (const MELAParticle *part)
 
double TUtil::GetDecayWidth (const MELAParticle *part)
 
void TUtil::GetMassWidth (int ipart, double &m, double &ga)
 
void TUtil::GetMassWidth (const MELAParticle *part, double &m, double &ga)
 
void TUtil::SetCKMElements (double *invckm_ud, double *invckm_us, double *invckm_cd, double *invckm_cs, double *invckm_ts, double *invckm_tb, double *invckm_ub=0, double *invckm_cb=0, double *invckm_td=0)
 
double TUtil::GetCKMElement (int iquark, int jquark)
 
double TUtil::InterpretScaleScheme (const TVar::Production &production, const TVar::MatrixElement &matrixElement, const TVar::EventScaleScheme &scheme, TLorentzVector p[mxpart])
 
void TUtil::SetAlphaS (double &Q_ren, double &Q_fac, double multiplier_ren, double multiplier_fac, int mynloop, int mynflav, std::string mypartons)
 
void TUtil::GetAlphaS (double *alphas_, double *alphasmz_)
 
bool TUtil::MCFM_chooser (const TVar::Process &process, const TVar::Production &production, const TVar::LeptonInterference &leptonInterf, const TVar::VerbosityLevel &verbosity, const TVar::simple_event_record &mela_event)
 
bool TUtil::MCFM_SetupParticleCouplings (const TVar::Process &process, const TVar::Production &production, const TVar::VerbosityLevel &verbosity, const TVar::simple_event_record &mela_event, std::vector< int > *partOrder, std::vector< int > *apartOrder)
 
TString TUtil::GetMCFMParticleLabel (const int &pid, bool useQJ, bool useExtendedConventions)
 
void TUtil::InitJHUGenMELA (const char *pathtoPDFSet, int PDFMember, double collider_sqrts)
 
void TUtil::SetJHUGenHiggsMassWidth (double MReso, double GaReso)
 
void TUtil::SetJHUGenDistinguishWWCouplings (bool doAllow)
 
void TUtil::ResetAmplitudeIncludes ()
 
void TUtil::SetMCFMSpinZeroCouplings (bool useBSM, SpinZeroCouplings const *Hcouplings, bool forceZZ)
 
void TUtil::SetMCFMaTQGCCouplings (bool useBSM, aTQGCCouplings const *couplings)
 
void TUtil::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)
 
void TUtil::SetJHUGenSpinZeroGGCouplings (double Hggcoupl[SIZE_HGG][2])
 
void TUtil::SetJHUGenSpinZeroQQCouplings (double Hqqcoupl[SIZE_HQQ][2])
 
void TUtil::SetJHUGenSpinOneCouplings (double Zqqcoupl[SIZE_ZQQ][2], double Zvvcoupl[SIZE_ZVV][2])
 
void TUtil::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])
 
void TUtil::SetJHUGenVprimeContactCouplings (double Zpffcoupl[SIZE_Vpff][2], double Wpffcoupl[SIZE_Vpff][2])
 
void TUtil::SetMCFMAZffCouplings (bool useBSM, AZffCouplings const *Zcouplings)
 
void TUtil::SetJHUGenAZffCouplings (bool needAZff, double AZffcoupl[SIZE_AZff][2])
 
bool TUtil::MCFM_masscuts (double s[][mxpart], const TVar::Process &process)
 
bool TUtil::MCFM_smalls (double s[][mxpart], int npart)
 
double TUtil::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)
 
double TUtil::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 TUtil::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)
 
double TUtil::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 TUtil::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)
 
double TUtil::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)
 
int TUtil::WipeMEArray (const TVar::Process &process, const TVar::Production &production, const int id[mxpart], double msq[nmsq][nmsq], const TVar::VerbosityLevel &verbosity)
 
bool TUtil::CheckPartonMomFraction (const TLorentzVector &p0, const TLorentzVector &p1, double xx[2], const double &EBEAM, const TVar::VerbosityLevel &verbosity)
 
void TUtil::ComputePDF (const TLorentzVector &p0, const TLorentzVector &p1, double fx1[nmsq], double fx2[nmsq], const double &EBEAM, const TVar::VerbosityLevel &verbosity)
 
double TUtil::SumMEPDF (const TLorentzVector &p0, const TLorentzVector &p1, double msq[nmsq][nmsq], MelaIO *RcdME, const double &EBEAM, const TVar::VerbosityLevel &verbosity)
 
double TUtil::ResonancePropagator (double const &sqrts, TVar::ResonancePropagatorScheme scheme)
 
void TUtil::GetBoostedParticleVectors (MELACandidate *melaCand, TVar::simple_event_record &mela_event, TVar::VerbosityLevel verbosity=TVar::DEBUG)
 
MELACandidateTUtil::ConvertVectorFormat (SimpleParticleCollection_t *pDaughters, SimpleParticleCollection_t *pAssociated, SimpleParticleCollection_t *pMothers, bool isGen, std::vector< MELAParticle * > *particleList, std::vector< MELACandidate * > *candList)
 
MELAThreeBodyDecayCandidateTUtil::ConvertThreeBodyDecayCandidate (SimpleParticleCollection_t *tbdDaughters, std::vector< MELAParticle * > *particleList, std::vector< MELAThreeBodyDecayCandidate * > *tbdCandList)
 
void TUtil::PrintCandidateSummary (MELACandidate *cand)
 
void TUtil::PrintCandidateSummary (TVar::simple_event_record *cand)
 

Variables

bool TUtil::forbidMassiveLeptons = true
 Remove fermion mass if the flag is set to true. More...
 
bool TUtil::forbidMassiveJets = true
 
TVar::FermionMassRemoval TUtil::LeptonMassScheme = TVar::ConserveDifermionMass
 
TVar::FermionMassRemoval TUtil::JetMassScheme = TVar::ConserveDifermionMass