herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
EtaPiGammaGammaDecayer.h
1 // -*- C++ -*-
2 //
3 // EtaPiGammaGammaDecayer.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_EtaPiGammaGammaDecayer_H
10 #define HERWIG_EtaPiGammaGammaDecayer_H
11 // This is the declaration of the EtaPiGammaGammaDecayer class.
12 
13 #include "Herwig/Decay/DecayIntegrator.h"
14 #include "Herwig/Decay/DecayPhaseSpaceMode.h"
15 #include "ThePEG/StandardModel/StandardModelBase.h"
16 #include "Herwig/Utilities/Kinematics.h"
17 #include "ThePEG/Helicity/LorentzPolarizationVector.h"
18 
19 namespace Herwig {
20 using namespace ThePEG;
21 
64 
65 public:
66 
71 
78  virtual int modeNumber(bool & cc, tcPDPtr parent,
79  const tPDVector & children) const;
80 
89  double me2(const int ichan,const Particle & part,
90  const ParticleVector & decay, MEOption meopt) const;
91 
97  virtual WidthCalculatorBasePtr threeBodyMEIntegrator(const DecayMode & dm) const;
98 
112  virtual double threeBodyMatrixElement(const int imode, const Energy2 q2,
113  const Energy2 s3, const Energy2 s2,
114  const Energy2 s1, const Energy m1,
115  const Energy m2,const Energy m3) const;
116 
122  virtual void dataBaseOutput(ofstream & os,bool header) const;
123 
124 public:
125 
132  void persistentOutput(PersistentOStream & os) const;
133 
139  void persistentInput(PersistentIStream & is, int version);
141 
145  static void Init();
146 
147 protected:
148 
155  virtual IBPtr clone() const {return new_ptr(*this);}
156 
161  virtual IBPtr fullclone() const {return new_ptr(*this);}
163 
164 protected:
165 
173  virtual void doinit();
174 
178  virtual void doinitrun();
180 
181 private:
182 
186  EtaPiGammaGammaDecayer & operator=(const EtaPiGammaGammaDecayer &) = delete;
187 
188 private:
189 
194  InvEnergy _grhoomega;
195 
199  Energy _fpi;
200 
204  Energy _rhomass;
205 
209  Energy _rhowidth;
210 
214  double _grho;
215 
219  Energy _mpi;
220 
224  double _rhoconst;
225 
230 
234  double _ratiofpif8;
235 
239  double _ratiofpif0;
240 
244  double _theta;
245 
249  double _etamax;
250 
254  double _etapmax;
255 
259  vector<InvEnergy2> _dconst;
260 
264  vector<InvEnergy2> _econst;
265 
269  mutable RhoDMatrix _rho;
270 
274  mutable vector<Helicity::LorentzPolarizationVector> _vectors[2];
275 };
276 
277 }
278 
279 
280 #endif /* HERWIG_EtaPiGammaGammaDecayer_H */
double _etamax
the maximum weights for the decay.
double _ratiofpif0
Ratios of the decay constants .
InvEnergy _grhoomega
The coupling of the to and a .
bool _localparameters
Use local values of the mass and width.
double _etapmax
the maximum weights for the decay.
RhoDMatrix _rho
Spin density matrix.
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
double _rhoconst
Constant for the running width calculation.
vector< InvEnergy2 > _econst
The prefactor for the function.
vector< InvEnergy2 > _dconst
The prefactor for the function.
virtual IBPtr clone() const
Make a simple clone of this object.
Energy _rhowidth
The width of the .
MEOption
Enum for the matrix element option.
The EtaPiGammaGammaDecayer class implements a VMD model matrix element for taken from hep-ph/0112150...
double _ratiofpif8
Ratios of the decay constants .
vector< tPDPtr > tPDVector
Main class for Decayers implementing multi-channel phase space integration.
Energy _mpi
The mass of the pion.
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr
double _theta
the mixing angle, .
Energy _fpi
The pion decay constant, .
-*- C++ -*-
double _grho
The coupling for the conversion of a rho to a photon, .
vector< PPtr > ParticleVector
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.