LCOV - code coverage report
Current view: top level - TEvtGen/EvtGen/EvtGenBase - EvtMNode.hh (source / functions) Hit Total Coverage
Test: coverage.info Lines: 0 7 0.0 %
Date: 2016-06-14 17:26:59 Functions: 0 9 0.0 %

          Line data    Source code
       1             : #ifndef __EVTMNODE_HH__
       2             : #define __EVTMNODE_HH__
       3             : 
       4             : #include "EvtGenBase/EvtVector4R.hh"
       5             : #include "EvtGenBase/EvtComplex.hh"
       6             : #include "EvtGenBase/EvtPDL.hh"
       7             : 
       8             : #include "EvtGenBase/EvtSymTable.hh"
       9             : #include "EvtGenBase/EvtSpinAmp.hh"
      10             : 
      11             : #include <vector>
      12             : using std::vector;
      13             : 
      14             : #include <string>
      15             : using std::string;
      16             : 
      17             : class EvtMNode {
      18             : 
      19             :     public:
      20             : 
      21           0 :         EvtMNode() {}
      22           0 :         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; }
      35           0 :         EvtSpinType::spintype getspintype() const { return EvtPDL::getSpinType( _id ); }
      36             : 
      37             :         // get the id of this node
      38           0 :         EvtId getid() const { return _id; }
      39             : 
      40             :         // return which particles this is a combination of
      41           0 :         const vector<int> & getresonance() const { return _resonance; }
      42             : 
      43           0 :         void setparent( EvtMNode * parent ) { _parent = parent; }
      44           0 :         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)
      58             :         EvtId _id;
      59             :         
      60             :         // store TWICE the spin of this resonance (this is to deal with spin 1/2
      61             :         int _twospin;
      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
      68             :         EvtMNode * _parent;
      69             : 
      70             : };
      71             : 
      72             : #endif

Generated by: LCOV version 1.11