Page MenuHomeHEPForge

PScalarVectorVectorDecayer.icc
No OneTemporary

Size
2 KB
Referenced Files
None
Subscribers
None

PScalarVectorVectorDecayer.icc

// -*- C++ -*-
//
// This is the implementation of the inlined member functions of
// the PScalarVectorVectorDecayer class.
//
namespace Herwig {
using namespace ThePEG;
inline PScalarVectorVectorDecayer::PScalarVectorVectorDecayer(const PScalarVectorVectorDecayer & x)
: DecayIntegrator(x), _incoming(x._incoming), _outgoing1(x._outgoing1),
_outgoing2(x._outgoing2), _coupling(x._coupling), _maxweight(x._maxweight),
_initsize(x._initsize) {}
inline IBPtr PScalarVectorVectorDecayer::clone() const {
return new_ptr(*this);
}
inline IBPtr PScalarVectorVectorDecayer::fullclone() const {
return new_ptr(*this);
}
inline void PScalarVectorVectorDecayer::doupdate() throw(UpdateException) {
DecayIntegrator::doupdate();
// First update base class.
bool redo = touched();
// redo if touched.
// UpdateChecker::check(aDependentMember, redo);
// Update referenced objects on which this depends redo is set to true
// if the dependent object is touched.
// for_each(ContainerOfDependencies, UpdateChecker(redo));
// Update a container of references.
// for_each(MapOfDependencies, UpdateMapChecker(redo));
// Update a map of references.
if ( !redo ) return;
// return if nothing has been touched. Otherwise do the actual update.
// touch()
// Touch if anything has changed.
}
inline void PScalarVectorVectorDecayer::doinit() throw(InitException) {
DecayIntegrator::doinit();
// check the parameters arew consistent
unsigned int isize(_coupling.size());
if(isize!=_incoming.size() || isize!=_outgoing1.size()||
isize!=_outgoing2.size() || isize!=_maxweight.size())
{throw InitException() << "Inconsistent parameters in PScalarVectorVectorDecayer"
<< Exception::abortnow;}
// set up the integration channels
vector<double> wgt;
DecayPhaseSpaceModePtr mode;
PDVector extpart(3);
for(unsigned int ix=0;ix<_incoming.size();++ix)
{
extpart[0] = getParticleData(_incoming[ix]);
extpart[1] = getParticleData(_outgoing1[ix]);
extpart[2] = getParticleData(_outgoing2[ix]);
mode = new_ptr(DecayPhaseSpaceMode(extpart,this));
addMode(mode,_maxweight[ix],wgt);
}
}
inline void PScalarVectorVectorDecayer::dofinish() {
DecayIntegrator::dofinish();
}
inline void PScalarVectorVectorDecayer::doinitrun() {
DecayIntegrator::doinitrun();
if(initialize())
{for(unsigned int ix=0;ix<_incoming.size();++ix)
{_maxweight[ix] = mode(ix)->maxWeight();}}
}
inline void PScalarVectorVectorDecayer::rebind(const TranslationMap & trans)
throw(RebindException) {
// dummy = trans.translate(dummy);
DecayIntegrator::rebind(trans);
}
inline IVector PScalarVectorVectorDecayer::getReferences() {
IVector ret = DecayIntegrator::getReferences();
// ret.push_back(dummy);
return ret;
}
}

File Metadata

Mime Type
text/plain
Expires
Tue, Sep 30, 4:41 AM (8 h, 44 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
6561766
Default Alt Text
PScalarVectorVectorDecayer.icc (2 KB)

Event Timeline