BOSS 7.0.9
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtMTree Class Reference

#include <EvtMTree.hh>

Public Member Functions

 EvtMTree (const EvtId *idtbl, int ndaug)
 
 ~EvtMTree ()
 
EvtSpinAmp amplitude (const vector< EvtVector4R > &product) const
 
void addtree (const string &args)
 
 EvtMTree (const EvtId *idtbl, int ndaug)
 
 ~EvtMTree ()
 
EvtSpinAmp amplitude (const vector< EvtVector4R > &product) const
 
void addtree (const string &args)
 

Detailed Description

Constructor & Destructor Documentation

◆ EvtMTree() [1/2]

EvtMTree::EvtMTree ( const EvtId idtbl,
int  ndaug 
)

Definition at line 20 of file bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtMTree.cc.

21{
22 for( int i=0; i<ndaug; ++i ) {
23 _lbltbl.push_back( EvtPDL::name( idtbl[i] ) );
24 }
25}

◆ ~EvtMTree() [1/2]

EvtMTree::~EvtMTree ( )

Definition at line 27 of file bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtMTree.cc.

28{
29 for(int i=0; i<_root.size(); ++i) delete _root[i];
30}

◆ EvtMTree() [2/2]

EvtMTree::EvtMTree ( const EvtId idtbl,
int  ndaug 
)

◆ ~EvtMTree() [2/2]

EvtMTree::~EvtMTree ( )

Member Function Documentation

◆ addtree() [1/2]

void EvtMTree::addtree ( const string &  args)

Definition at line 379 of file bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtMTree.cc.

380{
381 vector<EvtMNode *> roots = parsenode( str, true );
382 _norm = 0;
383
384 for( int i=0; i<roots.size(); ++i ) {
385 if( validTree( roots[i] ) ) {
386 _root.push_back( roots[i] );
387 _norm = _norm + 1;
388 } else
389 delete roots[i];
390 }
391
392 _norm = 1.0/sqrt(_norm);
393}

Referenced by EvtMultibody::init().

◆ addtree() [2/2]

void EvtMTree::addtree ( const string &  args)

◆ amplitude() [1/2]

EvtSpinAmp EvtMTree::amplitude ( const vector< EvtVector4R > &  product) const

Definition at line 395 of file bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtMTree.cc.

397{
398 if( _root.size() == 0 ) {
399 report(ERROR, "EvtGen")<<"No decay tree present."<<endl;
400 ::abort();
401 }
402
403 EvtSpinAmp amp = _root[0]->amplitude( product );
404 for( int i=1; i<_root.size(); ++i ) {
405 // Assume that helicity amplitude is returned and rotate to standard
406 // amplitude here, do this before adding the amplitudes (different
407 // frames?)
408 amp += _root[i]->amplitude( product );
409 }
410
411 return _norm*amp;
412}
ostream & report(Severity severity, const char *facility)

Referenced by EvtMultibody::decay().

◆ amplitude() [2/2]

EvtSpinAmp EvtMTree::amplitude ( const vector< EvtVector4R > &  product) const

The documentation for this class was generated from the following files: