herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
WeakCurrentDecayConstructor.h
1// -*- C++ -*-
2//
3// WeakCurrentDecayConstructor.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_WeakCurrentDecayConstructor_H
10#define HERWIG_WeakCurrentDecayConstructor_H
11//
12// This is the declaration of the WeakCurrentDecayConstructor class.
13//
14
15#include "NBodyDecayConstructorBase.h"
16#include "ThePEG/Helicity/Vertex/VertexBase.h"
17#include "Herwig/Decay/General/GeneralCurrentDecayer.fh"
18#include "Herwig/Models/StandardModel/StandardModel.h"
19#include "Herwig/Decay/WeakCurrents/WeakCurrent.h"
20#include "Herwig/Decay/General/GeneralCurrentDecayer.h"
21#include "TwoBodyDecay.h"
22
23namespace Herwig {
24
25using namespace ThePEG;
26
34
35public:
36
41
47 virtual void DecayList(const set<PDPtr,MassOrdering> & part);
48
52 virtual unsigned int numBodies() const { return 1000; }
53
57 Energy massCut() const { return massCut_;}
58
59public:
60
68
74 void persistentInput(PersistentIStream & is, int version);
76
83 static void Init();
84
85protected:
86
93 virtual IBPtr clone() const;
94
99 virtual IBPtr fullclone() const;
101
102protected:
103
111 virtual void doinit();
113
114private:
115
126 vector<TwoBodyDecay>
127 createModes(const PDPtr inpart,const VertexBasePtr vert,
128 unsigned int ilist);
129
137 GeneralCurrentDecayerPtr createDecayer(PDPtr in, PDPtr out1,
138 vector<tPDPtr> outCurrent,
139 VertexBasePtr vertex,
140 WeakCurrentPtr current);
141
148 void createDecayMode(vector<TwoBodyDecay> & decays);
150
151private:
152
158
159private:
160
164 Ptr<Herwig::StandardModel>::pointer model_;
165
169 Energy massCut_;
170
174 vector<string> decayTags_;
175
179 vector<vector<tPDPtr> > particles_;
180
184 vector<double> _norm;
185
189 vector<WeakCurrentPtr> _current;
190};
191
192}
193
194#endif /* HERWIG_WeakCurrentDecayConstructor_H */
This is the base class for NBodyDecayConstructors.
Here is the documentation of the WeakCurrentDecayConstructor class.
void createDecayMode(vector< TwoBodyDecay > &decays)
Create decay mode(s) from given part and decay modes.
vector< vector< tPDPtr > > particles_
Particles for the mode.
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
vector< WeakCurrentPtr > _current
The current for the mode.
vector< string > decayTags_
Tags for the modes.
Ptr< Herwig::StandardModel >::pointer model_
Model Pointer.
GeneralCurrentDecayerPtr createDecayer(PDPtr in, PDPtr out1, vector< tPDPtr > outCurrent, VertexBasePtr vertex, WeakCurrentPtr current)
Function to create decayer for specific vertex.
vector< TwoBodyDecay > createModes(const PDPtr inpart, const VertexBasePtr vert, unsigned int ilist)
Function to create decays.
WeakCurrentDecayConstructor()
The default constructor.
static void Init()
The standard Init function used to initialize the interfaces.
virtual void DecayList(const set< PDPtr, MassOrdering > &part)
Function used to determine allowed decaymodes, to be implemented in derived class.
Energy massCut_
Cut-off on the mass difference.
virtual unsigned int numBodies() const
Number of outgoing lines.
WeakCurrentDecayConstructor & operator=(const WeakCurrentDecayConstructor &)=delete
The assignment operator is private and must never be called.
virtual IBPtr clone() const
Make a simple clone of this object.
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.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
-*- C++ -*-
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
ThePEG::Ptr< ParticleData >::pointer PDPtr