//-------------------------------------------------------------------------- // // Environment: // This software is part of the EvtGen package developed jointly // for the BaBar and CLEO collaborations. If you use all or part // of it, please give an appropriate acknowledgement. // // Copyright Information: See EvtGen/COPYRIGHT // Copyright (C) 1998 Caltech, UCSB // // Module: EvtAmp.cc // // Description: Class to manipulate the amplitudes in the decays. // // Modification history: // // RYD May 29, 1997 Module created // //------------------------------------------------------------------------ // #include "EvtGenBase/EvtPatches.hh" #include #include #include #include "EvtGenBase/EvtComplex.hh" #include "EvtGenBase/EvtSpinDensity.hh" #include "EvtGenBase/EvtAmp.hh" #include "EvtGenBase/EvtReport.hh" #include "EvtGenBase/EvtId.hh" #include "EvtGenBase/EvtPDL.hh" #include "EvtGenBase/EvtParticle.hh" using std::endl; EvtAmp::EvtAmp(){ _ndaug=0; _pstates=0; _nontrivial=0; } EvtAmp::EvtAmp(const EvtAmp& amp){ int i; _ndaug=amp._ndaug; _pstates=amp._pstates; for(i=0;i<_ndaug;i++){ dstates[i]=amp.dstates[i]; _dnontrivial[i]=amp._dnontrivial[i]; } _nontrivial=amp._nontrivial; int namp=1; for(i=0;i<_nontrivial;i++){ _nstate[i]=amp._nstate[i]; namp*=_nstate[i]; } for(i=0;i1) { _nstate[_nontrivial]=_pstates; _nontrivial++; } int i; for(i=0;i<_ndaug;i++){ dstates[i]=daug_states[i]; _dnontrivial[i]=-1; if(daug_states[i]>1) { _nstate[_nontrivial]=daug_states[i]; _dnontrivial[i]=_nontrivial; _nontrivial++; } } if (_nontrivial>5) { report(ERROR,"EvtGen") << "Too many nontrivial states in EvtAmp!"<3){ //report(ERROR,"EvtGen") << "Can't handle so many states in EvtAmp!"<1&&a2._nontrivial==1); assert(i<=a1._nontrivial); EvtAmp tmp; report(DEBUG,"EvtGen") << "EvtAmp::contract not written yet" << endl; return tmp; } void EvtAmp::dump(){ int i,list[10]; report(DEBUG,"EvtGen") << "Number of daugthers:"<<_ndaug<