herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
ScalarMesonCurrent.h
1// -*- C++ -*-
2//
3// ScalarMesonCurrent.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_ScalarMesonCurrent_H
10#define HERWIG_ScalarMesonCurrent_H
11// This is the declaration of the ScalarMesonCurrent class.
12
13#include "WeakCurrent.h"
14
15namespace Herwig {
16using namespace ThePEG;
17
35
36public:
37
42
43public:
44
52
58 void persistentInput(PersistentIStream & is, int version);
60
64 static void Init();
65
66public:
67
88 virtual bool createMode(int icharge, tcPDPtr resonance,
89 FlavourInfo flavour,
90 unsigned int imode,PhaseSpaceModePtr mode,
91 unsigned int iloc,int ires,
92 PhaseSpaceChannel phase, Energy upp );
93
103 virtual tPDVector particles(int icharge, unsigned int imode, int iq, int ia);
105
119 virtual vector<LorentzPolarizationVectorE>
120 current(tcPDPtr resonance,
121 FlavourInfo flavour,
122 const int imode, const int ichan,Energy & scale,
123 const tPDVector & outgoing,
124 const vector<Lorentz5Momentum> & momenta,
125 DecayIntegrator::MEOption meopt) const;
126
132 virtual bool accept(vector<int> id);
133
140 virtual unsigned int decayMode(vector<int> id);
141
148 virtual void dataBaseOutput(ofstream & os,bool header,bool create) const;
149
150protected:
151
158 virtual IBPtr clone() const {return new_ptr(*this);}
159
164 virtual IBPtr fullclone() const {return new_ptr(*this);}
166
167protected:
168
176 virtual void doinit();
178
179private:
180
185
186private:
187
191 vector<long> _id;
192
196 vector<Energy> _decay_constant;
197
201 double _thetaeta;
202
206 unsigned int _initsize;
207
208};
209
210}
211
212
213#endif /* HERWIG_ScalarMesonCurrent_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)-scalar meson.
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 persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
virtual IBPtr clone() const
Make a simple clone of this object.
unsigned int _initsize
The inital size of the arrays.
virtual tPDVector particles(int icharge, unsigned int imode, int iq, int ia)
The particles produced by the current.
ScalarMesonCurrent & operator=(const ScalarMesonCurrent &)=delete
Private and non-existent assignment operator.
virtual void doinit()
Initialize this object after the setup phase before saving and EventGenerator to disk.
static void Init()
Standard Init function used to initialize the interfaces.
double _thetaeta
The mixing angle.
vector< long > _id
the pdg code for the meson
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.
virtual bool accept(vector< int > id)
Accept the decay.
vector< Energy > _decay_constant
the decay constant
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.
ScalarMesonCurrent()
Default constructor.
virtual void dataBaseOutput(ofstream &os, bool header, bool create) const
Output the setup information for the particle database.
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