laura is hosted by Hepforge, IPPP Durham
Laura++  v3r5
A maximum likelihood fitting package for performing Dalitz-plot analysis.
LauPoleRes.cc
Go to the documentation of this file.
1 
2 /*
3 Copyright 2018 University of Warwick
4 
5 Licensed under the Apache License, Version 2.0 (the "License");
6 you may not use this file except in compliance with the License.
7 You may obtain a copy of the License at
8 
9  http://www.apache.org/licenses/LICENSE-2.0
10 
11 Unless required by applicable law or agreed to in writing, software
12 distributed under the License is distributed on an "AS IS" BASIS,
13 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 See the License for the specific language governing permissions and
15 limitations under the License.
16 */
17 
18 /*
19 Laura++ package authors:
20 John Back
21 Paul Harrison
22 Thomas Latham
23 */
24 
29 #include "LauPoleRes.hh"
30 
32 
33 
34 LauPoleRes::LauPoleRes(LauResonanceInfo* resInfo, const Int_t resPairAmpInt, const LauDaughters* daughters) :
35  LauAbsResonance(resInfo, resPairAmpInt, daughters)
36 {
37 }
38 
40 {
41 }
42 
44 {
45 }
46 
47 LauComplex LauPoleRes::resAmp(Double_t mass, Double_t spinTerm)
48 {
49  // This function returns the complex dynamical amplitude for a pole. 1/((mpole*mpole)-m*m)
50  // mpole==(m0-iw0)==(rePole-i*imPole), to use the already defined mass and width of the resonance
51 
52  Double_t rePole = this->getMass();
53  Double_t imPole = this->getWidth();
54  Double_t reTerm = rePole*rePole -imPole*imPole -mass*mass;
55  Double_t imTerm = 2.0*rePole*imPole;
56 
57  LauComplex resAmplitude(reTerm, imTerm);
58 
59  resAmplitude.rescale(1./(reTerm*reTerm + imTerm*imTerm));
60 
61  return resAmplitude.scale(spinTerm);
62 }
63 
64 const std::vector<LauParameter*>& LauPoleRes::getFloatingParameters()
65 {
67 
68  if ( ! this->fixMass() ) {
69  this->addFloatingParameter( this->getMassPar() );
70  }
71  if ( ! this->fixWidth() ) {
72  this->addFloatingParameter( this->getWidthPar() );
73  }
74 
75  return this->getParameters();
76 }
77 
LauParameter * getMassPar()
Get the mass parameter of the resonance.
Bool_t fixWidth() const
Get the status of resonance width (fixed or released)
Double_t getMass() const
Get the mass of the resonance.
virtual LauComplex resAmp(Double_t mass, Double_t spinTerm)
Complex resonant amplitude.
Definition: LauPoleRes.cc:47
ClassImp(LauAbsCoeffSet)
Class for defining the properties of a resonant particle.
Class that defines the particular 3-body decay under study.
Definition: LauDaughters.hh:47
virtual ~LauPoleRes()
Destructor.
Definition: LauPoleRes.cc:39
Bool_t fixMass() const
Get the status of resonance mass (fixed or released)
void addFloatingParameter(LauParameter *param)
Add parameter to the list of floating parameters.
virtual const std::vector< LauParameter * > & getFloatingParameters()
Retrieve the resonance parameters, e.g. so that they can be loaded into a fit.
Definition: LauPoleRes.cc:64
std::vector< LauParameter * > & getParameters()
Access the list of floating parameters.
LauParameter * getWidthPar()
Get the width parameter of the resonance.
virtual void initialise()
Initialise the model.
Definition: LauPoleRes.cc:43
Double_t getWidth() const
Get the width of the resonance.
Class for defining a pole-type resonance model.
Definition: LauPoleRes.hh:46
Abstract class for defining type for resonance amplitude models (Breit-Wigner, Flatte etc...
void rescale(Double_t scaleVal)
Scale this by a factor.
Definition: LauComplex.hh:299
Class for defining a complex number.
Definition: LauComplex.hh:61
File containing declaration of LauPoleRes class.
LauComplex scale(Double_t scaleVal) const
Obtain the complex number scaled by some factor.
Definition: LauComplex.hh:290
void clearFloatingParameters()
Clear list of floating parameters.