herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
EtaPiPiPiDecayer.h
1 // -*- C++ -*-
2 //
3 // EtaPiPiPiDecayer.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_EtaPiPiPiDecayer_H
10 #define HERWIG_EtaPiPiPiDecayer_H
11 // This is the declaration of the EtaPiPiPiDecayer class.
12 
13 #include "Herwig/Decay/DecayIntegrator.h"
14 #include "Herwig/Decay/DecayPhaseSpaceMode.h"
15 
16 namespace Herwig {
17 using namespace ThePEG;
18 
45 
46 public:
47 
52 
59  virtual int modeNumber(bool & cc, tcPDPtr parent,
60  const tPDVector & children) const;
61 
70  double me2(const int ichan,const Particle & part,
71  const ParticleVector & decay, MEOption meopt) const;
72 
78  virtual WidthCalculatorBasePtr threeBodyMEIntegrator(const DecayMode & dm) const;
79 
90  virtual InvEnergy threeBodydGammads(const int imode, const Energy2 q2, const Energy2 s,
91  const Energy m1, const Energy m2,
92  const Energy m3) const;
93 
99  virtual void dataBaseOutput(ofstream & os,bool header) const;
100 
101 public:
102 
109  void persistentOutput(PersistentOStream & os) const;
110 
116  void persistentInput(PersistentIStream & is, int version);
118 
122  static void Init();
123 
124 protected:
125 
132  virtual IBPtr clone() const {return new_ptr(*this);}
133 
138  virtual IBPtr fullclone() const {return new_ptr(*this);}
140 
141 protected:
142 
150  virtual void doinit();
151 
155  virtual void doinitrun();
157 
158 private:
159 
163  EtaPiPiPiDecayer & operator=(const EtaPiPiPiDecayer &) = delete;
164 
165 private:
166 
170  vector<int> _incoming;
171 
175  vector<int> _outgoing;
176 
180  vector<bool> _charged;
181 
185  vector<double> _prefactor;
186 
190  //*{
194  vector<double> _a;
195 
199  vector<double> _b;
200 
204  vector<double> _c;
206 
210  vector<double> _maxweight;
211 
215  unsigned int _initsize;
216 
220  mutable RhoDMatrix _rho;
221 };
222 
223 }
224 
225 
226 #endif /* HERWIG_EtaPiPiPiDecayer_H */
vector< double > _c
The constant.
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
vector< double > _prefactor
the prefactor for the decay
virtual IBPtr clone() const
Make a simple clone of this object.
vector< int > _incoming
the id of the incoming particle
vector< double > _a
The constants for the matrix elements.
MEOption
Enum for the matrix element option.
vector< tPDPtr > tPDVector
vector< double > _b
The constant.
Main class for Decayers implementing multi-channel phase space integration.
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr
unsigned int _initsize
Initial size of the vectors.
vector< int > _outgoing
the id of the last neutral meson
-*- C++ -*-
The EtaPiPiPiDecayer class is designed for the simulation of the decay of the or to either or and...
vector< bool > _charged
whether the pions are charged or neutral
vector< double > _maxweight
maximum weights
vector< PPtr > ParticleVector
RhoDMatrix _rho
Spin density matrix.