herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
TwoPionPhotonSNDCurrent.h
1// -*- C++ -*-
2#ifndef Herwig_TwoPionPhotonSNDCurrent_H
3#define Herwig_TwoPionPhotonSNDCurrent_H
4//
5// This is the declaration of the TwoPionPhotonSNDCurrent class.
6//
7
8#include "WeakCurrent.h"
9
10namespace Herwig {
11
12using namespace ThePEG;
13
25
26public:
27
32
33public:
34
55 virtual bool createMode(int icharge, tcPDPtr resonance,
56 FlavourInfo flavour,
57 unsigned int imode,PhaseSpaceModePtr mode,
58 unsigned int iloc,int ires,
59 PhaseSpaceChannel phase, Energy upp );
60
70 virtual tPDVector particles(int icharge, unsigned int imode, int iq, int ia);
72
86 virtual vector<LorentzPolarizationVectorE>
87 current(tcPDPtr resonance,
88 FlavourInfo flavour,
89 const int imode, const int ichan,Energy & scale,
90 const tPDVector & outgoing,
91 const vector<Lorentz5Momentum> & momenta,
92 DecayIntegrator::MEOption meopt) const;
93
97 virtual void constructSpinInfo(ParticleVector decay) const;
98
104 virtual bool accept(vector<int> id);
105
112 virtual unsigned int decayMode(vector<int> id);
113
120 virtual void dataBaseOutput(ofstream & os,bool header,bool create) const;
121
122public:
123
131
137 void persistentInput(PersistentIStream & is, int version);
139
146 static void Init();
147
148protected:
149
156 virtual IBPtr clone() const;
157
162 virtual IBPtr fullclone() const;
164protected:
165
171 virtual void doinit();
172
173private:
174
180
181private :
182
186 vector<Energy> rhoMasses_;
187
191 vector<Energy> rhoWidths_;
192
196 vector<double> amp_;
197
201 vector<double> phase_;
202
206 vector<Complex> wgts_;
207
211 double fRho_;
212
216 InvEnergy gRhoOmegaPi_;
217
221 InvEnergy gGammaOmegaPi_;
222
227
232
236 Energy mpi_;
237};
238
239}
240
241#endif /* Herwig_TwoPionPhotonSNDCurrent_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 TwoPionPhotonSNDCurrent class implements the decay current for via an intermediate .
TwoPionPhotonSNDCurrent()
The default constructor.
virtual void constructSpinInfo(ParticleVector decay) const
Construct the SpinInfo for the decay products.
InvEnergy gGammaOmegaPi_
Coupling of the photon to the omega and a pion, .
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.
virtual void dataBaseOutput(ofstream &os, bool header, bool create) const
Output the setup information for the particle database.
static void Init()
The standard Init function used to initialize the interfaces.
vector< double > amp_
Ampltitudes for the different rhos in the current.
vector< Energy > rhoWidths_
Widths of the resonances.
virtual unsigned int decayMode(vector< int > id)
Return the decay mode number for a given set of particles in the current.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
double fRho_
Coupling of the rho to the photon, .
virtual bool accept(vector< int > id)
Accept the decay.
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.
void persistentInput(PersistentIStream &is, int version)
Function used to read in 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.
vector< double > phase_
Phases for the different rhos in the current.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
TwoPionPhotonSNDCurrent & operator=(const TwoPionPhotonSNDCurrent &)=delete
The assignment operator is private and must never be called.
vector< Energy > rhoMasses_
Masses of the resonances.
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
InvEnergy gRhoOmegaPi_
Coupling of the rho to the omega and a pion, .
vector< Complex > wgts_
Weights of the different rho resonances in the current.
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