|
JHUGen MELA
JHUGen v7.5.6, MELA v2.4.2
Matrix element calculations as used in JHUGen.
|
Go to the documentation of this file.
39 #include "TLorentzVector.h"
63 void scaleMomentumToEnergy(
const TLorentzVector& massiveJet, TLorentzVector& masslessJet,
double mass=0);
66 TLorentzVector
const& jet1,
int const& jet1Id,
67 TLorentzVector
const& jet2,
int const& jet2Id,
68 double m1=0,
double m2=0
73 void computeFakeJet(TLorentzVector
const& realJet, TLorentzVector
const& others, TLorentzVector& fakeJet);
76 std::pair<TLorentzVector, TLorentzVector>
ComplexBoost(TVector3
const& beta, TLorentzVector
const& p4);
89 TLorentzVector Z1_lept1,
int Z1_lept1Id,
90 TLorentzVector Z1_lept2,
int Z1_lept2Id,
91 TLorentzVector Z2_lept1,
int Z2_lept1Id,
92 TLorentzVector Z2_lept2,
int Z2_lept2Id
101 TLorentzVector Z1_lept1,
int Z1_lept1Id,
102 TLorentzVector Z1_lept2,
int Z1_lept2Id,
103 TLorentzVector Z2_lept1,
int Z2_lept1Id,
104 TLorentzVector Z2_lept2,
int Z2_lept2Id
115 TLorentzVector p4M11,
int Z1_lept1Id,
116 TLorentzVector p4M12,
int Z1_lept2Id,
117 TLorentzVector p4M21,
int Z2_lept1Id,
118 TLorentzVector p4M22,
int Z2_lept2Id,
119 TLorentzVector jet1,
int jet1Id,
120 TLorentzVector jet2,
int jet2Id,
121 TLorentzVector* injet1=0,
int injet1Id=0,
122 TLorentzVector* injet2=0,
int injet2Id=0
126 float& costheta1_real,
float& costheta1_imag,
127 float& costheta2_real,
float& costheta2_imag,
132 TLorentzVector p4M11,
int Z1_lept1Id,
133 TLorentzVector p4M12,
int Z1_lept2Id,
134 TLorentzVector p4M21,
int Z2_lept1Id,
135 TLorentzVector p4M22,
int Z2_lept2Id,
136 TLorentzVector jet1,
int jet1Id,
137 TLorentzVector jet2,
int jet2Id,
138 TLorentzVector* injet1=0,
int injet1Id=0,
139 TLorentzVector* injet2=0,
int injet2Id=0
149 TLorentzVector p4M11,
int Z1_lept1Id,
150 TLorentzVector p4M12,
int Z1_lept2Id,
151 TLorentzVector p4M21,
int Z2_lept1Id,
152 TLorentzVector p4M22,
int Z2_lept2Id,
153 TLorentzVector jet1,
int jet1Id,
154 TLorentzVector jet2,
int jet2Id,
155 TLorentzVector* injet1=0,
int injet1Id=0,
156 TLorentzVector* injet2=0,
int injet2Id=0
184 TLorentzVector p4M11,
int Z1_lept1Id,
185 TLorentzVector p4M12,
int Z1_lept2Id,
187 TLorentzVector p4M21,
int Z2_lept1Id,
188 TLorentzVector p4M22,
int Z2_lept2Id,
190 TLorentzVector b,
int bId,
191 TLorentzVector Wplusf,
int WplusfId,
192 TLorentzVector Wplusfb,
int WplusfbId,
193 TLorentzVector bbar,
int bbarId,
194 TLorentzVector Wminusf,
int WminusfId,
195 TLorentzVector Wminusfb,
int WminusfbId,
196 TLorentzVector* injet1=0,
int injet1Id=0,
197 TLorentzVector* injet2=0,
int injet2Id=0
201 void SetEwkCouplingParameters(
double ext_Gf,
double ext_aemmz,
double ext_mW,
double ext_mZ,
double ext_xW,
int ext_ewscheme);
202 void SetMass(
double inmass,
int ipart);
210 void 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);
211 void SetMadgraphCKMElements(
double ckmlambda=0.2265,
double ckma=0.79,
double ckmrho=0.141,
double ckmeta=0);
215 void SetAlphaS(
double& Q_ren,
double& Q_fac,
double multiplier_ren,
double multiplier_fac,
int mynloop,
int mynflav, std::string mypartons);
228 std::vector<int>* partOrder, std::vector<int>* apartOrder
233 void InitJHUGenMELA(
const char* pathtoPDFSet,
int PDFMember,
double collider_sqrts);
288 bool includeHiggsDecay,
295 int topDecay,
int topProcess,
330 std::vector<MELAParticle*>* particleList,
331 std::vector<MELACandidate*>* candList
339 std::vector<MELAParticle*>* particleList,
340 std::vector<MELAThreeBodyDecayCandidate*>* tbdCandList
void scaleMomentumToEnergy(const TLorentzVector &massiveJet, TLorentzVector &masslessJet, double mass=0)
bool 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)
double ResonancePropagator(double const &sqrts, TVar::ResonancePropagatorScheme scheme)
void SetJHUGenSpinZeroGGCouplings(double Hggcoupl[SIZE_HGG][2])
int WipeMEArray(const TVar::Process &process, const TVar::Production &production, const int id[mxpart], double msq[nmsq][nmsq], const TVar::VerbosityLevel &verbosity)
bool MCFM_smalls(double s[][mxpart], int npart)
double SumMEPDF(const TLorentzVector &p0, const TLorentzVector &p1, double msq[nmsq][nmsq], MelaIO *RcdME, const double &EBEAM, const 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)
double InterpretScaleScheme(const TVar::Production &production, const TVar::MatrixElement &matrixElement, const TVar::EventScaleScheme &scheme, TLorentzVector p[mxpart])
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 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)
void SetMCFMAZffCouplings(bool useBSM, AZffCouplings const *Zcouplings)
void SetAlphaS(double &Q_ren, double &Q_fac, double multiplier_ren, double multiplier_fac, int mynloop, int mynflav, std::string mypartons)
void 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 applyLeptonMassCorrection(bool flag=true)
void SetMass(double inmass, int ipart)
void SetJHUGenVprimeContactCouplings(double Zpffcoupl[SIZE_Vpff][2], double Wpffcoupl[SIZE_Vpff][2])
void PrintCandidateSummary(MELACandidate *cand)
void SetMCFMSpinZeroCouplings(bool useBSM, SpinZeroCouplings const *Hcouplings, bool forceZZ)
void SetJHUGenSpinOneCouplings(double Zqqcoupl[SIZE_ZQQ][2], double Zvvcoupl[SIZE_ZVV][2])
bool forbidMassiveLeptons
Remove fermion mass if the flag is set to true.
void GetAlphaS(double *alphas_, double *alphasmz_)
void SetDecayWidth(double inwidth, int ipart)
bool MCFM_masscuts(double s[][mxpart], const TVar::Process &process)
void setLeptonMassScheme(TVar::FermionMassRemoval scheme=TVar::ConserveDifermionMass)
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])
MELACandidate * ConvertVectorFormat(SimpleParticleCollection_t *pDaughters, SimpleParticleCollection_t *pAssociated, SimpleParticleCollection_t *pMothers, bool isGen, std::vector< MELAParticle * > *particleList, std::vector< MELACandidate * > *candList)
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)
void SetJHUGenDistinguishWWCouplings(bool doAllow)
void SetJHUGenAZffCouplings(bool needAZff, double AZffcoupl[SIZE_AZff][2])
double GetDecayWidth(int ipart)
double GetCKMElement(int iquark, int jquark)
TString GetMCFMParticleLabel(const int &pid, bool useQJ, bool useExtendedConventions)
void 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 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)
std::pair< TLorentzVector, TLorentzVector > ComplexBoost(TVector3 const &beta, TLorentzVector const &p4)
void SetEwkCouplingParameters(double ext_Gf, double ext_aemmz, double ext_mW, double ext_mZ, double ext_xW, int ext_ewscheme)
void 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 SetMadgraphSpinZeroCouplings(SpinZeroCouplings const *Hcouplings)
std::pair< TLorentzVector, TLorentzVector > removeMassFromPair(TLorentzVector const &jet1, int const &jet1Id, TLorentzVector const &jet2, int const &jet2Id, double m1=0, double m2=0)
TVar::FermionMassRemoval LeptonMassScheme
void GetMassWidth(int ipart, double &m, double &ga)
MELAThreeBodyDecayCandidate * ConvertThreeBodyDecayCandidate(SimpleParticleCollection_t *tbdDaughters, std::vector< MELAParticle * > *particleList, std::vector< MELAThreeBodyDecayCandidate * > *tbdCandList)
void ComputePDF(const TLorentzVector &p0, const TLorentzVector &p1, double fx1[nmsq], double fx2[nmsq], const double &EBEAM, const TVar::VerbosityLevel &verbosity)
double GetMass(int ipart)
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)
ResonancePropagatorScheme
double alphas_(double *q, double *amz, int *nloop)
bool 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)
std::complex< double > GetMadgraphCKMElement(int iquark, int jquark)
void SetMCFMaTQGCCouplings(bool useBSM, aTQGCCouplings const *couplings)
void computeFakeJet(TLorentzVector const &realJet, TLorentzVector const &others, TLorentzVector &fakeJet)
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 constrainedRemovePairMass(TLorentzVector &p1, TLorentzVector &p2, double m1=0, double m2=0)
void InitJHUGenMELA(const char *pathtoPDFSet, int PDFMember, double collider_sqrts)
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)
TVar::FermionMassRemoval JetMassScheme
void adjustTopDaughters(SimpleParticleCollection_t &daughters)
bool CheckPartonMomFraction(const TLorentzVector &p0, const TLorentzVector &p1, double xx[2], const double &EBEAM, const TVar::VerbosityLevel &verbosity)
void SetJHUGenSpinZeroQQCouplings(double Hqqcoupl[SIZE_HQQ][2])
std::vector< SimpleParticle_t > SimpleParticleCollection_t
void SetMadgraphCKMElements(double ckmlambda=0.2265, double ckma=0.79, double ckmrho=0.141, double ckmeta=0)
void setJetMassScheme(TVar::FermionMassRemoval scheme=TVar::ConserveDifermionMass)
void 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 GetBoostedParticleVectors(MELACandidate *melaCand, TVar::simple_event_record &mela_event, TVar::VerbosityLevel verbosity=TVar::DEBUG)
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)
void 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 ResetAmplitudeIncludes()
void applyJetMassCorrection(bool flag=true)