herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.3.0
PDT
TwoOffShellCalculator.h
1
// -*- C++ -*-
2
//
3
// TwoOffShellCalculator.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_TwoOffShellCalculator_H
10
#define HERWIG_TwoOffShellCalculator_H
11
//
12
// This is the declaration of the TwoOffShellCalculator class.
13
//
14
#include "WidthCalculatorBase.h"
15
#include "GenericMassGenerator.h"
16
#include "TwoOffShellCalculator.fh"
17
#include "OneOffShellCalculator.fh"
18
#include "Herwig/Utilities/GSLIntegrator.h"
19
20
namespace
Herwig
{
21
using namespace
ThePEG
;
22
23
struct
TwoOffShellIntegrand;
24
33
class
TwoOffShellCalculator
:
public
WidthCalculatorBase
{
34
39
friend
struct
TwoOffShellIntegrand
;
40
41
public
:
42
53
TwoOffShellCalculator
(
int
inloc, WidthCalculatorBasePtr inwidth,
54
GenericMassGeneratorPtr inmass,
55
Energy inmin2,Energy inmin1)
56
:
_themass
(inloc),
_minmass
(inmin2),
_mother
(inmin1),
_oneoffwidth
(inwidth),
57
_massptr
(inmass)
58
{}
59
65
Energy
partialWidth
(Energy2 scale)
const
;
66
74
void
resetMass
(
int
imass,Energy mass) {
75
_oneoffwidth
->resetMass(imass,mass);
76
}
77
84
Energy
getMass
(
const
int
imass)
const
{
85
return
_oneoffwidth
->getMass(imass);
86
}
87
94
Energy
otherMass
(
const
int
imass)
const
{
95
return
_oneoffwidth
->otherMass(imass);
96
}
97
98
protected
:
99
105
Energy
dGamma
(Energy mass)
const
{
106
_oneoffwidth
->resetMass(
_themass
,mass);
107
Energy wgt = (
_oneoffwidth
->partialWidth(
_scale
));
108
wgt*=(
_massptr
->weight(mass));
109
return
wgt;
110
}
111
112
private
:
113
117
TwoOffShellCalculator
&
operator=
(
const
TwoOffShellCalculator
&) =
delete
;
118
119
private
:
120
125
int
_themass
;
129
Energy
_minmass
;
130
134
Energy
_mother
;
135
139
WidthCalculatorBasePtr
_oneoffwidth
;
140
144
GenericMassGeneratorPtr
_massptr
;
145
149
GSLIntegrator
_integrator
;
150
154
mutable
Energy2
_scale
;
155
156
};
157
158
164
struct
TwoOffShellIntegrand
{
174
TwoOffShellIntegrand
(tcTwoOffShellCalculatorPtr in,Energy2 m2,Energy2 mw)
175
:
_integrand
(in),
_mass2
(m2),
_mwidth
(mw)
176
{}
177
181
Energy
operator ()
(
double
x)
const
{
182
return
_integrand
->dGamma(
sqrt
(
_mass2
+
_mwidth
*tan(x)));
183
}
185
typedef
double
ArgType
;
187
typedef
Energy
ValType
;
188
189
private
:
190
194
cTwoOffShellCalculatorPtr
_integrand
;
195
199
Energy2
_mass2
;
200
204
Energy2
_mwidth
;
205
};
206
}
207
208
#endif
/* HERWIG_TwoOffShellCalculator_H */
Herwig::GSLIntegrator
This class is designed to integrate a given function between 2 limits using the gsl QAGS integration ...
Definition:
GSLIntegrator.h:40
Herwig::TwoOffShellCalculator
Use WidthCalculatorBase objects to integrate over the mass of two external particles which can be off...
Definition:
TwoOffShellCalculator.h:33
Herwig::TwoOffShellCalculator::dGamma
Energy dGamma(Energy mass) const
The integrand.
Definition:
TwoOffShellCalculator.h:105
Herwig::TwoOffShellCalculator::otherMass
Energy otherMass(const int imass) const
Get the masses of all bar the one specified.
Definition:
TwoOffShellCalculator.h:94
Herwig::TwoOffShellCalculator::TwoOffShellCalculator
TwoOffShellCalculator(int inloc, WidthCalculatorBasePtr inwidth, GenericMassGeneratorPtr inmass, Energy inmin2, Energy inmin1)
Constructor which should be used setting all the required members.
Definition:
TwoOffShellCalculator.h:53
Herwig::TwoOffShellCalculator::_integrator
GSLIntegrator _integrator
integrator
Definition:
TwoOffShellCalculator.h:149
Herwig::TwoOffShellCalculator::_oneoffwidth
WidthCalculatorBasePtr _oneoffwidth
pointer to object calculating the width for one-off shell particle.
Definition:
TwoOffShellCalculator.h:139
Herwig::TwoOffShellCalculator::_mother
Energy _mother
sum of the masses of the other decay products
Definition:
TwoOffShellCalculator.h:134
Herwig::TwoOffShellCalculator::getMass
Energy getMass(const int imass) const
Get the mass of one of the decay products.
Definition:
TwoOffShellCalculator.h:84
Herwig::TwoOffShellCalculator::operator=
TwoOffShellCalculator & operator=(const TwoOffShellCalculator &)=delete
Private and non-existent assignment operator.
Herwig::TwoOffShellCalculator::_scale
Energy2 _scale
the mass squared of the decaying particle
Definition:
TwoOffShellCalculator.h:154
Herwig::TwoOffShellCalculator::partialWidth
Energy partialWidth(Energy2 scale) const
member to calculate the partial width.
Herwig::TwoOffShellCalculator::_themass
int _themass
The second mass which is offshell.
Definition:
TwoOffShellCalculator.h:125
Herwig::TwoOffShellCalculator::_minmass
Energy _minmass
the minimum allowed mass
Definition:
TwoOffShellCalculator.h:129
Herwig::TwoOffShellCalculator::_massptr
GenericMassGeneratorPtr _massptr
pointer to object calculating the mass of the particle
Definition:
TwoOffShellCalculator.h:144
Herwig::TwoOffShellCalculator::resetMass
void resetMass(int imass, Energy mass)
Get the mass of one of the decay products.
Definition:
TwoOffShellCalculator.h:74
Herwig::WidthCalculatorBase
The WidthCalculatorBase class is a base class to be used by classes which calculate partial widths fo...
Definition:
WidthCalculatorBase.h:29
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
ThePEG
ThePEG::sqrt
double sqrt(int x)
Herwig::TwoOffShellIntegrand
Class for the integrand of a matrix element where two of the outgoing particles is off-shell.
Definition:
TwoOffShellCalculator.h:164
Herwig::TwoOffShellIntegrand::TwoOffShellIntegrand
TwoOffShellIntegrand(tcTwoOffShellCalculatorPtr in, Energy2 m2, Energy2 mw)
Constructor.
Definition:
TwoOffShellCalculator.h:174
Herwig::TwoOffShellIntegrand::operator()
Energy operator()(double x) const
Retreive function value.
Definition:
TwoOffShellCalculator.h:181
Herwig::TwoOffShellIntegrand::ValType
Energy ValType
Return type for the GSLIntegrator.
Definition:
TwoOffShellCalculator.h:187
Herwig::TwoOffShellIntegrand::ArgType
double ArgType
Argument type for the GSLIntegrator.
Definition:
TwoOffShellCalculator.h:185
Herwig::TwoOffShellIntegrand::_integrand
cTwoOffShellCalculatorPtr _integrand
pointer to the decay integrator
Definition:
TwoOffShellCalculator.h:194
Herwig::TwoOffShellIntegrand::_mwidth
Energy2 _mwidth
The mass times width for the off-shell particle for the Jacobian transform.
Definition:
TwoOffShellCalculator.h:204
Herwig::TwoOffShellIntegrand::_mass2
Energy2 _mass2
The mass squared for the off-shell particle for the Jacobian transform.
Definition:
TwoOffShellCalculator.h:199
Generated on Thu Jun 20 2024 17:50:53 for Herwig by
1.9.6