herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.3.0
PDT
ThreeBodyAllOn1IntegralCalculator.h
1
// -*- C++ -*-
2
//
3
// ThreeBodyAllOn1IntegralCalculator.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_ThreeBodyAllOn1IntegralCalculator_H
10
#define HERWIG_ThreeBodyAllOn1IntegralCalculator_H
11
// This is the declaration of the ThreeBodyAllOn1IntegralCalculator class.
12
13
#include "WidthCalculatorBase.h"
14
#include "Herwig/Utilities/GSLIntegrator.h"
15
16
namespace
Herwig
{
17
using namespace
ThePEG
;
18
27
template
<
class
T>
28
class
ThreeBodyAllOn1IntegralCalculator
:
public
WidthCalculatorBase
{
29
30
public
:
31
44
ThreeBodyAllOn1IntegralCalculator
(
int
intype, Energy inmass, Energy inwidth,
45
double
inpow, T indGamma,
int
mode,
46
Energy m1,Energy m2,Energy m3)
47
:
_variabletype
(intype),
_intmass
(inmass),
_intwidth
(inwidth),
48
_intpower
(inpow),
_mode
(mode),
_theDgamma
(indGamma) {
49
_m
.resize(4);
50
_m2
.resize(4);
51
_m
[1]=m1;
_m
[2]=m2;
_m
[3]=m3;
52
for
(
int
ix=1;ix<4;++ix)
_m2
[ix]=
sqr
(
_m
[ix]);
53
}
54
60
Energy
partialWidth
(Energy2 q2)
const
;
61
69
void
resetMass
(
int
imass,Energy mass) {
70
assert(imass<4);
71
_m
[imass]=mass;
72
_m2
[imass]=mass*mass;
73
}
74
81
Energy
getMass
(
const
int
imass)
const
{
82
assert(imass<4);
83
return
_m
[imass];
84
}
85
92
Energy
otherMass
(
const
int
imass)
const
{
93
assert(imass>0&&imass<4);
94
if
(imass==1)
return
_m
[2]+
_m
[3];
95
else
if
(imass==2)
return
_m
[1]+
_m
[3];
96
else
return
_m
[1]+
_m
[2];
97
}
98
104
Energy
operator ()
(
double
argument)
const
;
106
typedef
double
ArgType
;
108
typedef
Energy
ValType
;
109
110
private
:
111
115
ThreeBodyAllOn1IntegralCalculator
&
116
operator=
(
const
ThreeBodyAllOn1IntegralCalculator
&) =
delete
;
117
118
private
:
119
123
int
_variabletype
;
124
128
Energy
_intmass
;
129
133
Energy
_intwidth
;
134
138
double
_intpower
;
139
140
144
int
_mode
;
145
149
mutable
vector<Energy>
_m
;
150
154
mutable
vector<Energy2>
_m2
;
155
159
T
_theDgamma
;
160
164
GSLIntegrator
_integrator
;
165
166
};
167
}
168
169
#ifndef ThePEG_TEMPLATES_IN_CC_FILE
170
#include "ThreeBodyAllOn1IntegralCalculator.tcc"
171
#endif
172
173
#endif
/* HERWIG_ThreeBodyAllOn1IntegralCalculator_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::ThreeBodyAllOn1IntegralCalculator
The ThreeBodyAllOn1IntegralCalculator class is designed to integrate a function which gives to give ...
Definition:
ThreeBodyAllOn1IntegralCalculator.h:28
Herwig::ThreeBodyAllOn1IntegralCalculator::operator=
ThreeBodyAllOn1IntegralCalculator & operator=(const ThreeBodyAllOn1IntegralCalculator &)=delete
Private and non-existent assignment operator.
Herwig::ThreeBodyAllOn1IntegralCalculator::partialWidth
Energy partialWidth(Energy2 q2) const
calculate the width for a given mass
Herwig::ThreeBodyAllOn1IntegralCalculator::ArgType
double ArgType
Argument type for the GSLIntegrator.
Definition:
ThreeBodyAllOn1IntegralCalculator.h:106
Herwig::ThreeBodyAllOn1IntegralCalculator::operator()
Energy operator()(double argument) const
The integrand for the inner integrand.
Herwig::ThreeBodyAllOn1IntegralCalculator::_intwidth
Energy _intwidth
The width for the jacobian.
Definition:
ThreeBodyAllOn1IntegralCalculator.h:133
Herwig::ThreeBodyAllOn1IntegralCalculator::resetMass
void resetMass(int imass, Energy mass)
Get the mass of one of the decay products.
Definition:
ThreeBodyAllOn1IntegralCalculator.h:69
Herwig::ThreeBodyAllOn1IntegralCalculator::_variabletype
int _variabletype
which scale we are using
Definition:
ThreeBodyAllOn1IntegralCalculator.h:123
Herwig::ThreeBodyAllOn1IntegralCalculator::_intmass
Energy _intmass
The mass for the jacobian.
Definition:
ThreeBodyAllOn1IntegralCalculator.h:128
Herwig::ThreeBodyAllOn1IntegralCalculator::otherMass
Energy otherMass(const int imass) const
Get the masses of all bar the one specified.
Definition:
ThreeBodyAllOn1IntegralCalculator.h:92
Herwig::ThreeBodyAllOn1IntegralCalculator::_intpower
double _intpower
The power for power-law smoothing.
Definition:
ThreeBodyAllOn1IntegralCalculator.h:138
Herwig::ThreeBodyAllOn1IntegralCalculator::_m2
vector< Energy2 > _m2
mass squareds of the external particles
Definition:
ThreeBodyAllOn1IntegralCalculator.h:154
Herwig::ThreeBodyAllOn1IntegralCalculator::_integrator
GSLIntegrator _integrator
the integrator
Definition:
ThreeBodyAllOn1IntegralCalculator.h:164
Herwig::ThreeBodyAllOn1IntegralCalculator::ValType
Energy ValType
Return type for the GSLIntegrator.
Definition:
ThreeBodyAllOn1IntegralCalculator.h:108
Herwig::ThreeBodyAllOn1IntegralCalculator::getMass
Energy getMass(const int imass) const
Get the mass of one of the decay products.
Definition:
ThreeBodyAllOn1IntegralCalculator.h:81
Herwig::ThreeBodyAllOn1IntegralCalculator::_mode
int _mode
The mode to be integrated.
Definition:
ThreeBodyAllOn1IntegralCalculator.h:144
Herwig::ThreeBodyAllOn1IntegralCalculator::_theDgamma
T _theDgamma
The function for the differential rate.
Definition:
ThreeBodyAllOn1IntegralCalculator.h:159
Herwig::ThreeBodyAllOn1IntegralCalculator::_m
vector< Energy > _m
masses of the external particles
Definition:
ThreeBodyAllOn1IntegralCalculator.h:149
Herwig::ThreeBodyAllOn1IntegralCalculator::ThreeBodyAllOn1IntegralCalculator
ThreeBodyAllOn1IntegralCalculator(int intype, Energy inmass, Energy inwidth, double inpow, T indGamma, int mode, Energy m1, Energy m2, Energy m3)
Constructor with the as a function.
Definition:
ThreeBodyAllOn1IntegralCalculator.h:44
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::sqr
constexpr auto sqr(const T &x) -> decltype(x *x)
Generated on Thu Jun 20 2024 17:50:53 for Herwig by
1.9.6