cepgen
is hosted by
Hepforge
,
IPPP Durham
CepGen
1.2.5
Central exclusive processes event generator
Loading...
Searching...
No Matches
PartonsPhaseSpaceGenerator.h
Go to the documentation of this file.
1
/*
2
* CepGen: a central exclusive processes event generator
3
* Copyright (C) 2023-2024 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
#ifndef CepGen_Process_PartonsPhaseSpaceGenerator_h
20
#define CepGen_Process_PartonsPhaseSpaceGenerator_h
21
22
#include <memory>
23
24
#include "
CepGen/Core/SteeredObject.h
"
25
26
namespace
cepgen
{
27
class
PartonFlux;
28
namespace
proc {
29
class
FactorisedProcess;
30
}
37
class
PartonsPhaseSpaceGenerator
:
public
SteeredObject
<PartonsPhaseSpaceGenerator> {
38
public
:
39
explicit
PartonsPhaseSpaceGenerator
(
const
ParametersList
& params) :
SteeredObject
(params) {}
40
41
void
initialise
(
proc::FactorisedProcess
*
process
) {
42
proc_ =
process
;
43
initialise
();
44
}
45
46
virtual
bool
ktFactorised
()
const
= 0;
47
virtual
bool
generatePartonKinematics
() = 0;
48
virtual
double
fluxes
()
const
= 0;
49
51
template
<
typename
T = PartonFlux>
52
inline
const
T&
positiveFlux
()
const
{
53
return
dynamic_cast<
const
T&
>
(*pos_flux_);
54
}
56
template
<
typename
T = PartonFlux>
57
inline
const
T&
negativeFlux
()
const
{
58
return
dynamic_cast<
const
T&
>
(*neg_flux_);
59
}
60
61
protected
:
62
virtual
void
initialise
() = 0;
63
inline
proc::FactorisedProcess
&
process
() {
return
*proc_; }
65
inline
const
proc::FactorisedProcess
&
process
()
const
{
return
const_cast<
const
proc::FactorisedProcess
&
>
(*proc_); }
66
std::unique_ptr<PartonFlux>
pos_flux_
{
nullptr
},
neg_flux_
{
nullptr
};
67
68
private
:
69
proc::FactorisedProcess* proc_{
nullptr
};
//NOT owning
70
};
71
}
// namespace cepgen
72
73
#endif
SteeredObject.h
cepgen::ParametersList
Definition
ParametersList.h:52
cepgen::PartonsPhaseSpaceGenerator
A generic phase space integration wrapper.
Definition
PartonsPhaseSpaceGenerator.h:37
cepgen::PartonsPhaseSpaceGenerator::PartonsPhaseSpaceGenerator
PartonsPhaseSpaceGenerator(const ParametersList ¶ms)
Definition
PartonsPhaseSpaceGenerator.h:39
cepgen::PartonsPhaseSpaceGenerator::positiveFlux
const T & positiveFlux() const
Retrieve a type-casted positive-z parton flux modelling.
Definition
PartonsPhaseSpaceGenerator.h:52
cepgen::PartonsPhaseSpaceGenerator::generatePartonKinematics
virtual bool generatePartonKinematics()=0
Generate the 4-momentum of incoming partons.
cepgen::PartonsPhaseSpaceGenerator::initialise
void initialise(proc::FactorisedProcess *process)
Definition
PartonsPhaseSpaceGenerator.h:41
cepgen::PartonsPhaseSpaceGenerator::ktFactorised
virtual bool ktFactorised() const =0
Do incoming partons carry a primordial kT?
cepgen::PartonsPhaseSpaceGenerator::fluxes
virtual double fluxes() const =0
Retrieve the event weight in the phase space.
cepgen::PartonsPhaseSpaceGenerator::pos_flux_
std::unique_ptr< PartonFlux > pos_flux_
Definition
PartonsPhaseSpaceGenerator.h:66
cepgen::PartonsPhaseSpaceGenerator::process
proc::FactorisedProcess & process()
Consumer process object Const-qualified consumer process object.
Definition
PartonsPhaseSpaceGenerator.h:63
cepgen::PartonsPhaseSpaceGenerator::process
const proc::FactorisedProcess & process() const
Definition
PartonsPhaseSpaceGenerator.h:65
cepgen::PartonsPhaseSpaceGenerator::initialise
virtual void initialise()=0
Initialise the process and define the integration phase space.
cepgen::PartonsPhaseSpaceGenerator::negativeFlux
const T & negativeFlux() const
Retrieve a type-casted negative-z parton flux modelling.
Definition
PartonsPhaseSpaceGenerator.h:57
cepgen::PartonsPhaseSpaceGenerator::neg_flux_
std::unique_ptr< PartonFlux > neg_flux_
Definition
PartonsPhaseSpaceGenerator.h:66
cepgen::SteeredObject
Base user-steerable object.
Definition
SteeredObject.h:41
cepgen::proc::FactorisedProcess
Generic parton emission-factorised process.
Definition
FactorisedProcess.h:33
cepgen
Common namespace for this Monte Carlo generator.
Definition
CommandLineHandler.cpp:36
CepGen
Process
PartonsPhaseSpaceGenerator.h
Generated on Mon Jul 29 2024 for CepGen by
1.9.7