laura is hosted by Hepforge, IPPP Durham
Laura++  v3r1
A maximum likelihood fitting package for performing Dalitz-plot analysis.
LauRhoOmegaMix.cc
Go to the documentation of this file.
1 
2 // Copyright University of Warwick 2004 - 2016.
3 // Distributed under the Boost Software License, Version 1.0.
4 // (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
5 
6 // Authors:
7 // Thomas Latham
8 // John Back
9 // Paul Harrison
10 
15 #include <iostream>
16 
18 #include "LauConstants.hh"
19 #include "LauDaughters.hh"
20 #include "LauParameter.hh"
21 #include "LauRhoOmegaMix.hh"
22 #include "LauResonanceInfo.hh"
23 #include "LauResonanceMaker.hh"
24 
26 
27 
29  const Int_t resPairAmpInt, const LauDaughters* daughters) :
30  LauAbsResonance(resInfo, resPairAmpInt, daughters),
31  model_(resType),
32  rhoMass_(0.0),
33  rhoResRadius_(0.0),
34  rhoParRadius_(0.0),
35  mOmega_(0),
36  mOmega0_(0.0),
37  mOmegaCur_(0.0),
38  wOmega_(0),
39  wOmega0_(0.0),
40  wOmegaCur_(0.0),
41  magB_(0),
42  phiB_(0),
43  delta_(0),
44  useDenom_(kTRUE),
45  doneFirstInit_(kFALSE),
46  rhoRes_(0),
47  omegaRes_(0)
48 {
49 
50  // Create the rho and omega lineshapes depending on the resonance type enumeration.
51  // The narrow omega is always a relativistic Breit-Wigner (RBW), but the broader rho
52  // can either be a RBW or a Gounaris-Sakurai lineshape. The" _1" form for the resonance type
53  // specifies that we want to assume the amplitude denominator correction term is set to 1.
54  // In principle, the rho lineshape can be any resonance defined by the resInfo pointer, so we
55  // use that to extract all relevant information about the first resonance.
56 
57  // We do not need the barrier nor spin factor terms for the components separately, since
58  // they will be added after the lineshapes have been combined
59 
61 
63 
65  rhoType = LauAbsResonance::GS;
66  }
67 
68  rhoRes_ = resMaker.getResonance(daughters, resInfo->getName(), resPairAmpInt, rhoType,
71 
72  LauResonanceInfo* omegaInfo = resMaker.getResInfo("omega(782)");
73  omegaRes_ = resMaker.getResonance(daughters, omegaInfo->getName(), resPairAmpInt, LauAbsResonance::RelBW,
76 
77  // Check to see if we want to set the denominator factor to unity
79  useDenom_ = kFALSE;
80  }
81 
82  // Initialise various parameters that can be used in the model
83  const TString& parNameBase = this->getSanitisedName();
84 
85  // Pole mass of the omega (2nd) resonance. Initialise using the resonance maker (PDG) info
86  mOmega0_ = omegaInfo->getMass()->unblindValue();
87  // Also set the current internal value of the omega mass for initialisation logic
88  mOmegaCur_ = mOmega0_;
89 
90  TString mOmegaName(parNameBase); mOmegaName += "_mOmega";
91  mOmega_ = resInfo->getExtraParameter(mOmegaName);
92  if (!mOmega_) {
93  mOmega_ = new LauParameter(mOmegaName, mOmega0_, 0.0, 100.0, kTRUE);
94  mOmega_->secondStage(kTRUE);
95  resInfo->addExtraParameter(mOmega_);
96  }
97 
98  // Pole width of the omega (2nd) resonance. Initialise using the resonance maker (PDG) info
99  wOmega0_ = omegaInfo->getWidth()->unblindValue();
100  // Also set the current internal value of the omega width for initialisation logic
101  wOmegaCur_ = wOmega0_;
102 
103  TString wOmegaName(parNameBase); wOmegaName += "_wOmega";
104  wOmega_ = resInfo->getExtraParameter(wOmegaName);
105  if (!wOmega_) {
106  wOmega_ = new LauParameter(wOmegaName, wOmega0_, 0.0, 100.0, kTRUE);
107  wOmega_->secondStage(kTRUE);
108  resInfo->addExtraParameter(wOmega_);
109  }
110 
111  // Set the magnitude and phase of the omega amplitude mixing term.
112  // These should be fitted
113  const Double_t magBVal = 1.0;
114  const Double_t phiBVal = 0.0;
115 
116  TString magBName(parNameBase); magBName += "_magB";
117  magB_ = resInfo->getExtraParameter(magBName);
118  if (!magB_) {
119  magB_ = new LauParameter(magBName, magBVal, 0.0, 100.0, kTRUE);
120  magB_->secondStage(kTRUE);
121  resInfo->addExtraParameter(magB_, kTRUE); // the kTRUE here allows this value to vary between B and Bbar - TODO: maybe make this configurable?
122  }
123 
124  TString phiBName(parNameBase); phiBName += "_phiB";
125  phiB_ = resInfo->getExtraParameter(phiBName);
126  if (!phiB_) {
127  phiB_ = new LauParameter(phiBName, phiBVal, -10.0, 10.0, kTRUE);
128  phiB_->secondStage(kTRUE);
129  resInfo->addExtraParameter(phiB_, kTRUE); // the kTRUE here allows this value to vary between B and Bbar - TODO: maybe make this configurable?
130  }
131 
132  // Set the delta parameter for the omega amplitude mixing term. This
133  // is usually fixed but should be varied for systematic error checks.
134  // In theory, this parameter can be complex, but we only use its magnitude
135  // in the mixing amplitude, since its usually very small: (2.15 +- 0.35) MeV/c^2
136  const Double_t deltaVal = 2.15e-3;
137 
138  TString deltaName(parNameBase); deltaName += "_delta";
139  delta_ = resInfo->getExtraParameter(deltaName);
140  if (!delta_) {
141  delta_ = new LauParameter(deltaName, deltaVal, 0.0, 100.0, kTRUE);
142  delta_->secondStage(kTRUE);
143  resInfo->addExtraParameter(delta_);
144  }
145 
146 }
147 
149 {
150 }
151 
153 {
154 
155  // Initialise the two resonances. This is done within each amplitude() function
156  // call and so floating parameters are checked every time, although secondary
157  // initialisation checks will be "skipped" since the parameters will be unchanged
158  // for the given set of kinematic variables/parameters
159  this->initialiseRho();
160  this->initialiseOmega();
161 
162 }
163 
165 {
166  rhoRes_->initialise();
167 
168  // Keep track of the current pole mass and barrier factor terms so that
169  // we can reinitialise the rho resonance if they change
170  rhoMass_ = rhoRes_->getMass();
173 
174 }
175 
177 {
178  // Set the pole mass and width of the omega resonance if this has changed
179  // using the parameters mOmega_ and wOmega_
180 
181  Double_t newOmegaM(-1.0), newOmegaW(-1.0);
182  const Int_t newOmegaSpin(-1);
183 
184  // See if the new pole mass is different from the current value
185  Double_t tmpOmegaM = mOmega_->unblindValue();
186  if (fabs(tmpOmegaM - mOmegaCur_) > 1e-10) {
187  newOmegaM = tmpOmegaM;
188  }
189 
190  // See if the new pole width is different from the current value
191  Double_t tmpOmegaW = wOmega_->unblindValue();
192  if (fabs(tmpOmegaW - wOmegaCur_) > 1e-10) {
193  newOmegaW = tmpOmegaW;
194  }
195 
196  // If any parameter is negative, they are unchanged
197  omegaRes_->changeResonance(newOmegaM, newOmegaW, newOmegaSpin);
198 
199  Bool_t changedOmegaM(kFALSE);
200  if (newOmegaM > -1.0) {
201  changedOmegaM = kTRUE;
202  }
203 
204  // Let the omega resonance pointer know if the mass or width are fixed or floating
205  if (doneFirstInit_ == kFALSE) {
206 
207  omegaRes_->fixMass(this->fixmOmegaValue());
209 
210  // We do not need to use the spin terms for the omega lineshape, since we
211  // use those from the rho for the full amplitude later on
212  omegaRes_->ignoreSpin(kTRUE);
213 
214  // We want to ignore momentum-dependent width effects: just use the constant pole width
215  omegaRes_->ignoreMomenta(kTRUE);
216 
217  // And we also need to ignore barrier scaling
219 
220  // Initialise the omega resonance pointer
222 
223  doneFirstInit_ = kTRUE;
224 
225  } else {
226 
227  // Reinitialise the omega resonance pointer only if we have changed
228  // its pole mass. It has no barrier factor
229 
230  if (changedOmegaM == kTRUE) {
232  }
233 
234  }
235 
236  // Keep track of the current values of the mass and width of the omega (floating/fixed)
237  mOmegaCur_ = tmpOmegaM;
238  wOmegaCur_ = tmpOmegaW;
239 
240 }
241 
243 
244  // This function overrides and returns the complex dynamical amplitude for the
245  // rho-omega mass mixing amplitude given the kinematics
246 
247  // Check to see if we need to reinitialise the rho resonance pointer
248  const Double_t resMass = rhoRes_->getMass();
249  const Double_t resRadius = rhoRes_->getResRadius();
250  const Double_t parRadius = rhoRes_->getParRadius();
251 
252  if ( ( (!this->fixMass()) && fabs(resMass - rhoMass_) > 1e-10) ||
253  ( (!this->fixResRadius()) && fabs(resRadius - rhoResRadius_) > 1e-10 ) ||
254  ( (!this->fixParRadius()) && fabs(parRadius - rhoParRadius_) > 1e-10 ) ) {
255 
256  this->initialiseRho();
257 
258  }
259 
260  // Always check the initialisaton of the omega resonance in case we have varied
261  // its mass/width via the fit parameters
262  this->initialiseOmega();
263 
264  // First, get the amplitude of the first (rho) resonance.
265  // This will include the full barrier and spin terms
266  const LauComplex rhoAmp = rhoRes_->amplitude(kinematics);
267 
268  // Next, get the amplitude of the second (omega) resonance. This ignores barrier
269  // and spin terms, and uses the pole width only (no momentum dependence)
270  const LauComplex omegaAmp = omegaRes_->amplitude(kinematics);
271 
272  // The Delta parameter, which we assume is purely real. Theoretically, delta can
273  // be complex, but in practice we only use its (usually small) magnitude
274  const Double_t Delta = (resMass + mOmegaCur_)*this->getdeltaValue();
275 
276  // The B amplitude term
277  const Double_t magBVal = this->getmagBValue()*Delta;
278  const Double_t phiBVal = this->getphiBValue();
279  const LauComplex BTerm = LauComplex(magBVal*cos(phiBVal), magBVal*sin(phiBVal));
280 
281  // The mass mixing term
282  const LauComplex unity(1.0, 0.0);
283  const LauComplex mixingTerm = BTerm*omegaAmp + unity;
284 
285  // Now form the full amplitude
286  LauComplex resAmplitude = rhoAmp*mixingTerm;
287 
288  // Add the mixing correction denominator term if required
289  if (useDenom_) {
290 
291  // Here, we need to disable the rho barrier & spin factors, since they are
292  // only needed for the numerator term of the full amplitude. Note that we still
293  // need to use the momentum-dependent width (with its resonance barrier term)
294 
295  // Disable barrier scaling factors for the amplitude (not width)
297  // Also ignore spin terms for now
298  rhoRes_->ignoreSpin(kTRUE);
299 
300  const LauComplex rhoAmp2 = rhoRes_->amplitude(kinematics);
301 
302  // Reinstate barrier scaling and spin term flags
303  rhoRes_->ignoreBarrierScaling(kFALSE);
304  rhoRes_->ignoreSpin(kFALSE);
305 
306  // Denominator term
307  const LauComplex DeltaSq = LauComplex(Delta*Delta, 0.0);
308  const LauComplex denomTerm = unity - DeltaSq*rhoAmp2*omegaAmp;
309 
310  // Modify the full amplitude
311  resAmplitude = resAmplitude/denomTerm;
312 
313  }
314 
315  return resAmplitude;
316 
317 }
318 
319 LauComplex LauRhoOmegaMix::resAmp(Double_t mass, Double_t spinTerm)
320 {
321  std::cerr << "ERROR in LauRhoOmegaMix : This method should never be called." << std::endl;
322  std::cerr << " : Returning zero amplitude for mass = " << mass << " and spinTerm = " << spinTerm << "." << std::endl;
323  return LauComplex(0.0, 0.0);
324 }
325 
326 const std::vector<LauParameter*>& LauRhoOmegaMix::getFloatingParameters() {
327 
328  this->clearFloatingParameters();
329 
330  if ( ! this->fixmOmegaValue() ) {
331  this->addFloatingParameter( mOmega_ );
332  }
333 
334  if ( ! this->fixwOmegaValue() ) {
335  this->addFloatingParameter( wOmega_ );
336  }
337 
338  if ( ! this->fixmagBValue() ) {
339  this->addFloatingParameter( magB_ );
340  }
341 
342  if ( ! this->fixphiBValue() ) {
343  this->addFloatingParameter( phiB_ );
344  }
345 
346  if ( ! this->fixdeltaValue() ) {
347  this->addFloatingParameter( delta_ );
348  }
349 
350  if ( ! this->fixMass() ) {
351  this->addFloatingParameter( this->getMassPar() );
352  }
353 
354  if ( ! this->fixWidth() ) {
355  this->addFloatingParameter( this->getWidthPar() );
356  }
357 
358  if ( ! this->fixResRadius() ) {
359  this->addFloatingParameter( this->getResBWFactor()->getRadiusParameter() );
360  }
361 
362  if ( ! this->fixParRadius() ) {
363  this->addFloatingParameter( this->getParBWFactor()->getRadiusParameter() );
364  }
365 
366  return this->getParameters();
367 }
368 
369 void LauRhoOmegaMix::setResonanceParameter(const TString& name, const Double_t value) {
370 
371  // Set various parameters for the lineshape
372  if (name == "mOmega") {
373  this->setmOmegaValue(value);
374  std::cout << "INFO in LauRhoOmegaMix::setResonanceParameter : Setting parameter mOmega = " << this->getmOmegaValue() << std::endl;
375  } else if (name == "wOmega") {
376  this->setwOmegaValue(value);
377  std::cout << "INFO in LauRhoOmegaMix::setResonanceParameter : Setting parameter wOmega = " << this->getwOmegaValue() << std::endl;
378  } else if (name == "magB") {
379  this->setmagBValue(value);
380  std::cout << "INFO in LauRhoOmegaMix::setResonanceParameter : Setting parameter magB = " << this->getmagBValue() << std::endl;
381  } else if (name == "phiB") {
382  this->setphiBValue(value);
383  std::cout << "INFO in LauRhoOmegaMix::setResonanceParameter : Setting parameter phiB = " << this->getphiBValue() << std::endl;
384  } else if (name == "delta") {
385  this->setdeltaValue(value);
386  std::cout << "INFO in LauRhoOmegaMix::setResonanceParameter : Setting parameter delta = " << this->getdeltaValue() << std::endl;
387  } else {
388  std::cerr << "WARNING in LauSigmaRes::setResonanceParameter: Parameter name "<<name<<" not recognised. No parameter changes made." << std::endl;
389  }
390 
391 }
392 
394 
395  if (name == "mOmega") {
396  if ( mOmega_->fixed() ) {
397  mOmega_->fixed( kFALSE );
398  this->addFloatingParameter( mOmega_ );
399  } else {
400  std::cerr << "WARNING in LauRhoOmegaMix::floatResonanceParameter: Parameter "<<name<<" already floating. No parameter changes made." << std::endl;
401  }
402  } else if (name == "wOmega") {
403  if ( wOmega_->fixed() ) {
404  wOmega_->fixed( kFALSE );
405  this->addFloatingParameter( wOmega_ );
406  } else {
407  std::cerr << "WARNING in LauRhoOmegaMix::floatResonanceParameter: Parameter "<<name<<" already floating. No parameter changes made." << std::endl;
408  }
409  } else if (name == "magB") {
410  if ( magB_->fixed() ) {
411  magB_->fixed( kFALSE );
412  this->addFloatingParameter( magB_ );
413  } else {
414  std::cerr << "WARNING in LauRhoOmegaMix::floatResonanceParameter: Parameter "<<name<<" already floating. No parameter changes made." << std::endl;
415  }
416  } else if (name == "phiB") {
417  if ( phiB_->fixed() ) {
418  phiB_->fixed( kFALSE );
419  this->addFloatingParameter( phiB_ );
420  } else {
421  std::cerr << "WARNING in LauRhoOmegaMix::floatResonanceParameter: Parameter "<<name<<" already floating. No parameter changes made." << std::endl;
422  }
423  } else if (name == "delta") {
424  if ( delta_->fixed() ) {
425  delta_->fixed( kFALSE );
426  this->addFloatingParameter( delta_ );
427  } else {
428  std::cerr << "WARNING in LauRhoOmegaMix::floatResonanceParameter: Parameter "<<name<<" already floating. No parameter changes made." << std::endl;
429  }
430  }
431 
432 }
433 
435 
436  if (name == "mOmega") {
437  return mOmega_;
438  } else if (name == "wOmega") {
439  return wOmega_;
440  } else if (name == "magB") {
441  return magB_;
442  } else if (name == "phiB") {
443  return phiB_;
444  } else if (name == "delta") {
445  return delta_;
446  } else {
447  std::cerr << "WARNING in LauRhoOmegaMix::getResonanceParameter: Parameter name "<<name<<" not reconised." << std::endl;
448  return 0;
449  }
450 }
451 
452 void LauRhoOmegaMix::setmOmegaValue(const Double_t mOmega) {
453  mOmega_->value( mOmega );
454  mOmega_->genValue( mOmega );
455  mOmega_->initValue( mOmega );
456 }
457 
458 void LauRhoOmegaMix::setwOmegaValue(const Double_t wOmega) {
459  wOmega_->value( wOmega );
460  wOmega_->genValue( wOmega );
461  wOmega_->initValue( wOmega );
462 }
463 
464 void LauRhoOmegaMix::setmagBValue(const Double_t magB) {
465  magB_->value( magB );
466  magB_->genValue( magB );
467  magB_->initValue( magB );
468 }
469 
470 void LauRhoOmegaMix::setphiBValue(const Double_t phiB) {
471  phiB_->value( phiB );
472  phiB_->genValue( phiB );
473  phiB_->initValue( phiB );
474 }
475 
476 void LauRhoOmegaMix::setdeltaValue(const Double_t delta) {
477  delta_->value( delta );
478  delta_->genValue( delta );
479  delta_->initValue( delta );
480 }
481 
virtual const std::vector< LauParameter * > & getFloatingParameters()
Retrieve the resonance parameters, e.g. so that they can be loaded into a fit.
virtual void initialise()=0
Initialise the model.
TString getName() const
Retrieve the name of the resonant particle.
virtual LauComplex resAmp(Double_t mass, Double_t spinTerm)
This is not called, amplitude is used directly instead.
LauParameter * getMassPar()
Get the mass parameter of the resonance.
Bool_t fixed() const
Check whether the parameter is fixed or floated.
void initialiseOmega()
Initialise the omega resonance.
LauParameter * getMass() const
Retrieve the mass of the resonant particle.
Bool_t fixWidth() const
Get the status of resonance width (fixed or released)
Double_t getMass() const
Get the mass of the resonance.
void changeResonance(const Double_t newMass, const Double_t newWidth, const Int_t newSpin)
Allow the mass, width and spin of the resonance to be changed.
File containing declaration of LauResonanceInfo class.
ClassImp(LauAbsCoeffSet)
Bool_t fixwOmegaValue() const
Fix the omega pole width parameter value.
LauParameter()
Default constructor.
Definition: LauParameter.cc:30
Bool_t fixmOmegaValue() const
Fix the omega pole mass parameter value.
Class for defining the properties of a resonant particle.
const TString & name() const
The parameter name.
Class that defines the particular 3-body decay under study.
Definition: LauDaughters.hh:33
LauParameter * getWidth() const
Retrieve the width of the resonant particle.
LauParameter * delta_
delta parameter of the omega mixing contribution
File containing declaration of LauDaughters class.
void setwOmegaValue(const Double_t wOmega)
Set the omega pole width parameter.
LauParameter * wOmega_
Pole width of the omega contribution.
LauAbsResonance * getResonance(const LauDaughters *daughters, const TString &resName, const Int_t resPairAmpInt, const LauAbsResonance::LauResonanceModel resType, const LauBlattWeisskopfFactor::BlattWeisskopfCategory bwCategory=LauBlattWeisskopfFactor::Default, const LauBlattWeisskopfFactor::BarrierType bwType=LauBlattWeisskopfFactor::BWPrimeBarrier)
Create a resonance.
Double_t rhoParRadius_
Previous value of the parents barrier radius of the rho resonance.
LauParameter * mOmega_
Pole mass of the omega contribution.
void setmagBValue(const Double_t magB)
Set the omega B magnitude mixing parameter.
Double_t mOmegaCur_
Current value of the omega pole mass (floating or fixed)
Bool_t fixdeltaValue() const
Fix the omega mixing parameter delta value.
Double_t rhoMass_
Previous value of the pole mass of the rho resonance.
Bool_t fixmagBValue() const
Fix the omega B magnitude mixing parameter value.
Bool_t fixResRadius() const
Get the status of resonance barrier radius (fixed or released)
Double_t getParRadius() const
Get the radius of the parent barrier factor.
Bool_t fixMass() const
Get the status of resonance mass (fixed or released)
LauParameter * phiB_
B phase parameter of the omega mixing contribution.
Double_t rhoResRadius_
Previous value of the barrier radius of the rho resonance.
virtual LauParameter * getResonanceParameter(const TString &name)
Access the given resonance parameter.
void addFloatingParameter(LauParameter *param)
Add parameter to the list of floating parameters.
LauBlattWeisskopfFactor * getParBWFactor()
Get the centrifugal barrier for the parent decay.
Singleton factory class for creating resonances.
Bool_t fixphiBValue() const
Fix the omega B phase mixing parameter value.
Double_t getdeltaValue() const
Get the omega mixing parameter delta.
Double_t wOmegaCur_
Current value of the omega pole mass (floating or fixed)
File containing declaration of LauBlattWeisskopfFactor class.
File containing declaration of LauResonanceMaker class.
File containing declaration of LauRhoOmegaMix class.
Double_t getwOmegaValue() const
Get the omega pole width parameter value.
File containing declaration of LauParameter class.
virtual LauComplex amplitude(const LauKinematics *kinematics)
Get the complex dynamical amplitude.
std::vector< LauParameter * > & getParameters()
Access the list of floating parameters.
LauParameter * getWidthPar()
Get the width parameter of the resonance.
Class for defining the fit parameter objects.
Definition: LauParameter.hh:35
Bool_t ignoreMomenta() const
Get the ignore momenta flag.
virtual ~LauRhoOmegaMix()
Destructor.
Class for defining the rho-omega resonance mixing model.
Double_t getmOmegaValue() const
Get the omega pole mass parameter value.
void setdeltaValue(const Double_t delta)
Set the omega mixing parameter delta.
LauAbsResonance * omegaRes_
Pointer to the omega (second) resonance lineshape.
LauResonanceModel
Define the allowed resonance types.
Double_t getResRadius() const
Get the radius of the resonance barrier factor.
Bool_t fixParRadius() const
Get the status of parent barrier radius (fixed or released)
Bool_t useDenom_
Boolean to specify if we want to use the denominator factor.
void initialiseRho()
Initialise the rho resonance.
void fixWidth(const Bool_t parFixed)
Fix or release the resonance width.
void setmOmegaValue(const Double_t mOmega)
Set the omega pole mass parameter.
Abstract class for defining type for resonance amplitude models (Breit-Wigner, Flatte etc...
virtual void setResonanceParameter(const TString &name, const Double_t value)
Set value of the various parameters.
Bool_t doneFirstInit_
Boolean to specify if we have performed the first initialisation.
Double_t initValue() const
The initial value of the parameter.
File containing LauConstants namespace.
LauParameter * magB_
B magnitude parameter of the omega mixing contribution.
LauAbsResonance * rhoRes_
Pointer to the rho (or first) resonance lineshape.
LauBlattWeisskopfFactor * getResBWFactor()
Get the centrifugal barrier for the resonance decay.
Double_t unblindValue() const
The unblinded value of the parameter.
void setphiBValue(const Double_t phiB)
Set the omega B phase mixing parameter.
Class for defining a complex number.
Definition: LauComplex.hh:47
Class for calculating 3-body kinematic quantities.
Double_t value() const
The value of the parameter.
Double_t getmagBValue() const
Get the omega B magnitude mixing parameter.
static LauResonanceMaker & get()
Get the factory instance.
void fixMass(const Bool_t parFixed)
Fix or release the resonance mass.
Bool_t ignoreSpin() const
Get the ignore spin flag.
virtual LauComplex amplitude(const LauKinematics *kinematics)
Calculate the complex amplitude.
virtual void initialise()
Initialise the model.
Double_t genValue() const
The value generated for the parameter.
virtual void floatResonanceParameter(const TString &name)
Allow the various parameters to float in the fit.
Double_t getphiBValue() const
Get the omega B phase mixing parameter.
LauResonanceInfo * getResInfo(const TString &resName) const
Get the information for the given resonance name.
Bool_t ignoreBarrierScaling() const
Get the ignore barrier factor scaling flag.
void clearFloatingParameters()
Clear list of floating parameters.