herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
DrellYanBase.h
1// -*- C++ -*-
2#ifndef HERWIG_DrellYanBase_H
3#define HERWIG_DrellYanBase_H
4//
5// This is the declaration of the DrellYanBase class.
6//
7
8#include "HwMEBase.h"
9#include "Herwig/Shower/ShowerAlpha.h"
10
11namespace Herwig {
12
13using namespace ThePEG;
14
23class DrellYanBase: public HwMEBase {
24
25public:
26
31
35 //virtual bool hasPOWHEGCorrection() {return _alpha;}
36
37 virtual POWHEGType hasPOWHEGCorrection() {return ISR;}
38
39
43 virtual bool hasMECorrection() {return _alpha;}
44
48 virtual void initializeMECorrection(RealEmissionProcessPtr, double & initial,
49 double & final) {
50 final = 1.;
51 initial = 1.;
52 }
53
57 virtual RealEmissionProcessPtr applyHardMatrixElementCorrection(RealEmissionProcessPtr);
58
71 virtual bool softMatrixElementVeto(PPtr parent,
72 PPtr progenitor,
73 const bool & fs,
74 const Energy & highestpT,
75 const vector<tcPDPtr> & ids,
76 const double & z,
77 const Energy & scale,
78 const Energy & pT);
79
83 virtual RealEmissionProcessPtr generateHardest(RealEmissionProcessPtr,
85
91 virtual void setKinematics() {
93 mb2_ = sHat();
94 }
95
96protected:
97
113 vector<tcBeamPtr> beams,
114 Lorentz5Momentum boson,unsigned int & iemit,
115 unsigned int & itype,vector<Lorentz5Momentum> & pnew,
116 LorentzRotation & trans, pair<double,double> & xnew,
117 Energy2 shad);
118
127 double getResult(int emis_type, Energy pt, double yj);
128
135 bool getEvent(vector<Lorentz5Momentum> & pnew,int & emissiontype);
136
137public:
138
146
152 void persistentInput(PersistentIStream & is, int version);
154
161 static void Init();
162
163protected:
164
172 virtual void doinit();
173
178 virtual void dofinish();
180
181private:
182
188
189private:
190
194 Energy2 mb2_;
195
204
209
213 vector<double> _channelweights;
214
218 unsigned int _nover;
219
223 double _maxwgt;
225
234 double _power;
235
239 double _preqqbar;
240
244 double _preqg;
245
249 double _pregqbar;
250
254 vector<double> _prefactor;
256
264 vector<tcBeamPtr> _beams;
265
269 vector<tcPDPtr> _partons;
271
279 double _yb;
280
284 Energy _mass;
285
290
294 double _yj;
295
299 Energy _pt;
301
305 Energy _min_pt;
306
310 ShowerAlphaPtr _alpha;
311};
312
313}
314
315#endif /* HERWIG_DrellYanBase_H */
The DrellYanBase class class provides a base class for the implemented of Drell-Yan type processes an...
Definition: DrellYanBase.h:23
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
virtual POWHEGType hasPOWHEGCorrection()
Has a POWHEG style correction.
Definition: DrellYanBase.h:37
double _maxwgt
Maximum weight.
Definition: DrellYanBase.h:223
virtual RealEmissionProcessPtr applyHardMatrixElementCorrection(RealEmissionProcessPtr)
Apply the hard matrix element correction to a given hard process or decay.
double _yj
the rapidity of the jet
Definition: DrellYanBase.h:294
unsigned int _nover
Number of weights greater than 1.
Definition: DrellYanBase.h:218
vector< tcPDPtr > _partons
Pointers to the ParticleDataObjects for the partons.
Definition: DrellYanBase.h:269
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
bool _quarkplus
Whether the quark is in the + or - z direction.
Definition: DrellYanBase.h:289
double getResult(int emis_type, Energy pt, double yj)
Returns the matrix element for a given type of process, rapidity of the jet and transverse momentum ...
vector< double > _channelweights
Weights for the channels as a vector.
Definition: DrellYanBase.h:213
Energy _min_pt
The transverse momentum of the jet.
Definition: DrellYanBase.h:305
DrellYanBase & operator=(const DrellYanBase &)=delete
The assignment operator is private and must never be called.
bool getEvent(vector< Lorentz5Momentum > &pnew, int &emissiontype)
generates the hardest emission (yj,p)
virtual void dofinish()
Finalize this object.
ShowerAlphaPtr _alpha
Pointer to the object calculating the strong coupling.
Definition: DrellYanBase.h:310
DrellYanBase()
The default constructor.
double _pregqbar
The prefactor, for the channel.
Definition: DrellYanBase.h:249
double _yb
Properties of the boson and jets.
Definition: DrellYanBase.h:279
double _preqg
The prefactor, for the channel.
Definition: DrellYanBase.h:244
vector< tcBeamPtr > _beams
Properties of the incoming particles.
Definition: DrellYanBase.h:264
bool applyHard(ParticleVector &quarks, vector< tcBeamPtr > beams, Lorentz5Momentum boson, unsigned int &iemit, unsigned int &itype, vector< Lorentz5Momentum > &pnew, LorentzRotation &trans, pair< double, double > &xnew, Energy2 shad)
Return the momenta and type of hard matrix element correction.
double _channelwgtB
Relative weight for the and channels.
Definition: DrellYanBase.h:208
Energy2 mb2_
Mass squared of the vector boson.
Definition: DrellYanBase.h:194
Energy _pt
The transverse momentum of the jet.
Definition: DrellYanBase.h:299
double _power
Constants for the sampling.
Definition: DrellYanBase.h:234
virtual void setKinematics()
Set the typed and momenta of the incoming and outgoing partons to be used in subsequent calls to me()...
Definition: DrellYanBase.h:91
virtual void initializeMECorrection(RealEmissionProcessPtr, double &initial, double &final)
Initialize the ME correction.
Definition: DrellYanBase.h:48
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.
Energy _mass
The mass of the gauge boson.
Definition: DrellYanBase.h:284
virtual bool hasMECorrection()
Has an old fashioned ME correction.
Definition: DrellYanBase.h:43
double _preqqbar
The prefactor, for the channel.
Definition: DrellYanBase.h:239
vector< double > _prefactor
The prefactors as a vector for easy use.
Definition: DrellYanBase.h:254
virtual RealEmissionProcessPtr generateHardest(RealEmissionProcessPtr, ShowerInteraction)
Apply the POWHEG style correction.
static void Init()
The standard Init function used to initialize the interfaces.
double _channelwgtA
Parameters for the old-style ME correction.
Definition: DrellYanBase.h:203
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
The HwMEBase class serves a number of purposes.
Definition: HwMEBase.h:35
virtual void setKinematics()
Set the typed and momenta of the incoming and outgoing partons to be used in subsequent calls to me()...
POWHEGType
Virtual members to be overridden by inheriting classes which implement hard corrections.
Definition: HwMEBase.h:87
virtual Energy2 scale() const=0
Energy2 sHat() const
ShowerInteraction
Handy header file to be included in all Shower classes.
-*- C++ -*-
ThePEG::Ptr< Particle >::pointer PPtr
vector< PPtr > ParticleVector