herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
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 
18 namespace Herwig {
19 using namespace ThePEG;
20 
37 class ClusterDecayer: public Interfaced {
38 
39 public:
40 
48 
56  void decay(const ClusterVector & clusters, tPVector & finalhadrons)
57  ;
58 
59 public:
60 
64  void persistentOutput(PersistentOStream &) const;
65 
69  void persistentInput(PersistentIStream &, int);
70 
74  static void Init();
75 
76 protected:
77 
84  virtual IBPtr clone() const;
85 
90  virtual IBPtr fullclone() const;
92 
93 private:
94 
98  ClusterDecayer & operator=(const ClusterDecayer &) = delete;
99 
100 public:
101 
113  pair<PPtr,PPtr> decayIntoTwoHadrons(tClusterPtr ptr);
114 
115 private:
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 
144  double _clSmrLight;
145  double _clSmrBottom;
146  double _clSmrCharm;
147  double _clSmrExotic;
149 
154  bool _onshell;
155 
159  unsigned int _masstry;
160 
161 
162 };
163 
164 
165 }
166 
167 #endif /* HERWIG_ClusterDecayer_H */
unsigned int _masstry
Number of tries to generate the masses of the decay products.
bool _clDirLight
Whether a cluster decays along the perturbative parton direction.
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
vector< ClusterPtr > ClusterVector
This file contains the typedef declarations used in Hadronization.
Definition: CluHadConfig.h:38
Ptr< HadronSelector >::pointer _hadronsSelector
Pointer to a Herwig::HadronSelector for choosing decay types.
bool _onshell
Whether or not the hadrons produced should be on-shell or generated used the MassGenerator.
-*- C++ -*-
double _clSmrLight
The S parameter from decayIntoTwoHadrons.
vector< tPPtr > tPVector
This class decays the "normal" clusters.