herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
DipoleVertexRecord.h
1// -*- C++ -*-
2#ifndef Herwig_DipoleVertexRecord_H
3#define Herwig_DipoleVertexRecord_H
4//
5// This is the declaration of the DipoleVertexRecord class.
6//
7
9#include "Herwig/Shower/Dipole/Base/DipoleSplittingInfo.h"
10#include "Herwig/Shower/Dipole/Base/Dipole.h"
11#include "ThePEG/EventRecord/RhoDMatrix.h"
12#include "DipoleShowerParticle.h"
13
14namespace Herwig {
15
16 using namespace ThePEG;
17
21 class DipoleVertexRecord: public Base {
22
23 public:
24
31
35 virtual ~DipoleVertexRecord() { clear(); }
37
38 public:
39
44 void prepareSplitting( const DipoleSplittingInfo& dInfo, const Dipole& dip);
45
51
59
64
65
71 void createSpinInfo(PPtr& part,
72 const Helicity::Direction& dir);
73
79 const Helicity::Direction& dir);
80
86 const Helicity::Direction& dir);
87
91 void update(const DipoleSplittingInfo& dInfo);
92
97 void updateSpinInfo( PPtr& oldPart,
98 PPtr& newPart );
99
104 void prepareParticleDecay( const PPtr& parent );
105
111
116 //map<PPtr,DipoleSplittingInfo> emitterInfoRecord() const {
117 //return theEmitterInfoRecord;
118 //}
119
124 // void addToRecord(const DipoleSplittingInfo& dInfo) {
125 // assert(dInfo.emitter());
126 // theEmitterInfoRecord[dInfo.emitter()] = dInfo;
127 // }
128
133 virtual void clear();
134
141 static void Init();
142
143 private:
144
149
155 //map<PPtr, DipoleSplittingInfo> theEmitterInfoRecord;
156
162
168
169 };
170
171}
172
173#include "ThePEG/Utilities/ClassTraits.h"
174
175namespace ThePEG {
176
181 template <>
182 struct BaseClassTrait<Herwig::DipoleVertexRecord,1> {
184 typedef Base NthBase;
185 };
186
189 template <>
190 struct ClassTraits<Herwig::DipoleVertexRecord>
191 : public ClassTraitsBase<Herwig::DipoleVertexRecord> {
193 static string className() { return "Herwig::DipoleVertexRecord"; }
201 static string library() { return "HwDipoleShower.so"; }
202 };
203
206}
207#endif /* Herwig_DipoleVertexRecord_H */
DipoleSplittingInfo contains all parameters to generate a full dipole splitting.
Here is the documentation of the DipoleVertexRecord class.
tcSpinPtr theDecayParentSpinInfo
SW 06/02/2019: Required for NearestNeighbourDipoleAnalysis tests.
DipoleVertexRecord & operator=(const DipoleVertexRecord &)=delete
The assignment operator is private and must never be called.
virtual void clear()
SW 06/02/2019: Required for NearestNeighbourDipoleAnalysis tests.
DipoleShowerParticle theCurrentEmitter
The current emitter.
void generatePhi(DipoleSplittingInfo &dInfo, Dipole &dip)
Generate the spin-correlated azimuthal angle for a splitting.
void updateParticleDecay()
Update the spin info of the incoming to the decay following showering of the decay.
void createSpinInfo(PPtr &part, const Helicity::Direction &dir)
Identify the type of particle and use the appropriate function to set up the spin info.
static void Init()
The standard Init function used to initialize the interfaces.
void initDecayMatrix(PPtr &particle, Helicity::Direction dir)
Correctly initialise the decay matrix to a delta matrix for an external particle.
virtual ~DipoleVertexRecord()
The destructor.
void createFermionSpinInfo(PPtr &part, const Helicity::Direction &dir)
Create and set up fermion spin info.
void prepareParticleDecay(const PPtr &parent)
Set the stopUpdate flag in the spin info of a particle incoming to the current decay.
void update(const DipoleSplittingInfo &dInfo)
Update the vertex record following a splitting.
void prepareSplitting(const DipoleSplittingInfo &dInfo, const Dipole &dip)
Prepare the emitter and spectator for the spin correlations computations.
void createVectorSpinInfo(PPtr &part, const Helicity::Direction &dir)
Create and set up vector spin info.
RhoDMatrix emitterDensityMatrix(PPtr emitter)
Compute the spin density matrix for the given emitter.
void updateSpinInfo(PPtr &oldPart, PPtr &newPart)
For spectators.
DipoleVertexRecord()
The default constructor.
The Dipole class is used by the dipole shower to represent a dipole of two coloured partons.
Definition: Dipole.h:30
-*- C++ -*-
ThePEG::Ptr< SpinInfo >::transient_const_pointer tcSpinPtr
ThePEG::Ptr< Particle >::pointer PPtr
static string className()
static string library()