#ifndef _BreitWigner_ #define _BreitWigner_ #include #include #include #include #include #include #include #include #include "IUAmpTools/Amplitude.h" #include "IUAmpTools/AmpParameter.h" #include "IUAmpTools/UserAmplitude.h" #include "IUAmpTools/Kinematics.h" #include "AMPTOOLS_AMPS/barrierFactor.h" #include "AMPTOOLS_AMPS/breakupMomentum.h" using std::complex; using namespace std; class Kinematics; class BreitWigner : public UserAmplitude< BreitWigner > { public: BreitWigner() : UserAmplitude< BreitWigner >() {} BreitWigner( const vector< string >& args ); ~BreitWigner(){} string name() const { return "BreitWigner"; } complex< GDouble > calcAmplitude( GDouble** pKin ) const; void updatePar( const AmpParameter& par ); private: AmpParameter m_mass0; AmpParameter m_width0; int m_orbitL; //particle 4-vectors are sum of the particle indices set. if num == -1, is target int dNumParticleIndices_Product1; int* dParticleIndices_Product1; int dNumParticleIndices_Product2; int* dParticleIndices_Product2; }; #endif //_BreitWigner_