herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
HwDecayHandler.h
1 // -*- C++ -*-
2 //
3 // HwDecayHandler.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_HwDecayHandler_H
10 #define HERWIG_HwDecayHandler_H
11 //
12 // This is the declaration of the HwDecayHandler class.
13 //
14 #include "ThePEG/Handlers/DecayHandler.h"
15 #include "ThePEG/EventRecord/Particle.h"
16 
17 
18 namespace Herwig {
19 using namespace ThePEG;
20 
40 
41 public:
42 
46  HwDecayHandler() : DecayHandler(), _newstep(true)
47  {}
48 
49 public:
50 
58  virtual void handle(EventHandler & eh, const tPVector & tagged,
59  const Hint & hint)
60  ;
61 
69  virtual void performDecay(tPPtr parent, Step & s) const
70  ;
71 
79  void addDecayedParticle(tPPtr parent, Step & s) const
80  ;
81 
85  static void Init();
86 
87 public:
88 
95  void persistentOutput(PersistentOStream & os) const;
96 
102  void persistentInput(PersistentIStream & is, int version);
104 
105 protected:
106 
113  virtual IBPtr clone() const {return new_ptr(*this);}
114 
119  virtual IBPtr fullclone() const {return new_ptr(*this);}
121 
122 protected:
123 
131  virtual void doinit();
133 
134 protected:
135 
139  void develop(tPPtr particle) const {
140  tcSpinPtr hwspin = particle->spinInfo();
141  if ( hwspin )
142  hwspin->develop();
143  }
144 
145 private:
146 
150  HwDecayHandler & operator=(const HwDecayHandler &) = delete;
151 
152 private:
153 
157  bool _newstep;
158 
162  set<tcPDPtr> _excluded;
163 
167  vector<PDPtr> _excludedVector;
168 
169 };
170 }
171 
172 #endif /* HERWIG_HwDecayHandler_H */
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
The HwDecayHandler is the Herwig decay handler which administers the decays of unstable particles in ...
HwDecayHandler()
Default constructor.
ThePEG::Ptr< SpinInfo >::transient_const_pointer tcSpinPtr
virtual IBPtr clone() const
Make a simple clone of this object.
ThePEG::Ptr< Particle >::transient_pointer tPPtr
-*- C++ -*-
void develop(tPPtr particle) const
Develop a stable particle.
vector< tPPtr > tPVector
bool _newstep
Option for adding particles in a new Step.
set< tcPDPtr > _excluded
Particles which should not be decayed.
vector< PDPtr > _excludedVector
Vector to fill the set as an interface.