herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
ClusterDecayer.h
1// -*- C++ -*-
2//
3// ClusterDecayer.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_ClusterDecayer_H
10#define HERWIG_ClusterDecayer_H
11
12#include <ThePEG/Interface/Interfaced.h>
13#include <ThePEG/EventRecord/Step.h>
14#include "CluHadConfig.h"
15#include "HadronSelector.h"
16#include "ClusterDecayer.fh"
17
18namespace Herwig {
19using namespace ThePEG;
20
38
39public:
40
48
56 void decay(const ClusterVector & clusters, tPVector & finalhadrons)
57 ;
58
59public:
60
65
70
74 static void Init();
75
76protected:
77
84 virtual IBPtr clone() const;
85
90 virtual IBPtr fullclone() const;
92
93private:
94
99
100public:
101
113 pair<PPtr,PPtr> decayIntoTwoHadrons(tClusterPtr ptr);
114
115private:
116
123 void calculatePositions( const Lorentz5Momentum &, const LorentzPoint &,
124 const Lorentz5Momentum &, const Lorentz5Momentum &,
125 LorentzPoint &, LorentzPoint &) const;
126
130 Ptr<HadronSelector>::pointer _hadronsSelector;
131
133
137 bool _clDirBottom;
138 bool _clDirCharm;
139 bool _clDirExotic;
140
145 double _clSmrBottom;
146 double _clSmrCharm;
147 double _clSmrExotic;
149
155
159 unsigned int _masstry;
160
161
162};
163
164
165}
166
167#endif /* HERWIG_ClusterDecayer_H */
This class decays the "normal" clusters.
ClusterDecayer()
Default constructor.
void decay(const ClusterVector &clusters, tPVector &finalhadrons)
Decays all remaining clusters into hadrons.
virtual IBPtr clone() const
Make a simple clone of this object.
bool _clDirLight
Whether a cluster decays along the perturbative parton direction.
void persistentOutput(PersistentOStream &) const
Standard ThePEG function for writing a persistent stream.
pair< PPtr, PPtr > decayIntoTwoHadrons(tClusterPtr ptr)
Decays the cluster into two hadrons.
ClusterDecayer & operator=(const ClusterDecayer &)=delete
Private and non-existent assignment operator.
void calculatePositions(const Lorentz5Momentum &, const LorentzPoint &, const Lorentz5Momentum &, const Lorentz5Momentum &, LorentzPoint &, LorentzPoint &) const
Compute the positions of the new hadrons based on the clusters position.
bool _onshell
Whether or not the hadrons produced should be on-shell or generated used the MassGenerator.
unsigned int _masstry
Number of tries to generate the masses of the decay products.
double _clSmrLight
The S parameter from decayIntoTwoHadrons.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
Ptr< HadronSelector >::pointer _hadronsSelector
Pointer to a Herwig::HadronSelector for choosing decay types.
void persistentInput(PersistentIStream &, int)
Standard ThePEG function for reading from a persistent stream.
static void Init()
Standard Init function used to initialize the interfaces.
vector< ClusterPtr > ClusterVector
This file contains the typedef declarations used in Hadronization.
Definition: CluHadConfig.h:38
-*- C++ -*-
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
vector< tPPtr > tPVector