cepgen
is hosted by
Hepforge
,
IPPP Durham
CepGen
1.2.5
Central exclusive processes event generator
Loading...
Searching...
No Matches
DreesZeppenfeldCollinearFlux.cpp
Go to the documentation of this file.
1
/*
2
* CepGen: a central exclusive processes event generator
3
* Copyright (C) 2023 Laurent Forthomme
4
*
5
* This program is free software: you can redistribute it and/or modify
6
* it under the terms of the GNU General Public License as published by
7
* the Free Software Foundation, either version 3 of the License, or
8
* any later version.
9
*
10
* This program is distributed in the hope that it will be useful,
11
* but WITHOUT ANY WARRANTY; without even the implied warranty of
12
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
* GNU General Public License for more details.
14
*
15
* You should have received a copy of the GNU General Public License
16
* along with this program. If not, see <http://www.gnu.org/licenses/>.
17
*/
18
19
#include "
CepGen/CollinearFluxes/CollinearFlux.h
"
20
#include "
CepGen/Core/Exception.h
"
21
#include "
CepGen/FormFactors/Parameterisation.h
"
22
#include "
CepGen/Modules/FormFactorsFactory.h
"
23
#include "
CepGen/Modules/PartonFluxFactory.h
"
24
#include "
CepGen/Physics/Constants.h
"
25
#include "
CepGen/Physics/PDG.h
"
26
#include "
CepGen/Utils/Limits.h
"
27
28
namespace
cepgen
{
32
class
DreesZeppenfeldCollinearFlux
final :
public
CollinearFlux
{
33
public
:
34
explicit
DreesZeppenfeldCollinearFlux
(
const
ParametersList
& params)
35
:
CollinearFlux
(params),
scale_
(
steer
<double>(
"scale"
)) {}
36
37
static
ParametersDescription
description
() {
38
auto
desc =
CollinearFlux::description
();
39
desc.setDescription(
"Drees-Zeppenfeld Q^{2}-dependent flux"
);
40
desc.add<
double
>(
"scale"
, 0.71);
41
return
desc;
42
}
43
44
bool
fragmenting
()
const override
{
return
true
; }
45
pdgid_t
partonPdgId
()
const override
{
return
PDG::photon
; }
46
47
double
fluxQ2
(
double
x,
double
q2)
const override
{
48
if
(!
x_range_
.
contains
(x,
true
))
49
return
0.;
50
const
auto
fq4 = std::pow(1 + q2 /
scale_
, -4);
// Q^2-dependent form factor
51
return
prefactor_
* 0.5 * (1. + std::pow(1. - x, 2)) / q2 * fq4;
52
}
53
54
protected
:
55
double
mass2
()
const override
{
return
mp2_
; }
56
const
double
scale_
;
57
};
58
}
// namespace cepgen
59
REGISTER_COLLINEAR_FLUX
(
"DreesZeppenfeld"
, DreesZeppenfeldCollinearFlux);
CollinearFlux.h
Constants.h
Exception.h
FormFactorsFactory.h
Parameterisation.h
Limits.h
PDG.h
PartonFluxFactory.h
REGISTER_COLLINEAR_FLUX
#define REGISTER_COLLINEAR_FLUX(name, obj)
Add a generic collinear parton flux evaluator builder definition.
Definition
PartonFluxFactory.h:25
cepgen::CollinearFlux
Definition
CollinearFlux.h:25
cepgen::CollinearFlux::description
static ParametersDescription description()
Definition
CollinearFlux.cpp:25
cepgen::DreesZeppenfeldCollinearFlux
Virtuality-dependent Drees-Zeppenfeld photon flux.
Definition
DreesZeppenfeldCollinearFlux.cpp:32
cepgen::DreesZeppenfeldCollinearFlux::fragmenting
bool fragmenting() const override
Is initiator particle fragmenting after parton emission?
Definition
DreesZeppenfeldCollinearFlux.cpp:44
cepgen::DreesZeppenfeldCollinearFlux::fluxQ2
double fluxQ2(double x, double q2) const override
Compute the collinear flux for this x value and virtuality.
Definition
DreesZeppenfeldCollinearFlux.cpp:47
cepgen::DreesZeppenfeldCollinearFlux::description
static ParametersDescription description()
Definition
DreesZeppenfeldCollinearFlux.cpp:37
cepgen::DreesZeppenfeldCollinearFlux::scale_
const double scale_
Definition
DreesZeppenfeldCollinearFlux.cpp:56
cepgen::DreesZeppenfeldCollinearFlux::DreesZeppenfeldCollinearFlux
DreesZeppenfeldCollinearFlux(const ParametersList ¶ms)
Definition
DreesZeppenfeldCollinearFlux.cpp:34
cepgen::DreesZeppenfeldCollinearFlux::partonPdgId
pdgid_t partonPdgId() const override
Parton PDG identifier.
Definition
DreesZeppenfeldCollinearFlux.cpp:45
cepgen::DreesZeppenfeldCollinearFlux::mass2
double mass2() const override
Initiator particle squared mass (in )
Definition
DreesZeppenfeldCollinearFlux.cpp:55
cepgen::Limits::contains
bool contains(double val, bool exclude_boundaries=false) const
Check if value is inside limits' boundaries.
Definition
Limits.cpp:77
cepgen::PDG::photon
@ photon
Definition
PDG.h:41
cepgen::ParametersDescription
A description object for parameters collection.
Definition
ParametersDescription.h:26
cepgen::ParametersList
Definition
ParametersList.h:52
cepgen::PartonFlux::prefactor_
const double prefactor_
Definition
PartonFlux.h:38
cepgen::PartonFlux::mp2_
const double mp2_
Definition
PartonFlux.h:39
cepgen::PartonFlux::x_range_
const Limits x_range_
Definition
PartonFlux.h:40
cepgen::Steerable::steer
T steer(const std::string &key) const
Retrieve a parameters as previously steered.
Definition
Steerable.h:39
cepgen
Common namespace for this Monte Carlo generator.
Definition
CommandLineHandler.cpp:36
cepgen::pdgid_t
unsigned long long pdgid_t
Alias for the integer-like particle PDG id.
Definition
ParticleProperties.h:26
CepGen
CollinearFluxes
DreesZeppenfeldCollinearFlux.cpp
Generated on Mon Jul 29 2024 for CepGen by
1.9.7