herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
IILightTildeKinematics.h
1// -*- C++ -*-
2//
3// IILightTildeKinematics.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_IILightTildeKinematics_H
10#define HERWIG_IILightTildeKinematics_H
11//
12// This is the declaration of the IILightTildeKinematics class.
13//
14
15#include "Herwig/MatrixElement/Matchbox/Phasespace/TildeKinematics.h"
16
17namespace Herwig {
18
19using namespace ThePEG;
20
30
31public:
32
41 virtual bool doMap();
42
46 virtual Energy lastPt() const;
47
51 //TODO: make this static?
52 virtual Energy lastPt(Lorentz5Momentum,Lorentz5Momentum,Lorentz5Momentum) const ;
53
57 virtual pair<double,double> zBounds(Energy pt, Energy hardPt ) const;
58
62 virtual double lastZ() const;
63
68 virtual bool doesTransform() const { return true; }
69
75 virtual Lorentz5Momentum transform(const Lorentz5Momentum& p) const;
76
77
78 /*
79 * True if phase space point is above the alpha cut for this dipole.
80 */
81
82 bool aboveAlpha() const {return dipole()->alpha()<subtractionParameters()[1];}
83
84
85public:
86
94
100 void persistentInput(PersistentIStream & is, int version);
102
109 static void Init();
110
111protected:
112
119 virtual IBPtr clone() const;
120
125 virtual IBPtr fullclone() const;
127
128
129// If needed, insert declarations of virtual function defined in the
130// InterfacedBase class here (using ThePEG-interfaced-decl in Emacs).
131
132private:
133
137 Lorentz5Momentum K;
138
142 Lorentz5Momentum Ktilde;
143
144private:
145
151
152};
153
154}
155
156#endif /* HERWIG_IILightTildeKinematics_H */
static void Init()
The standard Init function used to initialize the interfaces.
virtual pair< double, double > zBounds(Energy pt, Energy hardPt) const
Given a pt, return the boundaries on z.
virtual bool doesTransform() const
Return true, if this TildeKinematics object needs to transform all other particles in the process exc...
Lorentz5Momentum Ktilde
The Ktilde momentum used to transform the final state.
IILightTildeKinematics & operator=(const IILightTildeKinematics &)=delete
The assignment operator is private and must never be called.
virtual bool doMap()
Perform the mapping to the tilde kinematics for the last selected process and store all dimensionless...
virtual double lastZ() const
Return the momentum fraction associated to the last splitting.
virtual Lorentz5Momentum transform(const Lorentz5Momentum &p) const
If this TildeKinematics object needs to transform all other particles in the process except the emitt...
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
virtual Energy lastPt(Lorentz5Momentum, Lorentz5Momentum, Lorentz5Momentum) const
Return the pt associated to emitter emission and sppectator momentum.
virtual Energy lastPt() const
Return the pt associated to the last merged splitting.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
Lorentz5Momentum K
The K momentum used to transform the final state.
virtual IBPtr clone() const
Make a simple clone of this object.
TildeKinematics is the base class for the 'tilde' kinematics being used for subtraction terms in the ...
vector< double > & subtractionParameters()
Access the vector of dimensionless variables calculated.
Ptr< SubtractionDipole >::tptr dipole()
Return the current dipole.
-*- C++ -*-
ThePEG::Ptr< InterfacedBase >::pointer IBPtr