]>
Commit | Line | Data |
---|---|---|
da0e9ce3 | 1 | #ifndef __EVTMTREE_HH__ |
2 | #define __EVTMTREE_HH__ | |
3 | ||
4 | #include "EvtGenBase/EvtPDL.hh" | |
5 | #include "EvtGenBase/EvtSpinAmp.hh" | |
6 | #include "EvtGenBase/EvtComplex.hh" | |
7 | #include "EvtGenBase/EvtVector4R.hh" | |
8 | ||
9 | #include "EvtGenBase/EvtMNode.hh" | |
10 | #include "EvtGenBase/EvtMParticle.hh" | |
11 | #include "EvtGenBase/EvtMRes.hh" | |
12 | ||
13 | #include <vector> | |
14 | using std::vector; | |
15 | ||
16 | #include <string> | |
17 | using std::string; | |
18 | ||
19 | typedef string::const_iterator ptype; | |
20 | ||
21 | class EvtParticle; | |
22 | ||
23 | class EvtMTree { | |
24 | ||
25 | public: | |
26 | ||
27 | EvtMTree( const EvtId * , unsigned int ); | |
28 | ~EvtMTree( ); | |
29 | ||
30 | // return the invariant amplitude of the entire tree | |
31 | EvtSpinAmp amplitude( EvtParticle * ) const; | |
32 | ||
33 | // add a decay tree to the list of trees that we posess | |
34 | void addtree( const string& ); | |
35 | ||
36 | private: | |
37 | ||
38 | vector< EvtMNode * > _root; | |
39 | vector<string> _lbltbl; | |
40 | double _norm; | |
41 | ||
42 | bool parsecheck( char , const string& ); | |
43 | void parseerror( bool, ptype&, ptype&, ptype& ); | |
44 | ||
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; | |
55 | ||
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 * >& ); | |
60 | ||
61 | EvtSpinAmp getrotation( EvtParticle * ) const; | |
62 | }; | |
63 | ||
64 | #endif |