1#include "EvtGenBase/EvtPatches.hh"
2#include "EvtGenBase/EvtMHelAmp.hh"
3#include "EvtGenBase/EvtKine.hh"
9 const vector<EvtMNode* >& children,
const vector<EvtComplex>& elem )
18 vector<EvtSpinType::spintype> type;
19 for(
int i=0; i<children.size(); ++i ) {
22 const vector<int> &res = children[i]->getresonance();
23 for(
int j=0; j<res.size(); ++j )
25 children[i]->setparent(
this );
38 _amp( index ) = elem[i];
42 if(elem.size() != i) {
44 <<
"Wrong number of elements input in helicity amplitude."<<endl;
48 if( children.size() > 2 ) {
50 <<
"Helicity amplitude formalism can only handle two body resonances"
67 phi = atan2( d.
get(1), d.
get(2) );
88 vector<EvtSpinType::spintype> types( 3 );
93 vector<int> index = amp.iterallowedinit();
99 _amp(index[1],index[2]);
100 }
while(amp.iterateallowed(index));
105 amp.extcont( amp0, 1, 0 );
106 amp.extcont( amp1, 1, 0 );
116 vector<EvtMNode *> children;
118 for(
int i=0; i<
_children.size(); ++i ) {
****INTEGER imax DOUBLE PRECISION m_pi *DOUBLE PRECISION m_amfin DOUBLE PRECISION m_Chfin DOUBLE PRECISION m_Xenph DOUBLE PRECISION m_sinw2 DOUBLE PRECISION m_GFermi DOUBLE PRECISION m_MfinMin DOUBLE PRECISION m_ta2 INTEGER m_out INTEGER m_KeyFSR INTEGER m_KeyQCD *COMMON c_Semalib $ !copy of input $ !CMS energy $ !beam mass $ !final mass $ !beam charge $ !final charge $ !smallest final mass $ !Z mass $ !Z width $ !EW mixing angle $ !Gmu Fermi $ alphaQED at q
Evt3Rank3C conj(const Evt3Rank3C &t2)
double EvtDecayAnglePhi(const EvtVector4R &z, const EvtVector4R &p, const EvtVector4R &q, const EvtVector4R &d)
double EvtDecayAngle(const EvtVector4R &p, const EvtVector4R &q, const EvtVector4R &d)
EvtComplex wignerD(int j, int m1, int m2, double phi, double theta, double gamma)
ostream & report(Severity severity, const char *facility)
static const double twoPi
EvtSpinAmp amplitude(const vector< EvtVector4R > &product) const
EvtMNode * duplicate() const
EvtMHelAmp(const EvtId &id, EvtMLineShape *, const vector< EvtMNode * > &, const vector< EvtComplex > &)
virtual EvtMLineShape * duplicate() const =0
EvtVector4R get4vector(const vector< EvtVector4R > &product) const
EvtMNode * getparent() const
EvtSpinType::spintype getspintype() const
EvtMLineShape * _lineshape
vector< EvtMNode * > _children
static EvtSpinType::spintype getSpinType(EvtId i)
vector< int > iterinit() const
bool iterate(vector< int > &index) const
bool allowed(const vector< int > &index) const
static int getSpin2(spintype stype)