MINT2
CrystalBallRhoOmega.cpp
Go to the documentation of this file.
1 // author: Jonas Rademacker (Jonas.Rademacker@bristol.ac.uk)
2 // status: Mon 9 Feb 2009 19:18:04 GMT
6 
7 #include <iostream>
8 
9 using namespace std;
10 
12  : BW_BW(tree)
13  , _omegaBW(tree, 223)
14  , _eps("CrystalBallRhoOmega::eps", 1.14)
15  , _beta("ChristalBallRhoOmega::beta", -4.3*pi/180.0)
16  , _phi("ChristalBallRhoOmega::phi", 107*pi/180.0)
17  , _delta("ChristalBallRhoOmega::delta", 2.5*MeV)
18  , _aRatioSq("ChristalBallRhoOmega::aRatioSq", 3.9)
19  , _mRho(-9999), _mOmega(-9999), _GRho(-9999), _GOmega(-9999)
20 {
21 }
22 
23 std::complex<double> CrystalBallRhoOmega::rhoBWVal(IDalitzEvent& evt){
24  return BW_BW::getVal(evt);
25 }
26 
27 std::complex<double> CrystalBallRhoOmega::omegaBWVal(IDalitzEvent& evt){
28  return _omegaBW.getVal(evt);
29 }
30 
31 double CrystalBallRhoOmega::p() const{
32  return 1.0;
33 }
34 
35 double CrystalBallRhoOmega::q() const{
36  return 1.0;
37 }
38 
39 double CrystalBallRhoOmega::eps() const{
40  return _eps;
41 }
42 
43 std::complex<double> CrystalBallRhoOmega::expIBeta() const{
44  return complex<double>(cos(_beta), sin(_beta));
45 }
46 
47 std::complex<double> CrystalBallRhoOmega::expIPhi() const{
48  return complex<double>(cos(_phi), sin(_phi));
49 }
50 
52  return _delta;
53 }
54 
57  return _mRho;
58 }
59 
62  return _GRho;
63 }
64 
67  return _mOmega;
68 }
69 
72  return _GOmega;
73 }
74 
76  return 1;
77 }
78 
80  double m = mOmega()/mRho();
81  double G = GammaOmegaFixed()/GammaRhoFixed();
82 
83  double r = sqrt(prSq()/_omegaBW.prSq());
84 
85  double d = sqrt((1. + _omegaBW.pABSq())/(1. + pABSq()));
86  return m*G*r*d;
87 }
88 
90  return sqrt(_aRatioSq);
91 }
92 
93 std::complex<double> CrystalBallRhoOmega::offDiagonalTerm(){
94  std::complex<double> num = expIPhi() * delta() * (mRho() + mOmega());
95  double dm2 = mOmega()*mOmega() - mRho()*mRho();
96  double dmG = mOmega()*GammaOmegaFixed() - mRho()*GofM();
97 
98  std::complex<double> den(dm2, -dmG);
99 
100  return num/den;
101 }
102 
103 std::complex<double> CrystalBallRhoOmega::getVal(IDalitzEvent& evt){
104  resetInternals();
105  setEventPtr(evt);
106  // cout << "CrystalBallRhoOmega called " << endl;
107  std::complex<double> rho = rhoBWVal(evt) * normRho();
108  std::complex<double> om = omegaBWVal(evt)
109  * eps() * expIBeta()* normOmega();
110 
111  std::complex<double> returnVal= p()*q()*(rho + omegaToRhoAmpRatio()
112  * om * offDiagonalTerm());
113 
114  return returnVal;
115 }
116 
118  return BW_BW::getDalitzCoordinate(nSigma);
119 }
120 
121 void CrystalBallRhoOmega::print(std::ostream& out) const{
122  out << "CrystalBallRhoOmega\n\t with rho:\n";
123  BW_BW::print(out);
124  out << "\n\t and with omega:\n";
125  _omegaBW.print(out);
126 }
127 
128 void CrystalBallRhoOmega::print(IDalitzEvent& evt, std::ostream& out){
129  out << "CrystalBallRhoOmega\n\t with rho:\n";
130  BW_BW::print(evt, out);
131  out << "\n\t and with omega:\n";
132  _omegaBW.print(out);
133 }
134 
136  return BW_BW::generatingFunction();
137 }
138 
139 std::ostream& operator<<(std::ostream& out, const CrystalBallRhoOmega& amp){
140 
141  amp.print(out);
142  return out;
143 }
virtual double prSq() const
Definition: BW_BW.cpp:969
virtual void resetInternals()
Definition: BW_BW.cpp:1114
CrystalBallRhoOmega(const AssociatedDecayTree &tree)
MINT::NamedParameter< double > _delta
double GammaOmegaFixed() const
static double width(const std::string &name)
std::complex< double > expIPhi() const
MINT::NamedParameter< double > _beta
static const double pi
double omegaToRhoAmpRatio() const
bool setEventPtr(IDalitzEvent &evt) const
Definition: BW_BW.cpp:141
std::complex< double > offDiagonalTerm()
MINT::NamedParameter< double > _eps
virtual void print(std::ostream &out=std::cout) const
MINT::NamedParameter< double > _phi
virtual void print(IDalitzEvent &evt, std::ostream &out=std::cout)
Definition: BW_BW.cpp:1287
Definition: BW_BW.h:30
virtual DalitzCoordinate getDalitzCoordinate(double nSigma=3) const
static const double MeV
std::complex< double > expIBeta() const
std::complex< double > omegaBWVal(IDalitzEvent &evt)
virtual std::complex< double > getVal(IDalitzEvent &evt)
virtual MINT::counted_ptr< IGenFct > generatingFunction() const
static const double m
virtual double pABSq()
Definition: BW_BW.cpp:1014
BW_BW_DifferentMother _omegaBW
std::complex< double > rhoBWVal(IDalitzEvent &evt)
MINT::NamedParameter< double > _aRatioSq
virtual MINT::counted_ptr< IGenFct > generatingFunction() const
Definition: BW_BW.cpp:1277
std::ostream & operator<<(std::ostream &out, const CrystalBallRhoOmega &amp)
virtual double GofM()
Definition: BW_BW.cpp:1035
static double mass(const std::string &name)
double GammaRhoFixed() const
virtual std::complex< double > getVal(IDalitzEvent &evt)
Definition: BW_BW.cpp:1138
virtual DalitzCoordinate getDalitzCoordinate(double nSigma=3) const
Definition: BW_BW.cpp:537