herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
VectorMesonCurrent.h
1// -*- C++ -*-
2//
3// VectorMesonCurrent.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 THEPEG_VectorMesonCurrent_H
10#define THEPEG_VectorMesonCurrent_H
11// This is the declaration of the VectorMesonCurrent class.
12
13#include "WeakCurrent.h"
14
15namespace Herwig {
16using namespace ThePEG;
17
32
33public:
34
39
40public:
41
49
55 void persistentInput(PersistentIStream & is, int version);
57
61 static void Init();
62
63public:
64
85 virtual bool createMode(int icharge, tcPDPtr resonance,
86 FlavourInfo flavour,
87 unsigned int imode,PhaseSpaceModePtr mode,
88 unsigned int iloc,int ires,
89 PhaseSpaceChannel phase, Energy upp );
90
100 virtual tPDVector particles(int icharge, unsigned int imode, int iq, int ia);
102
116 virtual vector<LorentzPolarizationVectorE>
117 current(tcPDPtr resonance,
118 FlavourInfo flavour,
119 const int imode, const int ichan,Energy & scale,
120 const tPDVector & outgoing,
121 const vector<Lorentz5Momentum> & momenta,
122 DecayIntegrator::MEOption meopt) const;
123
127 virtual void constructSpinInfo(ParticleVector decay) const;
128
134 virtual bool accept(vector<int> id);
135
142 virtual unsigned int decayMode(vector<int> id);
143
150 virtual void dataBaseOutput(ofstream & os,bool header,bool create) const;
151
152protected:
153
160 virtual IBPtr clone() const {return new_ptr(*this);}
161
166 virtual IBPtr fullclone() const {return new_ptr(*this);}
168
169protected:
170
178 virtual void doinit();
180
181private:
182
187
188private:
189
193 vector<int> _id;
194
198 vector<Energy2> _decay_constant;
199
203 unsigned int _initsize;
204};
205
206}
207
208
209#endif /* THEPEG_VectorMesonCurrent_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 weak current for the production of one (pseudo)-vector meson.
vector< Energy2 > _decay_constant
The decay constant.
virtual IBPtr clone() const
Make a simple clone of this object.
VectorMesonCurrent()
Default constructor.
vector< int > _id
The PDG code for the meson.
static void Init()
Standard Init function used to initialize the interfaces.
virtual unsigned int decayMode(vector< int > id)
Return the decay mode number for a given set of particles in the current.
virtual void constructSpinInfo(ParticleVector decay) const
Construct the SpinInfo for the decay products.
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.
VectorMesonCurrent & operator=(const VectorMesonCurrent &)=delete
Private and non-existent assignment operator.
virtual tPDVector particles(int icharge, unsigned int imode, int iq, int ia)
The particles produced by the current.
unsigned int _initsize
initial size of the vectors
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
virtual bool accept(vector< int > id)
Accept the decay.
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 and EventGenerator to disk.
virtual void dataBaseOutput(ofstream &os, bool header, bool create) const
Output the setup information for the particle database.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
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