Page MenuHomeHEPForge

ScalarFormFactor.icc
No OneTemporary

ScalarFormFactor.icc

// -*- C++ -*-
//
// This is the implementation of the inlined member functions of
// the ScalarFormFactor class.
//
namespace Herwig {
using namespace ThePEG;
inline ScalarFormFactor::ScalarFormFactor() : _numbermodes(0)
{}
inline IBPtr ScalarFormFactor::clone() const {
return new_ptr(*this);
}
inline IBPtr ScalarFormFactor::fullclone() const {
return new_ptr(*this);
}
inline void ScalarFormFactor::doinit() throw(InitException) {
Interfaced::doinit();
// check the consistency of the parameters
unsigned int isize=_incomingid.size();
if(isize!=_outgoingid.size() || isize!=_outgoingJ.size()||
isize!=_spectator.size() || isize!=_inquark.size()||
isize!=_outquark.size())
throw InitException() << "Inconsistent parameters in ScalarFormFactor::doinit() "
<< Exception::abortnow;
}
// get the location of the form-factor in the list
inline int ScalarFormFactor::formFactorNumber(int in, int out, bool & cc) const {
if(_incomingid.size()==0) return -1;
int output(-1);unsigned int ix(0);
do {
if(_incomingid[ix]== in && _outgoingid[ix]== out) {
cc=false;
output=ix;
}
else if (_incomingid[ix]==-in && _outgoingid[ix]==-out) {
cc=true;
output=ix;
}
else if(_incomingid[ix]==-in && _outgoingid[ix]==out &&
(abs(_outgoingid[ix])/100)%10==(abs(_outgoingid[ix])/10)%10) {
cc=true;
output=ix;
}
++ix;
}
while(ix<_incomingid.size()&&output<0);
return output;
}
// add a form-factor to the list
inline void ScalarFormFactor::addFormFactor(int in,int out,
int spin, int spect, int inquark,
int outquark) {
_incomingid.push_back(in);
_outgoingid.push_back(out);
_outgoingJ.push_back(spin);
_spectator.push_back(spect);
_inquark.push_back(inquark);
_outquark.push_back(outquark);
}
// number of form factors
inline unsigned int ScalarFormFactor::numberOfFactors() const {
return _incomingid.size();
}
// information on the form factors by location in the list
inline void ScalarFormFactor::formFactorInfo(unsigned int & iloc,int & ispin,int & spect,
int & inquark, int & outquark) const {
ispin = _outgoingJ[iloc];
spect = _spectator[iloc];
inquark = _inquark[iloc];
outquark = _outquark[iloc];
}
// information on the form-factor by ids of the particles
inline void ScalarFormFactor::formFactorInfo(int in,int out,int & ispin,
int & spect,int & inquark,
int & outquark) const {
bool dummy;
unsigned int ix(formFactorNumber(in,out,dummy));
formFactorInfo(ix,ispin,spect,inquark,outquark);
}
// get the particle ids for an entry
inline void ScalarFormFactor::particleID(unsigned int iloc,int & id0,int & id1) const {
id0=_incomingid[iloc];
id1=_outgoingid[iloc];
}
inline void ScalarFormFactor::initialModes(unsigned int nmodes) {
_numbermodes=nmodes;
}
inline unsigned int ScalarFormFactor::initialModes() const {
return _numbermodes;
}
}

File Metadata

Mime Type
text/plain
Expires
Sat, May 3, 6:51 AM (16 h, 58 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
4983162
Default Alt Text
ScalarFormFactor.icc (2 KB)

Event Timeline