herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
EtaPhotonCurrent.h
1// -*- C++ -*-
2#ifndef Herwig_EtaPhotonCurrent_H
3#define Herwig_EtaPhotonCurrent_H
4//
5// This is the declaration of the EtaPhotonCurrent class.
6//
7
8#include "WeakCurrent.h"
9
10namespace Herwig {
11
12using namespace ThePEG;
13
27
28public:
29
34
35public:
36
57 virtual bool createMode(int icharge, tcPDPtr resonance,
58 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,
90 FlavourInfo flavour,
91 const int imode, const int ichan,Energy & scale,
92 const tPDVector & outgoing,
93 const vector<Lorentz5Momentum> & momenta,
94 DecayIntegrator::MEOption meopt) const;
95
99 virtual void constructSpinInfo(ParticleVector decay) const;
100
106 virtual bool accept(vector<int> id);
107
114 virtual unsigned int decayMode(vector<int> id);
115
122 virtual void dataBaseOutput(ofstream & os,bool header,bool create) const;
123
124public:
125
133
139 void persistentInput(PersistentIStream & is, int version);
141
148 static void Init();
149
150protected:
151
158 virtual IBPtr clone() const;
159
164 virtual IBPtr fullclone() const;
166
167protected:
168
176 virtual void doinit();
178
179private:
180
186
187private:
188
192 vector<Energy> resMasses_;
193
197 vector<Energy> resWidths_;
198
202 vector<InvEnergy> amp_;
203
207 vector<double> phase_;
208
212 vector<complex<InvEnergy> > couplings_;
213
217 Energy mpi_;
218};
219
220}
221
222#endif /* Herwig_EtaPhotonCurrent_H */
MEOption
Enum for the matrix element option.
The EtaPhotonCurrent class implements the decay current for via intermediate .
vector< Energy > resWidths_
Widths for the resonances.
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.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
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.
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
virtual unsigned int decayMode(vector< int > id)
Return the decay mode number for a given set of particles in the current.
vector< Energy > resMasses_
Mass for the resonances.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
EtaPhotonCurrent()
The default constructor.
virtual void constructSpinInfo(ParticleVector decay) const
Construct the SpinInfo for the decay products.
Energy mpi_
The pion mass.
static void Init()
The standard Init function used to initialize the interfaces.
virtual bool accept(vector< int > id)
Accept the decay.
vector< complex< InvEnergy > > couplings_
Couplings for the resonances.
vector< InvEnergy > amp_
Amplitudes for couplings for the resonances.
virtual void dataBaseOutput(ofstream &os, bool header, bool create) const
Output the setup information for the particle database.
EtaPhotonCurrent & operator=(const EtaPhotonCurrent &)=delete
The assignment operator is private and must never be called.
vector< double > phase_
Amplitudes for couplings for the resonances.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
virtual IBPtr clone() const
Make a simple clone of this object.
virtual tPDVector particles(int icharge, unsigned int imode, int iq, int ia)
The particles produced by the current.
This class is designed to store the information needed for a given phase-space channel for use by the...
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
vector< PPtr > ParticleVector
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr