laura is hosted by Hepforge, IPPP Durham
Laura++  v2r2
A maximum likelihood fitting package for performing Dalitz-plot analysis.
LauBelleNR.cc
Go to the documentation of this file.
1 
2 // Copyright University of Warwick 2004 - 2013.
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 "LauBelleNR.hh"
20 #include "LauDaughters.hh"
21 
23 
24 
25 LauBelleNR::LauBelleNR(const TString& resName, const LauAbsResonance::LauResonanceModel resType,
26  const Double_t resMass, const Double_t resWidth, const Int_t resSpin,
27  const Int_t resCharge, const Int_t resPairAmpInt, const LauDaughters* daughters) :
28  LauAbsResonance(resName, resMass, resWidth, resSpin, resCharge, resPairAmpInt, daughters),
29  alpha_(0.0),
30  model_(resType)
31 {
32 }
33 
35 {
36 }
37 
39 {
40  const LauDaughters* daughters = this->getDaughters();
41  Int_t resPairAmpInt = this->getPairInt();
42  if ( daughters->gotSymmetricalDP() && resPairAmpInt != 3 ) {
43  std::cerr << "WARNING in LauBelleNR::initialise : Dalitz plot is symmetric - this lineshape is not appropriate." << std::endl;
44  }
45 
47  std::cerr << "WARNING in LauBelleNR::initialise : Unknown model requested, defaulting to exponential." << std::endl;
49  }
50 
51  // TODO - should the BelleNR ignore the momenta in the spin term?
52 }
53 
54 LauComplex LauBelleNR::resAmp(Double_t mass, Double_t spinTerm)
55 {
56  Double_t magnitude(1.0);
57 
59  magnitude = spinTerm * TMath::Exp(-alpha_*mass*mass);
60  } else if ( model_ == LauAbsResonance::PowerLawNR ) {
61  magnitude = spinTerm * TMath::Power(mass*mass, -alpha_);
62  }
63 
64  LauComplex resAmplitude(magnitude, 0.0);
65 
66  return resAmplitude;
67 }
68 
69 void LauBelleNR::setResonanceParameter(const TString& name, const Double_t value)
70 {
71  // Set various parameters for the lineshape
72  if (name == "alpha") {
73  this->setAlpha(value);
74  std::cout << "INFO in LauBelleNR::setResonanceParameter : Setting parameter alpha = " << this->getAlpha() << std::endl;
75  } else {
76  std::cerr << "WARNING in LauBelleNR::setResonanceParameter: Parameter name not reconised. No parameter changes made." << std::endl;
77  }
78 }
79 
virtual ~LauBelleNR()
Destructor.
Definition: LauBelleNR.cc:34
virtual Double_t getAlpha() const
Get the effective range parameter.
Definition: LauBelleNR.hh:82
ClassImp(LauAbsCoeffSet)
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 LauBelleNR class.
virtual void setAlpha(Double_t alpha)
Set the parameter alpha, the effective range.
Definition: LauBelleNR.hh:76
File containing declaration of LauDaughters class.
virtual LauComplex resAmp(Double_t mass, Double_t spinTerm)
Complex resonant amplitude.
Definition: LauBelleNR.cc:54
const LauDaughters * getDaughters() const
Access the daughters object.
Int_t getPairInt() const
Get the integer to identify which DP axis the resonance belongs to.
Bool_t gotSymmetricalDP() const
Is Dalitz plot symmetric.
Definition: LauDaughters.hh:66
virtual void setResonanceParameter(const TString &name, const Double_t value)
Set value of the various parameters.
Definition: LauBelleNR.cc:69
virtual void initialise()
Initialise the model.
Definition: LauBelleNR.cc:38
Class for defining the Belle nonresonant model.
Definition: LauBelleNR.hh:33
LauResonanceModel
Define the allowed resonance types.
Abstract class for defining type for resonance amplitude models (Breit-Wigner, Flatte etc...
Class for defining a complex number.
Definition: LauComplex.hh:47
LauAbsResonance::LauResonanceModel model_
The model to use.
Definition: LauBelleNR.hh:96
Double_t value() const
The value of the parameter.
Double_t alpha_
The range parameter.
Definition: LauBelleNR.hh:93