laura is hosted by Hepforge, IPPP Durham
Laura++  v3r5
A maximum likelihood fitting package for performing Dalitz-plot analysis.
LauRescattering2Res.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 <iostream>
30 
31 #include "LauConstants.hh"
32 #include "LauRescattering2Res.hh"
33 #include "LauResonanceInfo.hh"
34 
36 
37 LauRescattering2Res::LauRescattering2Res(LauResonanceInfo* resInfo, const Int_t resPairAmpInt, const LauDaughters* daughters) :
38  LauAbsResonance(resInfo, resPairAmpInt, daughters),
39  B1_(0),B2_(0),B3_(0),
40  C1_(0),C2_(0),C3_(0),C4_(0),C5_(0),
41  D0_(0),D1_(0),D2_(0),D3_(0),
42  F1_(0),F2_(0),F3_(0),F4_(0)
43 {
44  // Default values for parameters, taken from
45  const Double_t B1Val(23.6);
46  const Double_t B2Val(29.4);
47  const Double_t B3Val(0.6);
48  const Double_t C1Val(34.39);
49  const Double_t C2Val(4.4);
50  const Double_t C3Val(-32.9);
51  const Double_t C4Val(-16.);
52  const Double_t C5Val(7.4);
53  const Double_t D0Val(0.59);
54  const Double_t D1Val(-0.38);
55  const Double_t D2Val(0.12);
56  const Double_t D3Val(-0.09);
57  const Double_t F1Val(-0.043);
58  const Double_t F2Val(-0.008);
59  const Double_t F3Val(-0.28);
60  const Double_t F4Val(0.026);
61  const TString& parNameBase = this->getSanitisedName();
62 
63  TString B1Name(parNameBase);
64  B1Name += "_B1";
65  B1_ = resInfo->getExtraParameter( B1Name );
66  if ( B1_ == 0 ) {
67  B1_ = new LauParameter( B1Name, B1Val, -100.,100., kTRUE );
68  B1_->secondStage(kTRUE);
69  resInfo->addExtraParameter( B1_ );
70  }
71  TString B2Name(parNameBase);
72  B2Name += "_B2";
73  B2_ = resInfo->getExtraParameter( B2Name );
74  if ( B2_ == 0 ) {
75  B2_ = new LauParameter( B2Name, B2Val, -100.,100., kTRUE );
76  B2_->secondStage(kTRUE);
77  resInfo->addExtraParameter( B2_ );
78  }
79  TString B3Name(parNameBase);
80  B3Name += "_B3";
81  B3_ = resInfo->getExtraParameter( B3Name );
82  if ( B3_ == 0 ) {
83  B3_ = new LauParameter( B3Name, B3Val, -100.,100., kTRUE );
84  B3_->secondStage(kTRUE);
85  resInfo->addExtraParameter( B3_ );
86  }
87 
88  TString C1Name(parNameBase);
89  C1Name += "_C1";
90  C1_ = resInfo->getExtraParameter( C1Name );
91  if ( C1_ == 0 ) {
92  C1_ = new LauParameter( C1Name, C1Val, -100.,100., kTRUE );
93  C1_->secondStage(kTRUE);
94  resInfo->addExtraParameter( C1_ );
95  }
96  TString C2Name(parNameBase);
97  C2Name += "_C2";
98  C2_ = resInfo->getExtraParameter( C2Name );
99  if ( C2_ == 0 ) {
100  C2_ = new LauParameter( C2Name, C2Val, -100.,100., kTRUE );
101  C2_->secondStage(kTRUE);
102  resInfo->addExtraParameter( C2_ );
103  }
104  TString C3Name(parNameBase);
105  C3Name += "_C3";
106  C3_ = resInfo->getExtraParameter( C3Name );
107  if ( C3_ == 0 ) {
108  C3_ = new LauParameter( C3Name, C3Val, -100.,100., kTRUE );
109  C3_->secondStage(kTRUE);
110  resInfo->addExtraParameter( C3_ );
111  }
112  TString C4Name(parNameBase);
113  C4Name += "_C4";
114  C4_ = resInfo->getExtraParameter( C4Name );
115  if ( C4_ == 0 ) {
116  C4_ = new LauParameter( C4Name, C4Val, -100.,100., kTRUE );
117  C4_->secondStage(kTRUE);
118  resInfo->addExtraParameter( C4_ );
119  }
120  TString C5Name(parNameBase);
121  C5Name += "_C5";
122  C5_ = resInfo->getExtraParameter( C5Name );
123  if ( C5_ == 0 ) {
124  C5_ = new LauParameter( C5Name, C5Val, -100.,100., kTRUE );
125  C5_->secondStage(kTRUE);
126  resInfo->addExtraParameter( C5_ );
127  }
128 
129  TString D0Name(parNameBase);
130  D0Name += "_D0";
131  D0_ = resInfo->getExtraParameter( D0Name );
132  if ( D0_ == 0 ) {
133  D0_ = new LauParameter( D0Name, D0Val, -100.,100., kTRUE );
134  D0_->secondStage(kTRUE);
135  resInfo->addExtraParameter( D0_ );
136  }
137  TString D1Name(parNameBase);
138  D1Name += "_D1";
139  D1_ = resInfo->getExtraParameter( D1Name );
140  if ( D1_ == 0 ) {
141  D1_ = new LauParameter( D1Name, D1Val, -100.,100., kTRUE );
142  D1_->secondStage(kTRUE);
143  resInfo->addExtraParameter( D1_ );
144  }
145  TString D2Name(parNameBase);
146  D2Name += "_D2";
147  D2_ = resInfo->getExtraParameter( D2Name );
148  if ( D2_ == 0 ) {
149  D2_ = new LauParameter( D2Name, D2Val,-100.,100., kTRUE );
150  D2_->secondStage(kTRUE);
151  resInfo->addExtraParameter( D2_ );
152  }
153  TString D3Name(parNameBase);
154  D3Name += "_D3";
155  D3_ = resInfo->getExtraParameter( D3Name );
156  if ( D3_ == 0 ) {
157  D3_ = new LauParameter( D3Name, D3Val, -100.,100., kTRUE );
158  D3_->secondStage(kTRUE);
159  resInfo->addExtraParameter( D3_ );
160  }
161  TString F1Name(parNameBase);
162  F1Name += "_F1";
163  F1_ = resInfo->getExtraParameter( F1Name );
164  if ( F1_ == 0 ) {
165  F1_ = new LauParameter( F1Name, F1Val, -100.,100., kTRUE );
166  F1_->secondStage(kTRUE);
167  resInfo->addExtraParameter( F1_ );
168  }
169  TString F2Name(parNameBase);
170  F2Name += "_F2";
171  F2_ = resInfo->getExtraParameter( F2Name );
172  if ( F2_ == 0 ) {
173  F2_ = new LauParameter( F2Name, F2Val, -100.,100., kTRUE );
174  F2_->secondStage(kTRUE);
175  resInfo->addExtraParameter( F2_ );
176  }
177  TString F3Name(parNameBase);
178  F3Name += "_F3";
179  F3_ = resInfo->getExtraParameter( F3Name );
180  if ( F3_ == 0 ) {
181  F3_ = new LauParameter( F3Name, F3Val, -100.,100., kTRUE );
182  F3_->secondStage(kTRUE);
183  resInfo->addExtraParameter( F3_ );
184  }
185  TString F4Name(parNameBase);
186  F4Name += "_F4";
187  F4_ = resInfo->getExtraParameter( F4Name );
188  if ( F4_ == 0 ) {
189  F4_ = new LauParameter( F4Name, F4Val, -100.,100., kTRUE );
190  F4_->secondStage(kTRUE);
191  resInfo->addExtraParameter( F4_ );
192  }
193 }
194 
196 {
197  delete B1_;delete B2_;delete B3_;
198  delete C1_;delete C2_;delete C3_;delete C4_;delete C5_;
199  delete D0_;delete D1_;delete D2_;delete D3_;
200  delete F1_;delete F2_;delete F3_;delete F4_;
201 }
202 
204 {
205  sqr_tmin[1] = 2.00*LauConstants::mK;
206  sqr_tmin[2] = 1.47;
207  sqr_tmax[1] = 1.47;
208  sqr_tmax[2] = 2.00;
209 
210  B0_ = 226.5*TMath::Pi()/180.0 + B1_->value() - B2_->value() + B3_->value();
211  C0_ = phi00(sqr_tmax[1]*sqr_tmax[1], 1) + C1_->value() - C2_->value() + C3_->value() - C4_->value() + C5_->value();
212  F0_ = g00(sqr_tmax[1]*sqr_tmax[1], 1) + F1_->value() - F2_->value() + F3_->value() - F4_->value();
213 
214  std::cout << "##### B = " << this->B1_->value()<<", "<< this->B2_->value()<<", "<< this->B3_->value()<<std::endl;
215  std::cout << "##### C = " << this->C1_->value()<<", "<< this->C2_->value()<<", "<< this->C3_->value()<<", "<< this->C4_->value()<<", "<< this->C5_->value()<<std::endl;
216  std::cout << "##### D = " << this->D0_->value() <<", "<< this->D1_->value()<<", "<< this->D2_->value()<<", "<< this->D3_->value()<< std::endl;
217  std::cout << "##### F = " << this->F1_->value()<<", "<< this->F2_->value()<<", "<< this->F3_->value()<<", "<< this->F4_->value()<<std::endl;
218 
219 
220 }
221 
222 LauComplex LauRescattering2Res::resAmp(Double_t mass, Double_t)
223 {
224  Int_t i = 0;
225  if (mass < sqr_tmax[1]) i = 1;
226  if (mass > sqr_tmax[1] && mass < sqr_tmax[2]) i = 2;
227  if (i == 0) {
228  std::cout << " ERROR MASS = " << mass <<" out of limmits mI, mII" << std::endl;
229  return LauComplex(0,0);
230  }
231 
232  Double_t sqr_t = mass;
233  Double_t mag = this->g00(sqr_t, i);
234  Double_t phase = this->phi00(sqr_t, i);
235 
236  return LauComplex(mag*TMath::Cos(phase), mag*TMath::Sin(phase));
237 }
238 
239 Double_t LauRescattering2Res::pn(const Double_t x_, const Double_t n) const
240 {
241  if (n==0) return 1.0;
242  if (n==1) return x_;
243  return 2*x_*pn(x_,n-1) - pn(x_,n-2);
244 }
245 
246 
247 Double_t LauRescattering2Res::x(const Double_t sqr_t, const Int_t i) const
248 {
249  return 2.0*(sqr_t-sqr_tmin[i])/(sqr_tmax[i]-sqr_tmin[i]) -1.0;
250 }
251 
252 Double_t LauRescattering2Res::phi00(const Double_t sqr_t, const Int_t i) const
253 {
254  Double_t x_t = x(sqr_t, i);
255 
256  if (i==1) return B0_*this->pn(x_t,0)+
257  B1_->value()*this->pn(x_t,1)+
258  B2_->value()*this->pn(x_t,2)+
259  B3_->value()*this->pn(x_t,3);
260 
261  if (i==2) return C0_*this->pn(x_t,0)+
262  C1_->value()*this->pn(x_t,1)+
263  C2_->value()*this->pn(x_t,2)+
264  C3_->value()*this->pn(x_t,3)+
265  C4_->value()*this->pn(x_t,4)+
266  C5_->value()*this->pn(x_t,5);
267 
268  return 0;
269 }
270 
271 Double_t LauRescattering2Res::g00(const Double_t sqr_t, const Int_t i) const
272 {
273  Double_t x_t = x(sqr_t, i);
274 
275  if (i==1) return D0_->value()*this->pn(x_t,0)+
276  D1_->value()*this->pn(x_t,1)+
277  D2_->value()*this->pn(x_t,2)+
278  D3_->value()*this->pn(x_t,3);
279 
280 
281  if (i==2) return F0_*this->pn(x_t,0)+
282  F1_->value()*this->pn(x_t,1)+
283  F2_->value()*this->pn(x_t,2)+
284  F3_->value()*this->pn(x_t,3)+
285  F4_->value()*this->pn(x_t,4);
286 
287  return 0;
288 }
289 
290 
291 // TODO up to here!
292 const std::vector<LauParameter*>& LauRescattering2Res::getFloatingParameters()
293 {
294  this->clearFloatingParameters();
295 
296  if ( ! this->fixB1Parameter() ) {
297  this->addFloatingParameter( B1_ );
298  }
299  if ( ! this->fixB2Parameter() ) {
300  this->addFloatingParameter( B2_ );
301  }
302  if ( ! this->fixB3Parameter() ) {
303  this->addFloatingParameter( B3_ );
304  }
305 
306  if ( ! this->fixC1Parameter() ) {
307  this->addFloatingParameter( C1_ );
308  }
309  if ( ! this->fixC2Parameter() ) {
310  this->addFloatingParameter( C2_ );
311  }
312  if ( ! this->fixC3Parameter() ) {
313  this->addFloatingParameter( C3_ );
314  }
315  if ( ! this->fixC4Parameter() ) {
316  this->addFloatingParameter( C4_ );
317  }
318  if ( ! this->fixC5Parameter() ) {
319  this->addFloatingParameter( C5_ );
320  }
321 
322  if ( ! this->fixD0Parameter() ) {
323  this->addFloatingParameter( D0_ );
324  }
325  if ( ! this->fixD1Parameter() ) {
326  this->addFloatingParameter( D1_ );
327  }
328  if ( ! this->fixD2Parameter() ) {
329  this->addFloatingParameter( D2_ );
330  }
331  if ( ! this->fixD3Parameter() ) {
332  this->addFloatingParameter( D3_ );
333  }
334 
335  if ( ! this->fixF1Parameter() ) {
336  this->addFloatingParameter( F1_ );
337  }
338 
339  if ( ! this->fixF2Parameter() ) {
340  this->addFloatingParameter( F2_ );
341  }
342 
343  if ( ! this->fixF3Parameter() ) {
344  this->addFloatingParameter( F3_ );
345  }
346 
347  if ( ! this->fixF4Parameter() ) {
348  this->addFloatingParameter( F4_ );
349  }
350 
351 
352  return this->getParameters();
353 }
354 
355 void LauRescattering2Res::setResonanceParameter(const TString& name, const Double_t value)
356 {
357  // Set various parameters for the NRAmplitude lineshape dynamics
358  if (name == "B1") {
359  this->setB1Parameter(value);
360  std::cout << "INFO in LauRescattering2Res::setResonanceParameter : Setting NRAmplitude B1 = " << this->getB1Parameter() << std::endl;
361  } else if (name == "B2") {
362  this->setB2Parameter(value);
363  std::cout << "INFO in LauRescattering2Res::setResonanceParameter : Setting NRAmplitude B2 = " << this->getB2Parameter() << std::endl;
364  } else if (name == "B3") {
365  this->setB3Parameter(value);
366  std::cout << "INFO in LauRescattering2Res::setResonanceParameter : Setting NRAmplitude B3 = " << this->getB3Parameter() << std::endl;
367  } else if (name == "C1") {
368  this->setC1Parameter(value);
369  std::cout << "INFO in LauRescattering2Res::setResonanceParameter : Setting NRAmplitude C1 = " << this->getC1Parameter() << std::endl;
370  } else if (name == "C2") {
371  this->setC2Parameter(value);
372  std::cout << "INFO in LauRescattering2Res::setResonanceParameter : Setting NRAmplitude C2 = " << this->getC2Parameter() << std::endl;
373  } else if (name == "C3") {
374  this->setC3Parameter(value);
375  std::cout << "INFO in LauRescattering2Res::setResonanceParameter : Setting NRAmplitude C3 = " << this->getC3Parameter() << std::endl;
376  } else if (name == "C4") {
377  this->setC4Parameter(value);
378  std::cout << "INFO in LauRescattering2Res::setResonanceParameter : Setting NRAmplitude C4 = " << this->getC4Parameter() << std::endl;
379  } else if (name == "C5") {
380  this->setC5Parameter(value);
381  std::cout << "INFO in LauRescattering2Res::setResonanceParameter : Setting NRAmplitude C5 = " << this->getC5Parameter() << std::endl;
382  } else if (name == "D0") {
383  this->setD0Parameter(value);
384  std::cout << "INFO in LauRescattering2Res::setResonanceParameter : Setting NRAmplitude D0 = " << this->getD0Parameter() << std::endl;
385  } else if (name == "D1") {
386  this->setD1Parameter(value);
387  std::cout << "INFO in LauRescattering2Res::setResonanceParameter : Setting NRAmplitude D1 = " << this->getD1Parameter() << std::endl;
388  } else if (name == "D2") {
389  this->setD2Parameter(value);
390  std::cout << "INFO in LauRescattering2Res::setResonanceParameter : Setting NRAmplitude D2 = " << this->getD2Parameter() << std::endl;
391  } else if (name == "D3") {
392  this->setD3Parameter(value);
393  std::cout << "INFO in LauRescattering2Res::setResonanceParameter : Setting NRAmplitude D3 = " << this->getD3Parameter() << std::endl;
394  } else if (name == "F1") {
395  this->setF1Parameter(value);
396  std::cout << "INFO in LauRescattering2Res::setResonanceParameter : Setting NRAmplitude F1 = " << this->getF1Parameter() << std::endl;
397  } else if (name == "F2") {
398  this->setF2Parameter(value);
399  std::cout << "INFO in LauRescattering2Res::setResonanceParameter : Setting NRAmplitude F2 = " << this->getF2Parameter() << std::endl;
400  } else if (name == "F3") {
401  this->setF3Parameter(value);
402  std::cout << "INFO in LauRescattering2Res::setResonanceParameter : Setting NRAmplitude F3 = " << this->getF3Parameter() << std::endl;
403  } else if (name == "F4") {
404  this->setF4Parameter(value);
405  std::cout << "INFO in LauRescattering2Res::setResonanceParameter : Setting NRAmplitude F4 = " << this->getF4Parameter() << std::endl;
406  } else {
407  std::cerr << "WARNING in LauRescattering2Res::setResonanceParameter: Parameter name not reconised. No parameter changes made." << std::endl;
408  }
409 }
410 
412 {
413  if (name == "B1") {
414  if ( B1_->fixed() ) {
415  B1_->fixed( kFALSE );
416  this->addFloatingParameter( B1_ );
417  } else {
418  std::cerr << "WARNING in LauRescattering2Res::floatResonanceParameter: Parameter already floating. No parameter changes made." << std::endl;
419  }
420  } else if (name == "B2") {
421  if ( B2_->fixed() ) {
422  B2_->fixed( kFALSE );
423  this->addFloatingParameter( B2_ );
424  } else {
425  std::cerr << "WARNING in LauRescattering2Res::floatResonanceParameter: Parameter already floating. No parameter changes made." << std::endl;
426  }
427  } else if (name == "B3") {
428  if ( B3_->fixed() ) {
429  B3_->fixed( kFALSE );
430  this->addFloatingParameter( B3_ );
431  } else {
432  std::cerr << "WARNING in LauRescattering2Res::floatResonanceParameter: Parameter already floating. No parameter changes made." << std::endl;
433  }
434  } else if (name == "C1") {
435  if ( C1_->fixed() ) {
436  C1_->fixed( kFALSE );
437  this->addFloatingParameter( C1_ );
438  } else {
439  std::cerr << "WARNING in LauRescattering2Res::floatResonanceParameter: Parameter already floating. No parameter changes made." << std::endl;
440  }
441  } else if (name == "C2") {
442  if ( C2_->fixed() ) {
443  C2_->fixed( kFALSE );
444  this->addFloatingParameter( C2_ );
445  } else {
446  std::cerr << "WARNING in LauRescattering2Res::floatResonanceParameter: Parameter already floating. No parameter changes made." << std::endl;
447  }
448  } else if (name == "C3") {
449  if ( C3_->fixed() ) {
450  C3_->fixed( kFALSE );
451  this->addFloatingParameter( C3_ );
452  } else {
453  std::cerr << "WARNING in LauRescattering2Res::floatResonanceParameter: Parameter already floating. No parameter changes made." << std::endl;
454  }
455  } else if (name == "C4") {
456  if ( C4_->fixed() ) {
457  C4_->fixed( kFALSE );
458  this->addFloatingParameter( C4_ );
459  } else {
460  std::cerr << "WARNING in LauRescattering2Res::floatResonanceParameter: Parameter already floating. No parameter changes made." << std::endl;
461  }
462  } else if (name == "C5") {
463  if ( C5_->fixed() ) {
464  C5_->fixed( kFALSE );
465  this->addFloatingParameter( C5_ );
466  } else {
467  std::cerr << "WARNING in LauRescattering2Res::floatResonanceParameter: Parameter already floating. No parameter changes made." << std::endl;
468  }
469  } else if (name == "D0") {
470  if ( D0_->fixed() ) {
471  D0_->fixed( kFALSE );
472  this->addFloatingParameter( D0_ );
473  } else {
474  std::cerr << "WARNING in LauRescattering2Res::floatResonanceParameter: Parameter already floating. No parameter changes made." << std::endl;
475  }
476  } else if (name == "D1") {
477  if ( D1_->fixed() ) {
478  D1_->fixed( kFALSE );
479  this->addFloatingParameter( D1_ );
480  } else {
481  std::cerr << "WARNING in LauRescattering2Res::floatResonanceParameter: Parameter already floating. No parameter changes made." << std::endl;
482  }
483  } else if (name == "D2") {
484  if ( D2_->fixed() ) {
485  D2_->fixed( kFALSE );
486  this->addFloatingParameter( D2_ );
487  } else {
488  std::cerr << "WARNING in LauRescattering2Res::floatResonanceParameter: Parameter already floating. No parameter changes made." << std::endl;
489  }
490  } else if (name == "D3") {
491  if ( D3_->fixed() ) {
492  D3_->fixed( kFALSE );
493  this->addFloatingParameter( D3_ );
494  } else {
495  std::cerr << "WARNING in LauRescattering2Res::floatResonanceParameter: Parameter already floating. No parameter changes made." << std::endl;
496  }
497  } else if (name == "F1") {
498  if ( F1_->fixed() ) {
499  F1_->fixed( kFALSE );
500  this->addFloatingParameter( F1_ );
501  } else {
502  std::cerr << "WARNING in LauRescattering2Res::floatResonanceParameter: Parameter already floating. No parameter changes made." << std::endl;
503  }
504  } else if (name == "F2") {
505  if ( F2_->fixed() ) {
506  F2_->fixed( kFALSE );
507  this->addFloatingParameter( F2_ );
508  } else {
509  std::cerr << "WARNING in LauRescattering2Res::floatResonanceParameter: Parameter already floating. No parameter changes made." << std::endl;
510  }
511  } else if (name == "F3") {
512  if ( F3_->fixed() ) {
513  F3_->fixed( kFALSE );
514  this->addFloatingParameter( F3_ );
515  } else {
516  std::cerr << "WARNING in LauRescattering2Res::floatResonanceParameter: Parameter already floating. No parameter changes made." << std::endl;
517  }
518  } else if (name == "4F") {
519  if ( F4_->fixed() ) {
520  F4_->fixed( kFALSE );
521  this->addFloatingParameter( F4_ );
522  } else {
523  std::cerr << "WARNING in LauRescattering2Res::floatResonanceParameter: Parameter already floating. No parameter changes made." << std::endl;
524  }
525  } else {
526  std::cerr << "WARNING in LauRescattering2Res::fixResonanceParameter: Parameter name not reconised. No parameter changes made." << std::endl;
527  }
528 }
529 
531 {
532  if (name == "B1") {
533  return B1_;
534  } else if (name == "B2") {
535  return B2_;
536  } else if (name == "B3") {
537  return B3_;
538  } else if (name == "C1") {
539  return C1_;
540  } else if (name == "C2") {
541  return C2_;
542  } else if (name == "C3") {
543  return C3_;
544  } else if (name == "C4") {
545  return C4_;
546  } else if (name == "C5") {
547  return C5_;
548  } else if (name == "D0") {
549  return D0_;
550  } else if (name == "D1") {
551  return D1_;
552  } else if (name == "D2") {
553  return D2_;
554  } else if (name == "D3") {
555  return D3_;
556  } else if (name == "F1") {
557  return F1_;
558  } else if (name == "F2") {
559  return F2_;
560  } else if (name == "F3") {
561  return F3_;
562  } else if (name == "F4") {
563  return F4_;
564  } else {
565  std::cerr << "WARNING in LauRescattering2Res::getResonanceParameter: Parameter name not reconised." << std::endl;
566  return 0;
567  }
568 }
569 
570 void LauRescattering2Res::setB1Parameter(const Double_t B1)
571 {
572  B1_->value( B1 );
573  B1_->genValue( B1 );
574  B1_->initValue( B1 );
575 }
576 void LauRescattering2Res::setB2Parameter(const Double_t B2)
577 {
578  B2_->value( B2 );
579  B2_->genValue( B2 );
580  B2_->initValue( B2 );
581 }
582 void LauRescattering2Res::setB3Parameter(const Double_t B3)
583 {
584  B3_->value( B3 );
585  B3_->genValue( B3 );
586  B3_->initValue( B3 );
587 }
588 
589 void LauRescattering2Res::setC1Parameter(const Double_t C1)
590 {
591  C1_->value( C1 );
592  C1_->genValue( C1 );
593  C1_->initValue( C1 );
594 }
595 void LauRescattering2Res::setC2Parameter(const Double_t C2)
596 {
597  C2_->value( C2 );
598  C2_->genValue( C2 );
599  C2_->initValue( C2 );
600 }
601 void LauRescattering2Res::setC3Parameter(const Double_t C3)
602 {
603  C3_->value( C3 );
604  C3_->genValue( C3 );
605  C3_->initValue( C3 );
606 }
607 void LauRescattering2Res::setC4Parameter(const Double_t C4)
608 {
609  C4_->value( C4 );
610  C4_->genValue( C4 );
611  C4_->initValue( C4 );
612 }
613 void LauRescattering2Res::setC5Parameter(const Double_t C5)
614 {
615  C5_->value( C5 );
616  C5_->genValue( C5 );
617  C5_->initValue( C5 );
618 }
619 
620 
621 void LauRescattering2Res::setD0Parameter(const Double_t D0)
622 {
623  D0_->value( D0 );
624  D0_->genValue( D0 );
625  D0_->initValue( D0 );
626 }
627 void LauRescattering2Res::setD1Parameter(const Double_t D1)
628 {
629  D1_->value( D1 );
630  D1_->genValue( D1 );
631  D1_->initValue( D1 );
632 }
633 void LauRescattering2Res::setD2Parameter(const Double_t D2)
634 {
635  D2_->value( D2 );
636  D2_->genValue( D2 );
637  D2_->initValue( D2 );
638 }
639 void LauRescattering2Res::setD3Parameter(const Double_t D3)
640 {
641  D3_->value( D3 );
642  D3_->genValue( D3 );
643  D3_->initValue( D3 );
644 }
645 void LauRescattering2Res::setF1Parameter(const Double_t F1)
646 {
647  F1_->value( F1 );
648  F1_->genValue( F1 );
649  F1_->initValue( F1 );
650 }
651 
652 void LauRescattering2Res::setF2Parameter(const Double_t F2)
653 {
654  F2_->value( F2 );
655  F2_->genValue( F2 );
656  F2_->initValue( F2 );
657 }
658 
659 void LauRescattering2Res::setF3Parameter(const Double_t F3)
660 {
661  F3_->value( F3 );
662  F3_->genValue( F3 );
663  F3_->initValue( F3 );
664 }
665 
666 void LauRescattering2Res::setF4Parameter(const Double_t F4)
667 {
668  F4_->value( F4 );
669  F4_->genValue( F4 );
670  F4_->initValue( F4 );
671 }
672 
Bool_t fixed() const
Check whether the parameter is fixed or floated.
Double_t getF1Parameter() const
File containing declaration of LauResonanceInfo class.
void setB2Parameter(const Double_t B2)
LauParameter * B1_
Parameter.
Double_t getC1Parameter() const
ClassImp(LauAbsCoeffSet)
Double_t getC4Parameter() const
Double_t getC3Parameter() const
void setF4Parameter(const Double_t F4)
LauParameter()
Default constructor.
Definition: LauParameter.cc:44
Class for defining the properties of a resonant particle.
const TString & name() const
The parameter name.
Double_t getF2Parameter() const
Class that defines the particular 3-body decay under study.
Definition: LauDaughters.hh:47
Double_t getF4Parameter() const
void setD1Parameter(const Double_t D1)
Bool_t fixD0Parameter() const
Double_t getC5Parameter() const
void setC4Parameter(const Double_t C4)
Bool_t fixF1Parameter() const
Double_t x(const Double_t sqr_t, const Int_t i) const
void setC2Parameter(const Double_t C2)
virtual void initialise()
Initialise the model.
Double_t getC2Parameter() const
virtual LauComplex resAmp(Double_t mass, Double_t spinTerm)
This is not meant to be called.
virtual void floatResonanceParameter(const TString &name)
Allow the various parameters to float in the fit.
Bool_t fixF3Parameter() const
void setD0Parameter(const Double_t D0)
Bool_t fixF4Parameter() const
Double_t getB2Parameter() const
Bool_t fixF2Parameter() const
void addFloatingParameter(LauParameter *param)
Add parameter to the list of floating parameters.
Bool_t fixC2Parameter() const
Bool_t fixC5Parameter() const
virtual const std::vector< LauParameter * > & getFloatingParameters()
Retrieve the resonance parameters, e.g. so that they can be loaded into a fit.
void setC1Parameter(const Double_t C1)
Double_t getB3Parameter() const
void setC5Parameter(const Double_t C5)
void setD2Parameter(const Double_t D2)
std::vector< LauParameter * > & getParameters()
Access the list of floating parameters.
Bool_t fixC4Parameter() const
Class for defining the fit parameter objects.
Definition: LauParameter.hh:49
File containing declaration of LauRescattering2Res class.
Bool_t fixC3Parameter() const
Double_t g00(const Double_t sqr_t, const Int_t i) const
Double_t getD2Parameter() const
void setF3Parameter(const Double_t F3)
Double_t getB1Parameter() const
virtual LauParameter * getResonanceParameter(const TString &name)
Access the given resonance parameter.
Bool_t fixD3Parameter() const
Double_t getD3Parameter() const
Bool_t fixD2Parameter() const
Abstract class for defining type for resonance amplitude models (Breit-Wigner, Flatte etc...
void setC3Parameter(const Double_t C3)
Double_t phi00(const Double_t sqr_t, const Int_t i) const
void setD3Parameter(const Double_t D3)
Bool_t fixB3Parameter() const
virtual void setResonanceParameter(const TString &name, const Double_t value)
Set value of a resonance parameter.
Double_t initValue() const
The initial value of the parameter.
Double_t pn(const Double_t x, const Double_t n) const
Bool_t fixC1Parameter() const
Double_t getF3Parameter() const
File containing LauConstants namespace.
Bool_t fixB1Parameter() const
void setF2Parameter(const Double_t F2)
virtual ~LauRescattering2Res()
Destructor.
Class for defining a complex number.
Definition: LauComplex.hh:61
void setB3Parameter(const Double_t B3)
void setB1Parameter(const Double_t B1)
Class for defining an alternative rescattering model.
Double_t value() const
The value of the parameter.
void setF1Parameter(const Double_t F1)
Double_t getD0Parameter() const
Double_t getD1Parameter() const
Double_t genValue() const
The value generated for the parameter.
const Double_t mK
Mass of K+- (GeV/c^2)
Definition: LauConstants.hh:58
Bool_t fixD1Parameter() const
Bool_t fixB2Parameter() const
void clearFloatingParameters()
Clear list of floating parameters.