cepgen is hosted by Hepforge, IPPP Durham
CepGen 1.2.3
A generic central exclusive processes event generator
Loading...
Searching...
No Matches
ParticleProperties.h
Go to the documentation of this file.
1/*
2 * CepGen: a central exclusive processes event generator
3 * Copyright (C) 2017-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_ParticleProperties_h
20#define CepGen_Physics_ParticleProperties_h
21
23
24namespace cepgen {
26 typedef unsigned long long pdgid_t;
27 typedef std::vector<pdgid_t> pdgids_t;
28 typedef long long spdgid_t;
29 typedef std::vector<spdgid_t> spdgids_t;
31 struct ParticleProperties final : SteeredObject<ParticleProperties> {
32 explicit ParticleProperties(const ParametersList&);
33 explicit ParticleProperties(pdgid_t pdgid = 0ull, // PDG::invalid
34 const std::string& name = "",
35 const std::string& descr = "",
36 int colours = -1,
37 double mass = -1.,
38 double width = -1.,
39 const std::vector<int>& charges = {},
40 bool fermion = false);
41
43
44 friend std::ostream& operator<<(std::ostream&, const ParticleProperties&);
45
46 short integerCharge() const;
47
48 pdgid_t pdgid{0ull};
49 std::string name{};
50 std::string descr{};
51 int colours{0};
52 double mass{0.};
53 double width{0.};
54 std::vector<int> charges{};
55 bool fermion{false};
56 };
57} // namespace cepgen
58
59#endif
A description object for parameters collection.
Base user-steerable object.
Common namespace for this Monte Carlo generator.
std::vector< pdgid_t > pdgids_t
std::vector< spdgid_t > spdgids_t
unsigned long long pdgid_t
Alias for the integer-like particle PDG id.
long long spdgid_t
A collection of physics constants associated to a single particle.
std::string descr
Human-readable name.
double mass
Mass, in GeV/c .
friend std::ostream & operator<<(std::ostream &, const ParticleProperties &)
pdgid_t pdgid
PDG identifier.
std::vector< int > charges
Electric charges, in /3.
std::string name
Particle name.
short integerCharge() const
Integer charge, in /3.
double width
Decay width, in GeV/c .
static ParametersDescription description()
bool fermion
Is the particle a fermion?