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.
|
#include <MelaPConstant.h>
Definition at line 9 of file MelaPConstant.h.
◆ MelaPConstant()
◆ ~MelaPConstant()
MelaPConstant::~MelaPConstant |
( |
| ) |
|
|
virtual |
◆ Eval()
Definition at line 59 of file MELAPConstant.cc.
66 if (verbosity>=
TVar::DEBUG)
MELAout <<
"MelaPConstant::Eval: Candidate mass is " << candMass << endl;
67 if (candMass<=0.)
return 0.;
68 else if (
fcnLow!=0 && candMass<fcnLow->GetXmax()) result =
fcnLow->Eval(candMass);
71 double var = candMass;
72 if (var<fcnMid->GetXmin()) var =
fcnMid->GetXmin();
74 result =
fcnMid->Eval(candMass);
78 if (verbosity>=
TVar::DEBUG)
MELAout <<
"MelaPConstant::Eval: Spline evaluated to " << result << endl;
80 bool multiplyALR=
false;
81 bool multiplyHprop=
false;
82 bool multiplyAVjjprop=
false;
84 unsigned int powAlphaSatMZ=0;
85 result = pow(10., result);
189 if (verbosity>=
TVar::DEBUG)
MELAout <<
"MelaPConstant::Eval: Multiplying " << result <<
" by nothing." << endl;
193 if (multiplyHprop) result *= this->
GetHPropagator(RcdME, verbosity);
194 if (sigmaZ4lprop!=0) result *= this->
GetZPropagator(RcdME, sigmaZ4lprop, verbosity);
195 if (powAlphaSatMZ!=0) result *= this->
GetAlphaSatMZ(RcdME, powAlphaSatMZ, verbosity);
198 if (verbosity>=
TVar::DEBUG)
MELAout <<
"End MelaPConstant::Eval with " << result << endl;
◆ GetAlphaSatMZ()
double MelaPConstant::GetAlphaSatMZ |
( |
const MelaIO * |
RcdME, |
|
|
const unsigned int & |
powAlphaSatMZ, |
|
|
const TVar::VerbosityLevel & |
verbosity |
|
) |
| const |
|
protected |
Definition at line 300 of file MELAPConstant.cc.
303 result = pow(alphasVal, powAlphaSatMZ);
305 <<
"MelaPConstant::GetAlphaSatMZ: "
306 <<
"alphas(MZ)=" << alphasVal <<
" (**" << powAlphaSatMZ <<
") "
◆ GetAssociatedVjjPropagator()
Definition at line 239 of file MELAPConstant.cc.
247 int nRequested_AssociatedJets=2;
248 int AssociationVCompatibility=0;
252 AssociationVCompatibility=24;
257 AssociationVCompatibility=23;
272 vector<TLorentzVector> pJets;
274 for (
auto& part : pAssociated){
276 if (pJets.size()==2)
break;
278 if (pJets.size()==2) mJJval = (pJets[0] + pJets[1]).M();
279 if (mJJval>=0.)
propagator = 1./(pow(pow(mJJval, 2)-pow(mv, 2), 2) + pow(mv*gav, 2));
282 <<
"MelaPConstant::GetAssociatedVjjPropagator: "
◆ GetFcnFromFile()
void MelaPConstant::GetFcnFromFile |
( |
const char * |
path, |
|
|
const char * |
spname |
|
) |
| |
|
protected |
Definition at line 37 of file MELAPConstant.cc.
38 TString spname_core = spname;
39 spname_core.Append(
"_Smooth");
40 spname_core.Prepend(
"sp_tg_");
42 TFile* fin = TFile::Open(path,
"read");
45 if (fin!=0 && !fin->IsZombie() && fin->IsOpen()){
46 TString spname_low = spname_core; spname_low.Prepend(
"lowFcn_");
47 fcnLow = (TF1*)fin->Get(spname_low);
49 TString spname_high = spname_core; spname_high.Prepend(
"highFcn_");
50 fcnHigh = (TF1*)fin->Get(spname_high);
52 TString spname_mid = spname_core;
53 fcnMid = (TSpline3*)fin->Get(spname_mid);
55 else MELAerr <<
"MelaPConstant::GetFcnFromFile: Failed to open file in path " << path << endl;
56 if (fin!=0 && fin->IsOpen()) fin->Close();
◆ GetFileName()
TString MelaPConstant::GetFileName |
( |
| ) |
|
|
inline |
◆ GetHPropagator()
Definition at line 202 of file MELAPConstant.cc.
204 double sh = pow(RcdME->
melaCand->
m(), 2);
207 propagator = 1./(pow(sh-pow(mh, 2), 2) + pow(mh*gah, 2));
209 <<
"MelaPConstant::GetHPropagator: "
◆ GetSplineName()
TString MelaPConstant::GetSplineName |
( |
| ) |
|
|
inline |
◆ GetVDaughterCouplings()
Definition at line 287 of file MELAPConstant.cc.
289 double aL1, aR1, aL2, aR2;
293 <<
"MelaPConstant::GetVDaughterCouplings: "
294 <<
"L**2+R**2 couplings=" << pow(aL1, 2)+pow(aR1, 2) <<
" " << pow(aL2, 2)+pow(aR2, 2) <<
" "
296 if (fabs(aL1)>0. || fabs(aR1)>0.) result *= pow(aL1, 2)+pow(aR1, 2);
297 if (fabs(aL2)>0. || fabs(aR2)>0.) result *= pow(aL2, 2)+pow(aR2, 2);
◆ GetZPropagator()
double MelaPConstant::GetZPropagator |
( |
const MelaIO * |
RcdME, |
|
|
const int & |
sigmaZ4lprop, |
|
|
const TVar::VerbosityLevel & |
verbosity |
|
) |
| const |
|
protected |
Definition at line 214 of file MELAPConstant.cc.
217 double sh = pow(candMass, 2);
220 double prop_sh = 1./(pow(sh-pow(
mz, 2), 2) + pow(
mz*gaz, 2));
221 if (sigmaZ4lprop>0.){
222 const double dsigmaZ4lprop=sigmaZ4lprop;
223 if (fabs(candMass-
mz)<=dsigmaZ4lprop*gaz){
224 double shdn = pow(
mz-dsigmaZ4lprop*gaz, 2);
225 double shup = pow(
mz+dsigmaZ4lprop*gaz, 2);
226 double prop_shdn = 1./(pow(shdn-pow(
mz, 2), 2) + pow(
mz*gaz, 2));
227 double prop_shup = 1./(pow(shup-pow(
mz, 2), 2) + pow(
mz*gaz, 2));
228 double fsh = (sh-shdn)/(shup-shdn);
229 propagator = prop_sh / (prop_shdn*(1.-fsh) + prop_shup*fsh);
232 else if (sigmaZ4lprop<0.)
propagator = prop_sh;
234 <<
"MelaPConstant::GetZPropagator: "
◆ IsValid()
bool MelaPConstant::IsValid |
( |
| ) |
|
|
inline |
◆ fcnHigh
TF1* MelaPConstant::fcnHigh |
|
protected |
◆ fcnLow
TF1* MelaPConstant::fcnLow |
|
protected |
◆ fcnMid
TSpline3* MelaPConstant::fcnMid |
|
protected |
◆ fname
TString MelaPConstant::fname |
|
protected |
◆ processME
◆ processProc
◆ processProd
The documentation for this class was generated from the following files:
int nRequested_AssociatedJets
TVar::Process processProc
void getVDaughterCouplings(double &left, double &right, int iv) const
TVar::Production processProd
double GetAssociatedVjjPropagator(const MelaIO *RcdME, const TVar::VerbosityLevel &verbosity) const
int AssociationVCompatibility
double getAlphaSatMZ() const
MELAOutputStreamer MELAout
void GetFcnFromFile(const char *path, const char *spname)
double GetHPropagator(const MelaIO *RcdME, const TVar::VerbosityLevel &verbosity) const
void getHiggsMassWidth(double &mass_, double &width_, int jh) const
double GetZPropagator(const MelaIO *RcdME, const int &sigmaZ4lprop, const TVar::VerbosityLevel &verbosity) const
double GetMass(int ipart)
MELAOutputStreamer MELAerr
SimpleParticleCollection_t pAssociated
double GetAlphaSatMZ(const MelaIO *RcdME, const unsigned int &powAlphaSatMZ, const TVar::VerbosityLevel &verbosity) const
std::vector< SimpleParticle_t > SimpleParticleCollection_t
complex(8) function propagator(inv_mass, mass, width)
double GetVDaughterCouplings(const MelaIO *RcdME, const TVar::VerbosityLevel &verbosity) const
TVar::MatrixElement processME
void GetBoostedParticleVectors(MELACandidate *melaCand, TVar::simple_event_record &mela_event, TVar::VerbosityLevel verbosity=TVar::DEBUG)
bool isAJet(const int id)