1 #ifndef __EVTMTREE_HH__
2 #define __EVTMTREE_HH__
4 #include "EvtGenBase/EvtPDL.hh"
5 #include "EvtGenBase/EvtSpinAmp.hh"
6 #include "EvtGenBase/EvtComplex.hh"
7 #include "EvtGenBase/EvtVector4R.hh"
9 #include "EvtGenBase/EvtMNode.hh"
10 #include "EvtGenBase/EvtMParticle.hh"
11 #include "EvtGenBase/EvtMRes.hh"
19 typedef string::const_iterator ptype;
34 void addtree(
const string& );
38 vector< EvtMNode * > _root;
39 vector<string> _lbltbl;
42 bool parsecheck(
char ,
const string& );
43 void parseerror(
bool, ptype&, ptype&, ptype& );
45 string parseId( ptype&, ptype&, ptype& );
46 string parseKey( ptype&, ptype&, ptype& );
47 vector<string> parseArg( ptype&, ptype&, ptype& );
48 vector<EvtComplex> parseAmps( ptype&, ptype&, ptype& );
49 vector<EvtMNode *> duplicate(
const vector<EvtMNode *>& )
const;
50 vector<vector<EvtMNode * > > unionChildren(
const string&,
51 vector<vector<EvtMNode * > >& );
52 vector<vector<EvtMNode * > > parseChildren( ptype&, ptype&, ptype& );
53 vector<EvtMNode *> parsenode(
const string& ,
bool );
54 bool validTree(
const EvtMNode * )
const;
56 vector<EvtMNode *> makeparticles(
const string& );
57 EvtMRes * makeresonance(
const EvtId&,
const string &,
const
58 vector<string>&,
const string& ,
const vector<EvtComplex>& ,
59 const vector<EvtMNode * >& );