a Code for the Combination of Indirect and Direct Constraints on High Energy Physics Models Logo
Flavour.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2012 HEPfit Collaboration
3  *
4  *
5  * For the licensing terms see doc/COPYING.
6  */
7 
8 #ifndef FLAVOUR_H
9 #define FLAVOUR_H
10 
11 class StandardModel;
12 class HeffDF2;
13 class HeffDB1;
14 class MVll;
15 class MPll;
16 class MVgamma;
17 class MVlnu;
18 class MPlnu;
19 #include "QCD.h"
20 #include <boost/tuple/tuple.hpp>
21 #include <memory>
22 
32 class Flavour {
33 public:
34 
39  Flavour(const StandardModel& SM_i);
40 
46  HeffDF2& getHDF2() const;
47 
53  HeffDB1& getHDB1() const;
54 
62  gslpp::vector<gslpp::complex>** ComputeCoeffBd(double mu, schemes scheme = NDR) const;
63 
65 
67 
75  gslpp::vector<gslpp::complex>** ComputeCoeffBs(double mu, schemes scheme = NDR, bool SM = false) const;
76 
77  gslpp::vector<gslpp::complex>** ComputeCoeffdd(double mu, schemes scheme = NDR) const;
78 
79  gslpp::vector<gslpp::complex>** ComputeCoeffK(double mu, schemes scheme = NDR) const;
80 
81  gslpp::vector<gslpp::complex>** ComputeCoeffmK(double mu, schemes scheme = NDR) const;
82 
83  gslpp::vector<gslpp::complex>** ComputeCoeffDS1PP(double mu, schemes scheme = NDR) const;
84 
92  gslpp::vector<gslpp::complex>** ComputeCoeffsmumu(double mu, schemes scheme = NDR) const;
93 
101  gslpp::vector<gslpp::complex>** ComputeCoeffdmumu(double mu, schemes scheme = NDR) const;
102 
111 
113 
115 
123  gslpp::vector<gslpp::complex>** ComputeCoeffsgamma(double mu, bool noSM = false, schemes scheme = NDR) const;
124 
133 
141  gslpp::vector<gslpp::complex>** ComputeCoeffBMll(double mu, QCD::lepton lepton, bool noSM = false, schemes scheme = NDR) const;
142 
150  gslpp::vector<gslpp::complex>** ComputeCoeffprimeBMll(double mu, QCD::lepton lepton, schemes scheme = NDR) const;
151 
160  MVll& getMVll(QCD::meson meson_i, QCD::meson vector_i, QCD::lepton lep_i) const;
161 
170  MPll& getMPll(QCD::meson meson_i, QCD::meson pseudoscalar_i, QCD::lepton lep_i) const;
171 
179  MVgamma& getMVgamma(QCD::meson meson_i, QCD::meson vector_i) const;
180 
189  MVlnu& getMVlnu(QCD::meson meson_i, QCD::meson vector_i, QCD::lepton lep_i) const;
190 
199  MPlnu& getMPlnu(QCD::meson meson_i, QCD::meson pseudoscalar_i, QCD::lepton lep_i) const;
200 
208  void setUpdateFlag(QCD::meson meson_i, QCD::meson meson_j, QCD::lepton lep_i, bool updated_i) const;
209 
217  bool getUpdateFlag(QCD::meson meson_i, QCD::meson meson_j, QCD::lepton lep_i) const;
218 
223  void setSMupdated() const;
224 
225  bool setFlag(const std::string name, const bool value);
226 
228  {
229  return (this->dispersion = dispersion);
230  }
231 
232  bool setFlagCLN(bool CLNflag)
233  {
234  return (this->CLNflag = CLNflag);
235  }
236 
238  {
239  return (this->FixedWCbtosflag = FixedWCbtosflag);
240  }
241 
243  {
244  return dispersion;
245  }
246 
247  bool getFlagCLN() const
248  {
249  return CLNflag;
250  }
251 
252  bool getFlagFixedWCbtos() const
253  {
254  return FixedWCbtosflag;
255  }
256 
257 private:
258  template<typename T, typename... Args> std::shared_ptr<T>& getPtr(std::shared_ptr<T>& x, Args... args) const;
259  template <typename T, typename... Args> T& getM(std::map<std::vector<int>,std::shared_ptr<T> >& map, Args ... args) const;
261  mutable std::shared_ptr<HeffDF2> HDF2;
262  mutable std::shared_ptr<HeffDB1> HDB1;
263  mutable std::map<std::vector<int>, std::shared_ptr<MVll> > MVllMap;
264  mutable std::map<std::vector<int>, std::shared_ptr<MVlnu> > MVlnuMap;
265  mutable std::map<std::vector<int>, std::shared_ptr<MVgamma> > MVgammaMap;
266  mutable std::map<std::vector<int>, std::shared_ptr<MPll> > MPllMap;
267  mutable std::map<std::vector<int>, std::shared_ptr<MPlnu> > MPlnuMap;
268  mutable std::map<std::vector<int>, bool> flagUpdateMap;
269 
270  mutable bool dispersion;
271  mutable bool CLNflag;
272  mutable bool FixedWCbtosflag;
273 };
274 
275 #endif /* FLAVOUR_H */
HeffDB1
Definition: HeffDB1.h:20
Flavour::setFlagCLN
bool setFlagCLN(bool CLNflag)
Definition: Flavour.h:232
Flavour::ComputeCoeffDS1mumu
gslpp::vector< gslpp::complex > ** ComputeCoeffDS1mumu() const
Flavour::getM
T & getM(std::map< std::vector< int >, std::shared_ptr< T > > &map, Args ... args) const
Definition: Flavour.cpp:209
Flavour::MPllMap
std::map< std::vector< int >, std::shared_ptr< MPll > > MPllMap
Definition: Flavour.h:266
Flavour::FixedWCbtosflag
bool FixedWCbtosflag
Definition: Flavour.h:272
Flavour::CLNflag
bool CLNflag
Definition: Flavour.h:271
Flavour::dispersion
bool dispersion
Definition: Flavour.h:270
Flavour::MVlnuMap
std::map< std::vector< int >, std::shared_ptr< MVlnu > > MVlnuMap
Definition: Flavour.h:264
Flavour::ComputeCoeffsmumu
gslpp::vector< gslpp::complex > ** ComputeCoeffsmumu(double mu, schemes scheme=NDR) const
Computes the Wilson coefficient for the process .
Definition: Flavour.cpp:78
Flavour::ComputeCoeffK
gslpp::vector< gslpp::complex > ** ComputeCoeffK(double mu, schemes scheme=NDR) const
Definition: Flavour.cpp:68
HeffDF2
A class for the effective Hamiltonian.
Definition: HeffDF2.h:28
Flavour::getMPll
MPll & getMPll(QCD::meson meson_i, QCD::meson pseudoscalar_i, QCD::lepton lep_i) const
Returns the initial and final state dependent object for .
Definition: Flavour.cpp:191
Flavour::setUpdateFlag
void setUpdateFlag(QCD::meson meson_i, QCD::meson meson_j, QCD::lepton lep_i, bool updated_i) const
sets the update flag for the initial and final state dependent object for .
Definition: Flavour.cpp:218
NDR
Definition: OrderScheme.h:21
Flavour::getUpdateFlag
bool getUpdateFlag(QCD::meson meson_i, QCD::meson meson_j, QCD::lepton lep_i) const
gets the update flag for the initial and final state dependent object for .
Definition: Flavour.cpp:243
Flavour::ComputeCoeffBs
gslpp::vector< gslpp::complex > ** ComputeCoeffBs(double mu, schemes scheme=NDR, bool SM=false) const
Computes the Wilson coefficient for the process .
Definition: Flavour.cpp:58
Flavour::ComputeCoeffmK
gslpp::vector< gslpp::complex > ** ComputeCoeffmK(double mu, schemes scheme=NDR) const
Definition: Flavour.cpp:73
Flavour::ComputeCoeffdmumu
gslpp::vector< gslpp::complex > ** ComputeCoeffdmumu(double mu, schemes scheme=NDR) const
Computes the Wilson coefficient for the process .
Definition: Flavour.cpp:83
StandardModel
A model class for the Standard Model.
Definition: StandardModel.h:474
Flavour::getFlagCLN
bool getFlagCLN() const
Definition: Flavour.h:247
Flavour::MPlnuMap
std::map< std::vector< int >, std::shared_ptr< MPlnu > > MPlnuMap
Definition: Flavour.h:267
Flavour::ComputeCoeffdnunu
gslpp::vector< gslpp::complex > ** ComputeCoeffdnunu() const
Definition: Flavour.cpp:98
Flavour::ComputeCoeffdd
gslpp::vector< gslpp::complex > ** ComputeCoeffdd(double mu, schemes scheme=NDR) const
Definition: Flavour.cpp:63
Flavour::HDF2
std::shared_ptr< HeffDF2 > HDF2
An Object for the Hamiltonian of the processes.
Definition: Flavour.h:261
Flavour::getMPlnu
MPlnu & getMPlnu(QCD::meson meson_i, QCD::meson pseudoscalar_i, QCD::lepton lep_i) const
Returns the initial and final state dependent object for .
Definition: Flavour.cpp:175
Flavour::getHDF2
HeffDF2 & getHDF2() const
The member that returns an object of the class HeffDF2.
Definition: Flavour.cpp:43
Flavour::setFlagUseDispersionRelation
bool setFlagUseDispersionRelation(bool dispersion)
Definition: Flavour.h:227
schemes
schemes
An enum type for regularization schemes.
Definition: OrderScheme.h:19
QCD::meson
meson
An enum type for mesons.
Definition: QCD.h:336
Flavour::getMVgamma
MVgamma & getMVgamma(QCD::meson meson_i, QCD::meson vector_i) const
Returns the initial and final state dependent object for .
Definition: Flavour.cpp:142
Flavour::flagUpdateMap
std::map< std::vector< int >, bool > flagUpdateMap
Definition: Flavour.h:268
Flavour::getMVlnu
MVlnu & getMVlnu(QCD::meson meson_i, QCD::meson vector_i, QCD::lepton lep_i) const
Returns the initial and final state dependent object for .
Definition: Flavour.cpp:158
MPlnu
Definition: MPlnu.h:21
Flavour::getPtr
std::shared_ptr< T > & getPtr(std::shared_ptr< T > &x, Args... args) const
Flavour::MVllMap
std::map< std::vector< int >, std::shared_ptr< MVll > > MVllMap
Definition: Flavour.h:263
QCD.h
Flavour::mySM
const StandardModel & mySM
Definition: Flavour.h:260
Flavour::ComputeCoeffsnunu
gslpp::vector< gslpp::complex > ** ComputeCoeffsnunu() const
Definition: Flavour.cpp:93
Flavour
The parent class in Flavour for calculating all the Wilson coefficients for various Flavor Violating ...
Definition: Flavour.h:32
Flavour::setSMupdated
void setSMupdated() const
a member used for the caching for .
Definition: Flavour.cpp:281
Flavour::ComputeCoeffDS1pnunu
gslpp::vector< gslpp::complex > ** ComputeCoeffDS1pnunu() const
Flavour::setFlag
bool setFlag(const std::string name, const bool value)
Definition: Flavour.cpp:26
Flavour::ComputeCoeffBMll
gslpp::vector< gslpp::complex > ** ComputeCoeffBMll(double mu, QCD::lepton lepton, bool noSM=false, schemes scheme=NDR) const
Computes the Wilson coefficient for the process .
Definition: Flavour.cpp:113
MVgamma
A class for the decay.
Definition: MVgamma.h:144
Flavour::ComputeCoeffBd
gslpp::vector< gslpp::complex > ** ComputeCoeffBd(double mu, schemes scheme=NDR) const
Computes the Wilson coefficient for the process .
Definition: Flavour.cpp:53
Flavour::Flavour
Flavour(const StandardModel &SM_i)
The constructor.
Definition: Flavour.cpp:19
Flavour::ComputeCoeffsgamma
gslpp::vector< gslpp::complex > ** ComputeCoeffsgamma(double mu, bool noSM=false, schemes scheme=NDR) const
Computes the Wilson coefficient for the process .
Definition: Flavour.cpp:103
MVlnu
Definition: MVlnu.h:16
MVll
A class for the decay.
Definition: MVll.h:308
Flavour::ComputeCoeffprimesgamma
gslpp::vector< gslpp::complex > ** ComputeCoeffprimesgamma(double mu, schemes scheme=NDR) const
Computes the chirality flipped Wilson coefficient for the process .
Definition: Flavour.cpp:108
MPll
A class for the decay.
Definition: MPll.h:172
Flavour::ComputeCoeffprimeBMll
gslpp::vector< gslpp::complex > ** ComputeCoeffprimeBMll(double mu, QCD::lepton lepton, schemes scheme=NDR) const
Computes the chirality flipped Wilson coefficient for the process .
Definition: Flavour.cpp:118
Flavour::ComputeCoeffDS1PP
gslpp::vector< gslpp::complex > ** ComputeCoeffDS1PP(double mu, schemes scheme=NDR) const
Flavour::setFlagFixedWCbtos
bool setFlagFixedWCbtos(bool FixedWCbtosflag)
Definition: Flavour.h:237
Flavour::MVgammaMap
std::map< std::vector< int >, std::shared_ptr< MVgamma > > MVgammaMap
Definition: Flavour.h:265
Flavour::HDB1
std::shared_ptr< HeffDB1 > HDB1
An Object for the Hamiltonian of the processes.
Definition: Flavour.h:262
Flavour::getMVll
MVll & getMVll(QCD::meson meson_i, QCD::meson vector_i, QCD::lepton lep_i) const
Returns the initial and final state dependent object for .
Definition: Flavour.cpp:123
Flavour::ComputeCoeffbtaunu
gslpp::vector< gslpp::complex > ** ComputeCoeffbtaunu(QCD::meson meson_i) const
Computes the Wilson coefficient for the process .
Definition: Flavour.cpp:88
gslpp::vector< gslpp::complex >
Flavour::getFlagUseDispersionRelation
bool getFlagUseDispersionRelation() const
Definition: Flavour.h:242
Flavour::getFlagFixedWCbtos
bool getFlagFixedWCbtos() const
Definition: Flavour.h:252
Flavour::getHDB1
HeffDB1 & getHDB1() const
The member that returns an object of the class HeffDB1.
Definition: Flavour.cpp:48
QCD::lepton
lepton
An enum type for leptons.
Definition: QCD.h:310