laura is hosted by Hepforge, IPPP Durham
Laura++  v3r0p1
A maximum likelihood fitting package for performing Dalitz-plot analysis.
LauGaussIncohRes.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 "LauConstants.hh"
18 #include "LauGaussIncohRes.hh"
19 #include "LauKinematics.hh"
20 
22 
23 LauGaussIncohRes::LauGaussIncohRes(LauResonanceInfo* resInfo, const Int_t resPairAmpInt, const LauDaughters* daughters) :
24  LauAbsIncohRes(resInfo, resPairAmpInt, daughters)
25 {
26 }
27 
29 {
30 }
31 
33 {
34 }
35 
37 {
38  Int_t pair = this->getPairInt();
39  Double_t mass(0.);
40 
41  switch(pair) {
42  case 1:
43  mass = kinematics->getm23();
44  break;
45  case 2:
46  mass = kinematics->getm13();
47  break;
48  case 3:
49  mass = kinematics->getm12();
50  break;
51  default:
52  std::cerr << "ERROR in LauGaussIncohRes::intensityFactor : Incorrect daughter pair defined." << std::endl;
53  std::cerr << " Returning zero intensity." << std::endl;
54  return 0.;
55  }
56 
57  Double_t m0 = this->getMass();
58  Double_t G0 = this->getWidth();
59 
60  if(G0==0) {
61  std::cerr << "ERROR in LauGaussIncohRes::intensityFactor : Gaussian width cannot be zero." << std::endl;
62  std::cerr << " Returning zero intensity." << std::endl;
63  return 0.;
64  }
65 
66  Double_t exponent = -0.5 * ( mass - m0 ) * (mass - m0 ) / (G0*G0);
67  Double_t intensity = TMath::Exp(exponent);
68 
69  return intensity;
70 }
71 
72 const std::vector<LauParameter*>& LauGaussIncohRes::getFloatingParameters()
73 {
75 
76  if ( ! this->fixMass() ) {
77  this->addFloatingParameter( this->getMassPar() );
78  }
79  if ( ! this->fixWidth() ) {
80  this->addFloatingParameter( this->getWidthPar() );
81  }
82 
83  return this->getParameters();
84 }
85 
LauParameter * getMassPar()
Get the mass parameter of the resonance.
Bool_t fixWidth() const
Get the status of resonance width (fixed or released)
Double_t getMass() const
Get the mass of the resonance.
ClassImp(LauAbsCoeffSet)
Double_t getm23() const
Get the m23 invariant mass.
Class for defining the properties of a resonant particle.
Class that defines the particular 3-body decay under study.
Definition: LauDaughters.hh:33
Abstract class for defining incoherent resonant amplitude models.
Int_t getPairInt() const
Get the integer to identify which DP axis the resonance belongs to.
File containing declaration of LauKinematics class.
Bool_t fixMass() const
Get the status of resonance mass (fixed or released)
void addFloatingParameter(LauParameter *param)
Add parameter to the list of floating parameters.
virtual ~LauGaussIncohRes()
Destructor.
Double_t getm13() const
Get the m13 invariant mass.
std::vector< LauParameter * > & getParameters()
Access the list of floating parameters.
LauParameter * getWidthPar()
Get the width parameter of the resonance.
Double_t getWidth() const
Get the width of the resonance.
Class for defining a uniform nonresonant amplitude.
virtual Double_t intensityFactor(const LauKinematics *kinematics)
Get intensity factor.
Double_t getm12() const
Get the m12 invariant mass.
virtual void initialise()
Initialise the model.
File containing LauConstants namespace.
virtual const std::vector< LauParameter * > & getFloatingParameters()
Retrieve the resonance parameters, e.g. so that they can be loaded into a fit.
Class for calculating 3-body kinematic quantities.
File containing declaration of LauGaussIncohRes class.
void clearFloatingParameters()
Clear list of floating parameters.