#include "AMEGIC++/Amplitude/Lorentz_Function.H" #include "ATOOLS/Org/Message.H" #define COMPILE__Getter_Function #define PARAMETER_TYPE MODEL::LF_Key #define OBJECT_TYPE MODEL::Lorentz_Function #include "ATOOLS/Org/Getter_Function.C" using namespace MODEL; #include "ATOOLS/Org/Exception.H" Lorentz_Function::Lorentz_Function(const std::string &type): m_type(type), p_next(NULL) { for (short int i=0;i<4;i++) m_partarg[i] = -1; } Lorentz_Function::~Lorentz_Function() { for (size_t i=0; i1) newperm[1] = m_partarg[b]; if (NofIndex()>2) newperm[2] = m_partarg[c]; if (NofIndex()>3) newperm[3] = m_partarg[d]; m_permlist.push_back(newperm); m_signlist.push_back(sign); } void Lorentz_Function::InitPermutation() { if (!m_permlist.empty()) { for (size_t i=0;i>help; return help; } Lorentz_Function & Lorentz_Function::operator=(const Lorentz_Function & l) { if (this!=&l) { if (m_type!=l.m_type) THROW(fatal_error,"Internal error"); m_permcount=l.m_permcount; int noi=l.NofIndex(); for (size_t i=0; iGetCopy(); else p_next = 0; } return *this; } bool Lorentz_Function::CutVectors() { return false; } std::ostream &MODEL::operator<<(std::ostream &str,const Lorentz_Function &lf) { str<"; return str; } LF_Pol::LF_Pol(): Lorentz_Function("Pol") {} int LF_Pol::NofIndex() const { return 1; } std::string LF_Pol::String(int shortversion) const { // Eps[0] return "Eps["+Str(0)+"]"; } Lorentz_Function *LF_Pol::GetCopy() const { Lorentz_Function *copy(LF_Pol::New()); *copy=*this; return copy; } Lorentz_Function *LF_Pol::New() { if (s_objects.empty()) return new LF_Pol(); LF_Pol *lf(s_objects.back()); s_objects.pop_back(); return lf; } void LF_Pol::Delete() { s_objects.push_back(this); } ATOOLS::AutoDelete_Vector LF_Pol::s_objects; DEFINE_LF_GETTER(LF_Pol,"Pol","")