BOSS 8.0.0
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
4#include "EvtComplex.hh"
5#include "EvtPDL.hh"
6#include "EvtSpinAmp.hh"
7#include "EvtVector4R.hh"
8
9#include "EvtMNode.hh"
10#include "EvtMParticle.hh"
11#include "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
23public:
24 EvtMTree( const EvtId* idtbl, int ndaug );
25 ~EvtMTree();
26
27 // return the invariant amplitude of the entire tree
28 EvtSpinAmp amplitude( const vector<EvtVector4R>& product ) const;
29
30 // add a decay tree to the list of trees that we posess
31 void addtree( const string& args );
32
33private:
34 vector<EvtMNode*> _root;
35 vector<string> _lbltbl;
36 double _norm;
37
38 bool parsecheck( char arg, const string& chars );
39 void parseerror( bool, ptype&, ptype&, ptype& );
40
41 string parseId( ptype&, ptype&, ptype& );
42 string parseKey( ptype&, ptype&, ptype& );
43 vector<string> parseArg( ptype&, ptype&, ptype& );
44 vector<EvtComplex> parseAmps( ptype&, ptype&, ptype& );
45 vector<EvtMNode*> duplicate( const vector<EvtMNode*>& ) const;
46 vector<vector<EvtMNode*>> unionChildren( const string&, vector<vector<EvtMNode*>>& );
47 vector<vector<EvtMNode*>> parseChildren( ptype&, ptype&, ptype& );
48 vector<EvtMNode*> parsenode( const string&, bool );
49 bool validTree( const EvtMNode* ) const;
50
51 vector<EvtMNode*> makeparticles( const string& );
52 EvtMRes* makeresonance( const EvtId&, const string&, const vector<string>&, const string&,
53 const vector<EvtComplex>&, const vector<EvtMNode*>& );
54};
55
56#endif
double arg(const EvtComplex &c)
string::const_iterator ptype
Definition EvtMTree.hh:19
Definition EvtId.hh:27
EvtMTree(const EvtId *idtbl, int ndaug)
Definition EvtMTree.cc:20
void addtree(const string &args)
Definition EvtMTree.cc:360
EvtSpinAmp amplitude(const vector< EvtVector4R > &product) const
Definition EvtMTree.cc:377
~EvtMTree()
Definition EvtMTree.cc:24