laura is hosted by Hepforge, IPPP Durham
Laura++  v1r0
A maximum likelihood fitting package for performing Dalitz-plot analysis.
LauKMatrixProdSVP.cc
Go to the documentation of this file.
1 
2 // Copyright University of Warwick 2008 - 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 "LauKMatrixProdSVP.hh"
16 #include "LauKMatrixPropagator.hh"
17 
18 #include <iostream>
19 
20 ClassImp(LauKMatrixProdSVP)
21 
22 LauKMatrixProdSVP::LauKMatrixProdSVP(const TString& poleName, Int_t channelIndex, Int_t resPairAmpInt,
23  LauKMatrixPropagator* propagator, const LauDaughters* daughters) :
24  LauAbsResonance(poleName, 0.0, 0.0, 0, 0, resPairAmpInt, daughters),
25  thePropagator_(propagator),
26  channelIndex_(channelIndex - 1) // channelIndex goes from 1 to nChannels.
27 {
28  // Constructor
29 }
30 
32 {
33  // Destructor
34 }
35 
36 LauComplex LauKMatrixProdSVP::resAmp(Double_t mass, Double_t spinTerm)
37 {
38  std::cerr << "ERROR in LauKMatrixProdSVP::resAmp : This method shouldn't get called." << std::endl;
39  std::cerr << " Returning zero amplitude for mass = " << mass << " and spinTerm = " << spinTerm << "." << std::endl;
40  return LauComplex(0.0, 0.0);
41 }
42 
44 {
45 
46  // Calculate the amplitude for the K-matrix production pole.
47  // First, make sure the K-matrix propagator is up-to-date for
48  // the given centre-of-mass squared value ("s") from the kinematics.
49  LauComplex amp(0.0, 0.0);
50 
51  if (thePropagator_ == 0) {
52  std::cerr << "ERROR in LauKMatrixProdSVP::amplitude : The propagator is null" << std::endl;
53  return amp;
54  }
55 
56  thePropagator_->updatePropagator(kinematics);
57 
58  Double_t SVPTerm = thePropagator_->getProdSVPTerm();
59 
61  amp.rescale(SVPTerm);
62 
63  return amp;
64 
65 }
66 
virtual ~LauKMatrixProdSVP()
Destructor.
Class that defines the particular 3-body decay under study.
Definition: LauDaughters.hh:33
File containing declaration of LauKMatrixProdSVP class.
LauKMatrixPropagator * thePropagator_
The K-matrix propagator.
File containing declaration of LauKMatrixPropagator class.
virtual LauComplex resAmp(Double_t mass, Double_t spinTerm)
Function not meant to be called.
Int_t channelIndex_
The number of the channel.
void updatePropagator(const LauKinematics *kinematics)
Calculate the invariant mass squared s.
Abstract class for defining type for resonance amplitude models (Breit-Wigner, Flatte etc...
void rescale(Double_t scaleVal)
Scale this by a factor.
Definition: LauComplex.hh:282
Class for defining a complex number.
Definition: LauComplex.hh:47
Class for calculating 3-body kinematic quantities.
Double_t getProdSVPTerm() const
Get the &quot;slowly-varying part&quot; term of the amplitude.
LauComplex getPropTerm(Int_t channelIndex) const
Get the full complex propagator term for a given channel.
virtual LauComplex amplitude(const LauKinematics *kinematics)
The amplitude calculation.
Class for defining a K-matrix production &quot;slowly-varying part&quot; (SVP) amplitude.
Class for defining a K-matrix propagator.