cepgen
is hosted by
Hepforge
,
IPPP Durham
CepGen
1.2.5
Central exclusive processes event generator
Loading...
Searching...
No Matches
NachtmannAmplitudes.h
Go to the documentation of this file.
1
/*
2
* CepGen: a central exclusive processes event generator
3
* Copyright (C) 2013-2021 Laurent Forthomme
4
* 2017-2019 Wolfgang Schaefer
5
* 2019 Marta Luszczak
6
*
7
* This program is free software: you can redistribute it and/or modify
8
* it under the terms of the GNU General Public License as published by
9
* the Free Software Foundation, either version 3 of the License, or
10
* any later version.
11
*
12
* This program is distributed in the hope that it will be useful,
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
* GNU General Public License for more details.
16
*
17
* You should have received a copy of the GNU General Public License
18
* along with this program. If not, see <http://www.gnu.org/licenses/>.
19
*/
20
21
#ifndef CepGen_Physics_NachtmannAmplitudes_h
22
#define CepGen_Physics_NachtmannAmplitudes_h
23
24
#include <complex>
25
26
#include "
CepGen/Core/SteeredObject.h
"
27
28
namespace
cepgen
{
29
class
ParametersList;
32
class
NachtmannAmplitudes
:
public
SteeredObject
<NachtmannAmplitudes> {
33
public
:
34
explicit
NachtmannAmplitudes
(
const
ParametersList
&);
35
37
enum class
Mode
{
SM
,
W
,
Wbar
,
phiW
,
phiWbar
,
phiB
,
phiBbar
,
WB
,
WbarB
};
38
friend
std::ostream&
operator<<
(std::ostream&,
const
Mode
&);
39
const
Mode
&
mode
()
const
{
return
mode_; }
40
42
class
Kinematics
{
43
public
:
44
Kinematics
(
double
mw2,
double
shat
,
double
that
,
double
uhat
);
45
bool
operator!=
(
const
Kinematics
&)
const
;
46
friend
std::ostream&
operator<<
(std::ostream&,
const
Kinematics
&);
47
static
Kinematics
fromScosTheta
(
double
shat
,
double
cos_theta
,
double
mw2);
48
49
// base variables
50
const
double
shat
{0.},
that
{0.},
uhat
{0.};
51
52
private
:
53
void
setCosTheta(
double
cos_theta
);
55
const
double
mw2_{0.};
56
57
public
:
58
// all derived variables
59
const
double
shat2
{0.};
60
const
double
beta2
{0.},
beta
{0.};
61
const
double
inv_gamma2
{0.},
gamma2
{0.},
gamma
{0.},
inv_gamma
{0.};
62
double
cos_theta
{0.},
cos_theta2
{0.},
sin_theta2
{0.},
sin_theta
{0.};
63
double
invA
{0.};
64
};
65
67
std::complex<double>
operator()
(
const
Kinematics
&,
short
lam1,
short
lam2,
short
lam3,
short
lam4)
const
;
68
69
static
ParametersDescription
description
();
70
71
private
:
72
const
Mode
mode_;
74
const
struct
EFTParameters :
SteeredObject
<EFTParameters> {
75
explicit
EFTParameters(
const
ParametersList
&);
76
const
double
s1, mH;
77
double
c1()
const
{
return
sqrt(1. - s1 * s1); }
78
static
ParametersDescription description();
79
} eft_ext_;
81
struct
Helicities {
82
short
lam1;
83
short
lam2;
84
short
lam3;
85
short
lam4;
86
};
87
const
double
G_EM_SQ;
88
const
double
G_EM;
89
91
std::complex<double> amplitudeSM(
const
Kinematics&,
const
Helicities&)
const
;
92
std::complex<double> amplitudeW(
const
Kinematics&,
const
Helicities&)
const
;
93
std::complex<double> amplitudeWbar(
const
Kinematics&,
const
Helicities&)
const
;
94
std::complex<double> amplitudephiW(
const
Kinematics&,
const
Helicities&)
const
;
95
std::complex<double> amplitudeWB(
const
Kinematics&,
const
Helicities&)
const
;
96
std::complex<double> amplitudeWbarB(
const
Kinematics&,
const
Helicities&)
const
;
97
};
98
}
// namespace cepgen
99
100
#endif
SteeredObject.h
cepgen::Kinematics
List of kinematic constraints to apply on the process phase space.
Definition
Kinematics.h:27
cepgen::NachtmannAmplitudes::Kinematics
Helper container to handle all kinematics variables computation once.
Definition
NachtmannAmplitudes.h:42
cepgen::NachtmannAmplitudes::Kinematics::sin_theta
double sin_theta
Definition
NachtmannAmplitudes.h:62
cepgen::NachtmannAmplitudes::Kinematics::that
const double that
Definition
NachtmannAmplitudes.h:50
cepgen::NachtmannAmplitudes::Kinematics::fromScosTheta
static Kinematics fromScosTheta(double shat, double cos_theta, double mw2)
Definition
NachtmannAmplitudes.cpp:63
cepgen::NachtmannAmplitudes::Kinematics::inv_gamma2
const double inv_gamma2
Definition
NachtmannAmplitudes.h:61
cepgen::NachtmannAmplitudes::Kinematics::invA
double invA
Definition
NachtmannAmplitudes.h:63
cepgen::NachtmannAmplitudes::Kinematics::beta
const double beta
Definition
NachtmannAmplitudes.h:60
cepgen::NachtmannAmplitudes::Kinematics::inv_gamma
const double inv_gamma
Definition
NachtmannAmplitudes.h:61
cepgen::NachtmannAmplitudes::Kinematics::cos_theta2
double cos_theta2
Definition
NachtmannAmplitudes.h:62
cepgen::NachtmannAmplitudes::Kinematics::shat2
const double shat2
Definition
NachtmannAmplitudes.h:59
cepgen::NachtmannAmplitudes::Kinematics::uhat
const double uhat
Definition
NachtmannAmplitudes.h:50
cepgen::NachtmannAmplitudes::Kinematics::gamma
const double gamma
Definition
NachtmannAmplitudes.h:61
cepgen::NachtmannAmplitudes::Kinematics::operator<<
friend std::ostream & operator<<(std::ostream &, const Kinematics &)
Definition
NachtmannAmplitudes.cpp:84
cepgen::NachtmannAmplitudes::Kinematics::sin_theta2
double sin_theta2
Definition
NachtmannAmplitudes.h:62
cepgen::NachtmannAmplitudes::Kinematics::beta2
const double beta2
Definition
NachtmannAmplitudes.h:60
cepgen::NachtmannAmplitudes::Kinematics::shat
const double shat
Definition
NachtmannAmplitudes.h:50
cepgen::NachtmannAmplitudes::Kinematics::operator!=
bool operator!=(const Kinematics &) const
Definition
NachtmannAmplitudes.cpp:79
cepgen::NachtmannAmplitudes::Kinematics::gamma2
const double gamma2
Definition
NachtmannAmplitudes.h:61
cepgen::NachtmannAmplitudes::Kinematics::cos_theta
double cos_theta
Definition
NachtmannAmplitudes.h:62
cepgen::NachtmannAmplitudes
Amplitudes computational tool, as developed by Nachtmann et al. .
Definition
NachtmannAmplitudes.h:32
cepgen::NachtmannAmplitudes::Mode
Mode
Model giving an amplitude for the two-photon WW production.
Definition
NachtmannAmplitudes.h:37
cepgen::NachtmannAmplitudes::Mode::WB
@ WB
cepgen::NachtmannAmplitudes::Mode::phiBbar
@ phiBbar
cepgen::NachtmannAmplitudes::Mode::phiW
@ phiW
cepgen::NachtmannAmplitudes::Mode::WbarB
@ WbarB
cepgen::NachtmannAmplitudes::Mode::SM
@ SM
cepgen::NachtmannAmplitudes::Mode::W
@ W
cepgen::NachtmannAmplitudes::Mode::Wbar
@ Wbar
cepgen::NachtmannAmplitudes::Mode::phiWbar
@ phiWbar
cepgen::NachtmannAmplitudes::Mode::phiB
@ phiB
cepgen::NachtmannAmplitudes::mode
const Mode & mode() const
Definition
NachtmannAmplitudes.h:39
cepgen::NachtmannAmplitudes::operator<<
friend std::ostream & operator<<(std::ostream &, const Mode &)
Definition
NachtmannAmplitudes.cpp:256
cepgen::NachtmannAmplitudes::operator()
std::complex< double > operator()(const Kinematics &, short lam1, short lam2, short lam3, short lam4) const
Compute the amplitude for a given kinematics and a given set of helicity components.
Definition
NachtmannAmplitudes.cpp:90
cepgen::NachtmannAmplitudes::description
static ParametersDescription description()
Definition
NachtmannAmplitudes.cpp:249
cepgen::ParametersDescription
A description object for parameters collection.
Definition
ParametersDescription.h:26
cepgen::ParametersList
Definition
ParametersList.h:52
cepgen::SteeredObject
Base user-steerable object.
Definition
SteeredObject.h:41
cepgen
Common namespace for this Monte Carlo generator.
Definition
CommandLineHandler.cpp:36
CepGen
Physics
NachtmannAmplitudes.h
Generated on Mon Jul 29 2024 for CepGen by
1.9.7