MINT2
RhoOmegaGS.cpp
Go to the documentation of this file.
1 #include "Mint/RhoOmegaGS.h"
3 #include "TMath.h"
4 #include "TCanvas.h"
5 #include "TH2D.h"
6 #include "Mint/Utils.h"
7 #include "Mint/DalitzEventList.h"
9 #include <cmath>
10 #include <complex>
11 #include "Mint/GounarisSakurai.h"
12 #include "Mint/BW_BW.h"
13 
14 using namespace std;
15 using namespace MINT;
16 
17 
19  const ResonanceProperties* rp = resonancePropertiesList()->AddToListIfMissing(omega_pid);
20  if(0 == rp){
21  cout << "ERROR in RhoOmegaGS::ResonanceProperties()"
22  << " can't find properties for first element"
23  << " in this decay tree\n" << _theDecay << endl;
24  throw "invalid decay tree in RhoOmegaGS::mumsFittableProperties()";
25  }
26  return rp;
27 }
28 
30  if(0 == _fittableOmegaPropertiesPtr){
31  cout << "something went wrong in RhoOmegaGS::mumsFittableProperties() "
32  << " _fittableOmegaPropertiesPtr is 0 although it should be"
33  << " set at construction."
34  << " Looking at this decay tree\n" << _theDecay << endl;
35 
36  throw "error in RhoOmegaGS::mumsFittableProperties()";
37  }
38  return *_fittableOmegaPropertiesPtr;
39 }
40 
42  bool s=true;
43  if(0 == resonancePropertiesList()){
44  cout << "big problem in RhoOmegaGS::setAllFitParameters"
45  << ", resonancePropertiesList is zero" << endl;
46  throw "RhoOmegaGS::setAllFitParameters can't find resonancePropertiesList()";
47  }
48  _fittableOmegaPropertiesPtr = new ResonancePropertiesFitRef(*omegaProperties(), this);
49  s &= (0 != _fittableOmegaPropertiesPtr);
50  return s;
51 }
52 
53 
54 std::complex<double> RhoOmegaGS::omegaBW(IDalitzEvent& evt){
55  setEventPtr(evt);
56  resetInternals();
57 
58  double mass_omega = omegaMass();
59  double width_omega = omegaWidth();
60 
61  std::complex<double> invBW(mass_omega*mass_omega - mumsRecoMass2(), - mass_omega * width_omega);
62  return 1.*GeV*GeV/invBW;
63 }
64 
65 std::complex<double> RhoOmegaGS::getVal(IDalitzEvent& evt){
66 
67  double mass_omega = omegaMass();
68  complex<double> delta= polar(delta_Re(),delta_Im());
69 
70  return GounarisSakurai::getVal(evt)*(1. + mumsRecoMass2()/(mass_omega*mass_omega) * (delta * omegaBW(evt)));
71 }
72 
73 
74 //
virtual std::complex< double > getVal(IDalitzEvent &evt)
static const double s
bool setOmegaFitParameters()
Definition: RhoOmegaGS.cpp:41
const ResonanceProperties * omegaProperties() const
Definition: RhoOmegaGS.cpp:18
static const double GeV
std::complex< double > omegaBW(IDalitzEvent &evt)
Definition: RhoOmegaGS.cpp:54
ResonancePropertiesFitRef & omegaFittableProperties() const
Definition: RhoOmegaGS.cpp:29
virtual std::complex< double > getVal(IDalitzEvent &evt)
Definition: RhoOmegaGS.cpp:65