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