laura is hosted by Hepforge, IPPP Durham
Laura++  v3r0
A maximum likelihood fitting package for performing Dalitz-plot analysis.
LauPolNR.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 "TMath.h"
18 
19 #include "LauPolNR.hh"
20 #include "LauDaughters.hh"
21 
23 
24 
25 LauPolNR::LauPolNR(LauResonanceInfo* resInfo, const Int_t resPairAmpInt, const LauDaughters* daughters) :
26  LauAbsResonance(resInfo, resPairAmpInt, daughters),
27  omega_(0.0),
28  order_(0)
29 {
30 }
31 
33 {
34 }
35 
37 {
38  const LauDaughters* daughters = this->getDaughters();
39  Int_t resPairAmpInt = this->getPairInt();
40  if ( daughters->gotSymmetricalDP() && resPairAmpInt != 3 ) {
41  std::cerr << "WARNING in LauPolNR::initialise : Dalitz plot is symmetric - this lineshape is not appropriate." << std::endl;
42  }
43 
44  this->ignoreMomenta(kTRUE);
45 
46  Double_t omega = 0.5*(daughters->getMassParent()+(1.0/3.0)*(daughters->getMassDaug1()+daughters->getMassDaug2()+daughters->getMassDaug3()));
47  this->setOmega( omega );
48 
49  TString name = this->getResonanceName();
50  if (name.EndsWith("0",TString::kExact)){
51  order_ = 0;
52  }
53  else if (name.EndsWith("1",TString::kExact)){
54  order_ = 1;
55  }
56  else if (name.EndsWith("2",TString::kExact)){
57  order_ = 2;
58  }
59  else if (name.EndsWith("3",TString::kExact)){
60  order_ = 3;
61  }
62  else{
63  std::cerr << "ERROR in LauPolNR::initialise : Resonance order unknown (known orders : 0, 1, 2 and 3)" << std::endl;
64  std::cerr << " : Defaulting to 0." << std::endl;
65  }
66 }
67 
68 LauComplex LauPolNR::resAmp(Double_t mass, Double_t spinTerm)
69 {
70  Double_t magnitude( spinTerm );
71 
72  Double_t massDiff = mass - omega_;
73  for ( UInt_t i(0); i < order_; ++i ) {
74  magnitude *= massDiff;
75  }
76 
77  LauComplex resAmplitude(magnitude, 0.0);
78 
79  return resAmplitude;
80 }
81 
virtual void initialise()
Initialise the model.
Definition: LauPolNR.cc:36
Double_t getMassParent() const
Get mass of the parent particle.
Double_t omega_
The offset parameter.
Definition: LauPolNR.hh:84
const TString & getResonanceName() const
Get the name of the resonance.
ClassImp(LauAbsCoeffSet)
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
File containing declaration of LauDaughters class.
const LauDaughters * getDaughters() const
Access the daughters object.
Double_t getMassDaug2() const
Get mass of second daughter particle.
Int_t getPairInt() const
Get the integer to identify which DP axis the resonance belongs to.
virtual void setOmega(const Double_t omega)
Set the parameter omega, the offset parameter.
Definition: LauPolNR.hh:60
Bool_t gotSymmetricalDP() const
Is Dalitz plot symmetric, i.e. 2 identical particles.
Definition: LauDaughters.hh:66
Class for defining the terms of Babar nonresonant model.
Definition: LauPolNR.hh:33
Bool_t ignoreMomenta() const
Get the ignore momenta flag.
Abstract class for defining type for resonance amplitude models (Breit-Wigner, Flatte etc...
Double_t getMassDaug1() const
Get mass of first daughter particle.
UInt_t order_
The order in the mass.
Definition: LauPolNR.hh:87
Class for defining a complex number.
Definition: LauComplex.hh:47
File containing declaration of LauPolNR class.
virtual LauComplex resAmp(Double_t mass, Double_t spinTerm)
Complex resonant amplitude.
Definition: LauPolNR.cc:68
Double_t getMassDaug3() const
Get mass of third daughter particle.
virtual ~LauPolNR()
Destructor.
Definition: LauPolNR.cc:32