herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
DecayConstructor.h
1// -*- C++ -*-
2//
3// DecayConstructor.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_DecayConstructor_H
10#define HERWIG_DecayConstructor_H
11//
12// This is the declaration of the DecayConstructor class.
13//
14
15#include "ThePEG/Interface/Interfaced.h"
16#include "NBodyDecayConstructorBase.h"
17#include "Herwig/Decay/Radiation/DecayRadiationGenerator.h"
18#include "DecayConstructor.fh"
19
20namespace Herwig {
21using namespace ThePEG;
22
35
36public:
37
42 _disableDMTags(0), _minBR(0.) {}
43
44public:
45
53
59 void persistentInput(PersistentIStream & is, int version);
61
68 static void Init();
69
76 void createDecayers(const vector<PDPtr> & particles, double minBR);
77
83 bool disableDecayMode(string tag) const;
84
88 DecayRadiationGeneratorPtr QEDGenerator() {return QEDGenerator_;}
89
94 const vector<NBodyDecayConstructorBasePtr> & decayConstructors() {
96 }
97
101 double minimumBR() const { return _minBR;}
102
103protected:
104
112 virtual void doinit();
114
115protected:
116
123 virtual IBPtr clone() const;
124
129 virtual IBPtr fullclone() const;
131
132private:
133
139
140private:
141
146 vector<NBodyDecayConstructorBasePtr> NBodyDecayConstructors_;
147
151 vector<string> _disableDMTags;
152
156 DecayRadiationGeneratorPtr QEDGenerator_;
157
161 double _minBR;
162};
163
164}
165
166
167#endif /* HERWIG_DecayConstructor_H */
The DecayConstructor class is an interfaced class that stores a vector of NBodyDecayConstructor objec...
static void Init()
The standard Init function used to initialize the interfaces.
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
DecayRadiationGeneratorPtr QEDGenerator_
The decay radiation generator to use for QED radiation.
DecayConstructor()
The default constructor.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
vector< string > _disableDMTags
A list of DecayMode tags that are not to be created.
bool disableDecayMode(string tag) const
Check whether the decay mode given is one that should not be created.
double _minBR
Minimum allowed branching ratio.
DecayConstructor & operator=(const DecayConstructor &)=delete
The assignment operator is private and must never be called.
void createDecayers(const vector< PDPtr > &particles, double minBR)
Function to create decayers.
vector< NBodyDecayConstructorBasePtr > NBodyDecayConstructors_
Vector of references to the objects that will construct the N-Body decays.
DecayRadiationGeneratorPtr QEDGenerator()
QED Generator.
double minimumBR() const
Get minimum branching ratio.
virtual IBPtr clone() const
Make a simple clone of this object.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
const vector< NBodyDecayConstructorBasePtr > & decayConstructors()
Vector of references to the objects that will construct the N-Body decays.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
-*- C++ -*-
ThePEG::Ptr< InterfacedBase >::pointer IBPtr