herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
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/PhaseSpaceMode.h"
15
16namespace Herwig {
17using namespace ThePEG;
18
45
46public:
47
52 // no intermediates
54 }
55
56
63 virtual int modeNumber(bool & cc, tcPDPtr parent,
64 const tPDVector & children) const;
65
75 double me2(const int ichan,const Particle & part,
76 const tPDVector & outgoing,
77 const vector<Lorentz5Momentum> & momenta,
78 MEOption meopt) const;
79
83 virtual void constructSpinInfo(const Particle & part,
85
91 virtual WidthCalculatorBasePtr threeBodyMEIntegrator(const DecayMode & dm) const;
92
103 virtual InvEnergy threeBodydGammads(const int imode, const Energy2 q2, const Energy2 s,
104 const Energy m1, const Energy m2,
105 const Energy m3) const;
106
112 virtual void dataBaseOutput(ofstream & os,bool header) const;
113
114public:
115
123
129 void persistentInput(PersistentIStream & is, int version);
131
135 static void Init();
136
137protected:
138
145 virtual IBPtr clone() const {return new_ptr(*this);}
146
151 virtual IBPtr fullclone() const {return new_ptr(*this);}
153
154protected:
155
163 virtual void doinit();
164
168 virtual void doinitrun();
170
171private:
172
177
178public:
179
183 string setUpDecayMode(string arg);
184
185private:
186
190 vector<int> incoming_;
191
195 vector<int> outgoing_;
196
200 vector<bool> charged_;
201
205 vector<double> prefactor_;
206
210 //*{
214 vector<double> a_;
215
219 vector<double> b_;
220
224 vector<double> c_;
226
230 vector<double> maxWeight_;
231
236};
237
238}
239
240
241#endif /* HERWIG_EtaPiPiPiDecayer_H */
Main class for Decayers implementing multi-channel phase space integration.
int imode() const
The mode being used for this decay.
bool generateIntermediates() const
Set whether or not the intermediates are included.
MEOption
Enum for the matrix element option.
The EtaPiPiPiDecayer class is designed for the simulation of the decay of the or to either or and...
vector< double > a_
The constants for the matrix elements.
vector< double > b_
The constant.
double me2(const int ichan, const Particle &part, const tPDVector &outgoing, const vector< Lorentz5Momentum > &momenta, MEOption meopt) const
Return the matrix element squared for a given mode and phase-space channel.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
virtual void constructSpinInfo(const Particle &part, ParticleVector outgoing) const
Construct the SpinInfos for the particles produced in the decay.
vector< int > incoming_
the id of the incoming particle
vector< double > prefactor_
the prefactor for the decay
vector< double > c_
The constant.
RhoDMatrix rho_
Spin density matrix.
EtaPiPiPiDecayer()
Default constructor.
vector< int > outgoing_
the id of the last neutral meson
virtual IBPtr clone() const
Make a simple clone of this object.
virtual void dataBaseOutput(ofstream &os, bool header) const
Output the setup information for the particle database.
vector< bool > charged_
whether the pions are charged or neutral
virtual int modeNumber(bool &cc, tcPDPtr parent, const tPDVector &children) const
Which of the possible decays is required.
virtual void doinit()
Initialize this object after the setup phase before saving and EventGenerator to disk.
vector< double > maxWeight_
maximum weights
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
virtual InvEnergy threeBodydGammads(const int imode, const Energy2 q2, const Energy2 s, const Energy m1, const Energy m2, const Energy m3) const
The differential three body decay rate with one integral performed.
static void Init()
Standard Init function used to initialize the interfaces.
string setUpDecayMode(string arg)
Set the parameters for a decay mode.
EtaPiPiPiDecayer & operator=(const EtaPiPiPiDecayer &)=delete
Private and non-existent assignment operator.
virtual void doinitrun()
Initialize this object to the begining of the run phase.
virtual WidthCalculatorBasePtr threeBodyMEIntegrator(const DecayMode &dm) const
Method to return an object to calculate the 3 body partial width.
-*- C++ -*-
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
vector< tPDPtr > tPDVector
vector< PPtr > ParticleVector
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr