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.
|
Go to the documentation of this file.
20 #include "TLorentzVector.h"
77 void build(
double mh_);
309 void resetMass(
double inmass,
int ipart);
384 void resetMCFM_EWKParameters(
double ext_Gf,
double ext_aemmz,
double ext_mW,
double ext_mZ,
double ext_xW,
int ext_ewscheme=3);
624 float& costheta1_real,
float& costheta1_imag,
625 float& costheta2_real,
float& costheta2_imag,
698 bool useConstant=
true
712 double selfDZqqcoupl_input[
SIZE_ZQQ][2],
713 double selfDZvvcoupl_input[
SIZE_ZVV][2],
715 bool useConstant=
true
728 double selfDZvvcoupl_input[
SIZE_ZVV][2],
730 bool useConstant=
true
745 double selfDGggcoupl_input[
SIZE_GGG][2],
746 double selfDGqqcoupl_input[
SIZE_GQQ][2],
747 double selfDGvvcoupl_input[
SIZE_GVV][2],
749 bool useConstant=
true
763 double selfDGggcoupl_input[
SIZE_GGG][2],
764 double selfDGvvcoupl_input[
SIZE_GVV][2],
766 bool useConstant=
true
779 bool useConstant=
true
813 double selfDAZffcoupl_input[
SIZE_AZff][2],
815 bool useConstant=
true
851 bool useConstant=
true
867 double selfDHggcoupl_input[
SIZE_HGG][2],
871 bool useConstant=
true
882 bool useConstant=
true
889 bool includeHiggsDecay=
false,
890 bool useConstant=
true
894 bool includeHiggsDecay=
false,
895 bool useConstant=
true
903 bool useConstant=
true
929 std::vector<TLorentzVector>
calculate4Momentum(
double Mx,
double M1,
double M2,
double theta,
double theta1,
double theta2,
double Phi1,
double Phi);
1105 float bkg_VAMCFM_noscale,
1106 float ggzz_VAMCFM_noscale,
1107 float ggHZZ_prob_pure_noscale,
1108 float ggHZZ_prob_int_noscale,
1121 const bool useSqrts=
false
MelaPConstant * pAvgSmooth_MCFM_Had_ZH_S_HSMHiggs_4e
MelaPConstant * pAvgSmooth_MCFM_Had_ZH_bkgZZ_4e
void getConstant(float &prob)
This function returns a multiplicative constant to the matrix element calculation.
void computeP_selfDspin2(double selfDGggcoupl_input[SIZE_GGG][2], double selfDGqqcoupl_input[SIZE_GQQ][2], double selfDGvvcoupl_input[SIZE_GVV][2], float &prob, bool useConstant=true)
This is a function that calls Mela::computeP with preset quark, gluon, and vector boson couplings for...
float getConstant_FourFermionDecay(const int &decid)
MelaPConstant * pAvgSmooth_MCFM_ZZQQB_bkgZZ_4mu
MelaPConstant * pAvgSmooth_JHUGen_JQCD_HSMHiggs[TVar::nFermionMassRemovalSchemes-1]
MelaPConstant * pAvgSmooth_MCFM_JJQCD_bkgZZ_4e
void setInputEvent(SimpleParticleCollection_t *pDaughters, SimpleParticleCollection_t *pAssociated=0, SimpleParticleCollection_t *pMothers=0, bool isGen=false)
Sets the input event for MELA. MELA cannot run without this.
double selfDGqqcoupl[SIZE_GQQ][2]
double selfDGvpvpcoupl[SIZE_GVV][2]
void getPConstantHandles()
void build(double mh_)
This is the actual building of the tool that occurs in each instance of the Mela::Mela constructor.
void resetMCFM_EWKParameters(double ext_Gf, double ext_aemmz, double ext_mW, double ext_mZ, double ext_xW, int ext_ewscheme=3)
Resets the electroweak parameters back to their defaults.
double getPrimaryWidth(int ipart)
A function to get the current primary EW/QCD parameters from MELA.
int getNCandidates()
Returns the size of the candidate list TEvtProb::candList.
void computeDecayAngles(float &qH, float &m1, float &m2, float &costheta1, float &costheta2, float &Phi, float &costhetastar, float &Phi1)
computes the decay angles for gg -> H -> ZZ as defined in Figure 1 of arXiv:1001.3396
MelaPConstant * getPConstantHandle(TVar::MatrixElement me_, TVar::Production prod_, TVar::Process proc_, TString relpath, TString spname, const bool useSqrts=false)
void computeProdP_VH(double selfDHvvcoupl_input[nSupportedHiggses][SIZE_HVV][2], float &prob, bool includeHiggsDecay=false, bool useConstant=true)
MelaPConstant * pAvgSmooth_MCFM_Had_ZH_bkgZZ_2mu2e
void compute4FermionWeight(float &w)
MelaPConstant * pAvgSmooth_MCFM_ZZGG_HSMHiggs_4e
int selfDHwwCLambda_qsq[nSupportedHiggses][SIZE_HVV_CQSQ]
MelaPConstant * pAvgSmooth_MCFM_JJVBF_S_HSMHiggs_4mu
@ nFermionMassRemovalSchemes
MelaIO * getIORecord()
Returns the MELAIO object, and by consequence, the entire parton-by-parton matrix element record.
MelaPConstant * pAvgSmooth_MCFM_Had_WH_bkgZZ_4mu
MelaPConstant * pAvgSmooth_MCFM_Had_WH_S_HSMHiggs_2mu2e
void setCurrentCandidateFromIndex(unsigned int icand)
Switches the candidate that you are working on to another candidate based off of an index.
MelaPConstant * pAvgSmooth_MCFM_ZZGG_bkgZZ_4mu
double selfDHttcoupl[nSupportedHiggses][SIZE_HQQ][2]
MelaPConstant * pAvgSmooth_MCFM_JJQCD_bkgZZ_2mu2e
void setRemoveLeptonMasses(bool MasslessLeptonSwitch=true)
either permits or forbids massive leptons.
void getPAux(float &prob)
RooSpin::modelMeasurables getMeasurablesRRV()
Returns a RooSpin::modelMeasureables object containing many observable quantities.
void setVerbosity(TVar::VerbosityLevel verbosity_=TVar::ERROR)
Sets the verbosity for MELA outside of the initial constructor.
void setCurrentCandidate(MELACandidate *cand)
Switches the candidate that you are working on to another candidate object specified.
void resetWidth(double inwidth, int ipart)
Resets the width for a particle that is an electroweak parameter according to its id.
void setMelaHiggsWidth(double myHiggsWidth=-1, int index=0)
Sets the width of your chosen Higgs.
void setSpinZeroCouplings()
std::vector< MELATopCandidate_t * > * getTopCandidateCollection()
Same as getNCandidates but specifically for Top Quark Candidates.
void computeD_CP(TVar::MatrixElement myME, TVar::Process myType, float &prob)
computes the value of D_CP
MelaPConstant * pAvgSmooth_MCFM_Had_WH_S_HSMHiggs_4mu
MelaPConstant * pAvgSmooth_JHUGen_Had_WH_HSMHiggs[TVar::nFermionMassRemovalSchemes-1]
void computeProdP(double selfDHggcoupl_input[SIZE_HGG][2], double selfDHvvcoupl_input[nSupportedHiggses][SIZE_HVV][2], double selfDHwwcoupl_input[nSupportedHiggses][SIZE_HVV][2], float &prob, bool useConstant=true)
computes Production side probabilities while taking in coupling arrays
MelaPConstant * pAvgSmooth_MCFM_ZZQQB_bkgZZ_4e
double selfDHzpzpcoupl[SIZE_HVV][2]
void setRenFacScaleMode(TVar::EventScaleScheme renormalizationSch, TVar::EventScaleScheme factorizationSch, double ren_sf, double fac_sf)
Sets the renormalization and the factorization schemes.
double selfDWpffcoupl[SIZE_Vpff][2]
void reset_SelfDCouplings()
double selfDZpffcoupl[SIZE_Vpff][2]
double selfDaTQGCcoupl[SIZE_ATQGC][2]
float getConstant_JHUGenUndecayed()
MelaPConstant * pAvgSmooth_JHUGen_ZZGG_HSMHiggs_2mu2e
void computeVBFAngles(float &Q2V1, float &Q2V2, float &costheta1, float &costheta2, float &Phi, float &costhetastar, float &Phi1)
computes the decay angles for Vector Boson Fusion (VBF) -> H -> ZZ as defined in Figure 1 of arXiv:12...
void setProcess(TVar::Process myModel, TVar::MatrixElement myME, TVar::Production myProduction)
Sets the process, matrix element, and production that MELA is to use for this event....
Mela(double LHCsqrts_=13., double mh_=125., TVar::VerbosityLevel verbosity_=TVar::ERROR)
the MELA constructor
RooqqZZ_JHU_ZgammaZZ_fast * qqZZmodel
void resetQuarkMasses()
Resets the masses of each quark to their original values.
MelaPConstant * pAvgSmooth_MCFM_Had_ZH_S_HSMHiggs_4mu
double selfDHqqcoupl[nSupportedHiggses][SIZE_HQQ][2]
void setTempCandidate(SimpleParticleCollection_t *pDaughters, SimpleParticleCollection_t *pAssociated=0, SimpleParticleCollection_t *pMothers=0, bool isGen=false)
Sets a temporary MELA candidate, by setting melaCand in Xcal2 to a temporary candidate without pushin...
void deletePConstantHandle(MelaPConstant *&handle)
ScalarPdfFactory_HVV * ggSpin0Model
RooRealVar * costheta1_rrv
MelaPConstant * pAvgSmooth_MCFM_ZZGG_bkgZZ_2mu2e
void deletePConstantHandles()
double selfDGvvcoupl[SIZE_GVV][2]
void computeP_selfDspin0(double selfDHvvcoupl_input[nSupportedHiggses][SIZE_HVV][2], float &prob, bool useConstant=true)
This is a function that calls Mela::computeP with preset quark, gluon, and vector boson couplings for...
MelaPConstant * pAvgSmooth_MCFM_ZZQQB_bkgZZ_2mu2e
MelaPConstant * pAvgSmooth_MCFM_Had_WH_bkgZZ_2mu2e
bool differentiate_HWW_HZZ
double getHiggsWidthAtPoleMass(double mass)
Returns the width of the Higgs at a given pole mass as a calculation.
void computeTTHAngles(int topDecay, float &mT1, float &mW1, float &mT2, float &mW2, float &costheta1, float &costheta2, float &Phi, float &costhetastar, float &Phi1, float &hbb, float &hWW, float &Phibb, float &Phi1bb, float &hWplusf, float &PhiWplusf, float &hWminusf, float &PhiWminusf)
MelaPConstant * pAvgSmooth_JHUGen_ZZGG_HSMHiggs_4e
static void cleanLinkedFiles()
TVar::MatrixElement myME_
void computeVHAngles(float &mVstar, float &mV, float &costheta1, float &costheta2, float &Phi, float &costhetastar, float &Phi1)
computes the decay angles for Vector Boson Fusion (VBF) -> H -> ZZ as defined in Figure 1 of arXiv:12...
TVar::VerbosityLevel getVerbosity()
Gets the current verbosity level for MELA.
double selfDHg4g4coupl[nSupportedHiggses][SIZE_HGG][2]
void computeP(float &prob, bool useConstant=true)
Computes the probability for the probabilities on the decay side of things using the constituent daug...
MelaPConstant * pAvgSmooth_MCFM_Had_WH_bkgZZ_4e
void computePM4l(TVar::SuperMelaSyst syst, float &prob)
void setCandidateDecayMode(TVar::CandidateDecayMode mode)
Sets the decay mode for your event.
MelaPConstant * pAvgSmooth_MCFM_Had_ZH_S_HSMHiggs_2mu2e
void setMelaHiggsMass(double myHiggsMass, int index=0)
Sets the mass of your chosen Higgs.
TensorPdfFactory_ppHVV * spin2Model
int getCurrentCandidateIndex()
Returns the index of the current MELA candidate - returns -1 if there is no candidate to be found.
MelaPConstant * pAvgSmooth_JHUGen_ZZGG_HSMHiggs_4mu
double selfDZqqcoupl[SIZE_ZQQ][2]
double selfDHb4b4coupl[nSupportedHiggses][SIZE_HQQ][2]
double selfDHwpwpcoupl[SIZE_HVV][2]
MelaPConstant * pAvgSmooth_JHUGen_JJQCD_HSMHiggs[TVar::nFermionMassRemovalSchemes-1]
MelaPConstant * pAvgSmooth_MCFM_JJVBF_S_HSMHiggs_4e
double selfDHzzLambda_qsq[nSupportedHiggses][SIZE_HVV_LAMBDAQSQ][SIZE_HVV_CQSQ]
void getXPropagator(TVar::ResonancePropagatorScheme scheme, float &prop)
void computeProdDecP(double selfDHvvcoupl_input[nSupportedHiggses][SIZE_HVV][2], double selfDHwwcoupl_input[nSupportedHiggses][SIZE_HVV][2], double selfDaTQGCcoupl_input[SIZE_ATQGC][2], double selfDAZffcoupl_input[SIZE_AZff][2], float &prob, bool useConstant=true)
computes the combined production and decay probability while taking in coupling arrays
double selfDHwwcoupl[nSupportedHiggses][SIZE_HVV][2]
MelaPConstant * pAvgSmooth_MCFM_JJVBF_bkgZZ_4mu
void constructDggr(float bkg_VAMCFM_noscale, float ggzz_VAMCFM_noscale, float ggHZZ_prob_pure_noscale, float ggHZZ_prob_int_noscale, float widthScale, float &myDggr)
MelaPConstant * pAvgSmooth_MCFM_ZZGG_bkgZZ_4e
void setRemoveJetMasses(bool MasslessLeptonSwitch=true)
either permits or forbids massive jets.
SuperDijetMela * superDijet
double selfDGvvpcoupl[SIZE_GVV][2]
void resetMass(double inmass, int ipart)
Resets the mass for a particle that is an electroweak parameter according to its id.
void resetInputEvent()
Resets the event in preparation for the next iteration of the event loop.
double selfDAZffcoupl[SIZE_AZff][2]
int selfDHzzCLambda_qsq[nSupportedHiggses][SIZE_HVV_CQSQ]
bool configureAnalyticalPDFs()
MelaPConstant * pAvgSmooth_MCFM_JJVBF_bkgZZ_4e
void setSpinOneCouplings()
TVar::Production myProduction_
void setMelaHiggsMassWidth(double myHiggsMass, double myHiggsWidth, int index)
a combination of setMelaHiggsMass and setMelaHiggsWidth.
double selfDZvvcoupl[SIZE_ZVV][2]
MelaPConstant * pAvgSmooth_JHUGen_JJVBF_HSMHiggs[TVar::nFermionMassRemovalSchemes-1]
void computeVBFAngles_ComplexBoost(float &Q2V1, float &Q2V2, float &costheta1_real, float &costheta1_imag, float &costheta2_real, float &costheta2_imag, float &Phi, float &costhetastar, float &Phi1)
ResonancePropagatorScheme
TRandom3 melaRandomNumber
void computeProdP_ttH(float &prob, int topProcess=2, int topDecay=0, bool useConstant=true)
void computeD_gg(TVar::MatrixElement myME, TVar::Process myType, float &prob)
void computeConstant(float &prob)
double selfDHt4t4coupl[nSupportedHiggses][SIZE_HQQ][2]
double selfDHwwLambda_qsq[nSupportedHiggses][SIZE_HVV_LAMBDAQSQ][SIZE_HVV_CQSQ]
void setMelaPrimaryHiggsMass(double myHiggsMass)
Sets the mass of the "primary" higgs.
MelaPConstant * pAvgSmooth_MCFM_ZZGG_HSMHiggs_2mu2e
void computeDijetConvBW(float &prob, bool useTrueBW=false)
RooRealVar * costhetastar_rrv
MelaPConstant * pAvgSmooth_MCFM_JJQCD_bkgZZ_4mu
RooRealVar * costheta2_rrv
double selfDHwwpcoupl[SIZE_HVV][2]
TVar::VerbosityLevel myVerbosity_
MelaPConstant * pAvgSmooth_MCFM_ZZGG_HSMHiggs_4mu
double selfDHzzcoupl[nSupportedHiggses][SIZE_HVV][2]
std::vector< TLorentzVector > calculate4Momentum(double Mx, double M1, double M2, double theta, double theta1, double theta2, double Phi1, double Phi)
void computeP_selfDspin1(double selfDZqqcoupl_input[SIZE_ZQQ][2], double selfDZvvcoupl_input[SIZE_ZVV][2], float &prob, bool useConstant=true)
This is a function that calls Mela::computeP with preset quark, gluon, and vector boson couplings for...
MelaPConstant * pAvgSmooth_MCFM_JJQCD_bkgZJets_2l2q
MelaPConstant * pAvgSmooth_MCFM_Had_ZH_bkgZZ_4mu
VectorPdfFactory * spin1Model
double selfDHzzpcoupl[SIZE_HVV][2]
MelaPConstant * pAvgSmooth_MCFM_Had_WH_S_HSMHiggs_4e
void setSpinTwoCouplings()
std::vector< SimpleParticle_t > SimpleParticleCollection_t
double selfDHggcoupl[nSupportedHiggses][SIZE_HGG][2]
void setMelaLeptonInterference(TVar::LeptonInterference myLepInterf=TVar::DefaultLeptonInterf)
Sets the MELA Lepton Interference.
MelaPConstant * pAvgSmooth_MCFM_JJVBF_S_HSMHiggs_2mu2e
void appendTopCandidate(SimpleParticleCollection_t *TopDaughters)
Adds a top quark as a MELA candidate.
double selfDHbbcoupl[nSupportedHiggses][SIZE_HQQ][2]
TVar::LeptonInterference myLepInterf_
double selfDGggcoupl[SIZE_GGG][2]
MelaPConstant * pAvgSmooth_MCFM_JJVBF_bkgZZ_2mu2e
MELACandidate * getCurrentCandidate()
Gets the current MELA top-level (input) candList object.
double getPrimaryMass(int ipart)
A function to get the current primary EW/QCD parameters from MELA.
MelaPConstant * pAvgSmooth_JHUGen_Had_ZH_HSMHiggs[TVar::nFermionMassRemovalSchemes-1]