herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
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 
20 namespace Herwig {
21 using namespace ThePEG;
22 
35 
36 public:
37 
41  DecayConstructor() : NBodyDecayConstructors_(0),
42  _disableDMTags(0), _minBR(0.) {}
43 
44 public:
45 
52  void persistentOutput(PersistentOStream & os) const;
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() {
95  return NBodyDecayConstructors_;
96  }
97 
101  double minimumBR() const { return _minBR;}
102 
103 protected:
104 
112  virtual void doinit();
114 
115 protected:
116 
123  virtual IBPtr clone() const;
124 
129  virtual IBPtr fullclone() const;
131 
132 private:
133 
138  DecayConstructor & operator=(const DecayConstructor &) = delete;
139 
140 private:
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 */
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
DecayRadiationGeneratorPtr QEDGenerator()
QED Generator.
vector< NBodyDecayConstructorBasePtr > NBodyDecayConstructors_
Vector of references to the objects that will construct the N-Body decays.
The DecayConstructor class is an interfaced class that stores a vector of NBodyDecayConstructor objec...
vector< string > _disableDMTags
A list of DecayMode tags that are not to be created.
const vector< NBodyDecayConstructorBasePtr > & decayConstructors()
Vector of references to the objects that will construct the N-Body decays.
double minimumBR() const
Get minimum branching ratio.
DecayConstructor()
The default constructor.
double _minBR
Minimum allowed branching ratio.
-*- C++ -*-
DecayRadiationGeneratorPtr QEDGenerator_
The decay radiation generator to use for QED radiation.