cepgen
is hosted by
Hepforge
,
IPPP Durham
CepGen
N/A
Central exclusive processes event generator
Toggle main menu visibility
Main Page
Related Pages
Packages
Package List
Package Members
All
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
x
y
Functions
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
x
y
Variables
Typedefs
Enumerations
Classes
Class List
Class Index
Class Hierarchy
Class Members
All
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Functions
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Variables
a
b
c
d
e
f
g
h
i
k
l
m
n
p
q
r
s
t
u
v
w
x
y
z
Typedefs
Enumerations
Enumerator
b
c
d
e
g
h
i
l
m
n
p
r
t
u
w
x
y
z
Related Symbols
d
g
h
o
u
v
Files
File List
File Members
All
_
a
b
c
d
e
h
o
p
r
s
Functions
Variables
Macros
_
b
c
d
e
p
r
s
▼
CepGen
Reference manual
Bibliography
►
Packages
►
Classes
▼
Files
▼
File List
▼
include
▼
CepGen
►
Cards
►
Core
►
Event
►
EventFilter
►
FormFactors
►
Integration
▼
Modules
►
CardsHandlerFactory.h
►
CouplingFactory.h
►
DerivatorFactory.h
►
DocumentationGeneratorFactory.h
►
DrawerFactory.h
►
EventExporterFactory.h
►
EventImporterFactory.h
►
EventModifierFactory.h
►
FormFactorsFactory.h
►
FunctionalFactory.h
►
GeneratorWorkerFactory.h
►
IntegratorFactory.h
►
ModuleFactory.h
ModuleFactoryImpl.h
►
NamedModule.h
►
PartonFluxFactory.h
►
PartonsPhaseSpaceGeneratorFactory.h
►
PhaseSpaceGeneratorFactory.h
►
ProcessFactory.h
►
RandomGeneratorFactory.h
►
StructureFunctionsFactory.h
►
PartonFluxes
►
Physics
►
Process
►
StructureFunctions
►
Utils
►
Generator.h
►
Version.h
►
CepGenBoost
►
CepGenHepMC2
►
CepGenHepMC3
►
CepGenHerwig6
►
CepGenMadGraph
►
CepGenPythia6
►
CepGenPythia8
►
CepGenPython
►
CepGenRoot
►
File Members
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
Loading...
Searching...
No Matches
ProcessFactory.h
Go to the documentation of this file.
1
/*
2
* CepGen: a central exclusive processes event generator
3
* Copyright (C) 2013-2025 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_Modules_ProcessFactory_h
20
#define CepGen_Modules_ProcessFactory_h
21
22
#include "
CepGen/Modules/ModuleFactory.h
"
23
25
#define REGISTER_PROCESS(name, obj) \
26
namespace cepgen { \
27
namespace proc { \
28
struct BUILDER_NAME(obj) { \
29
BUILDER_NAME(obj)() { ProcessFactory::get().registerModule<obj>(name); } \
30
}; \
31
static const BUILDER_NAME(obj) gProc##obj; \
32
} \
33
} \
34
static_assert(true, "")
25
#define REGISTER_PROCESS(name, obj) \
…
36
#define PROCESS_F77_NAME(name) F77_##name
38
#define STRINGIFY(name) #name
40
#define REGISTER_FORTRAN_PROCESS(name, descr, f77_func) \
41
extern "C" { \
42
extern double f77_func##_(); \
43
} \
44
struct PROCESS_F77_NAME(name) : cepgen::proc::FortranFactorisedProcess { \
45
explicit PROCESS_F77_NAME(name)(const cepgen::ParametersList& params = cepgen::ParametersList()) \
46
: cepgen::proc::FortranFactorisedProcess(params, f77_func##_) { \
47
cepgen::proc::FortranFactorisedProcess::kProcParameters = params; \
48
} \
49
static cepgen::ParametersDescription description() { \
50
auto desc = cepgen::proc::FortranFactorisedProcess::description(); \
51
desc.setDescription(descr); \
52
return desc; \
53
} \
54
}; \
55
REGISTER_PROCESS(STRINGIFY(name), F77_##name)
40
#define REGISTER_FORTRAN_PROCESS(name, descr, f77_func) \
…
56
57
namespace
cepgen::proc
{
58
class
Process;
59
}
// namespace cepgen::proc
60
61
namespace
cepgen
{
63
DEFINE_FACTORY
(ProcessFactory,
proc::Process
,
"Physics processes factory"
);
64
}
// namespace cepgen
65
66
#endif
ModuleFactory.h
DEFINE_FACTORY
#define DEFINE_FACTORY(name, obj_type, description)
Define a factory instance for the definition of modules.
Definition
ModuleFactory.h:30
cepgen::proc::Process
Class template to define any process to compute using this MC integrator/events generator.
Definition
Process.h:34
cepgen::proc
Location for all physics processes to be generated.
Definition
GeneratorWorker.h:31
cepgen
Common namespace for this Monte Carlo generator.
Definition
Handler.h:26
include
CepGen
Modules
ProcessFactory.h
Generated on Tue Apr 22 2025 for CepGen by
1.10.0