herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
TwoBodyDecayConstructor.h
1// -*- C++ -*-
2//
3// TwoBodyDecayConstructor.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_TwoBodyDecayConstructor_H
10#define HERWIG_TwoBodyDecayConstructor_H
11//
12// This is the declaration of the TwoBodyDecayConstructor class.
13//
14
15#include "NBodyDecayConstructorBase.h"
16#include "ThePEG/Helicity/Vertex/VertexBase.h"
17#include "Herwig/Decay/General/GeneralTwoBodyDecayer.fh"
18#include "Herwig/Shower/ShowerAlpha.h"
19#include "TwoBodyDecay.h"
20
21namespace Herwig {
22using namespace ThePEG;
23
24using Helicity::VertexBasePtr;
25using Helicity::tVertexBasePtr;
26
38
39public:
40
45 radiationVertices_[ShowerInteraction::QCD] = map<tPDPtr,VertexBasePtr>();
46 radiationVertices_[ShowerInteraction::QED] = map<tPDPtr,VertexBasePtr>();
47 }
48
53 virtual void DecayList(const set<PDPtr,MassOrdering> & particles);
54
58 virtual unsigned int numBodies() const { return 2; }
59
60
61public:
62
70
76 void persistentInput(PersistentIStream & is, int version);
78
85 static void Init();
86
87protected:
88
95 virtual IBPtr clone() const;
96
101 virtual IBPtr fullclone() const;
103
104private:
105
111
112private:
113
124 void createModes(tPDPtr inpart, VertexBasePtr vert,
125 unsigned int ilist,
126 multiset<TwoBodyDecay> & modes);
127
133 GeneralTwoBodyDecayerPtr createDecayer(TwoBodyDecay decay,
134 vector<VertexBasePtr> );
135
141 void createDecayMode(multiset<TwoBodyDecay> & decays);
143
147 VertexBasePtr radiationVertex(tPDPtr particle,ShowerInteraction inter,
148 tPDPair children = tPDPair ());
149
150private:
151
156 map<ShowerInteraction,map<tPDPtr,VertexBasePtr> > radiationVertices_;
157
161 ShowerAlphaPtr alphaQCD_;
162
166 ShowerAlphaPtr alphaQED_;
167
172
177
178};
179
180}
181
182#endif /* HERWIG_TwoBodyDecayConstructor_H */
This is the base class for NBodyDecayConstructors.
The TwoBodyDecayConstructor class inherits from the dummy base class NBodyDecayConstructorBase and im...
static void Init()
The standard Init function used to initialize the interfaces.
void createDecayMode(multiset< TwoBodyDecay > &decays)
Create decay mode(s) from given part and decay modes.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
ShowerInteraction inter_
Which type of corrections to the decays to include.
virtual void DecayList(const set< PDPtr, MassOrdering > &particles)
Function used to determine allowed decaymodes.
virtual IBPtr clone() const
Make a simple clone of this object.
GeneralTwoBodyDecayerPtr createDecayer(TwoBodyDecay decay, vector< VertexBasePtr >)
Function to create decayer for specific vertex.
virtual unsigned int numBodies() const
Number of outgoing lines.
Energy weakMassCut_
Cut off or decays via the weak current.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
ShowerAlphaPtr alphaQED_
Default choice for the strong coupling object for hard QED radiation.
TwoBodyDecayConstructor()
The default constructor.
ShowerAlphaPtr alphaQCD_
Default choice for the strong coupling object for hard QCD radiation.
VertexBasePtr radiationVertex(tPDPtr particle, ShowerInteraction inter, tPDPair children=tPDPair())
Get the vertex for QED/QCD radiation.
void createModes(tPDPtr inpart, VertexBasePtr vert, unsigned int ilist, multiset< TwoBodyDecay > &modes)
Function to create decays.
TwoBodyDecayConstructor & operator=(const TwoBodyDecayConstructor &)=delete
The assignment operator is private and must never be called.
map< ShowerInteraction, map< tPDPtr, VertexBasePtr > > radiationVertices_
Map of particles and the vertices which generate their QCD radiation.
ShowerInteraction
Handy header file to be included in all Shower classes.
-*- C++ -*-
ThePEG::Ptr< ParticleData >::transient_pointer tPDPtr
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
pair< tPDPtr, tPDPtr > tPDPair
Struct for the prototype of a two-body decay mode.
Definition: TwoBodyDecay.h:22