cepgen is hosted by Hepforge, IPPP Durham
CepGen 1.2.3
A generic central exclusive processes event generator
Loading...
Searching...
No Matches
FactorisedProcess.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_FactorisedProcess_h
20#define CepGen_Process_FactorisedProcess_h
21
24
25namespace cepgen {
26 namespace proc {
33 class FactorisedProcess : public Process {
34 public:
38 explicit FactorisedProcess(const ParametersList& params, const spdgids_t& output);
40
41 double computeWeight() override;
42 void fillKinematics() override final;
43
45
46 protected:
47 void addEventContent() override;
48 void prepareKinematics() override final;
49
50 virtual void prepareFactorisedPhaseSpace() = 0;
51 virtual double computeFactorisedMatrixElement() = 0;
52
53 //--- Mandelstam variables
54 double that() const;
55 double uhat() const;
56
58 const std::unique_ptr<PhaseSpaceGenerator> psgen_;
59 const bool symmetrise_;
60 const bool store_alphas_;
61
62 private:
63 double kin_prefactor_{1.};
64 };
65 } // namespace proc
66} // namespace cepgen
67
68#endif
A description object for parameters collection.
Generic parton emission-factorised process.
virtual void prepareFactorisedPhaseSpace()=0
Prepare central part of the Jacobian after kinematics is set.
const std::unique_ptr< PhaseSpaceGenerator > psgen_
Kinematic variables generator for the phase space coverage.
void fillKinematics() override final
Fill the Event object with the particles' kinematics.
void prepareKinematics() override final
Compute the incoming state kinematics.
static ParametersDescription description()
virtual double computeFactorisedMatrixElement()=0
Factorised matrix element (event weight)
void addEventContent() override
Set the incoming and outgoing state to be expected in the process.
double computeWeight() override
Compute the phase space point weight.
Class template to define any process to compute using this MC integrator/events generator.
Definition Process.h:34
Common namespace for this Monte Carlo generator.
std::vector< spdgid_t > spdgids_t