herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
LeptonNeutrinoCurrent.h
1// -*- C++ -*-
2//
3// LeptonNeutrinoCurrent.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_LeptonNeutrinoCurrent_H
10#define HERWIG_LeptonNeutrinoCurrent_H
11//
12// This is the declaration of the LeptonNeutrinoCurrent class.
13//
14#include "WeakCurrent.h"
15#include "LeptonNeutrinoCurrent.fh"
16#include "ThePEG/Helicity/LorentzSpinorBar.h"
17
18namespace Herwig {
19using namespace ThePEG;
21
35
36public:
37
42 // set up the modes in the base class
43 addDecayMode(11,-12);
44 addDecayMode(13,-15);
45 addDecayMode(15,-16);
47 }
48
49public:
50
71 virtual bool createMode(int icharge, tcPDPtr resonance,
72 FlavourInfo flavour,
73 unsigned int imode,PhaseSpaceModePtr mode,
74 unsigned int iloc,int ires,
75 PhaseSpaceChannel phase, Energy upp );
76
85 virtual tPDVector particles(int icharge, unsigned int imode, int iq, int ia);
87
101 virtual vector<LorentzPolarizationVectorE>
102 current(tcPDPtr resonance,
103 FlavourInfo flavour,
104 const int imode, const int ichan,Energy & scale,
105 const tPDVector & outgoing,
106 const vector<Lorentz5Momentum> & momenta,
107 DecayIntegrator::MEOption meopt) const;
108
113
119 virtual bool accept(vector<int> id);
120
126 virtual unsigned int decayMode(vector<int> id);
127
134 virtual void dataBaseOutput(ofstream & os,bool header,bool create) const;
135
136public:
137
141 static void Init();
142
143protected:
144
151 virtual IBPtr clone() const {return new_ptr(*this);}
152
157 virtual IBPtr fullclone() const {return new_ptr(*this);}
159
160private:
161
166
167private:
168
172 mutable vector<Helicity::LorentzSpinor <SqrtEnergy> > wave_;
173
177 mutable vector<Helicity::LorentzSpinorBar<SqrtEnergy> > wavebar_;
178
179};
180
181}
182
183
184#endif /* HERWIG_LeptonNeutrinoCurrent_H */
MEOption
Enum for the matrix element option.
This class implements the weak decay current for a lepton and a neutrino.
virtual IBPtr clone() const
Make a simple clone of this object.
vector< Helicity::LorentzSpinor< SqrtEnergy > > wave_
Spinors for the decay products.
static void Init()
Standard Init function used to initialize the interfaces.
virtual void dataBaseOutput(ofstream &os, bool header, bool create) const
Output the setup information for the particle database.
LeptonNeutrinoCurrent()
Default constructor.
void constructSpinInfo(ParticleVector decay) const
Construct the SpinInfo for the decay products.
LeptonNeutrinoCurrent & operator=(const LeptonNeutrinoCurrent &)=delete
Private and non-existent assignment operator.
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 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 bool accept(vector< int > id)
Accept the decay.
virtual unsigned int decayMode(vector< int > id)
Returns the decay mode number for a given set of particles in the current.
virtual tPDVector particles(int icharge, unsigned int imode, int iq, int ia)
The particles produced by the current.
vector< Helicity::LorentzSpinorBar< SqrtEnergy > > wavebar_
barred spinors for the decay products
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
This class is designed to store the information needed for a given phase-space channel for use by the...
The WeakCurrent class is the base class for the hadronic currents produced in weak decays.
Definition: WeakCurrent.h:59
void addDecayMode(int iq, int ia)
Add a decay mode to the list.
Definition: WeakCurrent.h:211
void setInitialModes(unsigned int nmodes)
Set initial number of modes.
Definition: WeakCurrent.h:220
-*- C++ -*-
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
vector< tPDPtr > tPDVector
vector< PPtr > ParticleVector
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr