Page MenuHomeHEPForge

No OneTemporary

Size
22 KB
Referenced Files
None
Subscribers
None
diff --git a/Decay/WeakCurrents/OmegaPiPiCurrent.cc b/Decay/WeakCurrents/OmegaPiPiCurrent.cc
--- a/Decay/WeakCurrents/OmegaPiPiCurrent.cc
+++ b/Decay/WeakCurrents/OmegaPiPiCurrent.cc
@@ -1,328 +1,314 @@
// -*- C++ -*-
//
// This is the implementation of the non-inlined, non-templated member
// functions of the OmegaPiPiCurrent class.
//
#include "OmegaPiPiCurrent.h"
#include "ThePEG/Interface/ClassDocumentation.h"
#include "ThePEG/Interface/Parameter.h"
#include "ThePEG/EventRecord/Particle.h"
#include "ThePEG/Repository/UseRandom.h"
#include "ThePEG/Repository/EventGenerator.h"
#include "ThePEG/Utilities/DescribeClass.h"
#include "ThePEG/Persistency/PersistentOStream.h"
#include "ThePEG/Persistency/PersistentIStream.h"
using namespace Herwig;
-OmegaPiPiCurrent::OmegaPiPiCurrent() :mRes_(1.62*GeV) {
+OmegaPiPiCurrent::OmegaPiPiCurrent() {
+ mRes_ = 1.67*GeV;
wRes_ = 0.288*GeV;
- gRes_ = 2.83;
+ gRes_ = 0.469*GeV;
+
mSigma_ = 0.6*GeV;
wSigma_ = 1.0*GeV;
- gSigma_ = 1.0;
mf0_ = 0.98*GeV;
- gPiPi_ = 0.331;
- gKK_ = 0.144;
- gf0_ = 0.85;
+ gSigma_ = 1.0 *GeV2;
+ gf0_ = 0.85*GeV2;
+ gPiPi_ = 0.165*GeV2;
+ gKK_ = 0.695*GeV2;
addDecayMode(1,-1);
addDecayMode(1,-1);
setInitialModes(2);
}
IBPtr OmegaPiPiCurrent::clone() const {
return new_ptr(*this);
}
IBPtr OmegaPiPiCurrent::fullclone() const {
return new_ptr(*this);
}
void OmegaPiPiCurrent::persistentOutput(PersistentOStream & os) const {
- os << ounit(mRes_,GeV) << ounit(wRes_,GeV) << gRes_
+ os << ounit(mRes_,GeV) << ounit(wRes_,GeV) << ounit(gRes_,GeV)
<< ounit(mSigma_,GeV) << ounit(wSigma_,GeV) << ounit(mf0_,GeV)
- << gPiPi_ << gKK_ << gSigma_ << gf0_;
+ << ounit(gPiPi_,GeV2) << ounit(gKK_,GeV2) << ounit(gSigma_,GeV2) << ounit(gf0_,GeV2);
}
void OmegaPiPiCurrent::persistentInput(PersistentIStream & is, int) {
- is >> iunit(mRes_,GeV) >> iunit(wRes_,GeV) >> gRes_
+ is >> iunit(mRes_,GeV) >> iunit(wRes_,GeV) >> iunit(gRes_,GeV)
>> iunit(mSigma_,GeV) >> iunit(wSigma_,GeV) >> iunit(mf0_,GeV)
- >> gPiPi_ >> gKK_ >> gSigma_ >> gf0_;
+ >> iunit(gPiPi_,GeV2) >> iunit(gKK_,GeV2) >> iunit(gSigma_,GeV2) >> iunit(gf0_,GeV2);
}
void OmegaPiPiCurrent::doinit() {
WeakCurrent::doinit();
}
// The following static variable is needed for the type
// description system in ThePEG.
DescribeClass<OmegaPiPiCurrent,WeakCurrent>
describeHerwigOmegaPiPiCurrent("Herwig::OmegaPiPiCurrent", "HwWeakCurrents.so");
void OmegaPiPiCurrent::Init() {
static ClassDocumentation<OmegaPiPiCurrent> documentation
("The OmegaPiPiCurrent class provides the current for I=0 omega pi pi");
static Parameter<OmegaPiPiCurrent,Energy> interfacemRes
("mRes",
"The mass of the s-channel resonance",
&OmegaPiPiCurrent::mRes_, GeV, 1.62*GeV, 0.*GeV, 10.*GeV,
false, false, Interface::limited);
static Parameter<OmegaPiPiCurrent,Energy> interfacewRes
("wRes",
"The width of the s-channel resonance",
&OmegaPiPiCurrent::wRes_, GeV, 0.288*GeV, 0.0*GeV, 10.0*GeV,
false, false, Interface::limited);
- static Parameter<OmegaPiPiCurrent,double> interfacegRes
+ static Parameter<OmegaPiPiCurrent,Energy> interfacegRes
("gRes",
"The coupling of the s-channel resonance",
- &OmegaPiPiCurrent::gRes_, 2.83, 0.0, 10.0,
+ &OmegaPiPiCurrent::gRes_, GeV, 2.83*GeV, 0.0*GeV, 10.0*GeV,
false, false, Interface::limited);
static Parameter<OmegaPiPiCurrent,Energy> interfacemSigma
("mSigma",
"The mass of the Sigma",
&OmegaPiPiCurrent::mSigma_, GeV, 0.6*GeV, 0.0*GeV, 10.0*GeV,
false, false, Interface::limited);
static Parameter<OmegaPiPiCurrent,Energy> interfacewSigma
("wSigma",
"The width of the Sigma",
&OmegaPiPiCurrent::wSigma_, GeV, 1.0*GeV, 0.0*GeV, 10.0*GeV,
false, false, Interface::limited);
-
- static Parameter<OmegaPiPiCurrent,double> interfacegSigma
+
+ static Parameter<OmegaPiPiCurrent,Energy2> interfacegSigma
("gSigma",
"The coupling of the Sigma resonance",
- &OmegaPiPiCurrent::gSigma_, 1.0, 0.0, 10.0,
+ &OmegaPiPiCurrent::gSigma_, GeV2, 1.0*GeV2, 0.0*GeV2, 10.0*GeV2,
false, false, Interface::limited);
static Parameter<OmegaPiPiCurrent,Energy> interfacemf0
("mf0",
"The mass of the f_0(980)",
&OmegaPiPiCurrent::mf0_, GeV, 0.98*GeV, 0.0*GeV, 10.0*GeV,
false, false, Interface::limited);
-
- static Parameter<OmegaPiPiCurrent,double> interfacegf0
+
+ static Parameter<OmegaPiPiCurrent,Energy2> interfacegf0
("gf0",
- "The coupling of the f_0(980) meson",
- &OmegaPiPiCurrent::gf0_, 0.85, 0.0, 10.0,
+ "The coupling of the f0(980) resonance",
+ &OmegaPiPiCurrent::gf0_, GeV2, 1.0*GeV2, 0.0*GeV2, 10.0*GeV2,
false, false, Interface::limited);
- static Parameter<OmegaPiPiCurrent,double> interfacegPiPi
+ static Parameter<OmegaPiPiCurrent,Energy2> interfacegPiPi
("gPiPi",
"The coupling of the f_0(980) to pipi",
- &OmegaPiPiCurrent::gPiPi_, .331, 0.0, 10.0,
+ &OmegaPiPiCurrent::gPiPi_, GeV2, 0.165*GeV2, 0.0*GeV2, 10.0*GeV2,
false, false, Interface::limited);
- static Parameter<OmegaPiPiCurrent,double> interfacegKK
+ static Parameter<OmegaPiPiCurrent,Energy2> interfacegKK
("gKK",
"The coupling of the f_0(980) to KK",
- &OmegaPiPiCurrent::gKK_, .144, 0.0, 10.0,
+ &OmegaPiPiCurrent::gKK_, GeV2, 0.695*GeV2, 0.0*GeV2, 10.0*GeV2,
false, false, Interface::limited);
-
}
// complete the construction of the decay mode for integration
bool OmegaPiPiCurrent::createMode(int icharge, tcPDPtr resonance,
FlavourInfo flavour,
unsigned int, PhaseSpaceModePtr mode,
unsigned int iloc,int ires,
PhaseSpaceChannel phase, Energy upp ) {
// check the charge
if(icharge!=0) return false;
// check the total isospin
if(flavour.I!=IsoSpin::IUnknown && flavour.I!=IsoSpin::IZero) return false;
// check I_3
if(flavour.I3!=IsoSpin::I3Unknown && flavour.I3!=IsoSpin::I3Zero) return false;
// and other flavour
if(flavour.strange != Strangeness::Unknown and flavour.strange != Strangeness::Zero) return false;
if(flavour.charm != Charm::Unknown and flavour.charm != Charm::Zero ) return false;
if(flavour.bottom != Beauty::Unknown and flavour.bottom !=Beauty::Zero ) return false;
// check that the mode is are kinematical allowed
Energy min = getParticleData(ParticleID::omega)->massMin()+
2.*getParticleData(ParticleID::pi0)->mass();
if(min>upp) return false;
// resonances for the intermediate channels
tPDVector res = {getParticleData(30223)};
tPDVector res2 = {getParticleData(9000221),getParticleData(9010221)};
// set up the integration channels;
for(unsigned int ix=0;ix<res.size();++ix) {
if(resonance && resonance!=res[ix]) continue;
for(unsigned int iy=0;iy<res2.size();++iy) {
mode->addChannel((PhaseSpaceChannel(phase),ires,res[ix],
ires+1,iloc+1,ires+1,res2[iy],ires+2,iloc+2,ires+2,iloc+3));
}
}
return true;
}
// the particles produced by the current
tPDVector OmegaPiPiCurrent::particles(int icharge, unsigned int imode,int,int) {
assert(icharge==0 && imode<=1);
if(imode==0)
return {getParticleData(ParticleID::omega),
getParticleData(ParticleID::piplus),
getParticleData(ParticleID::piminus)};
else if(imode==1)
return {getParticleData(ParticleID::omega),
getParticleData(ParticleID::pi0),
getParticleData(ParticleID::pi0)};
else
assert(false);
}
void OmegaPiPiCurrent::constructSpinInfo(ParticleVector decay) const {
vector<LorentzPolarizationVector> temp(3);
for(unsigned int ix=0;ix<3;++ix) {
temp[ix] = HelicityFunctions::polarizationVector(-decay[0]->momentum(),
ix,Helicity::outgoing);
}
VectorWaveFunction::constructSpinInfo(temp,decay[0],
outgoing,true,true);
for(unsigned int ix=1;ix<3;++ix)
ScalarWaveFunction::constructSpinInfo(decay[ix],outgoing,true);
}
// the hadronic currents
vector<LorentzPolarizationVectorE>
OmegaPiPiCurrent::current(tcPDPtr resonance,
FlavourInfo flavour,
const int, const int ichan, Energy & scale,
const tPDVector & ,
const vector<Lorentz5Momentum> & momenta,
DecayIntegrator::MEOption) const {
// no isospin/flavour here
if(flavour.I!=IsoSpin::IUnknown && flavour.I!=IsoSpin::IZero) return vector<LorentzPolarizationVectorE>();
if(flavour.I3!=IsoSpin::I3Unknown && flavour.I3!=IsoSpin::I3Zero) return vector<LorentzPolarizationVectorE>();
if(flavour.strange != Strangeness::Unknown and flavour.strange != Strangeness::Zero) return vector<LorentzPolarizationVectorE>();
if(flavour.charm != Charm::Unknown and flavour.charm != Charm::Zero ) return vector<LorentzPolarizationVectorE>();
if(flavour.bottom != Beauty::Unknown and flavour.bottom !=Beauty::Zero ) return vector<LorentzPolarizationVectorE>();
if(resonance and resonance->id()!=30223) return vector<LorentzPolarizationVectorE>();
useMe();
// polarization vectors of the omega
vector<LorentzPolarizationVector> temp(3);
for(unsigned int ix=0;ix<3;++ix) {
temp[ix] = HelicityFunctions::polarizationVector(-momenta[0],ix,Helicity::outgoing);
}
// total momentum of the system
Lorentz5Momentum q(momenta[0]+momenta[1]+momenta[2]);
// overall hadronic mass
q.rescaleMass();
scale=q.mass();
+ Complex ii(0.,1.);
Energy2 q2(q.m2());
// resonance factor for s channel resonance
Energy2 mR2=sqr(mRes_);
- Complex pre= mR2*gRes_/(q2-mR2 + Complex(0.,1.)*scale*wRes_);
- // compute the form factor
- complex<Energy> formFactor(ZERO);
+ complex<Energy> pre= mR2*gRes_/(q2-mR2 - ii*scale*wRes_);
+
+ //cerr << "pre factor " << scale/GeV << " " << q2/GeV2 << " " << pre/GeV << "\n";
+ // for(auto p : momenta) cerr << p/GeV << " " << p.m()/GeV << "\n";
- //formFactor = pre*scale*gSigma_;
-
- // needs to be multiplied by thing inside || in 1.9
- //cm energy for intermediate f0 channel
+
+ // virtual mass energy for intermediate f0 channel
Energy2 s1 = (momenta[1]+momenta[2]).m2();
Energy sqrs1 = sqrt(s1);
//sigma meson
Energy2 mSigma2 = sqr(mSigma_);
- Complex Sigma_form = mSigma2/(s1-mSigma2 + Complex(0.,1.)*sqrs1*wSigma_);
+ Complex Sigma_form = gSigma_/(mSigma2 -s1 - ii*sqrs1*wSigma_);
+
+ // compute the form factor
+ Energy2 mf02 = sqr(mf0_);
+ Energy mPi = getParticleData(211)->mass();
+ Energy2 mPi2 = sqr(mPi);
+
+ complex<Energy2> mGamma = gPiPi_*sqrt(max(0.,1.-4.*mPi2/s1));
+ // cerr << "testing pi " << mGamma/GeV2 << " " << gPiPi_/GeV2 << " " << sqrt(max(0.,1.-4.*mPi2/s1))<< "\n";
+ Energy2 mKp2 = sqr(getParticleData(321)->mass());
+ double val = 1.-4.*mKp2/s1;
+ if(val>=0.) mGamma += 0.5*gKK_* sqrt( val);
+ else mGamma += 0.5*gKK_*ii*sqrt(-val);
+ Energy2 mK02 = sqr(getParticleData(311)->mass());
+ val = 1.-4.*mK02/s1;
+ if(val>=0.) mGamma += 0.5*gKK_* sqrt( val);
+ else mGamma += 0.5*gKK_*ii*sqrt(-val);
- //f0(980) following Phys. Lett. B 63, 224 (1976)
- Energy2 mf02 = sqr(mf0_);
- Energy mPi = getParticleData(211)->mass();
- Energy2 mPi2 = sqr(mPi);
- Energy pcm_pipi = 0.5*sqrt(s1-4*mPi2);
- Energy pcm_f0 = 0.5*sqrt(mf0_*mf0_-4*mPi2);
- Energy GPiPi = gPiPi_*pcm_pipi;
- Energy G0 = gPiPi_*pcm_f0;
- Energy m_kaon0 = getParticleData(311)->mass();
- Energy2 m_kaon02 = sqr(m_kaon0);
- Energy m_kaonP = getParticleData(321)->mass();
- Energy2 m_kaonP2 = sqr(m_kaonP);
- Energy GKK;
- Complex f0_form;
- if(0.25*s1>m_kaon02){
- GKK = 0.5*gKK_*(sqrt(0.25*s1-m_kaon02)+sqrt(0.25*s1-m_kaonP2));
- f0_form = gf0_*mf0_*sqrt(G0*GPiPi)/(s1-mf02+Complex(0.,1.)*mf0_*(GPiPi+GKK));
- }
- else{
- if(0.25*s1>m_kaonP2){
- f0_form = gf0_*mf0_*sqrt(G0*GPiPi)/(s1-mf02+Complex(0.,1.)*mf0_*(GPiPi+0.5*gKK_*(Complex(0.,1.)*sqrt(m_kaon02-0.25*s1)+sqrt(0.25*s1-m_kaonP2))));
- }
- else{
- GKK = 0.5*gKK_*(sqrt(m_kaon02-0.25*s1)+sqrt(m_kaonP2-0.25*s1));
- f0_form = gf0_*mf0_*sqrt(G0*GPiPi)/(s1-mf02+Complex(0.,1.)*mf0_*(GPiPi+Complex(0.,1.)*GKK));
- }
- }
+ Complex f0_form = gf0_/(mf02-s1-Complex(0.,1.)*mGamma);
+ // cerr << "f0 pieces " << mGamma/GeV2 << "\n";
+ // cerr << "testing form factor " << s1/GeV2 << " " << f0_form << " " << Sigma_form << "\n";
+ complex<Energy> formFactor(ZERO);
if(ichan<0)
- formFactor = (Sigma_form+f0_form)*pre*scale*gSigma_;
+ formFactor = (Sigma_form+f0_form)*pre;
else if(ichan==0)
- formFactor = Sigma_form*pre*scale*gSigma_;
+ formFactor = Sigma_form*pre;
else if(ichan==1)
- formFactor = f0_form*pre*scale*gSigma_;
-// // loop over the resonances
-// for(unsigned int ix=imin;ix<imax;++ix) {
-// Energy2 mR2(sqr(resMasses_[ix]));
-// // compute the width
-// Energy width = resWidths_[ix];
-// formFactor += couplings_[ix]*mR2/(mR2-q2-Complex(0.,1.)*q.mass()*width);
-// }
-
+ formFactor = f0_form*pre;
// calculate the current
vector<LorentzPolarizationVectorE> ret(3);
for(unsigned int ix=0;ix<3;++ix) {
ret[ix] = formFactor*temp[ix];
}
return ret;
}
bool OmegaPiPiCurrent::accept(vector<int> id) {
if(id.size()!=3) return false;
unsigned int nomega(0),npip(0),npim(0),npi0(0);
for(unsigned int ix=0;ix<id.size();++ix) {
if(abs(id[ix])==ParticleID::piminus) ++npim;
if(abs(id[ix])==ParticleID::pi0 ) ++npi0;
if(abs(id[ix])==ParticleID::piplus ) ++npip;
else if(id[ix]==ParticleID::omega) ++nomega;
}
return nomega == 1 && (npi0==2 || (npip==1&&npim==1));
}
unsigned int OmegaPiPiCurrent::decayMode(vector<int> id) {
unsigned int npi0(0);
for(unsigned int ix=0;ix<id.size();++ix) {
if(abs(id[ix])==ParticleID::pi0 ) ++npi0;
}
return npi0==2 ? 1 : 0;
}
// output the information for the database
void OmegaPiPiCurrent::dataBaseOutput(ofstream & output,bool header,
bool create) const {
if(header) output << "update decayers set parameters=\"";
if(create) output << "create Herwig::OmegaPiPiCurrent " << name()
<< " HwWeakCurrents.so\n";
output << "newdef " << name() << ":mRes " << " " << mRes_/GeV << "\n";
output << "newdef " << name() << ":wRes " << " " << wRes_/GeV << "\n";
output << "newdef " << name() << ":mSigma " << " " << mSigma_/GeV << "\n";
output << "newdef " << name() << ":wSigma " << " " << wSigma_/GeV << "\n";
output << "newdef " << name() << ":mf0 " << " " << mf0_/GeV << "\n";
- output << "newdef " << name() << ":gRes " << " " << gRes_ << "\n";
- output << "newdef " << name() << ":gSigma " << " " << gSigma_ << "\n";
- output << "newdef " << name() << ":gf0 " << " " << gf0_ << "\n";
- output << "newdef " << name() << ":gPiPi " << " " << gPiPi_ << "\n";
- output << "newdef " << name() << ":gKK " << " " << gKK_ << "\n";
+ output << "newdef " << name() << ":gRes " << " " << gRes_/GeV << "\n";
+ output << "newdef " << name() << ":gSigma " << " " << gSigma_/GeV2<< "\n";
+ output << "newdef " << name() << ":gf0 " << " " << gf0_/GeV2 << "\n";
+ output << "newdef " << name() << ":gPiPi " << " " << gPiPi_/GeV2 << "\n";
+ output << "newdef " << name() << ":gKK " << " " << gKK_/GeV2 << "\n";
WeakCurrent::dataBaseOutput(output,false,false);
if(header) output << "\n\" where BINARY ThePEGName=\""
<< fullName() << "\";" << endl;
}
diff --git a/Decay/WeakCurrents/OmegaPiPiCurrent.h b/Decay/WeakCurrents/OmegaPiPiCurrent.h
--- a/Decay/WeakCurrents/OmegaPiPiCurrent.h
+++ b/Decay/WeakCurrents/OmegaPiPiCurrent.h
@@ -1,249 +1,249 @@
// -*- C++ -*-
#ifndef Herwig_OmegaPiPiCurrent_H
#define Herwig_OmegaPiPiCurrent_H
//
// This is the declaration of the OmegaPiPiCurrent class.
//
#include "WeakCurrent.h"
namespace Herwig {
using namespace ThePEG;
/**
* Here is the documentation of the OmegaPiPiCurrent class.
*
* @see \ref OmegaPiPiCurrentInterfaces "The interfaces"
* defined for OmegaPiPiCurrent.
*/
class OmegaPiPiCurrent: public WeakCurrent {
public:
/** @name Standard constructors and destructors. */
//@{
/**
* The default constructor.
*/
OmegaPiPiCurrent();
//@}
public:
/** @name Methods for the construction of the phase space integrator. */
//@{
/**
* Complete the construction of the decay mode for integration.classes inheriting
* from this one.
* This method is purely virtual and must be implemented in the classes inheriting
* from WeakCurrent.
* @param icharge The total charge of the outgoing particles in the current.
* @param resonance If specified only include terms with this particle
* @param flavour Information on the required flavours of the quarks
* @param imode The mode in the current being asked for.
* @param mode The phase space mode for the integration
* @param iloc The location of the of the first particle from the current in
* the list of outgoing particles.
* @param ires The location of the first intermediate for the current.
* @param phase The prototype phase space channel for the integration.
* @param upp The maximum possible mass the particles in the current are
* allowed to have.
* @return Whether the current was sucessfully constructed.
*/
virtual bool createMode(int icharge, tcPDPtr resonance,
FlavourInfo flavour,
unsigned int imode,PhaseSpaceModePtr mode,
unsigned int iloc,int ires,
PhaseSpaceChannel phase, Energy upp );
/**
* The particles produced by the current. This just returns the pseudoscalar
* meson.
* @param icharge The total charge of the particles in the current.
* @param imode The mode for which the particles are being requested
* @param iq The PDG code for the quark
* @param ia The PDG code for the antiquark
* @return The external particles for the current.
*/
virtual tPDVector particles(int icharge, unsigned int imode, int iq, int ia);
//@}
/**
* Hadronic current. This method is purely virtual and must be implemented in
* all classes inheriting from this one.
* @param resonance If specified only include terms with this particle
* @param flavour Information on the required flavours of the quarks
* @param imode The mode
* @param ichan The phase-space channel the current is needed for.
* @param scale The invariant mass of the particles in the current.
* @param outgoing The particles produced in the decay
* @param momenta The momenta of the particles produced in the decay
* @param meopt Option for the calculation of the matrix element
* @return The current.
*/
virtual vector<LorentzPolarizationVectorE>
current(tcPDPtr resonance,
FlavourInfo flavour,
const int imode, const int ichan,Energy & scale,
const tPDVector & outgoing,
const vector<Lorentz5Momentum> & momenta,
DecayIntegrator::MEOption meopt) const;
/**
* Construct the SpinInfo for the decay products
*/
virtual void constructSpinInfo(ParticleVector decay) const;
/**
* Accept the decay. Checks the meson against the list
* @param id The id's of the particles in the current.
* @return Can this current have the external particles specified.
*/
virtual bool accept(vector<int> id);
/**
* Return the decay mode number for a given set of particles in the current.
* Checks the meson against the list
* @param id The id's of the particles in the current.
* @return The number of the mode
*/
virtual unsigned int decayMode(vector<int> id);
/**
* Output the setup information for the particle database
* @param os The stream to output the information to
* @param header Whether or not to output the information for MySQL
* @param create Whether or not to add a statement creating the object
*/
virtual void dataBaseOutput(ofstream & os,bool header,bool create) const;
public:
/** @name Functions used by the persistent I/O system. */
//@{
/**
* Function used to write out object persistently.
* @param os the persistent output stream written to.
*/
void persistentOutput(PersistentOStream & os) const;
/**
* Function used to read in object persistently.
* @param is the persistent input stream read from.
* @param version the version number of the object when written.
*/
void persistentInput(PersistentIStream & is, int version);
//@}
/**
* The standard Init function used to initialize the interfaces.
* Called exactly once for each class by the class description system
* before the main function starts or
* when this class is dynamically loaded.
*/
static void Init();
protected:
/** @name Clone Methods. */
//@{
/**
* Make a simple clone of this object.
* @return a pointer to the new object.
*/
virtual IBPtr clone() const;
/** Make a clone of this object, possibly modifying the cloned object
* to make it sane.
* @return a pointer to the new object.
*/
virtual IBPtr fullclone() const;
//@}
protected:
/** @name Standard Interfaced functions. */
//@{
/**
* Initialize this object after the setup phase before saving an
* EventGenerator to disk.
* @throws InitException if object could not be initialized properly.
*/
virtual void doinit();
//@}
private:
/**
* The assignment operator is private and must never be called.
* In fact, it should not even be implemented.
*/
OmegaPiPiCurrent & operator=(const OmegaPiPiCurrent &) = delete;
private:
/**
* Parameters for the \f$\omega(1650)\f$
*/
//@{
/**
* Mass of the resonance
*/
Energy mRes_;
/**
* Width of the resonance
*/
Energy wRes_;
/**
* Coupling of the resonance
*/
- double gRes_;
+ Energy gRes_;
//@}
/**
* Parameters for the \f$f_0\f$ resonances
*/
//@{
/**
* Mass of the \f$\sigma\f$
*/
Energy mSigma_;
/**
* Width of the \f$\sigma\f$
*/
Energy wSigma_;
/**
* Mass of the \f$f_0(980)\f$
*/
Energy mf0_;
/**
* \f$f_0\f$ coupling to \f$\pi\pi\f$
*/
- double gPiPi_;
+ Energy2 gPiPi_;
/**
* \f$f_0\f$ coupling to KK
*/
- double gKK_;
+ Energy2 gKK_;
/**
* Sigma coupling
*/
- double gSigma_;
+ Energy2 gSigma_;
/**
* f_0 coupling
*/
- double gf0_;
+ Energy2 gf0_;
//@}
};
}
#endif /* Herwig_OmegaPiPiCurrent_H */

File Metadata

Mime Type
text/x-diff
Expires
Tue, Sep 30, 5:49 AM (1 d, 4 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
6566379
Default Alt Text
(22 KB)

Event Timeline