herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
SMHiggsWWDecayer.h
1 // -*- C++ -*-
2 //
3 // SMHiggsWWDecayer.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_SMHiggsWWDecayer_H
10 #define HERWIG_SMHiggsWWDecayer_H
11 //
12 // This is the declaration of the SMHiggsWWDecayer class.
13 //
14 
15 #include "Herwig/Decay/PerturbativeDecayer.h"
16 #include "Herwig/Decay/DecayPhaseSpaceMode.h"
17 #include "ThePEG/Helicity/Vertex/AbstractFFVVertex.fh"
18 #include "ThePEG/Helicity/Vertex/AbstractVVSVertex.fh"
19 #include "ThePEG/Helicity/WaveFunction/ScalarWaveFunction.h"
20 #include "ThePEG/Helicity/WaveFunction/SpinorBarWaveFunction.h"
21 
22 namespace Herwig {
23 
24 using namespace ThePEG;
25 using namespace ThePEG::Helicity;
26 
36 
37 public:
38 
43 
44 public:
45 
50 
57  virtual bool accept(tcPDPtr parent, const tPDVector & children) const;
58 
65  virtual ParticleVector decay(const Particle & parent,
66  const tPDVector & children) const;
67 
71  virtual int modeNumber(bool &, tcPDPtr, const tPDVector & ) const {return -1;}
72 
81  virtual double me2(const int ichan, const Particle & part,
82  const ParticleVector & decay, MEOption meopt) const;
83 
89  virtual void dataBaseOutput(ofstream & os,bool header) const;
90 
91 public:
92 
99  void persistentOutput(PersistentOStream & os) const;
100 
106  void persistentInput(PersistentIStream & is, int version);
108 
115  static void Init();
116 
117 protected:
118 
125  virtual IBPtr clone() const {return new_ptr(*this);}
126 
131  virtual IBPtr fullclone() const {return new_ptr(*this);}
133 
134 protected:
135 
143  virtual void doinit();
144 
149  virtual void doinitrun();
151 
152 
153 private:
154 
159  SMHiggsWWDecayer & operator=(const SMHiggsWWDecayer &) = delete;
160 
161 private:
162 
170  AbstractFFVVertexPtr _theFFWVertex;
171 
175  AbstractFFVVertexPtr _theFFZVertex;
176 
180  AbstractVVSVertexPtr _theHVVVertex;
182 
190  ModeSelector _wdecays;
191 
195  ModeSelector _zdecays;
197 
201  vector<double> _ratio;
202 
210  vector<double> _wmax;
211 
215  vector<double> _zmax;
217 
221  mutable RhoDMatrix _rho;
222 
227 
231  mutable vector<SpinorWaveFunction > _awave1;
232 
236  mutable vector<SpinorWaveFunction > _awave2;
237 
241  mutable vector<SpinorBarWaveFunction> _fwave1;
242 
246  mutable vector<SpinorBarWaveFunction> _fwave2;
247 };
248 
249 }
250 
251 #endif /* HERWIG_SMHiggsWWDecayer_H */
The SMHiggsWWDecayer class performs the decay of the Standard Model Higgs boson to and including th...
vector< SpinorWaveFunction > _awave2
2nd spinor wavefunction
Selector< unsigned int > ModeSelector
A typedef to select the boson decay modes.
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
vector< SpinorBarWaveFunction > _fwave2
2nd barred spinor wavefunction
RhoDMatrix _rho
Spin density matrix.
virtual int modeNumber(bool &, tcPDPtr, const tPDVector &) const
Which of the possible decays is required.
AbstractVVSVertexPtr _theHVVVertex
Pointer to the higgs-WW/ZZ vertex.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
vector< double > _wmax
Maximum weights for the decays.
MEOption
Enum for the matrix element option.
vector< double > _ratio
Product of gauge boson branching ratios for normalisation.
vector< tPDPtr > tPDVector
AbstractFFVVertexPtr _theFFZVertex
Pointer to the fermion-femion-Z vertex.
vector< SpinorBarWaveFunction > _fwave1
1st barred spinor wavefunction
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr
The PerturbativeDecayer class is the base class for perturbative decays in Herwig and implements the ...
vector< SpinorWaveFunction > _awave1
1st spinor wavefunction
vector< double > _zmax
Maximum weight for decays.
virtual IBPtr clone() const
Make a simple clone of this object.
ModeSelector _wdecays
Selectors for the gauge boson decay modes.
-*- C++ -*-
ScalarWaveFunction _swave
Scalar wavefunction.
vector< PPtr > ParticleVector
AbstractFFVVertexPtr _theFFWVertex
Pointers to the vertices for the helicity calculations.
ModeSelector _zdecays
Selector for the Z decays.