BOSS 7.0.1
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtMTree.hh
Go to the documentation of this file.
1#ifndef __EVTMTREE_HH__
2#define __EVTMTREE_HH__
3
8
11#include "EvtGenBase/EvtMRes.hh"
12
13#include <vector>
14using std::vector;
15
16#include <string>
17using std::string;
18
19typedef string::const_iterator ptype;
20
21class EvtMTree {
22
23 public:
24
25 EvtMTree( const EvtId * idtbl, int ndaug );
26 ~EvtMTree( );
27
28 // return the invariant amplitude of the entire tree
29 EvtSpinAmp amplitude( const vector<EvtVector4R>&
30 product) const;
31
32 // add a decay tree to the list of trees that we posess
33 void addtree( const string& args );
34
35 private:
36
37 vector< EvtMNode * > _root;
38 vector<string> _lbltbl;
39 double _norm;
40
41 bool parsecheck( char arg, const string& chars );
42 void parseerror( bool, ptype&, ptype&, ptype& );
43
44 string parseId( ptype&, ptype&, ptype& );
45 string parseKey( ptype&, ptype&, ptype& );
46 vector<string> parseArg( ptype&, ptype&, ptype& );
47 vector<EvtComplex> parseAmps( ptype&, ptype&, ptype& );
48 vector<EvtMNode *> duplicate( const vector<EvtMNode *>& ) const;
49 vector<vector<EvtMNode * > > unionChildren( const string&,
50 vector<vector<EvtMNode * > >& );
51 vector<vector<EvtMNode * > > parseChildren( ptype&, ptype&, ptype& );
52 vector<EvtMNode *> parsenode( const string& , bool );
53 bool validTree( const EvtMNode * ) const;
54
55 vector<EvtMNode *> makeparticles( const string& );
56 EvtMRes * makeresonance( const EvtId&, const string &,
57 const vector<string>&, const string& ,
58 const vector<EvtComplex>& , const vector<EvtMNode * >& );
59
60};
61
62#endif
double arg(const EvtComplex &c)
Definition: EvtComplex.hh:227
string::const_iterator ptype
Definition: EvtMTree.hh:19
Definition: EvtId.hh:27
void addtree(const string &args)
Definition: EvtMTree.cc:379
EvtSpinAmp amplitude(const vector< EvtVector4R > &product) const
Definition: EvtMTree.cc:395
~EvtMTree()
Definition: EvtMTree.cc:27