herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
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
18namespace Herwig {
19using namespace ThePEG;
20
40
41public:
42
47 {}
48
49public:
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
87public:
88
96
102 void persistentInput(PersistentIStream & is, int version);
104
105protected:
106
113 virtual IBPtr clone() const {return new_ptr(*this);}
114
119 virtual IBPtr fullclone() const {return new_ptr(*this);}
121
122protected:
123
131 virtual void doinit();
133
134protected:
135
139 void develop(tPPtr particle) const {
140 tcSpinPtr hwspin = particle->spinInfo();
141 if ( hwspin )
142 hwspin->develop();
143 }
144
145private:
146
151
152private:
153
158
162 set<tcPDPtr> _excluded;
163
167 vector<PDPtr> _excludedVector;
168
169};
170}
171
172#endif /* HERWIG_HwDecayHandler_H */
The HwDecayHandler is the Herwig decay handler which administers the decays of unstable particles in ...
HwDecayHandler()
Default constructor.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
bool _newstep
Option for adding particles in a new Step.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
void addDecayedParticle(tPPtr parent, Step &s) const
add the decay products of in intermediate particle produced in a decay
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
vector< PDPtr > _excludedVector
Vector to fill the set as an interface.
virtual void performDecay(tPPtr parent, Step &s) const
Perform the decay of one unstable particle.
static void Init()
Standard Init function.
void develop(tPPtr particle) const
Develop a stable particle.
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
set< tcPDPtr > _excluded
Particles which should not be decayed.
virtual void handle(EventHandler &eh, const tPVector &tagged, const Hint &hint)
Look through all tagged particled and decay all unstable ones.
virtual IBPtr clone() const
Make a simple clone of this object.
HwDecayHandler & operator=(const HwDecayHandler &)=delete
Private and non-existent assignment operator.
-*- C++ -*-
ThePEG::Ptr< Particle >::transient_pointer tPPtr
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
ThePEG::Ptr< SpinInfo >::transient_const_pointer tcSpinPtr
vector< tPPtr > tPVector