herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
IILightInvertedTildeKinematics.h
1 // -*- C++ -*-
2 //
3 // IILightInvertedTildeKinematics.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_IILightInvertedTildeKinematics_H
10 #define HERWIG_IILightInvertedTildeKinematics_H
11 //
12 // This is the declaration of the IILightInvertedTildeKinematics class.
13 //
14 
15 #include "Herwig/MatrixElement/Matchbox/Phasespace/InvertedTildeKinematics.h"
16 
17 namespace Herwig {
18 
19 using namespace ThePEG;
20 
30 
31 public:
32 
41  virtual bool doMap(const double *);
42 
46  virtual Energy lastPt() const;
47 
51  virtual double lastZ() const;
52 
56  virtual Energy ptMax() const;
57 
61  virtual pair<double,double> zBounds(Energy pt, Energy hardPt = ZERO) const;
62 
67  virtual bool doesTransform() const { return true; }
68 
74  virtual Lorentz5Momentum transform(const Lorentz5Momentum& p) const {
75  return p-(2.*(KplusKtilde*p)/KplusKtilde2)*KplusKtilde+(2.*(Ktilde*p)/K2)*K;
76  }
77 
78 public:
79 
86  void persistentOutput(PersistentOStream & os) const;
87 
93  void persistentInput(PersistentIStream & is, int version);
95 
102  static void Init();
103 
104 protected:
105 
112  virtual IBPtr clone() const;
113 
118  virtual IBPtr fullclone() const;
120 
121 
122 // If needed, insert declarations of virtual function defined in the
123 // InterfacedBase class here (using ThePEG-interfaced-decl in Emacs).
124 
125 private:
126 
127  Lorentz5Momentum K;
128  Energy2 K2;
129  Lorentz5Momentum Ktilde;
130  Lorentz5Momentum KplusKtilde;
131  Energy2 KplusKtilde2;
132 
133 private:
134 
140 
141 };
142 
143 }
144 
145 #endif /* HERWIG_IILightInvertedTildeKinematics_H */
virtual Lorentz5Momentum transform(const Lorentz5Momentum &p) const
If this InvertedTildeKinematics object needs to transform all other particles in the process except t...
InvertedTildeKinematics is the base class for the inverted &#39;tilde&#39; kinematics being used for subtract...
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
IILightInvertedTildeKinematics inverts the final-final tilde kinematics.
virtual bool doesTransform() const
Return true, if this InvertedTildeKinematics object needs to transform all other particles in the pro...
-*- C++ -*-
constexpr ZeroUnit ZERO