herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
ShowerKinematics.h
1 // -*- C++ -*-
2 //
3 // ShowerKinematics.h is a part of Herwig - A multi-purpose Monte Carlo event generator
4 // Copyright (C) 2002-2019 The Herwig Collaboration
5 //
6 // Herwig is licenced under version 3 of the GPL, see COPYING for details.
7 // Please respect the MCnet academic guidelines, see GUIDELINES for details.
8 //
9 #ifndef HERWIG_ShowerKinematics_H
10 #define HERWIG_ShowerKinematics_H
11 //
12 // This is the declaration of the ShowerKinematics class.
13 //
14 
15 #include "Herwig/Shower/QTilde/ShowerConfig.h"
16 #include "ThePEG/Config/ThePEG.h"
17 #include "Herwig/Shower/QTilde/SplittingFunctions/SudakovFormFactor.h"
18 #include "Herwig/Shower/QTilde/Kinematics/ShowerKinematics.fh"
19 
20 namespace Herwig {
21 
22 using namespace ThePEG;
23 
45 class ShowerKinematics: public Base {
46 
47 public:
48 
53  _scale(), _z( 0.0 ), _phi( 0.0 ), _pt(),
54  _sudakov() {}
55 
59  ShowerKinematics(Energy scale, double z, double phi, Energy pt, tSudakovPtr sud)
60  : Base(),
61  _scale(scale), _z(z), _phi(phi), _pt(pt),
62  _sudakov(sud) {}
63 
80  virtual void updateChildren(const tShowerParticlePtr parent,
81  const ShowerParticleVector & children,
82  ShowerPartnerType partnerType) const;
83 
84  virtual void resetChildren( const tShowerParticlePtr parent,
85  const ShowerParticleVector & children) const;
86 
94  virtual void updateParent(const tShowerParticlePtr parent,
95  const ShowerParticleVector & children,
96  unsigned int pTscheme,
97  ShowerPartnerType partnerType) const;
98 
108  virtual void updateLast(const tShowerParticlePtr last,
109  Energy px, Energy py) const;
111 
126  virtual void reconstructChildren(const tShowerParticlePtr parent,
127  const ShowerParticleVector & children) const;
128 
135  virtual void reconstructParent(const tShowerParticlePtr parent,
136  const ParticleVector & children) const;
137 
146  virtual void reconstructLast(const tShowerParticlePtr last, Energy mass=-1.*GeV) const;
148 
149 public:
150 
158  Energy scale() const { return _scale; }
159 
163  void scale(const Energy in) { _scale=in; }
164 
168  double z() const { return _z; }
169 
173  void z(const double in) { _z=in; }
174 
178  double phi() const { return _phi; }
179 
183  void phi(const double in) { _phi=in; }
184 
188  Energy pT() const { return _pt; }
189 
193  void pT(const Energy in) const { _pt=in; }
195 
204  tSplittingFnPtr splittingFn() const { return _sudakov-> splittingFn(); }
206 
214  tSudakovPtr SudakovFormFactor() const { return _sudakov; }
215 
220  void SudakovFormFactor(const tSudakovPtr sud) { _sudakov=sud; }
222 
223 private:
224 
229  ShowerKinematics & operator=(const ShowerKinematics &) = delete;
230 
231 private:
232 
236  Energy _scale;
237 
241  double _z;
242 
246  double _phi;
247 
251  mutable Energy _pt;
252 
256  tSudakovPtr _sudakov;
257 
258 };
259 
260 }
261 
262 #endif /* HERWIG_ShowerKinematics_H */
double phi() const
Access the azimuthal angle, .
void scale(const Energy in)
Set the scale of the splitting.
ShowerKinematics(Energy scale, double z, double phi, Energy pt, tSudakovPtr sud)
The default constructor.
vector< ShowerParticlePtr > ShowerParticleVector
A Vector of ShowerParticle pointers.
Definition: ShowerConfig.h:54
ShowerPartnerType
Enum for the type of shower partner.
void SudakovFormFactor(const tSudakovPtr sud)
Set the SudakovFormFactor object responsible of the eventual branching of this particle.
tSudakovPtr _sudakov
The splitting function for the branching of the particle.
Energy scale() const
Set/Get methods for the kinematic variables.
void pT(const Energy in) const
Set the relative for the branching.
This is the abstract base class from which all other shower kinematics classes derive.
void z(const double in)
Set the energy fraction, .
double _phi
The azimuthal angle, .
void phi(const double in)
Set the azimuthal angle, .
ShowerKinematics()
The default constructor.
Energy _pt
The relative .
double z() const
Access the energy fraction, .
-*- C++ -*-
Energy _scale
The evolution variable.
tSudakovPtr SudakovFormFactor() const
Set and get methods for the SudakovFormFactor object.
Energy pT() const
Access the relative for the branching.
tSplittingFnPtr splittingFn() const
Set and get methods for the SplittingFunction object.
vector< PPtr > ParticleVector
double _z
The energy fraction, .