cepgen
is hosted by
Hepforge
,
IPPP Durham
CepGen
1.2.5
Central exclusive processes event generator
Loading...
Searching...
No Matches
PhaseSpaceGenerator.h
Go to the documentation of this file.
1
/*
2
* CepGen: a central exclusive processes event generator
3
* Copyright (C) 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_PhaseSpaceGenerator_h
20
#define CepGen_Process_PhaseSpaceGenerator_h
21
22
#include "
CepGen/Modules/NamedModule.h
"
23
24
namespace
cepgen
{
25
namespace
proc {
26
class
FactorisedProcess;
27
}
28
namespace
cuts {
29
struct
Central;
30
}
34
class
PhaseSpaceGenerator
:
public
NamedModule
<PhaseSpaceGenerator> {
35
public
:
36
explicit
PhaseSpaceGenerator
(
const
ParametersList
& params) :
NamedModule
(params) {}
37
38
virtual
bool
ktFactorised
()
const
{
return
false
; }
39
40
virtual
void
setCentralCuts
(
const
cuts::Central
&) {}
41
virtual
void
initialise
(
proc::FactorisedProcess
*) = 0;
42
43
virtual
bool
generate
() = 0;
44
virtual
double
weight
()
const
= 0;
45
46
virtual
pdgids_t
partons
()
const
= 0;
47
virtual
void
setCentral
(
const
std::vector<int>&) = 0;
48
virtual
std::vector<int>
central
()
const
= 0;
49
50
// Mandelstam variables
51
virtual
double
that
()
const
= 0;
52
virtual
double
uhat
()
const
= 0;
53
};
54
}
// namespace cepgen
55
56
#endif
NamedModule.h
cepgen::NamedModule
Base runtime module object.
Definition
NamedModule.h:28
cepgen::ParametersList
Definition
ParametersList.h:52
cepgen::PhaseSpaceGenerator
Class template to define any phase space helper process.
Definition
PhaseSpaceGenerator.h:34
cepgen::PhaseSpaceGenerator::weight
virtual double weight() const =0
Return the event weight for a kinematics combination.
cepgen::PhaseSpaceGenerator::central
virtual std::vector< int > central() const =0
List of outgoing central particles in kinematics.
cepgen::PhaseSpaceGenerator::uhat
virtual double uhat() const =0
cepgen::PhaseSpaceGenerator::initialise
virtual void initialise(proc::FactorisedProcess *)=0
Set all process parameters.
cepgen::PhaseSpaceGenerator::PhaseSpaceGenerator
PhaseSpaceGenerator(const ParametersList ¶ms)
Definition
PhaseSpaceGenerator.h:36
cepgen::PhaseSpaceGenerator::that
virtual double that() const =0
cepgen::PhaseSpaceGenerator::setCentralCuts
virtual void setCentralCuts(const cuts::Central &)
Set cuts on central particles.
Definition
PhaseSpaceGenerator.h:40
cepgen::PhaseSpaceGenerator::ktFactorised
virtual bool ktFactorised() const
Definition
PhaseSpaceGenerator.h:38
cepgen::PhaseSpaceGenerator::setCentral
virtual void setCentral(const std::vector< int > &)=0
Override the central particles list.
cepgen::PhaseSpaceGenerator::partons
virtual pdgids_t partons() const =0
List of incoming partons in kinematics.
cepgen::PhaseSpaceGenerator::generate
virtual bool generate()=0
Generate a kinematics combination, and return a success flag.
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::pdgids_t
std::vector< pdgid_t > pdgids_t
Definition
ParticleProperties.h:27
cepgen::cuts::Central
Centrally produced particles phase space cuts.
Definition
Cuts.h:31
CepGen
Process
PhaseSpaceGenerator.h
Generated on Mon Jul 29 2024 for CepGen by
1.9.7