1#ifndef __EVTSPINAMP_HH__
2#define __EVTSPINAMP_HH__
4#include "EvtGenBase/EvtSpinType.hh"
5#include "EvtGenBase/EvtComplex.hh"
28 EvtSpinAmp(
const vector<EvtSpinType::spintype>& twospin );
30 EvtSpinAmp(
const vector<EvtSpinType::spintype>& twospin,
const vector<EvtComplex>& elem );
64 int rank( )
const {
return _twospin.size(); }
67 const vector<int> &
dims( )
const {
return _twospin; }
71 void addspin(
int twospin ) { _twospin.push_back( twospin ); }
72 void setelem(
const vector<EvtComplex> &elem ) { _elem = elem; }
77 bool allowed(
const vector<int>& index )
const;
83 void checkindexargs(
const vector<int>& index )
const;
84 void checktwospin(
const vector<int>& twospin )
const;
85 int findtrueindex(
const vector<int>& index )
const;
86 vector<int> calctwospin(
const vector<EvtSpinType::spintype>& type )
const;
88 vector<EvtSpinType::spintype> _type;
90 vector<EvtComplex> _elem;
EvtSpinAmp operator*(const EvtComplex &, const EvtSpinAmp &)
EvtSpinAmp operator/(const EvtSpinAmp &, const EvtComplex &)
EvtComplex & operator()(const vector< int > &)
EvtSpinAmp & operator-=(const EvtSpinAmp &)
EvtSpinAmp & operator=(const EvtSpinAmp &)
vector< int > iterinit() const
friend std::ostream & operator<<(std::ostream &, const EvtSpinAmp &)
EvtComplex & operator()(int,...)
void assign(const EvtComplex &val)
EvtSpinAmp(const vector< EvtSpinType::spintype > &twospin, const EvtComplex &val)
const EvtComplex & operator()(const vector< int > &) const
bool iterate(vector< int > &index) const
void addspin(int twospin)
friend EvtSpinAmp operator*(const EvtComplex &, const EvtSpinAmp &)
bool iterateallowed(vector< int > &index) const
EvtSpinAmp & operator*=(const EvtSpinAmp &)
EvtSpinAmp operator+(const EvtSpinAmp &) const
EvtSpinAmp(const vector< EvtSpinType::spintype > &twospin, const vector< EvtComplex > &elem)
vector< int > iterallowedinit() const
EvtSpinAmp & operator+=(const EvtSpinAmp &)
EvtSpinAmp(const EvtSpinAmp &)
EvtSpinAmp operator*(const EvtSpinAmp &) const
bool allowed(const vector< int > &index) const
void setelem(const vector< EvtComplex > &elem)
const EvtComplex & operator()(int,...) const
EvtSpinAmp & operator/=(const EvtComplex &)
friend EvtSpinAmp operator/(const EvtSpinAmp &, const EvtComplex &)
void extcont(const EvtSpinAmp &, int, int)
EvtSpinAmp(const vector< EvtSpinType::spintype > &twospin)
EvtSpinAmp operator-(const EvtSpinAmp &) const
EvtSpinAmp & operator*=(const EvtComplex &)
const vector< int > & dims() const