Page MenuHomeHEPForge

PScalarPScalarVectorDecayer.icc
No OneTemporary

Size
2 KB
Referenced Files
None
Subscribers
None

PScalarPScalarVectorDecayer.icc

// -*- C++ -*-
//
// This is the implementation of the inlined member functions of
// the PScalarPScalarVectorDecayer class.
//
namespace Herwig {
using namespace ThePEG;
inline PScalarPScalarVectorDecayer::PScalarPScalarVectorDecayer(const PScalarPScalarVectorDecayer & x)
: DecayIntegrator(x), _incoming(x._incoming), _outgoingP(x._outgoingP),
_outgoingV(x._outgoingV), _coupling(x._coupling), _maxweight(x._maxweight),
_initsize(x._initsize) {}
inline IBPtr PScalarPScalarVectorDecayer::clone() const {
return new_ptr(*this);
}
inline IBPtr PScalarPScalarVectorDecayer::fullclone() const {
return new_ptr(*this);
}
inline void PScalarPScalarVectorDecayer::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 PScalarPScalarVectorDecayer::doinit() throw(InitException) {
DecayIntegrator::doinit();
// check the parameters arew consistent
unsigned int isize=_coupling.size();
if(isize!=_incoming.size() || isize!=_outgoingP.size()||
isize!=_outgoingV.size() || isize!=_maxweight.size())
{throw InitException() << "Inconsistent parameters in PScalarPScalarVectorDecayer"
<< 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(_outgoingP[ix]);
extpart[2] = getParticleData(_outgoingV[ix]);
mode = new DecayPhaseSpaceMode(extpart,this);
addMode(mode,_maxweight[ix],wgt);
}
}
inline void PScalarPScalarVectorDecayer::dofinish() {
DecayIntegrator::dofinish();
}
inline void PScalarPScalarVectorDecayer::doinitrun() {
DecayIntegrator::doinitrun();
if(initialize())
{for(unsigned int ix=0;ix<_incoming.size();++ix)
{_maxweight[ix] = mode(ix)->maxWeight();}}
}
inline void PScalarPScalarVectorDecayer::rebind(const TranslationMap & trans)
throw(RebindException) {
// dummy = trans.translate(dummy);
DecayIntegrator::rebind(trans);
}
inline IVector PScalarPScalarVectorDecayer::getReferences() {
IVector ret = DecayIntegrator::getReferences();
// ret.push_back(dummy);
return ret;
}
}

File Metadata

Mime Type
text/plain
Expires
Tue, Sep 30, 5:56 AM (1 d, 15 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
6564044
Default Alt Text
PScalarPScalarVectorDecayer.icc (2 KB)

Event Timeline