herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
PScalarVectorFermionsDecayer.h
1 // -*- C++ -*-
2 //
3 // PScalarVectorFermionsDecayer.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 THEPEG_PScalarVectorFermionsDecayer_H
10 #define THEPEG_PScalarVectorFermionsDecayer_H
11 //
12 // This is the declaration of the PScalarVectorFermionsDecayer class.
13 //
14 #include "Herwig/Decay/DecayIntegrator.h"
15 #include "Herwig/Decay/DecayPhaseSpaceMode.h"
16 #include "ThePEG/Helicity/LorentzPolarizationVector.h"
17 #include "ThePEG/Helicity/LorentzSpinorBar.h"
18 
19 namespace Herwig {
20 using namespace ThePEG;
21 
50 
51 public:
52 
57 
64  virtual int modeNumber(bool & cc, tcPDPtr parent,
65  const tPDVector & children) const;
66 
75  double me2(const int ichan,const Particle & part,
76  const ParticleVector & decay, MEOption meopt) const;
77 
83  virtual WidthCalculatorBasePtr threeBodyMEIntegrator(const DecayMode & dm) const;
84 
95  virtual InvEnergy threeBodydGammads(const int imode, const Energy2 q2,
96  const Energy2 s,
97  const Energy m1, const Energy m2,
98  const Energy m3) const;
99 
105  virtual void dataBaseOutput(ofstream & os,bool header) const;
106 
107 public:
108 
115  void persistentOutput(PersistentOStream & os) const;
116 
122  void persistentInput(PersistentIStream & is, int version);
124 
128  static void Init();
129 
130 protected:
131 
138  virtual IBPtr clone() const {return new_ptr(*this);}
139 
144  virtual IBPtr fullclone() const {return new_ptr(*this);}
146 
147 protected:
148 
156  virtual void doinit();
157 
161  virtual void doinitrun();
163 
164 private:
165 
169  PScalarVectorFermionsDecayer & operator=(const PScalarVectorFermionsDecayer &) = delete;
170 
171 private:
172 
176  vector<InvEnergy> _coupling;
177 
181  vector<int> _incoming;
182 
186  vector<int> _outgoingV;
187 
191  vector<int> _outgoingf;
192 
196  vector<int> _outgoinga;
197 
201  vector<double> _maxweight;
202 
206  vector<int> _includeVMD;
207 
211  vector<int> _VMDid;
212 
216  vector<Energy> _VMDmass;
217 
221  vector<Energy> _VMDwidth;
222 
226  unsigned int _initsize;
227 
231  mutable RhoDMatrix _rho;
232 
236  mutable vector<Helicity::LorentzPolarizationVector> _vectors;
237 
241  mutable vector<Helicity::LorentzSpinor <SqrtEnergy> > _wave;
242 
246  mutable vector<Helicity::LorentzSpinorBar<SqrtEnergy> > _wavebar;
247 };
248 
249 }
250 
251 
252 #endif /* THEPEG_PScalarVectorFermionsDecayer_H */
vector< Helicity::LorentzSpinorBar< SqrtEnergy > > _wavebar
Barred spinors for the fermions.
vector< int > _incoming
the PDG codes for the incoming particles
The PScalarVectorFermionsDecayer class is designed for the decay of a pseudoscalar meson to a spin-1 ...
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
vector< double > _maxweight
maximum weight for a decay
vector< InvEnergy > _coupling
coupling for a decay
vector< int > _outgoinga
the PDG codes for the outgoing antifermion
vector< int > _outgoingV
the PDG codes for the outgoing vector
vector< Energy > _VMDwidth
Width to use in the VMD factor.
MEOption
Enum for the matrix element option.
vector< int > _includeVMD
Include the VMD factor.
vector< tPDPtr > tPDVector
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
Main class for Decayers implementing multi-channel phase space integration.
unsigned int _initsize
Initial size of the vectors.
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr
vector< Energy > _VMDmass
Mass to use in the VMD factor.
-*- C++ -*-
vector< Helicity::LorentzSpinor< SqrtEnergy > > _wave
Spinors for the fermions.
vector< Helicity::LorentzPolarizationVector > _vectors
Polarization vectors for the decay product.
vector< int > _VMDid
PDG code for thte particle to use in the VMD factor.
vector< PPtr > ParticleVector
vector< int > _outgoingf
the PDG codes for the outgoing fermion
virtual IBPtr clone() const
Make a simple clone of this object.