herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.3.0
Models
General
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
23
namespace
Herwig
{
24
25
using namespace
ThePEG
;
26
33
class
WeakCurrentDecayConstructor
:
public
NBodyDecayConstructorBase
{
34
35
public
:
36
40
WeakCurrentDecayConstructor
() :
massCut_
(5.*GeV) {}
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
59
public
:
60
67
void
persistentOutput
(
PersistentOStream
& os)
const
;
68
74
void
persistentInput
(
PersistentIStream
& is,
int
version);
76
83
static
void
Init
();
84
85
protected
:
86
93
virtual
IBPtr
clone
()
const
;
94
99
virtual
IBPtr
fullclone
()
const
;
101
102
protected
:
103
111
virtual
void
doinit
();
113
114
private
:
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
151
private
:
152
157
WeakCurrentDecayConstructor
&
operator=
(
const
WeakCurrentDecayConstructor
&) =
delete
;
158
159
private
:
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 */
Herwig::NBodyDecayConstructorBase
This is the base class for NBodyDecayConstructors.
Definition:
NBodyDecayConstructorBase.h:34
Herwig::WeakCurrentDecayConstructor
Here is the documentation of the WeakCurrentDecayConstructor class.
Definition:
WeakCurrentDecayConstructor.h:33
Herwig::WeakCurrentDecayConstructor::createDecayMode
void createDecayMode(vector< TwoBodyDecay > &decays)
Create decay mode(s) from given part and decay modes.
Herwig::WeakCurrentDecayConstructor::particles_
vector< vector< tPDPtr > > particles_
Particles for the mode.
Definition:
WeakCurrentDecayConstructor.h:179
Herwig::WeakCurrentDecayConstructor::doinit
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
Herwig::WeakCurrentDecayConstructor::_current
vector< WeakCurrentPtr > _current
The current for the mode.
Definition:
WeakCurrentDecayConstructor.h:189
Herwig::WeakCurrentDecayConstructor::decayTags_
vector< string > decayTags_
Tags for the modes.
Definition:
WeakCurrentDecayConstructor.h:174
Herwig::WeakCurrentDecayConstructor::model_
Ptr< Herwig::StandardModel >::pointer model_
Model Pointer.
Definition:
WeakCurrentDecayConstructor.h:164
Herwig::WeakCurrentDecayConstructor::createDecayer
GeneralCurrentDecayerPtr createDecayer(PDPtr in, PDPtr out1, vector< tPDPtr > outCurrent, VertexBasePtr vertex, WeakCurrentPtr current)
Function to create decayer for specific vertex.
Herwig::WeakCurrentDecayConstructor::createModes
vector< TwoBodyDecay > createModes(const PDPtr inpart, const VertexBasePtr vert, unsigned int ilist)
Function to create decays.
Herwig::WeakCurrentDecayConstructor::massCut
Energy massCut() const
Cut off.
Definition:
WeakCurrentDecayConstructor.h:57
Herwig::WeakCurrentDecayConstructor::WeakCurrentDecayConstructor
WeakCurrentDecayConstructor()
The default constructor.
Definition:
WeakCurrentDecayConstructor.h:40
Herwig::WeakCurrentDecayConstructor::Init
static void Init()
The standard Init function used to initialize the interfaces.
Herwig::WeakCurrentDecayConstructor::DecayList
virtual void DecayList(const set< PDPtr, MassOrdering > &part)
Function used to determine allowed decaymodes, to be implemented in derived class.
Herwig::WeakCurrentDecayConstructor::_norm
vector< double > _norm
Normalisation.
Definition:
WeakCurrentDecayConstructor.h:184
Herwig::WeakCurrentDecayConstructor::massCut_
Energy massCut_
Cut-off on the mass difference.
Definition:
WeakCurrentDecayConstructor.h:169
Herwig::WeakCurrentDecayConstructor::numBodies
virtual unsigned int numBodies() const
Number of outgoing lines.
Definition:
WeakCurrentDecayConstructor.h:52
Herwig::WeakCurrentDecayConstructor::operator=
WeakCurrentDecayConstructor & operator=(const WeakCurrentDecayConstructor &)=delete
The assignment operator is private and must never be called.
Herwig::WeakCurrentDecayConstructor::clone
virtual IBPtr clone() const
Make a simple clone of this object.
Herwig::WeakCurrentDecayConstructor::persistentOutput
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
Herwig::WeakCurrentDecayConstructor::fullclone
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
Herwig::WeakCurrentDecayConstructor::persistentInput
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
ThePEG::PersistentIStream
ThePEG::PersistentOStream
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
ThePEG
ThePEG::IBPtr
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
ThePEG::PDPtr
ThePEG::Ptr< ParticleData >::pointer PDPtr
Generated on Thu Jun 20 2024 17:50:53 for Herwig by
1.9.6