41 #ifndef PARTICLEPROPERTIES_H
42 #define PARTICLEPROPERTIES_H
52 #include "mathUtils.hpp"
53 #include "reportingUtils.hpp"
66 decayMode(
const std::multiset<std::string>& daughters = std::multiset<std::string>(),
73 virtual std::ostream&
print(std::ostream& out)
const;
98 const std::pair<particleProperties, std::string>& rhsPropSel);
100 const std::pair<particleProperties, std::string>& rhsPropSel)
101 {
return not (lhsProp == rhsPropSel); }
117 int G ()
const {
return _G; }
118 int J ()
const {
return _J; }
119 int P ()
const {
return _P; }
120 int C ()
const {
return _C; }
141 const bool warnIfNotExistent =
true);
176 virtual std::ostream&
print(std::ostream& out)
const;
177 virtual std::ostream&
dump (std::ostream& out)
const;
179 bool read(std::istringstream& line);
227 return mode.
print(out);
245 and (abs(
beauty()) <= 1) and isEven(
J()) and (abs(
P()) == 1) and (abs(
C()) <= 1)
246 and ((abs(
charge()) != 0) or (
G() == powMinusOne(
isospin() / 2) *
C())));
256 and (abs(
beauty()) <= 3) and isOdd(
J()) and (abs(
P()) == 1)
257 and (
C() == 0) and (
G() == 0));
267 and (
J() == 1) and (abs(
P()) == 1) and (
C() == 0) and (
G() == 0));
277 and (
J() == 2) and (
P() == -1) and (
C() == -1) and (
G() == 0));
305 if (abs(charge) < 10)
308 printErr <<
"absolute value of charge " << charge <<
" is larger than 9. "
309 <<
"aborting." << std::endl;
329 return partProp.
print(out);
339 if (getline(in, line)) {
341 while ((line ==
"") or (line[0] ==
'#')) {
342 if (partProp.
debug())
343 printDebug <<
"ignoring line '" << line <<
"'" << std::endl;
344 if (not getline(in, line)) {
345 printWarn <<
"could not find valid particle entry before end of file" << std::endl;
349 std::istringstream lineStream(line);
350 partProp.
read(lineStream);
359 #endif // PARTICLEPROPERTIES_H