herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
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 
11 namespace Herwig {
12 
13 using namespace ThePEG;
14 
23 class DrellYanBase: public HwMEBase {
24 
25 public:
26 
30  DrellYanBase();
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 
96 protected:
97 
112  bool applyHard(ParticleVector & quarks,
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 
137 public:
138 
145  void persistentOutput(PersistentOStream & os) const;
146 
152  void persistentInput(PersistentIStream & is, int version);
154 
161  static void Init();
162 
163 protected:
164 
172  virtual void doinit();
173 
178  virtual void dofinish();
180 
181 private:
182 
187  DrellYanBase & operator=(const DrellYanBase &) = delete;
188 
189 private:
190 
194  Energy2 mb2_;
195 
203  double _channelwgtA;
204 
208  double _channelwgtB;
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 */
ThePEG::Ptr< Particle >::pointer PPtr
double _yb
Properties of the boson and jets.
Definition: DrellYanBase.h:279
ShowerAlphaPtr _alpha
Pointer to the object calculating the strong coupling.
Definition: DrellYanBase.h:310
vector< double > _prefactor
The prefactors as a vector for easy use.
Definition: DrellYanBase.h:254
ShowerInteraction
Handy header file to be included in all Shower classes.
virtual POWHEGType hasPOWHEGCorrection()
Has a POWHEG style correction.
Definition: DrellYanBase.h:37
The DrellYanBase class class provides a base class for the implemented of Drell-Yan type processes an...
Definition: DrellYanBase.h:23
vector< tcPDPtr > _partons
Pointers to the ParticleDataObjects for the partons.
Definition: DrellYanBase.h:269
double _channelwgtA
Parameters for the old-style ME correction.
Definition: DrellYanBase.h:203
vector< double > _channelweights
Weights for the channels as a vector.
Definition: DrellYanBase.h:213
Energy _pt
The transverse momentum of the jet.
Definition: DrellYanBase.h:299
unsigned int _nover
Number of weights greater than 1.
Definition: DrellYanBase.h:218
double _maxwgt
Maximum weight.
Definition: DrellYanBase.h:223
double _power
Constants for the sampling.
Definition: DrellYanBase.h:234
double _preqg
The prefactor, for the channel.
Definition: DrellYanBase.h:244
Energy2 mb2_
Mass squared of the vector boson.
Definition: DrellYanBase.h:194
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
double _channelwgtB
Relative weight for the and channels.
Definition: DrellYanBase.h:208
virtual void initializeMECorrection(RealEmissionProcessPtr, double &initial, double &final)
Initialize the ME correction.
Definition: DrellYanBase.h:48
Energy _min_pt
The transverse momentum of the jet.
Definition: DrellYanBase.h:305
virtual bool hasMECorrection()
Has an old fashioned ME correction.
Definition: DrellYanBase.h:43
POWHEGType
Virtual members to be overridden by inheriting classes which implement hard corrections.
Definition: HwMEBase.h:87
virtual void setKinematics()
Set the typed and momenta of the incoming and outgoing partons to be used in subsequent calls to me()...
-*- C++ -*-
double _pregqbar
The prefactor, for the channel.
Definition: DrellYanBase.h:249
vector< tcBeamPtr > _beams
Properties of the incoming particles.
Definition: DrellYanBase.h:264
double _yj
the rapidity of the jet
Definition: DrellYanBase.h:294
bool _quarkplus
Whether the quark is in the + or - z direction.
Definition: DrellYanBase.h:289
The HwMEBase class serves a number of purposes.
Definition: HwMEBase.h:35
Energy _mass
The mass of the gauge boson.
Definition: DrellYanBase.h:284
vector< PPtr > ParticleVector
double _preqqbar
The prefactor, for the channel.
Definition: DrellYanBase.h:239