herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
PScalarLeptonNeutrinoDecayer.h
1// -*- C++ -*-
2//
3// PScalarLeptonNeutrinoDecayer.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_PScalarLeptonNeutrinoDecayer_H
10#define HERWIG_PScalarLeptonNeutrinoDecayer_H
11// This is the declaration of the PScalarLeptonNeutrinoDecayer class.
12
13#include "Herwig/Decay/DecayIntegrator.h"
14#include "ThePEG/Helicity/LorentzSpinorBar.h"
15
16namespace Herwig {
17using namespace ThePEG;
18
39
46 virtual int modeNumber(bool & cc, tcPDPtr parent,
47 const tPDVector & children) const;
48
58 double me2(const int ichan,const Particle & part,
59 const tPDVector & outgoing,
60 const vector<Lorentz5Momentum> & momenta,
61 MEOption meopt) const;
62
66 virtual void constructSpinInfo(const Particle & part,
68
74 virtual void dataBaseOutput(ofstream & os,bool header) const;
75
76public:
77
85
91 void persistentInput(PersistentIStream & is, int version);
93
97 static void Init();
98
99protected:
100
107 virtual IBPtr clone() const {return new_ptr(*this);}
108
113 virtual IBPtr fullclone() const {return new_ptr(*this);}
115
116protected:
117
120
126 virtual void doinit();
127
131 virtual void doinitrun();
133
134public:
135
139 string setUpDecayMode(string arg);
140
141private:
142
147
148private:
149
153 vector<int> incoming_;
154
159 vector<Energy> decayConstant_;
160
164 vector<unsigned int> leptons_;
165
169 vector<array<double,3> > maxWeight_;
170
175
179 mutable vector<Helicity::LorentzSpinor <SqrtEnergy> > wave_;
180
184 mutable vector<Helicity::LorentzSpinorBar<SqrtEnergy> > wavebar_;
185
186};
187
188}
189
190
191#endif /* HERWIG_PScalarLeptonNeutrinoDecayer_H */
Main class for Decayers implementing multi-channel phase space integration.
MEOption
Enum for the matrix element option.
The PScalarLeptonNeutrinoDecayer class is designed for the decay of pseudoscalar mesons to a lepton a...
virtual int modeNumber(bool &cc, tcPDPtr parent, const tPDVector &children) const
Which of the possible decays is required.
static void Init()
Standard Init function used to initialize the interfaces.
vector< Helicity::LorentzSpinor< SqrtEnergy > > wave_
Spinors for the decay products.
vector< int > incoming_
the PDG code for the incoming particle
virtual void doinit()
Initialize this object after the setup phase before saving and EventGenerator to disk.
virtual void constructSpinInfo(const Particle &part, ParticleVector outgoing) const
Construct the SpinInfos for the particles produced in the decay.
virtual void dataBaseOutput(ofstream &os, bool header) const
Output the setup information for the particle database.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
vector< Helicity::LorentzSpinorBar< SqrtEnergy > > wavebar_
barred spinors for the decay products
vector< unsigned int > leptons_
which outgoing leptons are allowed for a particular decay
virtual void doinitrun()
Initialize this object to the begining of the run phase.
virtual IBPtr clone() const
Make a simple clone of this object.
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.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
PScalarLeptonNeutrinoDecayer & operator=(const PScalarLeptonNeutrinoDecayer &)=delete
Private and non-existent assignment operator.
vector< Energy > decayConstant_
the meson decay constant for a particular particle multiplied by the CKM matrix element,...
vector< array< double, 3 > > maxWeight_
The maximum weight for the integration of decay to ( , , ).
string setUpDecayMode(string arg)
Set the parameters for a decay mode.
-*- C++ -*-
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
vector< tPDPtr > tPDVector
vector< PPtr > ParticleVector
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr