cepgen is hosted by Hepforge, IPPP Durham
CepGen 1.2.5
Central exclusive processes event generator
Loading...
Searching...
No Matches
Beam.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_Beam_h
20#define CepGen_Physics_Beam_h
21
22#include <memory>
23
27
28namespace cepgen {
30 class Beam : public SteeredObject<Beam> {
31 public:
32 explicit Beam(const ParametersList&);
33
35
36 friend std::ostream& operator<<(std::ostream&, const Beam&);
37
38 void initialise();
39
40 inline bool elastic() const { return elastic_; }
42 inline Beam& setElastic(bool el) {
43 elastic_ = el;
44 return *this;
45 }
46
47 inline spdgid_t integerPdgId() const { return pdg_id_; }
50 pdg_id_ = pdg;
51 return *this;
52 }
53
54 inline const Momentum& momentum() const { return momentum_; }
56 inline Beam& setMomentum(const Momentum& mom) {
57 momentum_ = mom;
58 return *this;
59 }
60
61 inline const ParametersList& formFactors() const { return formfac_; }
62 inline const ParametersList& partonFluxParameters() const { return flux_info_; }
63
64 private:
65 spdgid_t pdg_id_{0};
66 Momentum momentum_;
67 ParametersList formfac_;
68 ParametersList flux_info_;
69 bool elastic_{true};
70 };
71} // namespace cepgen
72
73#endif
Incoming beams characteristics.
Definition Beam.h:30
const ParametersList & formFactors() const
Form factors parameters.
Definition Beam.h:61
void initialise()
Initialise the fluxes evaluator object.
Beam & setElastic(bool el)
Definition Beam.h:42
Beam & setIntegerPdgId(spdgid_t pdg)
Definition Beam.h:49
spdgid_t integerPdgId() const
Beam particle PDG id Set the beam particle PDG id.
Definition Beam.h:47
const Momentum & momentum() const
Beam particle 4-momentum Set the beam particle 4-momentum.
Definition Beam.h:54
Beam & setMomentum(const Momentum &mom)
Definition Beam.h:56
friend std::ostream & operator<<(std::ostream &, const Beam &)
Human-readable description of beam system.
Definition Beam.cpp:42
static ParametersDescription description()
Definition Beam.cpp:35
bool elastic() const
Does the beam remain on-shell after parton emission? Specify if the beam remains on-shell after parto...
Definition Beam.h:40
const ParametersList & partonFluxParameters() const
Parton flux modelling.
Definition Beam.h:62
Container for a particle's 4-momentum, along with useful methods to ease the development of any matri...
Definition Momentum.h:33
A description object for parameters collection.
Base user-steerable object.
Common namespace for this Monte Carlo generator.
long long spdgid_t