herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.3.0
Decay
VectorMeson
OniumToOniumPiPiDecayer.h
1
// -*- C++ -*-
2
//
3
// OniumToOniumPiPiDecayer.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_OniumToOniumPiPiDecayer_H
10
#define HERWIG_OniumToOniumPiPiDecayer_H
11
//
12
// This is the declaration of the OniumToOniumPiPiDecayer class.
13
//
14
15
#include "Herwig/Decay/DecayIntegrator.h"
16
#include "ThePEG/Helicity/LorentzPolarizationVector.h"
17
18
namespace
Herwig
{
19
20
using namespace
ThePEG
;
21
44
class
OniumToOniumPiPiDecayer
:
public
DecayIntegrator
{
45
46
public
:
47
51
OniumToOniumPiPiDecayer
() {
52
// don't generate the intermediates in the phase-space
53
generateIntermediates
(
false
);
54
}
55
62
virtual
int
modeNumber
(
bool
& cc,
tcPDPtr
parent,
63
const
tPDVector
& children)
const
;
64
74
double
me2
(
const
int
ichan,
const
Particle
& part,
75
const
tPDVector
&
outgoing
,
76
const
vector<Lorentz5Momentum> & momenta,
77
MEOption
meopt)
const
;
78
82
virtual
void
constructSpinInfo
(
const
Particle
& part,
83
ParticleVector
outgoing
)
const
;
84
90
virtual
WidthCalculatorBasePtr
threeBodyMEIntegrator
(
const
DecayMode
& dm)
const
;
91
105
virtual
double
threeBodyMatrixElement
(
const
int
imode
,
const
Energy2 q2,
106
const
Energy2 s3,
const
Energy2 s2,
const
107
Energy2 s1,
const
Energy m1,
108
const
Energy m2,
const
Energy m3)
const
;
109
115
virtual
void
dataBaseOutput
(ofstream & os,
bool
header)
const
;
116
117
public
:
118
125
void
persistentOutput
(
PersistentOStream
& os)
const
;
126
132
void
persistentInput
(
PersistentIStream
& is,
int
version);
134
141
static
void
Init
();
142
143
protected
:
144
151
virtual
IBPtr
clone
()
const
{
return
new_ptr(*
this
);}
152
157
virtual
IBPtr
fullclone
()
const
{
return
new_ptr(*
this
);}
159
160
protected
:
161
169
virtual
void
doinit
();
170
174
virtual
void
doinitrun
();
176
177
private
:
178
183
OniumToOniumPiPiDecayer
&
operator=
(
const
OniumToOniumPiPiDecayer
&) =
delete
;
184
185
public
:
186
190
string
setUpDecayMode
(
string
arg);
191
192
private
:
193
197
vector<long>
incoming_
;
198
202
vector<long>
outgoing_
;
203
207
vector<double>
maxWeight_
;
208
216
vector<double>
coupling_
;
217
221
vector<complex<InvEnergy2> >
cA_
;
222
226
vector<complex<InvEnergy2> >
cB_
;
227
231
vector<complex<InvEnergy2> >
cC_
;
233
237
mutable
RhoDMatrix
rho_
;
238
242
mutable
vector<Helicity::LorentzPolarizationVector>
vectors_
[2];
243
244
};
245
246
}
247
248
#endif
/* HERWIG_OniumToOniumPiPiDecayer_H */
Herwig::DecayIntegrator
Main class for Decayers implementing multi-channel phase space integration.
Definition:
DecayIntegrator.h:60
Herwig::DecayIntegrator::imode
int imode() const
The mode being used for this decay.
Definition:
DecayIntegrator.h:118
Herwig::DecayIntegrator::generateIntermediates
bool generateIntermediates() const
Set whether or not the intermediates are included.
Definition:
DecayIntegrator.h:389
Herwig::DecayIntegrator::MEOption
MEOption
Enum for the matrix element option.
Definition:
DecayIntegrator.h:72
Herwig::OniumToOniumPiPiDecayer
The OniumToOniumPiPiDecayer class uses the matrix element of Brown and Cahn PRL35,...
Definition:
OniumToOniumPiPiDecayer.h:44
Herwig::OniumToOniumPiPiDecayer::cA_
vector< complex< InvEnergy2 > > cA_
The complex coupling.
Definition:
OniumToOniumPiPiDecayer.h:221
Herwig::OniumToOniumPiPiDecayer::OniumToOniumPiPiDecayer
OniumToOniumPiPiDecayer()
The default constructor.
Definition:
OniumToOniumPiPiDecayer.h:51
Herwig::OniumToOniumPiPiDecayer::persistentOutput
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
Herwig::OniumToOniumPiPiDecayer::coupling_
vector< double > coupling_
The couplings for the decays.
Definition:
OniumToOniumPiPiDecayer.h:216
Herwig::OniumToOniumPiPiDecayer::dataBaseOutput
virtual void dataBaseOutput(ofstream &os, bool header) const
Output the setup information for the particle database.
Herwig::OniumToOniumPiPiDecayer::setUpDecayMode
string setUpDecayMode(string arg)
Set the parameters for a decay mode.
Herwig::OniumToOniumPiPiDecayer::fullclone
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
Definition:
OniumToOniumPiPiDecayer.h:157
Herwig::OniumToOniumPiPiDecayer::clone
virtual IBPtr clone() const
Make a simple clone of this object.
Definition:
OniumToOniumPiPiDecayer.h:151
Herwig::OniumToOniumPiPiDecayer::maxWeight_
vector< double > maxWeight_
the maximum weight for the integration
Definition:
OniumToOniumPiPiDecayer.h:207
Herwig::OniumToOniumPiPiDecayer::doinitrun
virtual void doinitrun()
Initialize this object to the begining of the run phase.
Herwig::OniumToOniumPiPiDecayer::threeBodyMEIntegrator
virtual WidthCalculatorBasePtr threeBodyMEIntegrator(const DecayMode &dm) const
Method to return an object to calculate the 3 body partial width.
Herwig::OniumToOniumPiPiDecayer::cB_
vector< complex< InvEnergy2 > > cB_
The complex coupling.
Definition:
OniumToOniumPiPiDecayer.h:226
Herwig::OniumToOniumPiPiDecayer::threeBodyMatrixElement
virtual double threeBodyMatrixElement(const int imode, const Energy2 q2, const Energy2 s3, const Energy2 s2, const Energy2 s1, const Energy m1, const Energy m2, const Energy m3) const
The matrix element to be integrated for the three-body decays as a function of the invariant masses o...
Herwig::OniumToOniumPiPiDecayer::rho_
RhoDMatrix rho_
Spin density matrix.
Definition:
OniumToOniumPiPiDecayer.h:237
Herwig::OniumToOniumPiPiDecayer::incoming_
vector< long > incoming_
the PDG codes for the incoming onium resonace
Definition:
OniumToOniumPiPiDecayer.h:197
Herwig::OniumToOniumPiPiDecayer::doinit
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
Herwig::OniumToOniumPiPiDecayer::vectors_
vector< Helicity::LorentzPolarizationVector > vectors_[2]
Polarization vectors for the incomng and outgoing onium resonances.
Definition:
OniumToOniumPiPiDecayer.h:242
Herwig::OniumToOniumPiPiDecayer::me2
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.
Herwig::OniumToOniumPiPiDecayer::operator=
OniumToOniumPiPiDecayer & operator=(const OniumToOniumPiPiDecayer &)=delete
The assignment operator is private and must never be called.
Herwig::OniumToOniumPiPiDecayer::Init
static void Init()
The standard Init function used to initialize the interfaces.
Herwig::OniumToOniumPiPiDecayer::modeNumber
virtual int modeNumber(bool &cc, tcPDPtr parent, const tPDVector &children) const
Which of the possible decays is required.
Herwig::OniumToOniumPiPiDecayer::persistentInput
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
Herwig::OniumToOniumPiPiDecayer::outgoing_
vector< long > outgoing_
the PDG codes for the outgoing onium resonance
Definition:
OniumToOniumPiPiDecayer.h:202
Herwig::OniumToOniumPiPiDecayer::constructSpinInfo
virtual void constructSpinInfo(const Particle &part, ParticleVector outgoing) const
Construct the SpinInfos for the particles produced in the decay.
Herwig::OniumToOniumPiPiDecayer::cC_
vector< complex< InvEnergy2 > > cC_
The complex coupling.
Definition:
OniumToOniumPiPiDecayer.h:231
ThePEG::DecayMode
ThePEG::Particle
ThePEG::PersistentIStream
ThePEG::PersistentOStream
ThePEG::RhoDMatrix
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
ThePEG::Helicity::outgoing
outgoing
ThePEG
ThePEG::IBPtr
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
ThePEG::tPDVector
vector< tPDPtr > tPDVector
ThePEG::ParticleVector
vector< PPtr > ParticleVector
ThePEG::tcPDPtr
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr
Generated on Thu Jun 20 2024 17:50:52 for Herwig by
1.9.6