herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
VectorMeson2SpinHalfBaryonsDecayer.h
1// -*- C++ -*-
2#ifndef Herwig_VectorMeson2SpinHalfBaryonsDecayer_H
3#define Herwig_VectorMeson2SpinHalfBaryonsDecayer_H
4//
5// This is the declaration of the VectorMeson2SpinHalfBaryonsDecayer class.
6//
7
8#include "Herwig/Decay/DecayIntegrator.h"
9#include "Herwig/Decay/PhaseSpaceMode.h"
10#include "ThePEG/Helicity/LorentzPolarizationVector.h"
11#include "ThePEG/Helicity/LorentzSpinorBar.h"
12#include "ThePEG/Helicity/LorentzRSSpinorBar.h"
13
14namespace Herwig {
15
16using namespace ThePEG;
17
42
43public:
44
49
56 virtual int modeNumber(bool & cc, tcPDPtr parent,
57 const tPDVector & children) const;
58
68 double me2(const int ichan,const Particle & part,
69 const tPDVector & outgoing,
70 const vector<Lorentz5Momentum> & momenta,
71 MEOption meopt) const;
72
76 virtual void constructSpinInfo(const Particle & part,
78
84 virtual void dataBaseOutput(ofstream & os,bool header) const;
85
86public:
87
95
101 void persistentInput(PersistentIStream & is, int version);
103
110 static void Init();
111
112protected:
113
120 virtual IBPtr clone() const;
121
126 virtual IBPtr fullclone() const;
128
129protected:
130
138 virtual void doinit();
139
143 virtual void doinitrun();
145
146private:
147
153
154public:
155
159 string setUpDecayMode(string arg);
160
161private:
162
166 vector<double> gm_;
167
171 vector<double> ge_;
172
176 vector<double> phi_;
177
181 vector<int> incoming_;
182
186 vector<pair<long,long> > outgoing_;
187
191 vector<double> maxweight_;
192
197
201 mutable vector<Helicity::LorentzPolarizationVector> vectors_;
202
206 mutable vector<Helicity::LorentzSpinor <SqrtEnergy> > wave_;
207
211 mutable vector<Helicity::LorentzSpinorBar<SqrtEnergy> > wavebar_;
212
216 mutable vector<Helicity::LorentzRSSpinor <SqrtEnergy> > wave2_;
217
221 mutable vector<Helicity::LorentzRSSpinorBar<SqrtEnergy> > wave2bar_;
222};
223
224}
225
226#endif /* Herwig_VectorMeson2SpinHalfBaryonsDecayer_H */
Main class for Decayers implementing multi-channel phase space integration.
MEOption
Enum for the matrix element option.
The VectorMeson2SpinHalfBaryonsDecayer class is designed for the decay of a vector meson to a baryon-...
vector< Helicity::LorentzRSSpinorBar< SqrtEnergy > > wave2bar_
barred spinors for the decay products
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
VectorMeson2SpinHalfBaryonsDecayer & operator=(const VectorMeson2SpinHalfBaryonsDecayer &)=delete
The assignment operator is private and must never be called.
virtual IBPtr clone() const
Make a simple clone of this object.
virtual void doinit()
Initialize this object after the setup phase before saving and EventGenerator to disk.
vector< Helicity::LorentzPolarizationVector > vectors_
Polarization vectors for the decaying particle.
vector< Helicity::LorentzSpinorBar< SqrtEnergy > > wavebar_
barred spinors for the decay products
vector< Helicity::LorentzRSSpinor< SqrtEnergy > > wave2_
Spinors for the decay products.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
vector< int > incoming_
the PDG codes for the incoming particles
vector< Helicity::LorentzSpinor< SqrtEnergy > > wave_
Spinors for the decay products.
virtual void constructSpinInfo(const Particle &part, ParticleVector outgoing) const
Construct the SpinInfos for the particles produced in the decay.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
virtual void dataBaseOutput(ofstream &os, bool header) const
Output the setup information for the particle database.
string setUpDecayMode(string arg)
Set the parameters for a decay mode.
double me2(const int ichan, const Particle &part, const tPDVector &outgoing, const vector< Lorentz5Momentum > &momenta, MEOption meopt) const
Return the matrix element squared for a given mode and phase-space channel.
vector< pair< long, long > > outgoing_
the PDG codes for the outgoing fermion
virtual void doinitrun()
Initialize this object to the begining of the run phase.
static void Init()
The standard Init function used to initialize the interfaces.
vector< double > maxweight_
maximum weight for a decay
virtual int modeNumber(bool &cc, tcPDPtr parent, const tPDVector &children) const
Which of the possible decays is required.
-*- C++ -*-
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
vector< tPDPtr > tPDVector
vector< PPtr > ParticleVector
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr