BOSS 7.0.5
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtMNode.hh
Go to the documentation of this file.
1#ifndef __EVTMNODE_HH__
2#define __EVTMNODE_HH__
3
7
10
11#include <vector>
12using std::vector;
13
14#include <string>
15using std::string;
16
17class EvtMNode {
18
19 public:
20
22 virtual ~EvtMNode() {};
23
24 // calculate the amplitude associated event this->children return a
25 // vector of the form A_{\lambda this} and sum over allowed angular
26 // momenta of the children
27 virtual EvtSpinAmp amplitude( const vector<EvtVector4R>
28 &product ) const = 0;
29
30 // get the 4 vector associated with this node
31 EvtVector4R get4vector( const vector<EvtVector4R> &product ) const;
32
33 // get twice the spin of the particle
34 int getspin() const { return _twospin; }
36
37 // get the id of this node
38 EvtId getid() const { return _id; }
39
40 // return which particles this is a combination of
41 const vector<int> & getresonance() const { return _resonance; }
42
43 void setparent( EvtMNode * parent ) { _parent = parent; }
44 EvtMNode * getparent() const { return _parent; }
45
46 // get the number of children that this node has
47 virtual int getnchild() const = 0;
48
49 // return the value of the resonance shape
50 virtual EvtComplex line( const vector<EvtVector4R>& product ) const=0;
51
52 // return a pointer node
53 virtual EvtMNode * duplicate() const=0;
54 protected:
55
56 // store the EvtId of the particle (just in case we need it to access
57 // further informatoin about it)
59
60 // store TWICE the spin of this resonance (this is to deal with spin 1/2
62
63 // store the particles that form this resonance, this should match up
64 // with the child nodes from below, and is calculated internally
65 vector<int> _resonance;
66
67 // store the parent node of this one
69
70};
71
72#endif
Definition: EvtId.hh:27
virtual ~EvtMNode()
Definition: EvtMNode.hh:22
int _twospin
Definition: EvtMNode.hh:61
const vector< int > & getresonance() const
Definition: EvtMNode.hh:41
EvtVector4R get4vector(const vector< EvtVector4R > &product) const
Definition: EvtMNode.cc:4
EvtId _id
Definition: EvtMNode.hh:58
EvtMNode * getparent() const
Definition: EvtMNode.hh:44
virtual EvtMNode * duplicate() const =0
int getspin() const
Definition: EvtMNode.hh:34
virtual EvtComplex line(const vector< EvtVector4R > &product) const =0
EvtId getid() const
Definition: EvtMNode.hh:38
EvtMNode()
Definition: EvtMNode.hh:21
vector< int > _resonance
Definition: EvtMNode.hh:65
EvtMNode * _parent
Definition: EvtMNode.hh:68
virtual int getnchild() const =0
virtual EvtSpinAmp amplitude(const vector< EvtVector4R > &product) const =0
void setparent(EvtMNode *parent)
Definition: EvtMNode.hh:43
EvtSpinType::spintype getspintype() const
Definition: EvtMNode.hh:35
static EvtSpinType::spintype getSpinType(EvtId i)
Definition: EvtPDL.hh:61