16#include "EvtGenBase/EvtPatches.hh"
22#include "EvtGenBase/EvtPatches.hh"
25#include "EvtGenBase/EvtDecayMode.hh"
26#include "EvtGenBase/EvtReport.hh"
38 for(i=0;i<dau.size();i++) {
48 : _mother(
other._mother)
51 for(i=0;i<
other._dau.size();i++) {
70 i =
s.find_first_not_of(
" ");
71 j =
s.find_first_of(
" ",i);
73 if(i == string::npos) {
75 report(
INFO,
"EvtGen") <<
"No non-space character found" << endl;
79 if(j == string::npos) {
81 report(
INFO,
"EvtGen") <<
"No space before -> found" << endl;
85 _mother = string(
s,i,j-i);
87 i =
s.find_first_not_of(
" ",j);
88 j =
s.find_first_of(
"->",j);
91 report(
INFO,
"EvtGen") <<
"Multiple mothers?" << i <<
"," << j << endl;
98 i =
s.find_first_not_of(
" ",j);
99 j =
s.find_first_of(
" ",i);
101 if(i == string::npos)
break;
102 if(j == string::npos) {
103 _dau.push_back(
string(
s,i,
s.size()-i+1));
106 _dau.push_back(
string(
s,i,j-i));
119 return _mother.c_str();
131 assert(0<=i && i< (
int) _dau.size());
132 return _dau[i].c_str();
137 string ret = _mother + string(
" -> ");
139 for(i=0;i<_dau.size()-1;i++) ret +=
string(_dau[i]) + string(
" ");
140 ret += _dau[_dau.size()-1];
147 os << _mother.c_str() <<
" ->";
149 for(i=0;i<_dau.size();i++) os <<
" " << _dau[i].
c_str();
ostream & operator<<(ostream &os, const EvtDecayMode &mode)
****INTEGER imax DOUBLE PRECISION m_pi *DOUBLE PRECISION m_amfin DOUBLE PRECISION m_Chfin DOUBLE PRECISION m_Xenph DOUBLE PRECISION m_sinw2 DOUBLE PRECISION m_GFermi DOUBLE PRECISION m_MfinMin DOUBLE PRECISION m_ta2 INTEGER m_out INTEGER m_KeyFSR INTEGER m_KeyQCD *COMMON c_Semalib $ !copy of input $ !CMS energy $ !beam mass $ !final mass $ !beam charge $ !final charge $ !smallest final mass $ !Z mass $ !Z width $ !EW mixing angle $ !Gmu Fermi $ alphaQED at q
ostream & report(Severity severity, const char *facility)
const char * dal(EvtCyclic3::Pair i, EvtCyclic3::Pair j) const
const char * mother() const
const char * mode() const
EvtDecayMode(const char *decay)
const char * dau(int i) const
const char * q(EvtCyclic3::Pair i) const
std::ostream & print(std::ostream &) const
const char * m(EvtCyclic3::Pair i) const
Index other(Index i, Index j)