laura is hosted by Hepforge, IPPP Durham
Laura++  v3r0
A maximum likelihood fitting package for performing Dalitz-plot analysis.
LauAbsResonance.cc
Go to the documentation of this file.
1 
2 // Copyright University of Warwick 2004 - 2014.
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 
17 #include "TSystem.h"
18 
19 #include "LauAbsResonance.hh"
20 #include "LauConstants.hh"
21 #include "LauDaughters.hh"
22 #include "LauKinematics.hh"
23 #include "LauParameter.hh"
24 #include "LauResonanceInfo.hh"
25 
27 
28 
29 // Constructor
30 LauAbsResonance::LauAbsResonance(LauResonanceInfo* resInfo, const Int_t resPairAmpInt, const LauDaughters* daughters) :
31  resInfo_(resInfo),
32  daughters_(daughters),
33  nameParent_(""), nameDaug1_(""), nameDaug2_(""), nameBachelor_(""),
34  chargeParent_(0), chargeDaug1_(0), chargeDaug2_(0), chargeBachelor_(0),
35  massParent_(0.0), massDaug1_(0.0), massDaug2_(0.0), massBachelor_(0.0),
36  resName_( (resInfo!=0) ? resInfo->getName() : "" ),
37  sanitisedName_( (resInfo!=0) ? resInfo->getSanitisedName() : "" ),
38  resMass_( (resInfo!=0) ? resInfo->getMass() : 0 ),
39  resWidth_( (resInfo!=0) ? resInfo->getWidth() : 0 ),
40  resSpin_( (resInfo!=0) ? resInfo->getSpin() : 0 ),
41  resCharge_( (resInfo!=0) ? resInfo->getCharge() : 0 ),
42  resPairAmpInt_(resPairAmpInt),
43  parBWFactor_(0),
44  resBWFactor_(0),
45  flipHelicity_(kFALSE),
46  ignoreMomenta_(kFALSE),
47  q_(0.0),
48  p_(0.0),
49  pstar_(0.0)
50 {
51  if ( resInfo == 0 ) {
52  std::cerr << "ERROR in LauAbsResonance constructor : null LauResonanceInfo object provided" << std::endl;
53  gSystem->Exit(EXIT_FAILURE);
54  }
55 
56  if ( daughters_ == 0 ) {
57  std::cerr << "ERROR in LauAbsResonance constructor : null LauDaughters object provided" << std::endl;
58  gSystem->Exit(EXIT_FAILURE);
59  }
60 
61  nameParent_ = this->getNameParent();
62  nameDaug1_ = this->getNameDaug1();
63  nameDaug2_ = this->getNameDaug2();
64  nameBachelor_ = this->getNameBachelor();
65  massParent_ = this->getMassParent();
66  massDaug1_ = this->getMassDaug1();
67  massDaug2_ = this->getMassDaug2();
68  massBachelor_ = this->getMassBachelor();
69  chargeParent_ = this->getChargeParent();
70  chargeDaug1_ = this->getChargeDaug1();
71  chargeDaug2_ = this->getChargeDaug2();
72  chargeBachelor_ = this->getChargeBachelor();
73 
74  // check that the total charge adds up to that of the resonance
75  Int_t totalCharge = chargeDaug1_ + chargeDaug2_;
76  if ( (totalCharge != resCharge_) && (resPairAmpInt_ != 0) ) {
77  std::cerr << "ERROR in LauAbsResonance : Total charge of daughters = " << totalCharge << ". Resonance charge = " << resCharge_ << "." << std::endl;
78  gSystem->Exit(EXIT_FAILURE);
79  }
80 }
81 
82 // Constructor
83 LauAbsResonance::LauAbsResonance(const TString& resName, const Int_t resPairAmpInt, const LauDaughters* daughters) :
84  resInfo_(0),
85  daughters_(daughters),
86  nameParent_(""), nameDaug1_(""), nameDaug2_(""), nameBachelor_(""),
87  chargeParent_(0), chargeDaug1_(0), chargeDaug2_(0), chargeBachelor_(0),
88  massParent_(0.0), massDaug1_(0.0), massDaug2_(0.0), massBachelor_(0.0),
89  resName_(resName),
90  sanitisedName_(resName),
91  resMass_(0),
92  resWidth_(0),
93  resSpin_(0),
94  resCharge_(0),
95  resPairAmpInt_(resPairAmpInt),
96  parBWFactor_(0),
97  resBWFactor_(0),
98  flipHelicity_(kFALSE),
99  ignoreMomenta_(kFALSE),
100  q_(0.0),
101  p_(0.0),
102  pstar_(0.0)
103 {
104  if ( daughters_ == 0 ) {
105  std::cerr << "ERROR in LauAbsResonance constructor : null LauDaughters object provided" << std::endl;
106  gSystem->Exit(EXIT_FAILURE);
107  }
108 
109  nameParent_ = this->getNameParent();
110  nameDaug1_ = this->getNameDaug1();
111  nameDaug2_ = this->getNameDaug2();
112  nameBachelor_ = this->getNameBachelor();
113  massParent_ = this->getMassParent();
114  massDaug1_ = this->getMassDaug1();
115  massDaug2_ = this->getMassDaug2();
116  massBachelor_ = this->getMassBachelor();
117  chargeParent_ = this->getChargeParent();
118  chargeDaug1_ = this->getChargeDaug1();
119  chargeDaug2_ = this->getChargeDaug2();
121 
122  // check that the total charge adds up to that of the resonance
123  Int_t totalCharge = chargeDaug1_ + chargeDaug2_;
124  if ( (totalCharge != resCharge_) && (resPairAmpInt_ != 0) ) {
125  std::cerr << "ERROR in LauAbsResonance : Total charge of daughters = " << totalCharge << ". Resonance charge = " << resCharge_ << "." << std::endl;
126  gSystem->Exit(EXIT_FAILURE);
127  }
128 }
129 
130 // Destructor
132 {
133 }
134 
136 {
137  // Use LauKinematics interface for amplitude
138  Double_t mass(0.0), cosHel(0.0);
139  // For resonance made from tracks i, j, we need the momenta
140  // of tracks i and k in the i-j rest frame for spin helicity calculations
141  // in the Zemach tensor formalism.
142  // Also need the momentum of track k in the parent rest-frame for
143  // calculation of the Blatt-Weisskopf factors.
144  q_ = 0.0; p_ = 0.0; pstar_ = 0.0;
145 
146  if (resPairAmpInt_ == 1) {
147 
148  mass = kinematics->getm23();
149  cosHel = kinematics->getc23();
150  q_ = kinematics->getp2_23();
151  p_ = kinematics->getp1_23();
152  pstar_ = kinematics->getp1_Parent();
153 
154  } else if (resPairAmpInt_ == 2) {
155 
156  mass = kinematics->getm13();
157  cosHel = kinematics->getc13();
158  q_ = kinematics->getp1_13();
159  p_ = kinematics->getp2_13();
160  pstar_ = kinematics->getp2_Parent();
161 
162  } else if (resPairAmpInt_ == 3) {
163 
164  mass = kinematics->getm12();
165  cosHel = kinematics->getc12();
166  q_ = kinematics->getp1_12();
167  p_ = kinematics->getp3_12();
168  pstar_ = kinematics->getp3_Parent();
169 
170  } else {
171  std::cerr << "ERROR in LauAbsResonance::amplitude : Nonsense setup of resPairAmp array." << std::endl;
172  gSystem->Exit(EXIT_FAILURE);
173  }
174 
175  if (this->flipHelicity()) {
176  cosHel *= -1.0;
177  }
178 
179  if (this->ignoreMomenta()) {
180  q_ = 1.0;
181  p_ = 1.0;
182  }
183 
184  // Calculate the spin factors
185  //
186  // These are calculated as follows
187  //
188  // -2^j * (q*p)^j * cj * Pj(cosHel)
189  //
190  // where Pj(coshHel) is the jth order Legendre polynomial and
191  //
192  // cj = j! / (2j-1)!!
193 
194  Double_t spinTerm(1.0);
195  if (resSpin_ == 1) {
196  // Calculate vector resonance Zemach helicity factor
197  spinTerm = -2.0*q_*p_*cosHel;
198  } else if (resSpin_ == 2) {
199  // Calculate tensor resonance Zemach helicity factor
200  Double_t pProd = q_*p_;
201  spinTerm = 4.0*(pProd*pProd)*(3.0*cosHel*cosHel - 1.0)/3.0;
202  } else if (resSpin_ == 3) {
203  // Calculate spin 3 resonance Zemach helicity factor
204  Double_t pProd = q_*p_;
205  spinTerm = -8.0*(pProd*pProd*pProd)*(5.0*cosHel*cosHel*cosHel - 3.0*cosHel)/5.0;
206  } else if (resSpin_ == 4) {
207  // Calculate spin 4 resonance Zemach helicity factor
208  Double_t pProd = q_*p_;
209  spinTerm = 16.0*(pProd*pProd*pProd*pProd)*(35.0*cosHel*cosHel*cosHel*cosHel - 30.0*cosHel*cosHel + 3.0)/35.0;
210  } else if (resSpin_ == 5) {
211  // Calculate spin 5 resonance Zemach helicity factor
212  Double_t pProd = q_*p_;
213  spinTerm = -32.0*(pProd*pProd*pProd*pProd*pProd)*(63.0*cosHel*cosHel*cosHel*cosHel*cosHel - 70.0*cosHel*cosHel*cosHel + 15.0*cosHel)/63.0;
214  }
215 
216  LauComplex resAmplitude = this->resAmp(mass, spinTerm);
217 
218  return resAmplitude;
219 }
220 
221 void LauAbsResonance::changeResonance(const Double_t newMass, const Double_t newWidth, const Int_t newSpin)
222 {
223  if (newMass > 0.0) {
224  resMass_->valueAndRange(newMass,0.0,3.0*newMass);
225  resMass_->initValue(newMass);
226  resMass_->genValue(newMass);
227  std::cout << "INFO in LauAbsResonance::changeResonance : Setting mass to " << resMass_->value() << std::endl;
228  }
229  if (newWidth > 0.0) {
230  resWidth_->valueAndRange(newWidth,0.0,3.0*newWidth);
231  resWidth_->initValue(newWidth);
232  resWidth_->genValue(newWidth);
233  std::cout << "INFO in LauAbsResonance::changeResonance : Setting width to " << resWidth_->value() << std::endl;
234  }
235  if (newSpin > -1) {
236  resSpin_ = newSpin;
237  std::cout << "INFO in LauAbsResonance::changeResonance : Setting spin to " << resSpin_ << std::endl;
238  }
239 }
240 
241 void LauAbsResonance::changeBWBarrierRadii(const Double_t resRadius, const Double_t parRadius)
242 {
243  if ( resRadius >= 0.0 && resBWFactor_ != 0 ) {
244  LauParameter* resBWRadius = resBWFactor_->getRadiusParameter();
245  resBWRadius->value(resRadius);
246  resBWRadius->initValue(resRadius);
247  resBWRadius->genValue(resRadius);
248  std::cout << "INFO in LauAbsResonance::changeBWBarrierRadii : Setting resonance factor radius to " << resBWRadius->value() << std::endl;
249  }
250  if ( parRadius >= 0.0 && parBWFactor_ != 0 ) {
251  LauParameter* parBWRadius = parBWFactor_->getRadiusParameter();
252  parBWRadius->value(parRadius);
253  parBWRadius->initValue(parRadius);
254  parBWRadius->genValue(parRadius);
255  std::cout << "INFO in LauAbsResonance::changeBWBarrierRadii : Setting parent factor radius to " << parBWRadius->value() << std::endl;
256  }
257 }
258 
259 void LauAbsResonance::setResonanceParameter(const TString& name, const Double_t value)
260 {
261  //This function should always be overwritten if needed in classes inheriting from LauAbsResonance.
262  std::cerr << "WARNING in LauAbsResonance::setResonanceParameter : Unable to set parameter \"" << name << "\" to value: " << value << "." << std::endl;
263 }
264 
266 {
267  //This function should always be overwritten if needed in classes inheriting from LauAbsResonance.
268  std::cerr << "WARNING in LauAbsResonance::floatResonanceParameter : Unable to release parameter \"" << name << "\"." << std::endl;
269 }
270 
272 {
273  //This function should always be overwritten if needed in classes inheriting from LauAbsResonance.
274  std::cerr << "WARNING in LauAbsResonance::getResonanceParameter : Unable to get parameter \"" << name << "\"." << std::endl;
275  return 0;
276 }
277 
279 {
280  if ( param == 0 ) {
281  return;
282  }
283 
284  if ( param->clone() ) {
285  resParameters_.push_back( param->parent() );
286  } else {
287  resParameters_.push_back( param );
288  }
289 }
290 
291 void LauAbsResonance::fixBarrierRadii(const Bool_t fixResRad, const Bool_t fixParRad)
292 {
293  if ( resBWFactor_ == 0 ) {
294  std::cerr << "WARNING in LauAbsResonance::fixBarrierRadii : resonance barrier factor not present, cannot fix/float it" << std::endl;
295  return;
296  }
297 
298  if ( parBWFactor_ == 0 ) {
299  std::cerr << "WARNING in LauAbsResonance::fixBarrierRadii : parent barrier factor not present, cannot fix/float it" << std::endl;
300  return;
301  }
302 
303  LauParameter* resBWRadius = resBWFactor_->getRadiusParameter();
304  resBWRadius->fixed(fixResRad);
305 
306  LauParameter* parBWRadius = parBWFactor_->getRadiusParameter();
307  parBWRadius->fixed(fixParRad);
308 }
309 
311 {
312  if ( resBWFactor_ == 0 ) {
313  std::cerr << "WARNING in LauAbsResonance::fixResRadius : resonance barrier factor not present" << std::endl;
314  return kTRUE;
315  }
316 
318  return bwRadius->fixed();
319 }
320 
322 {
323  if ( parBWFactor_ == 0 ) {
324  std::cerr << "WARNING in LauAbsResonance::fixParRadius : parent barrier factor not present" << std::endl;
325  return kTRUE;
326  }
327 
329  return bwRadius->fixed();
330 }
331 
333 {
334  if ( resBWFactor_ == 0 ) {
335  std::cerr << "WARNING in LauAbsResonance::getResRadius : resonance barrier factor not present" << std::endl;
336  return -1.0;
337  }
338 
340  return bwRadius->value();
341 }
342 
344 {
345  if ( parBWFactor_ == 0 ) {
346  std::cerr << "WARNING in LauAbsResonance::getParRadius : parent barrier factor not present" << std::endl;
347  return -1.0;
348  }
349 
351  return bwRadius->value();
352 }
353 
355 {
356  // Get the parent mass
357  Double_t mass(LauConstants::mB);
358 
359  if (daughters_) {
360  mass = daughters_->getMassParent();
361  }
362 
363  return mass;
364 }
365 
367 {
368  // Get the daughter mass
369  Double_t mass(LauConstants::mPi);
370 
371  if (daughters_) {
372  if (resPairAmpInt_ == 1) {
373  mass = daughters_->getMassDaug2();
374  } else if (resPairAmpInt_ == 2) {
375  mass = daughters_->getMassDaug1();
376  } else if (resPairAmpInt_ == 3) {
377  mass = daughters_->getMassDaug1();
378  }
379  }
380 
381  return mass;
382 }
383 
385 {
386  // Get the daughter mass
387  Double_t mass(LauConstants::mPi);
388 
389  if (daughters_) {
390  if (resPairAmpInt_ == 1) {
391  mass = daughters_->getMassDaug3();
392  } else if (resPairAmpInt_ == 2) {
393  mass = daughters_->getMassDaug3();
394  } else if (resPairAmpInt_ == 3) {
395  mass = daughters_->getMassDaug2();
396  }
397  }
398 
399  return mass;
400 }
401 
403 {
404  // Get the bachelor mass
405  Double_t mass(LauConstants::mPi);
406 
407  if (daughters_) {
408  if (resPairAmpInt_ == 1) {
409  mass = daughters_->getMassDaug1();
410  } else if (resPairAmpInt_ == 2) {
411  mass = daughters_->getMassDaug2();
412  } else if (resPairAmpInt_ == 3) {
413  mass = daughters_->getMassDaug3();
414  }
415  }
416 
417  return mass;
418 }
419 
421 {
422  // Get the parent charge
423  Int_t charge(0);
424 
425  if (daughters_) {
426  charge = daughters_->getChargeParent();
427  }
428 
429  return charge;
430 }
431 
433 {
434  // Get the daughter charge
435  Int_t charge(0);
436 
437  if (daughters_) {
438  if (resPairAmpInt_ == 1) {
439  charge = daughters_->getChargeDaug2();
440  } else if (resPairAmpInt_ == 2) {
441  charge = daughters_->getChargeDaug1();
442  } else if (resPairAmpInt_ == 3) {
443  charge = daughters_->getChargeDaug1();
444  }
445  }
446 
447  return charge;
448 }
449 
451 {
452  // Get the daughter charge
453  Int_t charge(0);
454 
455  if (daughters_) {
456  if (resPairAmpInt_ == 1) {
457  charge = daughters_->getChargeDaug3();
458  } else if (resPairAmpInt_ == 2) {
459  charge = daughters_->getChargeDaug3();
460  } else if (resPairAmpInt_ == 3) {
461  charge = daughters_->getChargeDaug2();
462  }
463  }
464 
465  return charge;
466 }
467 
469 {
470  // Get the bachelor charge
471  Int_t charge(0);
472 
473  if (daughters_) {
474  if (resPairAmpInt_ == 1) {
475  charge = daughters_->getChargeDaug1();
476  } else if (resPairAmpInt_ == 2) {
477  charge = daughters_->getChargeDaug2();
478  } else if (resPairAmpInt_ == 3) {
479  charge = daughters_->getChargeDaug3();
480  }
481  }
482 
483  return charge;
484 }
485 
487 {
488  // Get the parent name
489  TString name("");
490 
491  if (daughters_) {
492  name = daughters_->getNameParent();
493  }
494 
495  return name;
496 }
497 
499 {
500  // Get the daughter name
501  TString name("");
502 
503  if (daughters_) {
504  if (resPairAmpInt_ == 1) {
505  name = daughters_->getNameDaug2();
506  } else if (resPairAmpInt_ == 2) {
507  name = daughters_->getNameDaug1();
508  } else if (resPairAmpInt_ == 3) {
509  name = daughters_->getNameDaug1();
510  }
511  }
512 
513  return name;
514 }
515 
517 {
518  // Get the daughter name
519  TString name("");
520 
521  if (daughters_) {
522  if (resPairAmpInt_ == 1) {
523  name = daughters_->getNameDaug3();
524  } else if (resPairAmpInt_ == 2) {
525  name = daughters_->getNameDaug3();
526  } else if (resPairAmpInt_ == 3) {
527  name = daughters_->getNameDaug2();
528  }
529  }
530 
531  return name;
532 }
533 
535 {
536  // Get the bachelor name
537  TString name("");
538 
539  if (daughters_) {
540  if (resPairAmpInt_ == 1) {
541  name = daughters_->getNameDaug1();
542  } else if (resPairAmpInt_ == 2) {
543  name = daughters_->getNameDaug2();
544  } else if (resPairAmpInt_ == 3) {
545  name = daughters_->getNameDaug3();
546  }
547  }
548 
549  return name;
550 }
551 
Double_t getMassParent() const
Get mass of the parent particle.
TString getNameDaug1() const
Get name of the first daughter particle.
Int_t getChargeDaug3() const
Get charge of the third daughter particle.
Int_t getChargeBachelor() const
Get the charge of the bachelor daughter.
Double_t getc23() const
Get the cosine of the helicity angle theta23.
Bool_t fixed() const
Check whether the parameter is fixed or floated.
Double_t massDaug2_
Daughter 2 mass.
Double_t getMassBachelor() const
Get the mass of the bachelor daughter.
LauAbsResonance(LauResonanceInfo *resInfo, const Int_t resPairAmpInt, const LauDaughters *daughters)
Constructor (for use by standard resonances)
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.
Double_t getp2_Parent() const
Get the momentum of the track 2 in parent rest frame.
File containing declaration of LauResonanceInfo class.
ClassImp(LauAbsCoeffSet)
Double_t getMassParent() const
Get the parent particle mass.
Double_t getm23() const
Get the m23 invariant mass.
Double_t massDaug1_
Daughter 1 mass.
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
Double_t getc13() const
Get the cosine of the helicity angle theta13.
TString nameDaug2_
Daughter 2 name.
Double_t getp2_13() const
Get the momentum of the track 2 in 13 rest frame.
File containing declaration of LauDaughters class.
virtual void floatResonanceParameter(const TString &name)
Allow the various parameters to float in the fit.
Int_t getChargeDaug1() const
Get charge of the first daughter particle.
const LauParameter * getRadiusParameter() const
Retrieve the radius parameter.
TString getNameDaug2() const
Get the name of the second daughter of the resonance.
LauParameter * resWidth_
Resonance width.
LauParameter * resMass_
Resonance mass.
LauBlattWeisskopfFactor * resBWFactor_
Blatt Weisskopf barrier for resonance decay.
Double_t getp1_12() const
Get the momentum of the track 1 in 12 rest frame.
Double_t massParent_
Parent mass.
Double_t getMassDaug1() const
Get the mass of daughter 1.
TString getNameDaug2() const
Get name of the second daughter particle.
Double_t getMassDaug2() const
Get mass of second daughter particle.
void valueAndRange(Double_t newValue, Double_t newMinValue, Double_t newMaxValue)
Set the value and range for the parameter.
Bool_t fixResRadius() const
Get the status of resonance barrier radius (fixed or released)
Bool_t flipHelicity() const
Get the helicity flip flag.
Double_t getParRadius() const
Get the radius of the parent barrier factor.
File containing declaration of LauKinematics class.
Double_t getMassDaug2() const
Get the mass of daughter 2.
virtual LauParameter * getResonanceParameter(const TString &name)
Access the given resonance parameter.
Double_t getp1_Parent() const
Get the momentum of the track 1 in parent rest frame.
const Double_t mPi
Mass of pi+- (GeV/c^2)
Definition: LauConstants.hh:40
void addFloatingParameter(LauParameter *param)
Add parameter to the list of floating parameters.
Bool_t clone() const
Check whether is a clone or not.
const Double_t mB
Mass of charged B (GeV/c^2)
Definition: LauConstants.hh:34
Int_t chargeBachelor_
Bachelor charge.
Int_t getChargeDaug1() const
Get the charge of daughter 1.
const LauDaughters * daughters_
Information on the particles.
Double_t getp1_23() const
Get the momentum of the track 1 in 23 rest frame.
File containing declaration of LauParameter class.
std::vector< LauParameter * > resParameters_
All parameters of the resonance.
Double_t getc12() const
Get the cosine of the helicity angle theta12.
Double_t getm13() const
Get the m13 invariant mass.
Int_t getChargeDaug2() const
Get charge of the second daughter particle.
virtual void setResonanceParameter(const TString &name, const Double_t value)
Set value of the various parameters.
Int_t getChargeParent() const
Get the Charge of the parent particle.
Double_t getp1_13() const
Get the momentum of the track 1 in 13 rest frame.
virtual ~LauAbsResonance()
Destructor.
LauBlattWeisskopfFactor * parBWFactor_
Blatt Weisskopf barrier for parent decay.
virtual LauComplex resAmp(Double_t mass, Double_t spinTerm)=0
Complex resonant amplitude.
TString getNameParent() const
Get the name of the parent particle.
TString nameBachelor_
Bachelor name.
Int_t chargeDaug2_
Daughter 2 charge.
Class for defining the fit parameter objects.
Definition: LauParameter.hh:34
Bool_t ignoreMomenta() const
Get the ignore momenta flag.
Int_t resCharge_
Resonance charge.
TString nameParent_
Parent name.
LauParameter * parent() const
The parent parameter.
Int_t chargeParent_
Parent charge.
TString getNameBachelor() const
Get the name of the daughter that does not originate form the resonance.
Int_t getChargeDaug2() const
Get the charge of daughter 2.
Double_t getResRadius() const
Get the radius of the resonance barrier factor.
Double_t getp3_12() const
Get the momentum of the track 3 in 12 rest frame.
Bool_t fixParRadius() const
Get the status of parent barrier radius (fixed or released)
void fixBarrierRadii(const Bool_t fixResRadius, const Bool_t fixParRadius)
Fix or release the Blatt-Weisskopf barrier radii.
Abstract class for defining type for resonance amplitude models (Breit-Wigner, Flatte etc...
TString getNameParent() const
Get name of the parent particle.
void changeBWBarrierRadii(const Double_t resRadius, const Double_t parRadius)
Allow the Blatt-Weisskopf radius for the resonance and parent factors to be changed.
Int_t getChargeParent() const
Get charge of the parent particle.
Double_t initValue() const
The initial value of the parameter.
Double_t getMassDaug1() const
Get mass of first daughter particle.
Int_t resPairAmpInt_
DP axis identifier.
Double_t getm12() const
Get the m12 invariant mass.
File containing LauConstants namespace.
File containing declaration of LauAbsResonance class.
Double_t getp2_23() const
Get the momentum of the track 2 in 23 rest frame.
Int_t chargeDaug1_
Daughter 1 charge.
Class for defining a complex number.
Definition: LauComplex.hh:47
TString getNameDaug1() const
Get the name of the first daughter of the resonance.
Class for calculating 3-body kinematic quantities.
Int_t resSpin_
Resonance spin.
Double_t value() const
The value of the parameter.
TString nameDaug1_
Daughter 1 name.
virtual LauComplex amplitude(const LauKinematics *kinematics)
Calculate the complex amplitude.
Double_t getMassDaug3() const
Get mass of third daughter particle.
TString getNameDaug3() const
Get name of the third daughter particle.
Double_t genValue() const
The value generated for the parameter.
Double_t p_
Bachelor momentum in resonance rest frame.
Double_t getp3_Parent() const
Get the momentum of the track 3 in parent rest frame.
Double_t pstar_
Bachelor momentum in parent rest frame.
Double_t q_
Daughter momentum in resonance rest frame.