herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
ThreePionCzyzCurrent.h
1// -*- C++ -*-//
2// ThreePionCzyzCurrent.h is a part of Herwig - A multi-purpose Monte Carlo event generator
3// Copyright (C) 2002-2019 The Herwig Collaboration
4//
5// Herwig is licenced under version 3 of the GPL, see COPYING for details.
6// Please respect the MCnet academic guidelines, see GUIDELINES for details.
7#ifndef Herwig_ThreePionCzyzCurrent_H
8#define Herwig_ThreePionCzyzCurrent_H
9//
10// This is the declaration of the ThreePionCzyzCurrent class.
11//
12
13#include "WeakCurrent.h"
14
15namespace Herwig {
16
17using namespace ThePEG;
18
19
30
31public:
32
37
58 virtual bool createMode(int icharge, tcPDPtr resonance, FlavourInfo flavour,
59 unsigned int imode,PhaseSpaceModePtr mode,
60 unsigned int iloc,int ires,
61 PhaseSpaceChannel phase, Energy upp );
62
72 virtual tPDVector particles(int icharge, unsigned int imode, int iq, int ia);
74
88 virtual vector<LorentzPolarizationVectorE>
89 current(tcPDPtr resonance, FlavourInfo flavour,
90 const int imode, const int ichan,Energy & scale,
91 const tPDVector & outgoing,
92 const vector<Lorentz5Momentum> & momenta,
93 DecayIntegrator::MEOption meopt) const;
94
100 virtual bool accept(vector<int> id);
101
107 virtual unsigned int decayMode(vector<int> id);
108
115 virtual void dataBaseOutput(ofstream & os,bool header,bool create) const;
116
117public:
118
126
132 void persistentInput(PersistentIStream & is, int version);
134
141 static void Init();
142
143protected:
144
151 virtual IBPtr clone() const;
152
157 virtual IBPtr fullclone() const;
159
160protected:
161
164
170 virtual void doinit();
172
173private:
174
180
181private:
182
190 vector<Energy> rhoMasses_;
194 vector<Energy> rhoWidths_;
195
199 vector<Energy> omegaMasses_;
203 vector<Energy> omegaWidths_;
204
208 Energy phiMass_;
212 Energy phiWidth_;
214
218 vector<InvEnergy3> coup_I0_;
219
227 vector<Energy> rhoMasses_I1_;
231 vector<Energy> rhoWidths_I1_;
232
242
250 double sigma_;
251
255 InvEnergy GW_pre_;
256
260 Energy GW_;
261
267
271 Energy mpip_, mpi0_;
272
273};
274
275}
276
277#endif /* Herwig_ThreePionCzyzCurrent_H */
MEOption
Enum for the matrix element option.
This class is designed to store the information needed for a given phase-space channel for use by the...
The ThreeMesonCzyzCurrent class implements the currents from Eur.Phys.J.
vector< Energy > omegaMasses_
Omega masses.
double sigma_
Couplings for the the component.
vector< Energy > rhoWidths_
Rho widths.
virtual void doinit()
Initialize this object after the setup phase before saving and EventGenerator to disk.
virtual IBPtr clone() const
Make a simple clone of this object.
ThreePionCzyzCurrent()
The default constructor.
virtual bool createMode(int icharge, tcPDPtr resonance, FlavourInfo flavour, unsigned int imode, PhaseSpaceModePtr mode, unsigned int iloc, int ires, PhaseSpaceChannel phase, Energy upp)
Complete the construction of the decay mode for integration.classes inheriting from this one.
ThreePionCzyzCurrent & operator=(const ThreePionCzyzCurrent &)=delete
The assignment operator is private and must never be called.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
InvEnergy GW_pre_
The numerical part of .
virtual vector< LorentzPolarizationVectorE > current(tcPDPtr resonance, FlavourInfo flavour, const int imode, const int ichan, Energy &scale, const tPDVector &outgoing, const vector< Lorentz5Momentum > &momenta, DecayIntegrator::MEOption meopt) const
Hadronic current.
vector< InvEnergy3 > coup_I0_
Couplings in the model , labelled A..F in paper.
vector< Energy > rhoMasses_
Masses and widths of the particles, used in the piece.
vector< Energy > rhoMasses_I1_
Masses and widths for the component.
virtual tPDVector particles(int icharge, unsigned int imode, int iq, int ia)
The particles produced by the current.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
virtual bool accept(vector< int > id)
Accept the decay.
virtual unsigned int decayMode(vector< int > id)
Return the decay mode number for a given set of particles in the current.
virtual void dataBaseOutput(ofstream &os, bool header, bool create) const
Output the setup information for the particle database.
vector< Energy > rhoWidths_I1_
Rho widths.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
vector< Energy > omegaWidths_
Omega widths.
static void Init()
The standard Init function used to initialize the interfaces.
The WeakCurrent class is the base class for the hadronic currents produced in weak decays.
Definition: WeakCurrent.h:59
-*- C++ -*-
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
vector< tPDPtr > tPDVector
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr