laura is hosted by Hepforge, IPPP Durham
Laura++  v1r0
A maximum likelihood fitting package for performing Dalitz-plot analysis.
LauNRAmplitude.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 "LauKinematics.hh"
18 #include "LauNRAmplitude.hh"
19 
20 ClassImp(LauNRAmplitude)
21 
22 LauNRAmplitude::LauNRAmplitude(TString resName, Double_t resMass, Double_t resWidth, Int_t resSpin,
23  Int_t resCharge, Int_t resPairAmpInt, const LauDaughters* daughters) :
24  LauAbsResonance(resName, resMass, resWidth, resSpin, resCharge, resPairAmpInt, daughters),
25  d_(1.3232e-3),
26  c1_(0.65),
27  c2_(0.55),
28  p1_(18.0),
29  p2_(15.0)
30 {
31 }
32 
34 {
35 }
36 
38 {
39 }
40 
42 {
43  // Get the information from the kinematics object
44  Double_t m13Sq = kinematics->getm13Sq();
45  Double_t m23Sq = kinematics->getm23Sq();
46  Double_t m13 = kinematics->getm13();
47  Double_t m23 = kinematics->getm23();
48 
49  // Calculate the magnitude
50  Double_t magnitude = TMath::Sqrt( m13 * m23 *
51  this->f(m23Sq, c1_, p1_) *
52  this->f(m13Sq, c2_, p2_) *
53  TMath::Exp( -1.0 * d_ * m13Sq*m13Sq * m23Sq*m23Sq )
54  );
55 
56  // return the amplitude
57  LauComplex resAmplitude(magnitude, 0.0);
58  return resAmplitude;
59 }
60 
61 LauComplex LauNRAmplitude::resAmp(Double_t mass, Double_t spinTerm)
62 {
63  std::cerr << "ERROR in LauNRAmplitude::resAmp : This method shouldn't get called." << std::endl;
64  std::cerr << " Returning zero amplitude for mass = " << mass << " and spinTerm = " << spinTerm << "." << std::endl;
65  return LauComplex(0.0, 0.0);
66 }
67 
68 Double_t LauNRAmplitude::f(Double_t s, Double_t c, Double_t p) const
69 {
70  return 1.0 / (1.0 + TMath::Exp( c * (s-p) ));
71 }
72 
File containing declaration of LauNRAmplitude class.
virtual LauComplex resAmp(Double_t mass, Double_t spinTerm)
This is not meant to be called.
virtual ~LauNRAmplitude()
Destructor.
Double_t p1_
Parameter from arXiv:0709.0075v1 [hep-ph].
virtual Double_t f(Double_t s, Double_t c, Double_t p) const
Evaluate the expression 1.0 / (1.0 + TMath::Exp( c * (s-p) ))
Double_t getm23() const
Get the m23 invariant mass.
Class that defines the particular 3-body decay under study.
Definition: LauDaughters.hh:33
Double_t getm23Sq() const
Get the m23 invariant mass square.
File containing declaration of LauKinematics class.
Class for defining the NR amplitude model.
Double_t getm13() const
Get the m13 invariant mass.
Double_t c2_
Parameter from arXiv:0709.0075v1 [hep-ph].
virtual void initialise()
Initialise the model.
Abstract class for defining type for resonance amplitude models (Breit-Wigner, Flatte etc...
Double_t getm13Sq() const
Get the m13 invariant mass square.
Double_t c1_
Parameter from arXiv:0709.0075v1 [hep-ph].
Class for defining a complex number.
Definition: LauComplex.hh:47
Double_t p2_
Parameter from arXiv:0709.0075v1 [hep-ph].
Class for calculating 3-body kinematic quantities.
virtual LauComplex amplitude(const LauKinematics *kinematics)
Complex resonant amplitude.
Double_t d_
Parameter from arXiv:0709.0075v1 [hep-ph].