CGEM BOSS 6.6.5.g
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtMBreitWigner Class Reference

#include <EvtMBreitWigner.hh>

+ Inheritance diagram for EvtMBreitWigner:

Public Member Functions

 EvtMBreitWigner (const EvtId &id, const vector< string > &args)
 
 ~EvtMBreitWigner ()
 
EvtComplex shape (const vector< EvtVector4R > &product) const
 
EvtMLineShapeduplicate () const
 
- Public Member Functions inherited from EvtMLineShape
virtual ~EvtMLineShape ()
 
void setres (EvtMRes *n)
 
virtual EvtComplex shape (const vector< EvtVector4R > &product) const =0
 
virtual EvtMLineShapeduplicate () const =0
 

Additional Inherited Members

- Protected Attributes inherited from EvtMLineShape
EvtMRes_node
 

Detailed Description

Definition at line 6 of file EvtMBreitWigner.hh.

Constructor & Destructor Documentation

◆ EvtMBreitWigner()

EvtMBreitWigner::EvtMBreitWigner ( const EvtId id,
const vector< string > &  args 
)

Definition at line 7 of file EvtMBreitWigner.cc.

8{
9 if( args.size() != 0 ) {
10 report(ERROR, "EvtGen")<<"Unknown input arguments passed in to lineshape."<<endl;
11 ::abort();
12 }
13
14 _id = id;
15 _width = EvtPDL::getWidth( id );
16 _resmass = EvtPDL::getMeanMass( id );
17}
ostream & report(Severity severity, const char *facility)
Definition: EvtReport.cc:36
@ ERROR
Definition: EvtReport.hh:49
static double getWidth(EvtId i)
Definition: EvtPDL.hh:54
static double getMeanMass(EvtId i)
Definition: EvtPDL.hh:45

◆ ~EvtMBreitWigner()

EvtMBreitWigner::~EvtMBreitWigner ( )
inline

Definition at line 10 of file EvtMBreitWigner.hh.

10{};

Member Function Documentation

◆ duplicate()

EvtMLineShape * EvtMBreitWigner::duplicate ( ) const
virtual

Implements EvtMLineShape.

Definition at line 28 of file EvtMBreitWigner.cc.

29{
30 vector<string> args;
31 EvtMLineShape* tmp=new EvtMBreitWigner( _id, args );
32 return tmp;
33}

◆ shape()

EvtComplex EvtMBreitWigner::shape ( const vector< EvtVector4R > &  product) const
virtual

Implements EvtMLineShape.

Definition at line 19 of file EvtMBreitWigner.cc.

20{
21 static EvtComplex I(0.0, 1.0);
22 double mass = _node->get4vector(product).mass();
23
24 return sqrt(_width/( EvtConst::twoPi )) * 1/( mass - _resmass - I * _width/2 );
25}
double mass
const DifComplex I
static const double twoPi
Definition: EvtConst.hh:29
EvtMRes * _node
Definition: EvtMRes.hh:21
EvtVector4R get4vector(const vector< EvtVector4R > &product) const
Definition: EvtMNode.cc:4
double mass() const
Definition: EvtVector4R.cc:39

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