herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
DipoleShowerVertex.h
1// -*- C++ -*-
2//
3// DipoleShowerVertex.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 2 of the GPL, see COPYING for details.
7// Please respect the MCnet academic guidelines, see GUIDELINES for details.
8//
9#ifndef HERWIG_DipoleShowerVertex_H
10#define HERWIG_DipoleShowerVertex_H
11//
12// This is the declaration of the DipoleShowerVertex class.
13//
14
15
16#include "ThePEG/EventRecord/HelicityVertex.h"
17#include "Herwig/Decay/DecayMatrixElement.h"
18
19#include "DipoleShowerVertex.fh"
20
21namespace Herwig {
22
23 using namespace ThePEG;
24
34
35 public:
36
41
46
47 public:
48
52 inline const DecayMEPtr ME() const {
53 return theMatrixElement;
54 }
55
59 inline void ME(DecayMEPtr in) {
61 }
62
63
64 public:
65
72 RhoDMatrix getRhoMatrix(int iprod, bool ) const;
73
80
86
90 void pVector( const Lorentz5Momentum& emitterMom ) { thePVector = emitterMom; }
91
95 void nVector( const Lorentz5Momentum& nMom ) { theNVector = nMom; }
96
100 void dipoleConfig(const pair<bool,bool>& newConfig) { theDipoleConfig = newConfig; }
101
105 Lorentz5Momentum pVector() const { return thePVector; }
106
110 Lorentz5Momentum nVector() const { return theNVector; }
111
115 const pair<bool,bool>& dipoleConfig() const { return theDipoleConfig; }
116
117
122 void mappingD2P( RhoDMatrix& mapping ) { theMappingDecay2Prod = mapping; }
123
129
134 void mappingP2D( RhoDMatrix& mapping ) { theMappingProd2Decay = mapping; }
135
141
142
148
154
160
166
167
168
169 public:
170
177 static void Init();
178
179 private:
180
185
190 Lorentz5Momentum thePVector;
191
196 Lorentz5Momentum theNVector;
197
201 pair<bool,bool> theDipoleConfig;
202
208
214
220
226
227
233
239
240 private:
241
247
248 };
249}
250
251#include "ThePEG/Utilities/ClassTraits.h"
252
253namespace ThePEG {
254
259 template <>
260 struct BaseClassTrait<Herwig::DipoleShowerVertex,1> {
262 typedef HelicityVertex NthBase;
263 };
264
267 template <>
268 struct ClassTraits<Herwig::DipoleShowerVertex>
269 : public ClassTraitsBase<Herwig::DipoleShowerVertex> {
271 static string className() { return "Herwig::DipoleShowerVertex"; }
279 static string library() { return "HwDipoleShower.so"; }
280 };
281
284}
285#endif /* HERWIG_DipoleShowerVertex_H */
This class represents the vertex for a given splitting in the dipole shower.
void ME(DecayMEPtr in)
Set the matrix element.
void mappingP2D(RhoDMatrix &mapping)
Set the production state to decay state mapping for this vertex.
void mappingSpecOldToNew(RhoDMatrix &mapping)
Set the new to old spectator mapping for this vertex.
RhoDMatrix theMappingSpectatorOldToNew
The mapping from the old spectator basis states to the new spectator basis states.
LorentzRotation theBoostToSplitting
The lorentz transformation from the working frame to this splitting.
bool theBoostCalculated
An indicator flag to record if the boost to shower for this vertex has been done.
RhoDMatrix theMappingSpectatorNewToOld
The mapping from the new spectator basis states to the old spectator basis states.
void mappingD2P(RhoDMatrix &mapping)
Set the decay state to production state mapping for this vertex.
const DecayMEPtr ME() const
Return the matrix element for this vertex.
RhoDMatrix mappingP2D()
Return the mapping from the production states to the decay states.
const pair< bool, bool > & dipoleConfig() const
Return the emitter,Spectator Config (II,IF,FF,FI - F=true, I=false)
Lorentz5Momentum nVector() const
Return the n/spectator vector for this splitting.
void nVector(const Lorentz5Momentum &nMom)
Set the n vector for this splitting.
Lorentz5Momentum thePVector
The p vector of the 'splitting basis' associated with this vertex.
~DipoleShowerVertex()
Default destructor.
RhoDMatrix mappingSpecNewToOld()
Return the new to old spectator mapping for this vertex.
DipoleShowerVertex & operator=(const DipoleShowerVertex &)=delete
The assignment operator is private and must never be called.
RhoDMatrix getDMatrix(int) const
Method to calculate the matrix for the decaying particle / the incoming to the vertex,...
RhoDMatrix theMappingProd2Decay
The mapping from the production basis states to the decay basis states.
Lorentz5Momentum theNVector
The n vector of the 'splitting basis' associated with this vertex.
pair< bool, bool > theDipoleConfig
Initial/final config {emitter, spectator}.
LorentzRotation boostToSplitting()
Get the lorentz rotation from the working frame to the frame of the splitting.
DecayMEPtr theMatrixElement
Storage of the decay matrix element.
void mappingSpecNewToOld(RhoDMatrix &mapping)
Set the new to old spectator mapping for this vertex.
Lorentz5Momentum pVector() const
Return the p vector for this splitting.
RhoDMatrix getRhoMatrix(int iprod, bool) const
Method to calculate the matrix for one of the decay products in the frame of this splitting vertex.
RhoDMatrix theMappingDecay2Prod
The mapping from the decay basis states to the production basis states.
void dipoleConfig(const pair< bool, bool > &newConfig)
Set the emitter,Spectator Config (II,IF,FF,FI - F=true, I=false)
DipoleShowerVertex()
Default constructor.
RhoDMatrix mappingD2P()
Return the mapping from the decay states to the production states.
RhoDMatrix mappingSpecOldToNew()
Return the new to old spectator mapping for this vertex.
static void Init()
The standard Init function used to initialize the interfaces.
void pVector(const Lorentz5Momentum &emitterMom)
Set the p vector for this splitting.
-*- C++ -*-
static string className()
static string library()