cepgen
is hosted by
Hepforge
,
IPPP Durham
CepGen
1.2.5
Central exclusive processes event generator
Loading...
Searching...
No Matches
ProcessIntegrand.h
Go to the documentation of this file.
1
/*
2
* CepGen: a central exclusive processes event generator
3
* Copyright (C) 2013-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_Integration_ProcessIntegrand_h
20
#define CepGen_Integration_ProcessIntegrand_h
21
22
#include <memory>
23
24
#include "
CepGen/EventFilter/EventBrowser.h
"
25
#include "
CepGen/Integration/Integrand.h
"
26
27
namespace
cepgen
{
28
class
RunParameters;
29
namespace
proc {
30
class
Process;
31
}
32
namespace
utils {
33
class
Timer;
34
}
36
class
ProcessIntegrand
:
public
Integrand
{
37
public
:
38
explicit
ProcessIntegrand
(
const
proc::Process
&);
39
explicit
ProcessIntegrand
(
const
RunParameters
*);
40
49
double
eval
(
const
std::vector<double>& x)
override
;
50
size_t
size
()
const override
;
51
bool
hasProcess
() const override final {
return
true
; }
52
53
proc::Process
&
process
();
54
const
proc::Process
&
process
()
const
;
55
56
void
setStorage
(
bool
store) { storage_ = store; }
57
bool
storage
()
const
{
return
storage_; }
58
59
private
:
60
void
setProcess(
const
proc::Process
&);
61
62
std::unique_ptr<proc::Process> process_;
63
const
RunParameters
* params_{
nullptr
};
64
const
std::unique_ptr<utils::Timer> tmr_;
65
utils::EventBrowser bws_;
66
bool
storage_{
false
};
67
};
68
}
// namespace cepgen
69
70
#endif
EventBrowser.h
Integrand.h
cepgen::Integrand
An integrand wrapper placeholder.
Definition
Integrand.h:27
cepgen::ProcessIntegrand
Wrapper to the function to be integrated.
Definition
ProcessIntegrand.h:36
cepgen::ProcessIntegrand::process
proc::Process & process()
Thread-local physics process.
Definition
ProcessIntegrand.cpp:73
cepgen::ProcessIntegrand::storage
bool storage() const
Are the events currently generated in this run to be stored?
Definition
ProcessIntegrand.h:57
cepgen::ProcessIntegrand::hasProcess
bool hasProcess() const override final
Does this integrand also contain a process object?
Definition
ProcessIntegrand.h:51
cepgen::ProcessIntegrand::setStorage
void setStorage(bool store)
Specify if the generated events are to be stored.
Definition
ProcessIntegrand.h:56
cepgen::ProcessIntegrand::eval
double eval(const std::vector< double > &x) override
Compute the integrand for a given phase space point (or "event")
Definition
ProcessIntegrand.cpp:85
cepgen::ProcessIntegrand::size
size_t size() const override
Phase space dimension.
Definition
ProcessIntegrand.cpp:45
cepgen::RunParameters
List of parameters used to start and run the simulation job.
Definition
RunParameters.h:41
cepgen::proc::Process
Class template to define any process to compute using this MC integrator/events generator.
Definition
Process.h:34
cepgen
Common namespace for this Monte Carlo generator.
Definition
CommandLineHandler.cpp:36
CepGen
Integration
ProcessIntegrand.h
Generated on Mon Jul 29 2024 for CepGen by
1.9.7