24 Int_t resCharge, Int_t resPairAmpInt, const
LauDaughters* daughters) :
25 LauAbsResonance(resName, resMass, resWidth, resSpin, resCharge, resPairAmpInt, daughters),
54 Double_t resMass = this->
getMass();
58 if (resName !=
"f_0(980)") {
59 std::cerr <<
"WARNING in LauFlatteRes::initialise : Unexpected resonance name \"" << resName <<
"\" for Flatte shape." << std::endl;
60 std::cerr <<
" : Setting parameters to \"f0_980\" values." << std::endl;
79 TString g1name =
"gPiPi";
80 std::cout <<
"INFO in LauFlatteRes::setResonanceParameter : Setting " << g1name <<
" Parameter to " << this->
getg1Parameter() << std::endl;
81 }
else if (name ==
"g2") {
83 TString g2name =
"gKK";
84 std::cout <<
"INFO in LauFlatteRes::setResonanceParameter : Setting " << g2name <<
" Parameter to " << this->
getg2Parameter() << std::endl;
86 std::cerr <<
"WARNING in LauFlatteRes::setResonanceParameter : Parameter name \"" << name <<
"\" not recognised." << std::endl;
95 Double_t resMass = this->
getMass();
96 Double_t s = mass*mass;
99 Double_t rho1(0.0), rho2(0.0);
101 rho1 = TMath::Sqrt(1.0 -
mSumSq0_/s)/3.0;
103 rho1 += 2.0*TMath::Sqrt(1.0 -
mSumSq1_/s)/3.0;
105 rho2 = 0.5*TMath::Sqrt(1.0 -
mSumSq2_/s);
107 rho2 += 0.5*TMath::Sqrt(1.0 -
mSumSq3_/s);
111 dMSq +=
g2_*resMass*0.5*TMath::Sqrt(
mSumSq3_/s - 1.0);
117 dMSq +=
g2_*resMass*(0.5*TMath::Sqrt(
mSumSq2_/s - 1.0) + 0.5*TMath::Sqrt(
mSumSq3_/s - 1.0));
122 dMSq +=
g1_*resMass*2.0*TMath::Sqrt(
mSumSq1_/s - 1.0)/3.0;
126 Double_t width1 =
g1_*rho1*resMass;
127 Double_t width2 =
g2_*rho2*resMass;
128 Double_t widthTerm = width1 + width2;
132 Double_t denomFactor = dMSq*dMSq + widthTerm*widthTerm;
134 Double_t invDenomFactor = 0.0;
135 if (denomFactor > 1e-10) {invDenomFactor = 1.0/denomFactor;}
137 resAmplitude.
rescale(spinTerm*invDenomFactor);
virtual void initialise()
Initialise the model.
Double_t getMass() const
Get the mass of the resonance.
const TString & getResonanceName() const
Get the name of the resonance.
Double_t resMassSq_
Square of the resonance mass.
const Double_t mK0
Mass of K0 (GeV/c^2)
const TString & name() const
The parameter name.
Class that defines the particular 3-body decay under study.
Double_t getg2Parameter()
Get the g2 parameter.
Double_t mSumSq1_
Defined as (mPi+mPi)*(mPi+mPi)
Double_t mSumSq3_
Defined as (mK0+mK0)*(mK0+mK0)
void setg2Parameter(Double_t g2)
Set the g2 parameter.
void setGFactors(Double_t g1, Double_t g2)
Set the constant g factors.
const Double_t mPi
Mass of pi+- (GeV/c^2)
Double_t g2_
Constant factor (default value from BES data)
Double_t g1_
Constant factor (default value from BES data)
virtual ~LauFlatteRes()
Destructor.
Double_t getg1Parameter()
Get the g1 parameter.
Abstract class for defining type for resonance amplitude models (Breit-Wigner, Flatte etc...
void rescale(Double_t scaleVal)
Scale this by a factor.
void setg1Parameter(Double_t g1)
Set the g1 parameter.
Double_t mSumSq2_
Defined as (mK+mK)*(mK+mK)
File containing LauConstants namespace.
Class for defining a complex number.
Double_t mSumSq0_
Defined as (mPi0+mPi0)*(mPi0+mPi0)
virtual LauComplex resAmp(Double_t mass, Double_t spinTerm)
Complex resonant amplitude.
Double_t value() const
The value of the parameter.
virtual void setResonanceParameter(Double_t value, const TString &name)
Set resonance parameter.
Class for defining the Flatte resonance model.
const Double_t mK
Mass of K+- (GeV/c^2)
const Double_t mPi0
Mass of pi0 (GeV/c^2)
File containing declaration of LauFlatteRes class.