cepgen is hosted by Hepforge, IPPP Durham
CepGen 1.2.5
Central exclusive processes event generator
Loading...
Searching...
No Matches
IncomingBeams.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_Physics_IncomingBeams_h
20#define CepGen_Physics_IncomingBeams_h
21
22#include "CepGen/Physics/Beam.h"
24
25namespace cepgen {
27 class IncomingBeams : public SteeredObject<IncomingBeams> {
28 public:
29 explicit IncomingBeams(const ParametersList&);
30
32 void setParameters(const ParametersList&) override;
33 const ParametersList& parameters() const override;
34
35 static mode::Kinematics modeFromBeams(const Beam&, const Beam&);
36 mode::Kinematics mode() const;
37
38 inline const Beam& positive() const { return pos_beam_; }
39 inline Beam& positive() { return pos_beam_; }
40 inline const Beam& negative() const { return neg_beam_; }
41 inline Beam& negative() { return neg_beam_; }
42
43 inline const ParametersList& structureFunctions() const { return strfun_; }
44 void setStructureFunctions(int, int);
45
46 void setSqrtS(double);
47 double s() const;
48 double sqrtS() const;
49
50 private:
51 ParametersList strfun_;
52 Beam pos_beam_{ParametersList()};
53 Beam neg_beam_{ParametersList()};
54 };
55} // namespace cepgen
56
57#endif
Incoming beams characteristics.
Definition Beam.h:30
Beam/primary particle's kinematics.
Beam & negative()
Reference to the negative-z beam information.
const ParametersList & structureFunctions() const
Structure functions parameters.
Beam & positive()
Reference to the positive-z beam information.
void setParameters(const ParametersList &) override
Set module parameters.
static mode::Kinematics modeFromBeams(const Beam &, const Beam &)
Extract kinematics type from both beams.
const Beam & positive() const
Reference to the positive-z beam information.
double s() const
Incoming beams squared centre of mass energy (in GeV^2)
double sqrtS() const
Incoming beams centre of mass energy (in GeV)
const Beam & negative() const
Reference to the negative-z beam information.
void setSqrtS(double)
Set the incoming beams centre of mass energy (in GeV)
void setStructureFunctions(int, int)
Set the integer-type of structure functions evaluator to build.
static ParametersDescription description()
const ParametersList & parameters() const override
List containing all parameters handled.
mode::Kinematics mode() const
Type of kinematics to consider for the phase space.
A description object for parameters collection.
Base user-steerable object.
Kinematics
Type of scattering.
Definition Modes.h:28
Common namespace for this Monte Carlo generator.