|
JHUGen MELA
JHUGen v7.5.6, MELA v2.4.2
Matrix element calculations as used in JHUGen.
|
Go to the documentation of this file.
4 #include "TLorentzRotation.h"
14 const char* pathtoPDFSet,
16 const char* pathtoHiggsCSandWidth,
20 processVerbosity(verbosity),
23 Xcal2(pathtoHiggsCSandWidth, EBEAM, pathtoPDFSet, PDFMember, verbosity),
31 processVerbosity(other.processVerbosity),
32 processLeptonInterference(other.processLeptonInterference),
70 phi1=TMath::Pi()-Phi1;
76 gamma1=(Mx*Mx+M1*M1-M2*M2)/(2*Mx*M1);
77 beta1=sqrt(1.-1./(gamma1*gamma1));
80 gamma2=(Mx*Mx-M1*M1+M2*M2)/(2*Mx*M2);
81 beta2=sqrt(1.-1./(gamma2*gamma2));
85 TLorentzVector p1CM(0, 0, Mx/2, Mx/2);
86 TLorentzVector p2CM(0, 0, -Mx/2, Mx/2);
89 TLorentzVector kZ1(gamma1*M1*sin(theta)*
beta1, 0, gamma1*M1*cos(theta)*
beta1, gamma1*M1);
90 TLorentzVector kZ2(-gamma2*M2*sin(theta)*
beta2, 0, -gamma2*M2*cos(theta)*
beta2, gamma2*M2);
94 TLorentzRotation Z1ToZ, Z2ToZ;
96 Z1ToZ.Boost(0, 0,
beta1);
97 Z2ToZ.Boost(0, 0,
beta2);
99 Z2ToZ.RotateY(TMath::Pi()+theta);
104 TLorentzVector p3Z1((M1/2)*sin(theta1)*cos(phi1), (M1/2)*sin(theta1)*sin(phi1), (M1/2)*cos(theta1), (M1/2)*1);
105 TLorentzVector p4Z1(-(M1/2)*sin(theta1)*cos(phi1), -(M1/2)*sin(theta1)*sin(phi1), -(M1/2)*cos(theta1), (M1/2)*1);
106 TLorentzVector p5Z2((M2/2)*sin(theta2)*cos(phi2), (M2/2)*sin(theta2)*sin(phi2), (M2/2)*cos(theta2), (M2/2)*1);
107 TLorentzVector p6Z2(-(M2/2)*sin(theta2)*cos(phi2), -(M2/2)*sin(theta2)*sin(phi2), -(M2/2)*cos(theta2), (M2/2)*1);
111 TLorentzVector p3CM, p4CM, p5CM, p6CM;
118 vector<TLorentzVector> p;
185 if (index<nSupportedHiggses && index>=0)
mHiggs[index] = mh_;
186 else MELAerr <<
"ZZMatrixElement::set_mHiggs: Only resonances 0 (regular) and 1 (additional, possibly high-mass) are supported" << endl;
189 if (index<nSupportedHiggses && index>=0)
wHiggs[index] = (double)gah_;
190 else MELAerr <<
"ZZMatrixElement::set_wHiggs: Only resonances 0 (regular) and 1 (additional, possibly high-mass) are supported" << endl;
193 if (index<nSupportedHiggses && index>=0){
197 else MELAerr <<
"ZZMatrixElement::set_mHiggs_wHiggs: Only resonances 0 (regular) and 1 (additional, possibly high-mass) are supported" << endl;
420 bool includeHiggsDecay
double XsecCalc_TTX(int topProcess, int topDecay)
void SetWPrimeMassWidth(double inmass, double inwidth)
void reset_Width(double inmass, int ipart)
double selfDHg4g4coupl[nSupportedHiggses][SIZE_HGG][2]
void SetGQQCouplings(unsigned int index, double c_real, double c_imag)
void SetGVVpCouplings(unsigned int index, double c_real, double c_imag)
void SetCandidateDecayMode(TVar::CandidateDecayMode mode)
double GetHiggsWidthAtPoleMass(double mass)
double selfDHzzpcoupl[SIZE_HVV][2]
aTQGCCouplings * GetSelfDaTQGCCouplings()
VprimeCouplings * GetSelfDVprimeCouplings()
double selfDaTQGCcoupl[SIZE_ATQGC][2]
std::vector< MELAParticle * > tmpPartList
double selfDHzzLambda_qsq[nSupportedHiggses][SIZE_HVV_LAMBDAQSQ][SIZE_HVV_CQSQ]
double selfDGggcoupl[SIZE_GGG][2]
void get_XPropagator(TVar::ResonancePropagatorScheme scheme, float &prop)
double selfDZpffcoupl[SIZE_Vpff][2]
void set_mHiggs_wHiggs(double mh_, double gah_, int index)
double selfDHb4b4coupl[nSupportedHiggses][SIZE_HQQ][2]
void SetGVVCouplings(unsigned int index, double c_real, double c_imag)
double selfDZqqcoupl[SIZE_ZQQ][2]
void SetHiggsMass(double mass, double wHiggs=-1., int whichResonance=-1)
std::vector< MELATopCandidate_t * > * get_TopCandidateCollection()
void reset_Mass(double inmass, int ipart)
void SetHQQCouplings(unsigned int index, double c_real, double c_imag, int qid=0, int whichResonance=1)
TVar::LeptonInterference processLeptonInterference
double selfDGqqcoupl[SIZE_GQQ][2]
std::vector< MELATopCandidate_t * > * GetTopCandidates()
SpinOneCouplings * GetSelfDSpinOneCouplings()
real *8, dimension(3:6) beta2
double GetPrimaryWidth(int ipart)
void SetZVVCouplings(unsigned int index, double c_real, double c_imag)
double selfDHt4t4coupl[nSupportedHiggses][SIZE_HQQ][2]
void computeProdXS_JH(float &mevalue)
void SetAZffCouplings(unsigned int index, double c_real, double c_imag)
double GetPrimaryHiggsMass()
void ResetMCFM_EWKParameters(double ext_Gf, double ext_aemmz, double ext_mW, double ext_mZ, double ext_xW, int ext_ewscheme=3)
double selfDHbbcoupl[nSupportedHiggses][SIZE_HQQ][2]
double wHiggs[nSupportedHiggses]
void SetHGGCouplings(unsigned int index, double c_real, double c_imag, int whichLoop=1, int whichResonance=1)
void set_Verbosity(TVar::VerbosityLevel verbosity_)
void set_SpinZeroContact(double selfDHzzpcoupl[SIZE_HVV][2], double selfDHzpzpcoupl[SIZE_HVV][2], double selfDHwwpcoupl[SIZE_HVV][2], double selfDHwpwpcoupl[SIZE_HVV][2])
void set_SpinOneCouplings(double selfDZqqcoupl[SIZE_ZQQ][2], double selfDZvvcoupl[SIZE_ZVV][2])
TVar::Process processModel
double get_HiggsWidthAtPoleMass(double mass)
double selfDHzpzpcoupl[SIZE_HVV][2]
std::vector< TLorentzVector > Calculate4Momentum(double Mx, double M1, double M2, double theta, double theta1, double theta2, double Phi1, double Phi)
double mHiggs[nSupportedHiggses]
void AppendTopCandidate(SimpleParticleCollection_t *TopDaughters)
int selfDHwwCLambda_qsq[nSupportedHiggses][SIZE_HVV_CQSQ]
void SetHVVCouplings(unsigned int index, double c_real, double c_imag, bool setWW=false, int whichResonance=1)
void set_SpinZeroCouplings(double selfDHggcoupl[nSupportedHiggses][SIZE_HGG][2], double selfDHg4g4coupl[nSupportedHiggses][SIZE_HGG][2], double selfDHqqcoupl[nSupportedHiggses][SIZE_HQQ][2], double selfDHbbcoupl[nSupportedHiggses][SIZE_HQQ][2], double selfDHttcoupl[nSupportedHiggses][SIZE_HQQ][2], double selfDHb4b4coupl[nSupportedHiggses][SIZE_HQQ][2], double selfDHt4t4coupl[nSupportedHiggses][SIZE_HQQ][2], double selfDHzzcoupl[nSupportedHiggses][SIZE_HVV][2], double selfDHwwcoupl[nSupportedHiggses][SIZE_HVV][2], double selfDHzzLambda_qsq[nSupportedHiggses][SIZE_HVV_LAMBDAQSQ][SIZE_HVV_CQSQ], double selfDHwwLambda_qsq[nSupportedHiggses][SIZE_HVV_LAMBDAQSQ][SIZE_HVV_CQSQ], int selfDHzzCLambda_qsq[nSupportedHiggses][SIZE_HVV_CQSQ], int selfDHwwCLambda_qsq[nSupportedHiggses][SIZE_HVV_CQSQ], double selfDSMEFTSimcoupl[SIZE_SMEFT], bool diffHWW=false)
TVar::MatrixElement processME
std::vector< MELACandidate * > tmpCandList
void append_TopCandidate(SimpleParticleCollection_t *TopDaughters)
void set_TempCandidate(SimpleParticleCollection_t *pDaughters, SimpleParticleCollection_t *pAssociated=0, SimpleParticleCollection_t *pMothers=0, bool isGen=false)
void set_CandidateDecayMode(TVar::CandidateDecayMode mode)
double get_PrimaryMass(int ipart)
void set_AZffCouplings(double selfDAZffcoupl[SIZE_AZff][2])
void set_SpinTwoCouplings(double selfDGqqcoupl[SIZE_GQQ][2], double selfDGggcoupl[SIZE_GGG][2], double selfDGvvcoupl[SIZE_GVV][2])
const TVar::event_scales_type & GetRenFacScaleMode() const
int get_CurrentCandidateIndex()
void set_Process(TVar::Process process_, TVar::MatrixElement me_, TVar::Production production_)
MELACandidate * get_CurrentCandidate()
void SetRenFacScaleMode(TVar::EventScaleScheme renormalizationSch, TVar::EventScaleScheme factorizationSch, double ren_sf, double fac_sf)
void SetGVpVpCouplings(unsigned int index, double c_real, double c_imag)
void SetVpffCouplings(unsigned int index, double c_real, double c_imag, bool setWpff=false, int whichResonance=1)
MELAOutputStreamer MELAout
double selfDHzzcoupl[nSupportedHiggses][SIZE_HVV][2]
void SetLeptonInterf(TVar::LeptonInterference tmp)
void set_mHiggs(double mh_, int index)
void set_VprimeContactCouplings(double selfDZpffcoupl[SIZE_Vpff][2], double selfDWpffcoupl[SIZE_Vpff][2], double M_Zprime, double Ga_Zprime, double M_Wprime, double Ga_Wprime)
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 selfDHqqcoupl[nSupportedHiggses][SIZE_HQQ][2]
void SetHVVSignCQ2(unsigned int index, int csign, bool setWW=false, int whichResonance=1)
This is the code that interfaces with the generated Madgraph matrix elements in fortran for specified...
AZffCouplings * selfD_AZffCouplings
TVar::VerbosityLevel processVerbosity
const TVar::event_scales_type & get_RenFacScaleMode() const
void SetZPrimeMassWidth(double inmass, double inwidth)
void SetInputEvent(SimpleParticleCollection_t *pDaughters, SimpleParticleCollection_t *pAssociated=0, SimpleParticleCollection_t *pMothers=0, bool isGen=false)
VprimeCouplings * selfD_VprimeCouplings
void set_InputEvent(SimpleParticleCollection_t *pDaughters, SimpleParticleCollection_t *pAssociated=0, SimpleParticleCollection_t *pMothers=0, bool isGen=false)
SpinTwoCouplings * GetSelfDSpinTwoCouplings()
void set_CurrentCandidateFromIndex(unsigned int icand)
int selfDHzzCLambda_qsq[nSupportedHiggses][SIZE_HVV_CQSQ]
void computeProdXS_VH(float &mevalue, bool includeHiggsDecay=false)
void computeProdXS_JJH(float &mevalue)
ZZMatrixElement(const char *pathtoPDFSet, int PDFMember, const char *pathtoHiggsCSandWidth, double ebeam, TVar::VerbosityLevel verbosity)
double selfDHggcoupl[nSupportedHiggses][SIZE_HGG][2]
void SetATQGCCouplings(unsigned int index, double c_real, double c_imag)
void ResetMass(double inmass, int ipart)
void SetProcess(TVar::Process proc, TVar::MatrixElement me, TVar::Production prod)
void computeProdXS_VVHVV(float &mevalue)
void set_RenFacScaleMode(TVar::EventScaleScheme renormalizationSch, TVar::EventScaleScheme factorizationSch, double ren_sf, double fac_sf)
aTQGCCouplings * selfD_aTQGCCouplings
double GetPrimaryMass(int ipart)
int GetCurrentCandidateIndex()
void SetVerbosity(TVar::VerbosityLevel tmp)
double selfDHwwpcoupl[SIZE_HVV][2]
void Set_LHAgrid(const char *path, int pdfmember=0)
void computeXS(float &mevalue)
void set_LHAgrid(const char *path, int pdfmember=0)
void SetHVVpCouplings(unsigned int index, double c_real, double c_imag, bool setWWp=false, int whichResonance=1)
MELAOutputStreamer MELAerr
double selfDHttcoupl[nSupportedHiggses][SIZE_HQQ][2]
ResonancePropagatorScheme
void SetHVpVpCouplings(unsigned int index, double c_real, double c_imag, bool setWpWp=false, int whichResonance=1)
SpinZeroCouplings * GetSelfDSpinZeroCouplings()
MELACandidate * GetCurrentCandidate()
void ResetWidth(double inwidth, int ipart)
SpinZeroCouplings * selfD_SpinZeroCouplings
void AllowSeparateWWCouplings(bool doAllow=false)
void SetSMEFTSimCouplings(unsigned int index, double value)
void SetPrimaryHiggsMass(double mass)
double XsecCalc_VX(bool includeHiggsDecay)
double selfDWpffcoupl[SIZE_Vpff][2]
AZffCouplings * GetSelfDAZffCouplings()
void set_CurrentCandidate(MELACandidate *cand)
double selfDGvpvpcoupl[SIZE_GVV][2]
double selfDAZffcoupl[SIZE_AZff][2]
void set_LeptonInterference(TVar::LeptonInterference myLepInterf)
void set_aTQGCCouplings(double selfDaTQGCcoupl[SIZE_ATQGC][2])
SpinOneCouplings * selfD_SpinOneCouplings
std::vector< SimpleParticle_t > SimpleParticleCollection_t
double selfDHwpwpcoupl[SIZE_HVV][2]
void reset_MCFM_EWKParameters(double ext_Gf, double ext_aemmz, double ext_mW, double ext_mZ, double ext_xW, int ext_ewscheme=3)
void computeProdXS_ttH(float &mevalue, int topProcess, int topDecay=0)
void SetCurrentCandidate(MELACandidate *cand)
void set_SpinTwoContact(double selfDGvvpcoupl[SIZE_GVV][2], double selfDGvpvpcoupl[SIZE_GVV][2])
double get_PrimaryWidth(int ipart)
double selfDHwwcoupl[nSupportedHiggses][SIZE_HVV][2]
TVar::Production processProduction
double GetXPropagator(TVar::ResonancePropagatorScheme scheme)
void SetHVVLambdaQ2(unsigned int gType, unsigned int index, double lambda, bool setWW=false, int whichResonance=1)
double selfDGvvpcoupl[SIZE_GVV][2]
void SetGGGCouplings(unsigned int index, double c_real, double c_imag)
double selfDHwwLambda_qsq[nSupportedHiggses][SIZE_HVV_LAMBDAQSQ][SIZE_HVV_CQSQ]
double selfDZvvcoupl[SIZE_ZVV][2]
SpinTwoCouplings * selfD_SpinTwoCouplings
real *8, dimension(3:6) beta1
double selfDGvvcoupl[SIZE_GVV][2]
void SetZQQCouplings(unsigned int index, double c_real, double c_imag)
void set_PrimaryHiggsMass(double mh)
void set_wHiggs(double gah_, int index)