THDM/src/bsgamma.cpp
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2015 HEPfit Collaboration
3  * All rights reserved.
4  *
5  * For the licensing terms see doc/COPYING.
6  */
7 
8 #include "bsgamma.h"
9 #include "StandardModel.h"
10 
12 
13  ThObservable(SM_i),
14  myTHDM(static_cast<const THDM*> (&SM_i))
15 {
16  mycache = new THDMcache();
17 }
18 
20 {}
21 
23 {
24  std::string modelflag=myTHDM->getModelTypeflag();
25  if (modelflag == "type2") {
26  double logtb=myTHDM->getlogtb();
27  double logmHp=log10(myTHDM->getmHp());
28  double B_BXsgamma_ctrl=mycache->ip_ex_bsgamma(logtb,logmHp);
29  double B_BXsgamma_err=0.07;
30  double bsgamma_theoryerror=myTHDM->getbsgamma_theoryerror();
31 
32  return B_BXsgamma_ctrl * (1.0 + B_BXsgamma_err * bsgamma_theoryerror);
33  }
34  else {
35  throw std::runtime_error("flag_model in bsgammaTHDM::computeThValue() can only be \"type2\" at the moment");
36  return 0.;
37  }
38 }
A class for the caching of some THDM objects.
Definition: THDMcache.h:27
A class for a model prediction of an observable.
Definition: ThObservable.h:22
double computeThValue()
Calculates the value in the THDM by linear interpolation of tabled NNLO values.
bsgammaTHDM(const StandardModel &SM_i)
A model class for the Standard Model.
virtual ~bsgammaTHDM()
double getlogtb() const
Definition: THDM.h:166
const THDM * myTHDM
complex log10(const complex &z)
double ip_ex_bsgamma(double logtb, double logmHp)
Interpolating function for the NNLO value for the branching ratio of decays in the THDM...
Definition: THDMcache.cpp:830
double getbsgamma_theoryerror() const
Definition: THDM.h:286
A base class symmetric Two-Higgs-Doublet models.
Definition: THDM.h:94
double getmHp() const
Definition: THDM.h:270
THDMcache * mycache
std::string getModelTypeflag() const
Definition: THDM.h:158