herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
DipoleShowerParticle.h
1// -*- C++ -*-
2//
3// DipoleShowerParticle.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_DipoleShowerParticle_H
10#define HERWIG_DipoleShowerParticle_H
11//
12// This is the declaration of the DipoleShowerParticle class.
13//
14
15#include "ThePEG/EventRecord/Particle.h"
16#include "ThePEG/Helicity/WaveFunction/WaveFunctionBase.h"
17#include "ThePEG/Helicity/WaveFunction/SpinorWaveFunction.h"
18#include "ThePEG/Helicity/WaveFunction/VectorWaveFunction.h"
19
20#include "DipoleShowerVertex.h"
21
22namespace Herwig {
23
24 using namespace ThePEG;
25
31 class DipoleShowerParticle : public Base {
32
33 public:
34
39
44
45 public:
46
50 void clear();
51
55 void prepare( PPtr& part,
56 const Helicity::Direction emmDir,
57 const Helicity::Direction specDir,
58 const Lorentz5Momentum& pVector,
59 const Lorentz5Momentum& nVector );
60
65 DSVertexPtr decayVertex() { return theDecayVertex; }
66
72 vector<LorentzSpinor<SqrtEnergy> > createFermionDecayStates();
73
78
84
90
104 void setFermionMapping( const vector<LorentzSpinor<SqrtEnergy>>& decayBasis );
105
113
114 public:
115
122 static void Init();
123
124 private:
125
130
135 DSVertexPtr theDecayVertex;
136
137 private:
138
144
145 };
146}
147
148#include "ThePEG/Utilities/ClassTraits.h"
149
150namespace ThePEG {
151
156 template <>
157 struct BaseClassTrait<Herwig::DipoleShowerParticle,1> {
159 typedef Base NthBase;
160 };
161
164 template <>
165 struct ClassTraits<Herwig::DipoleShowerParticle>
166 : public ClassTraitsBase<Herwig::DipoleShowerParticle> {
168 static string className() { return "Herwig::DipoleShowerParticle"; }
176 static string library() { return "HwDipoleShower.so"; }
177 };
178
181}
182#endif /* HERWIG_DipoleShowerParticle_H */
void setFermionMapping(const vector< LorentzSpinor< SqrtEnergy > > &decayBasis)
Create the mappings between the production and decay states for the fermion and store them in the ass...
void createNewVectorSpinInfo(PPtr &outgoing, Helicity::Direction dir)
Create vector production basis states for the given particle produced in the splitting.
static void Init()
The standard Init function used to initialize the interfaces.
void setVectorMapping()
Create the mappings between the production and decay states the boson and store them in the associate...
PPtr theParticle
The pptr to this particle.
DipoleShowerParticle & operator=(const DipoleShowerParticle &)=delete
The assignment operator is private and must never be called.
DipoleShowerParticle()
Default constructor.
void createNewFermionSpinInfo(PPtr &outgoing, Helicity::Direction dir)
Create fermion production basis states for the given particle produced in the splitting.
void createVectorDecayStates()
Create vector decay basis states.
void prepare(PPtr &part, const Helicity::Direction emmDir, const Helicity::Direction specDir, const Lorentz5Momentum &pVector, const Lorentz5Momentum &nVector)
Set up the decay vertex for the emitter.
void clear()
Reset the member variables of the object.
~DipoleShowerParticle()
Default destructor.
vector< LorentzSpinor< SqrtEnergy > > createFermionDecayStates()
Create fermion decay basis states.
DSVertexPtr decayVertex()
Return the associated decay vertex, a DipoleShowerVertex.
DSVertexPtr theDecayVertex
The dipole shower vertex associated with this particle.
-*- C++ -*-
ThePEG::Ptr< Particle >::pointer PPtr
static string className()
static string library()