herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
LightClusterDecayer.h
1// -*- C++ -*-
2//
3// LightClusterDecayer.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_LightClusterDecayer_H
10#define HERWIG_LightClusterDecayer_H
11
12#include <ThePEG/Interface/Interfaced.h>
13#include "CluHadConfig.h"
14#include "HadronSelector.h"
15#include "LightClusterDecayer.fh"
16
17
18namespace Herwig {
19
20
21using namespace ThePEG;
22
54
55public:
56
64
72 bool decay(ClusterVector & clusters, tPVector & finalhadrons);
73
74public:
75
83
89 void persistentInput(PersistentIStream & is, int version);
91
95 static void Init();
96
97protected:
98
105 virtual IBPtr clone() const;
106
111 virtual IBPtr fullclone() const;
113
114private:
115
120
125 bool reshuffling( const tcPDPtr, tClusterPtr, tClusterPtr,
126 tClusterVector &, tPVector & finalhadrons)
127 ;
128
136 bool partonicReshuffle(const tcPDPtr hadron,const PPtr cluster,
137 tPVector & finalhadrons);
138
142 Ptr<HadronSelector>::pointer _hadronSelector;
143};
144
145}
146
147#endif /* HERWIG_LightClusterDecayer_H */
This class performs the decay of light clusters into a single hadron.
LightClusterDecayer & operator=(const LightClusterDecayer &)=delete
Private and non-existent assignment operator.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
static void Init()
Standard Init function used to initialize the interfaces.
bool partonicReshuffle(const tcPDPtr hadron, const PPtr cluster, tPVector &finalhadrons)
This (private) method, called by decay(), performs reshuffling in the special case of a semileptonic ...
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
bool decay(ClusterVector &clusters, tPVector &finalhadrons)
This method does the decay of light hadron in one hadron.
Ptr< HadronSelector >::pointer _hadronSelector
A pointer to a Herwig::HadronSelector object used for producing hadrons.
LightClusterDecayer()
Default constructor.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
virtual IBPtr clone() const
Make a simple clone of this object.
bool reshuffling(const tcPDPtr, tClusterPtr, tClusterPtr, tClusterVector &, tPVector &finalhadrons)
This (private) method, called by decay(), takes care of the kinematical reshuffling necessary for ene...
vector< ClusterPtr > ClusterVector
This file contains the typedef declarations used in Hadronization.
Definition: CluHadConfig.h:38
-*- C++ -*-
vector< tClusterPtr > tClusterVector
Typedef for a vector of tClusterPtr.
Definition: CluHadConfig.h:43
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
vector< tPPtr > tPVector
ThePEG::Ptr< Particle >::pointer PPtr
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr