herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
MEPP2HiggsVBF.h
1// -*- C++ -*-
2#ifndef HERWIG_MEPP2HiggsVBF_H
3#define HERWIG_MEPP2HiggsVBF_H
4//
5// This is the declaration of the MEPP2HiggsVBF class.
6//
7
8#include "Herwig/MatrixElement/MEfftoffH.h"
9#include "Herwig/Shower/ShowerAlpha.h"
10
11namespace Herwig {
12
13using namespace ThePEG;
14
23class MEPP2HiggsVBF: public MEfftoffH {
24
29
34
39
44
49
54 };
55
56public:
57
62
65
69 virtual void getDiagrams() const;
71
80 virtual POWHEGType hasPOWHEGCorrection() {return Both;}
81
85 virtual bool hasMECorrection() {return true;}
86
90 virtual void initializeMECorrection(RealEmissionProcessPtr, double &,
91 double & );
92
96 virtual RealEmissionProcessPtr applyHardMatrixElementCorrection(RealEmissionProcessPtr);
97
110 virtual bool softMatrixElementVeto(PPtr parent,
111 PPtr progenitor,
112 const bool & fs,
113 const Energy & highestpT,
114 const vector<tcPDPtr> & ids,
115 const double & z,
116 const Energy & scale,
117 const Energy & pT);
118
122 virtual RealEmissionProcessPtr generateHardest(RealEmissionProcessPtr,
125
126public:
127
135
141 void persistentInput(PersistentIStream & is, int version);
143
150 static void Init();
151
152protected:
153
161 void generateCompton(unsigned int system);
162
166 void generateBGF(unsigned int system);
167
171 double comptonME(unsigned int system,
172 double xT,double xp, double zp, double phi);
173
177 double BGFME(unsigned int system,
178 double xT,double xp, double zp, double phi);
179
183 Energy4 loMatrixElement(const Lorentz5Momentum &p1,
184 const Lorentz5Momentum &p2,
185 const Lorentz5Momentum &q1,
186 const Lorentz5Momentum &q2,
187 double G1, double G2) const;
189
199 double generateComptonPoint(double &xp, double & zp);
200
206 double generateBGFPoint(double &xp, double & zp);
207
220 vector<double> ComptonME(double xp, double x2, double xperp,
223
237 vector<double> BGFME(double xp, double x2, double x3, double xperp,
240
244 double A(tcPDPtr qin1, tcPDPtr qout1, tcPDPtr qin2, tcPDPtr qout2);
246
247protected:
248
256 virtual void doinit();
257
262 virtual void dofinish();
264
265protected:
266
273 virtual IBPtr clone() const { return new_ptr(*this); }
274
279 virtual IBPtr fullclone() const { return new_ptr(*this); }
281
282private:
283
289
290private:
291
299 ShowerAlphaPtr alpha_;
300
305
310
314 Energy pTmin_;
315
321
330
335
340
344 Lorentz5Momentum q_[2];
345
349 Energy2 q2_[2];
350
354 double acoeff_;
355
360
365
369 double xB_[2];
370
375
379 Lorentz5Momentum pother_[2][2];
380
384 Lorentz5Momentum psystem_[2][2];
385
389 Lorentz5Momentum phiggs_[2];
390
394 Energy pTCompton_[2];
395
399 Energy pTBGF_[2];
400
405
409 vector<Lorentz5Momentum> ComptonMomenta_[2];
410
414 vector<Lorentz5Momentum> BGFMomenta_[2];
415
419 vector<tChannelPair> systems_;
420
426
434 double initial_;
435
439 double final_;
440
444 double procProb_;
445
450
454 double bgfInt_;
455
459 unsigned int nover_;
460
464 pair<double,double> maxwgt_;
466
467};
468
469}
470
471#endif /* HERWIG_MEPP2HiggsVBF_H */
double phi() const
Return the azimuth angle of the last set phase space point.
Definition: HwMEBase.h:181
POWHEGType
Virtual members to be overridden by inheriting classes which implement hard corrections.
Definition: HwMEBase.h:87
The MEPP2HiggsVBF class provides the matrix elements for the production of the Higgs boson via the ve...
Definition: MEPP2HiggsVBF.h:23
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
double generateComptonPoint(double &xp, double &zp)
Generate the hard emission in the old-fashioned matrix element correction approach.
Energy pTmin_
Minimum value of .
virtual RealEmissionProcessPtr applyHardMatrixElementCorrection(RealEmissionProcessPtr)
Apply the hard matrix element correction to a given hard process or decay.
vector< double > ComptonME(double xp, double x2, double xperp, LorentzVector< double > l, LorentzVector< double > m)
Return the coefficients for the matrix element piece for the QCD compton case.
virtual void dofinish()
Finalize this object.
Energy4 loMatrixElement(const Lorentz5Momentum &p1, const Lorentz5Momentum &p2, const Lorentz5Momentum &q1, const Lorentz5Momentum &q2, double G1, double G2) const
Leading order matrix element.
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
Energy pTBGF_[2]
Transverse momenta for the BGF emissions.
void generateBGF(unsigned int system)
Generate a BGF process.
virtual RealEmissionProcessPtr generateHardest(RealEmissionProcessPtr, ShowerInteraction)
Apply the POWHEG style correction.
LorentzVector< double > m_
Lorentz vectors for the matrix element.
Energy pTCompton_[2]
Transverse momenta for the compton emissions.
vector< tChannelPair > systems_
the systems
double bgfInt_
Integral for BGF process.
Lorentz5Momentum q_[2]
q
LorentzVector< double > l_
Lorentz vectors for the matrix element.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
LorentzRotation rot_[2]
Rotation to the Breit frame.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
double A(tcPDPtr qin1, tcPDPtr qout1, tcPDPtr qin2, tcPDPtr qout2)
Calculate the coefficient A for the correlations.
tcBeamPtr beam_[2]
Properties of the emission.
double final_
Enchancement factor for FSR.
static void Init()
The standard Init function used to initialize the interfaces.
Lorentz5Momentum phiggs_[2]
Higgs momenta.
virtual bool hasMECorrection()
Has an old fashioned ME correction.
Definition: MEPP2HiggsVBF.h:85
double comptonInt_
Integral for compton process.
PPtr higgs_
Higgs boson.
virtual bool softMatrixElementVeto(PPtr parent, PPtr progenitor, const bool &fs, const Energy &highestpT, const vector< tcPDPtr > &ids, const double &z, const Energy &scale, const Energy &pT)
Apply the soft matrix element correction.
vector< Lorentz5Momentum > BGFMomenta_[2]
Momenta of the particles for a BGF emission.
double comptonWeight_
Weight for the compton channel.
ShowerAlphaPtr alpha_
Parameters for the hard POWHEG emission.
virtual IBPtr clone() const
Make a simple clone of this object.
bool ComptonISFS_[2]
Whether the Compton radiation is ISR or FSR.
double acoeff_
Coupling factor.
double xB_[2]
Born momentum fraction.
double generateBGFPoint(double &xp, double &zp)
Generate the values of and .
pair< double, double > maxwgt_
Maximum weight.
double BGFWeight_
Weight for the BGF channel.
MEPP2HiggsVBF()
The default constructor.
vector< double > BGFME(double xp, double x2, double x3, double xperp, LorentzVector< double > l, LorentzVector< double > m)
Return the coefficients for the matrix element piece for the QCD compton case.
PDPtr gluon_
Gluon particle data object.
virtual void initializeMECorrection(RealEmissionProcessPtr, double &, double &)
Initialize the ME correction.
Lorentz5Momentum pother_[2][2]
Quark momenta for spectator system.
double initial_
Parameters for the matrix element correction.
double comptonME(unsigned int system, double xT, double xp, double zp, double phi)
Matrix element piece for the Compton process.
vector< Lorentz5Momentum > ComptonMomenta_[2]
Momenta of the particles for a compton emission.
tcPDPtr partons_[2][4]
Partons.
double procProb_
Relative fraction of compton and BGF processes to generate.
virtual void getDiagrams() const
Add all possible diagrams with the add() function.
Lorentz5Momentum psystem_[2][2]
Quark momenta for emitting system.
tcPDFPtr pdf_[2]
PDF object.
unsigned int nover_
Number of weights greater than 1.
virtual POWHEGType hasPOWHEGCorrection()
Virtual members to be overridden by inheriting classes which implement hard corrections.
Definition: MEPP2HiggsVBF.h:80
double BGFME(unsigned int system, double xT, double xp, double zp, double phi)
Matrix element piece for the Compton process.
void generateCompton(unsigned int system)
Generate the hardest emission in the POWHEG approach.
MEPP2HiggsVBF & operator=(const MEPP2HiggsVBF &)=delete
The assignment operator is private and must never be called.
The MEfftoffH class is the base class for vector boson fusion type processes in Herwig.
Definition: MEfftoffH.h:25
virtual Energy2 scale() const
Return the scale associated with the last set phase space point.
ShowerInteraction
Handy header file to be included in all Shower classes.
-*- C++ -*-
Ptr< BeamParticleData >::transient_const_pointer tcBeamPtr
A typedef for the BeamParticleData.
Definition: HwMEBase.h:20
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
ThePEG::Ptr< PDFBase >::transient_const_pointer tcPDFPtr
ThePEG::Ptr< Particle >::pointer PPtr
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr
ThePEG::Ptr< ParticleData >::pointer PDPtr
Struct to contain the hadronic system.
Definition: MEPP2HiggsVBF.h:28
PPtr incoming
The incoming particle.
Definition: MEPP2HiggsVBF.h:43
PPtr outgoing
The outgoing particle.
Definition: MEPP2HiggsVBF.h:48
tcBeamPtr beam
The beam particle data object.
Definition: MEPP2HiggsVBF.h:38