MINT2
Flatte.h
Go to the documentation of this file.
1 #ifndef FLATTE_LINESHAPE_HH
2 #define FLATTE_LINESHAPE_HH
3 // author: Jonas Rademacker (Jonas.Rademacker@bristol.ac.uk)
4 // status: Mon 9 Feb 2009 19:18:04 GMT
5 
6 #include "Mint/ILineshape.h"
7 #include "Mint/BW_BW.h"
10 #include "Mint/NamedParameter.h"
11 
12 #include <complex>
13 // Flatte parameterised a la BaBar, Phys.Rev.D78:012004,2008
14 // also available as:
15 // arXiv:0803.4451[hep-ex], SLAC-PUB-13189, BABAR-PUB-08/005
16 // (and of course originally developed by Flatte,
17 // S. M. Flatt´e, Phys. Lett. B63, 224 (1976))
18 
19 class Flatte : public BW_BW, virtual public ILineshape{
20  protected:
21  double _pi0Mass;
22  double _piPlusMass;
23  double _K0Mass;
24  double _KPlusMass;
25 
26  double gPi()const;
27  double gK() const;
28 
29  virtual double GofM(); // <--the trick is all here
30  std::complex<double> complexGofM();
31  virtual std::complex<double> BreitWigner();
32 
33  double mPi0();
34  double mPiPlus();
35  double mK0();
36  double mKPlus();
37  static std::complex<double> aSqrtTerm( const double& a, const double& b);
38  static double pdgMass(int PDG_ID);
39 
40  public:
41 
42  Flatte( const AssociatedDecayTree& decay, const std::string& namePrefix="")
43  : BW_BW(decay, namePrefix)
44  , _pi0Mass(-9999.0)
45  , _piPlusMass(-9999.0)
46  , _K0Mass(-9999.0)
47  , _KPlusMass(-9999.0)
48  {
49  }
50 
51  // virtual std::complex<double> getVal(){
52  // std::cout << "Flatte!!!" << std::endl; return 1;}
53  // this uses BW_BW's getVal, but with a different GofM()
54  // (magic of 'virtual' functions)
55 
56  virtual std::string name() const{
57  return "FLATTE_alaBaBar_pipi("+prefix()+_theDecay.oneLiner() +")";
58  }
59 
60  virtual ~Flatte(){}
61 };
62 
63 #endif
64 //
Flatte(const AssociatedDecayTree &decay, const std::string &namePrefix="")
Definition: Flatte.h:42
double mK0()
Definition: Flatte.cpp:36
static std::complex< double > aSqrtTerm(const double &a, const double &b)
Definition: Flatte.cpp:49
double mPi0()
Definition: Flatte.cpp:24
const AssociatedDecayTree & _theDecay
Definition: BW_BW.h:69
virtual ~Flatte()
Definition: Flatte.h:60
double _piPlusMass
Definition: Flatte.h:22
static double pdgMass(int PDG_ID)
Definition: Flatte.cpp:21
std::complex< double > complexGofM()
Definition: Flatte.cpp:72
virtual std::complex< double > BreitWigner()
Definition: Flatte.cpp:99
double gPi() const
Definition: Flatte.cpp:14
Definition: BW_BW.h:30
Definition: Flatte.h:19
double _K0Mass
Definition: Flatte.h:23
virtual std::string name() const
Definition: Flatte.h:56
double _pi0Mass
Definition: Flatte.h:21
double mPiPlus()
Definition: Flatte.cpp:30
double gK() const
Definition: Flatte.cpp:17
double mKPlus()
Definition: Flatte.cpp:42
virtual double GofM()
Definition: Flatte.cpp:93
void oneLiner(std::stringstream &seam, int generation=0) const
Definition: DDTree.h:375
double _KPlusMass
Definition: Flatte.h:24
const std::string & prefix() const
Definition: BW_BW.h:72