herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
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 
21 namespace 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) {
60  theMatrixElement = in;
61  }
62 
63 
64  public:
65 
72  RhoDMatrix getRhoMatrix(int iprod, bool ) const;
73 
79  RhoDMatrix getDMatrix(int) const;
80 
85  LorentzRotation boostToSplitting();
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 
128  RhoDMatrix mappingD2P() { return theMappingDecay2Prod; }
129 
134  void mappingP2D( RhoDMatrix& mapping ) { theMappingProd2Decay = mapping; }
135 
140  RhoDMatrix mappingP2D() { return theMappingProd2Decay; }
141 
142 
147  void mappingSpecNewToOld( RhoDMatrix& mapping ) { theMappingSpectatorNewToOld = mapping; }
148 
153  RhoDMatrix mappingSpecNewToOld() { return theMappingSpectatorNewToOld; }
154 
159  void mappingSpecOldToNew( RhoDMatrix& mapping ) { theMappingSpectatorOldToNew = mapping; }
160 
165  RhoDMatrix mappingSpecOldToNew() { return theMappingSpectatorOldToNew; }
166 
167 
168 
169  public:
170 
177  static void Init();
178 
179  private:
180 
184  DecayMEPtr theMatrixElement;
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 
246  DipoleShowerVertex & operator=(const DipoleShowerVertex &);
247 
248  };
249 }
250 
251 #include "ThePEG/Utilities/ClassTraits.h"
252 
253 namespace ThePEG {
254 
259  template <>
262  typedef HelicityVertex NthBase;
263  };
264 
267  template <>
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 */
void ME(DecayMEPtr in)
Set the matrix element.
RhoDMatrix mappingSpecOldToNew()
Return the new to old spectator mapping for this vertex.
void mappingSpecOldToNew(RhoDMatrix &mapping)
Set the new to old spectator mapping for this vertex.
const pair< bool, bool > & dipoleConfig() const
Return the emitter,Spectator Config (II,IF,FF,FI - F=true, I=false)
void mappingSpecNewToOld(RhoDMatrix &mapping)
Set the new to old spectator mapping for this vertex.
void mappingP2D(RhoDMatrix &mapping)
Set the production state to decay state mapping for this vertex.
pair< bool, bool > theDipoleConfig
Initial/final config {emitter, spectator}.
void pVector(const Lorentz5Momentum &emitterMom)
Set the p vector for this splitting.
bool theBoostCalculated
An indicator flag to record if the boost to shower for this vertex has been done. ...
~DipoleShowerVertex()
Default destructor.
Lorentz5Momentum nVector() const
Return the n/spectator vector for this splitting.
RhoDMatrix mappingP2D()
Return the mapping from the production states to the decay states.
void nVector(const Lorentz5Momentum &nMom)
Set the n vector for this splitting.
void dipoleConfig(const pair< bool, bool > &newConfig)
Set the emitter,Spectator Config (II,IF,FF,FI - F=true, I=false)
RhoDMatrix theMappingSpectatorNewToOld
The mapping from the new spectator basis states to the old spectator basis states.
DecayMEPtr theMatrixElement
Storage of the decay matrix element.
const DecayMEPtr ME() const
Return the matrix element for this vertex.
RhoDMatrix theMappingSpectatorOldToNew
The mapping from the old spectator basis states to the new spectator basis states.
Lorentz5Momentum theNVector
The n vector of the &#39;splitting basis&#39; associated with this vertex.
void mappingD2P(RhoDMatrix &mapping)
Set the decay state to production state mapping for this vertex.
RhoDMatrix theMappingProd2Decay
The mapping from the production basis states to the decay basis states.
-*- C++ -*-
RhoDMatrix theMappingDecay2Prod
The mapping from the decay basis states to the production basis states.
Lorentz5Momentum pVector() const
Return the p vector for this splitting.
This class represents the vertex for a given splitting in the dipole shower.
RhoDMatrix mappingSpecNewToOld()
Return the new to old spectator mapping for this vertex.
RhoDMatrix mappingD2P()
Return the mapping from the decay states to the production states.
LorentzRotation theBoostToSplitting
The lorentz transformation from the working frame to this splitting.
Lorentz5Momentum thePVector
The p vector of the &#39;splitting basis&#39; associated with this vertex.