a Code for the Combination of Indirect and Direct Constraints on High Energy Physics Models Logo
QCD.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 QCD_H
9 #define QCD_H
10 
11 #include "Model.h"
12 #include "Meson.h"
13 #include "BParameter.h"
14 #include "OrderScheme.h"
15 #define MEPS 1.e-10 // mass precision
16 
304 class QCD : public Model {
305 public:
306 
310  enum lepton {
314  MU,
316  TAU,
318  };
319 
323  enum quark {
324  UP,
328  TOP,
330  };
331 
332 
336  enum meson {
337  P_0,
338  P_P,
339  K_0,
340  K_P,
341  D_0,
342  D_P,
343  B_D,
344  B_P,
345  B_S,
346  B_C,
347  PHI,
351  RHO,
355  };
356 
357  static const int NQCDvars = 11;
358 
363  static std::string QCDvars[NQCDvars];
364 
368  QCD();
369 
375  std::string orderToString(const orders order) const;
376 
378  // Parameters
379 
384  virtual bool Init(const std::map<std::string, double>& DPars);
385 
392  virtual bool PreUpdate();
393 
401  virtual bool Update(const std::map<std::string, double>& DPars);
402 
413  virtual bool PostUpdate();
414 
422  virtual bool CheckParameters(const std::map<std::string, double>& DPars);
423 
429  void addParameters(std::vector<std::string> params_i);
430 
435  void initializeBParameter(std::string name_i) const;
436 
441  void initializeMeson(QCD::meson meson_i) const;
442 
448  double getOptionalParameter(std::string name) const
449  {
450  return optionalParameters.at(name);
451  }
452 
458  void setOptionalParameter(std::string name, double value)
459  {
460  optionalParameters[name] = value;
461  }
462 
467  std::vector<std::string> getUnknownParameters()
468  {
469  return unknownParameters;
470  }
471 
473  // Flags
474 
481  virtual bool setFlag(const std::string name, const bool value);
482 
489  virtual bool setFlagStr(const std::string name, const std::string value);
490 
495  virtual bool CheckFlags() const;
496 
497 
499  // get and set methods for class members
500 
505  double getNc() const
506  {
507  return Nc;
508  }
509 
514  void setNc(double Nc)
515  {
516  this->Nc = Nc;
517  }
518 
524  Meson getMesons(const QCD::meson m) const
525  {
526  return mesonsMap.at(m);
527  }
528 
535  {
536  return quarks[q];
537  }
538 
543  double getAlsM() const
544  {
545  return AlsM;
546  }
547 
552  double getMAls() const
553  {
554  return MAls;
555  }
556 
561  double getMut() const
562  {
563  return mut;
564  }
565 
570  double getMub() const
571  {
572  return mub;
573  }
574 
579  double getMuc() const
580  {
581  return muc;
582  }
583 
588  double getMtpole() const
589  {
590  return mtpole;
591  }
592 
597  double getCF() const
598  {
599  return CF;
600  }
601 
609  {
610  return BParameterMap.at("BBd");
611  }
612 
620  {
621  return BParameterMap.at("BBs");
622  }
623 
631  {
632  return BParameterMap.at("BD");
633  }
634 
642  {
643  return BParameterMap.at("BK");
644  }
645 
650  {
651  return BParameterMap.at("BKd1");
652  }
653 
658  {
659  return BParameterMap.at("BKd3");
660  }
661 
662 
664 
671  double Thresholds(const int i) const;
672 
679  double AboveTh(const double mu) const;
680 
687  double BelowTh(const double mu) const;
688 
694  double Nf(const double mu) const;
695 
706  double NfThresholdCorrections(double mu, double M, double als, int nf, orders order) const;
707 
713  orders FullOrder(orders order) const;
714 
716 
722  double Beta0(const double nf) const;
723 
729  double Beta1(const double nf) const;
730 
736  double Beta2(const double nf) const;
737 
743  double Beta3(const double nf) const;
744 
756  double AlsWithInit(const double mu, const double alsi, const double mu_i,
757  const orders order) const;
758 
767  double AlsWithLambda(const double mu, const orders order) const;
768 
781  double AlsOLD(const double mu, const orders order = FULLNLO) const;
782  virtual double Als(const double mu, const orders order = FULLNLO, bool Nf_thr = true) const;
783  virtual double AlsByOrder(const double mu, const orders order = FULLNLO, bool Nf_thr = true) const;
784 
791  double logLambda(const double nf, orders order) const;
792 
801  double Als4(const double mu) const;
802 
812  double Mrun4(const double mu_f, const double mu_i, const double m) const;
813 
815 
821  double Gamma0(const double nf) const;
822 
828  double Gamma1(const double nf) const;
829 
835  double Gamma2(const double nf) const;
836 
844  double Mrun(const double mu, const double m, const orders order = FULLNNLO) const;
845 
854  double Mrun(const double mu_f, const double mu_i, const double m,
855  const orders order = FULLNNLO) const;
856 
858 
867  double Mbar2Mp(const double mbar, const orders order = FULLNNLO) const;
868 
875  double Mp2Mbar(const double mp, const orders order = FULLNNLO) const;
876 
884  double MS2DRqmass(const double MSscale, const double MSbar) const;
885 
892  double MS2DRqmass(const double MSbar) const;
893 
895 
900  void CacheShift(double cache[][5], int n) const;
901  void CacheShift(int cache[][5], int n) const;
902 
903 
904 protected:
905 
911  virtual void setParameter(const std::string name, const double& value);
912 
918  double MassOfNf(int nf) const;
919 
920  bool computemt;
921  bool requireYu;
922  bool requireYd;
923 
924  // model parameters
925  double AlsM;
926  double MAls;
927  double mtpole;
928  double mut;
929  double mub;
930  double muc;
931 
932  double Nc;
933  double TF,CA,CF,dFdF_NA,dAdA_NA,dFdA_NA,NA; //SU(N)-related quantities
935 
936 private:
937  mutable std::map<std::string, BParameter> BParameterMap;
938 
939  double zeta2;
940  double zeta3;
941  mutable bool computeFBd;
942  mutable bool computeFBp;
943  mutable bool computeBd;
944  mutable bool computeBs;
945  static const int CacheSize = 5;
946  mutable double als_cache[9][CacheSize];
947  mutable double logLambda5_cache[4][CacheSize];
948  mutable double logLambdaNLO_cache[9][CacheSize];
949  mutable double mrun_cache[10][CacheSize];
950  mutable double mp2mbar_cache[5][CacheSize];
952  std::map<std::string, double> optionalParameters;
953  std::vector<std::string> unknownParameters;
954  mutable std::map<const QCD::meson, Meson> mesonsMap;
955  bool FlagCsi;
956  mutable orders realorder;
957 
965  double AlsWithLambda(const double mu, const double logLambda, const orders order) const;
966 
975  double ZeroNf6NLO(double *logLambda6, double *logLambda5_in) const;
976 
984  double ZeroNf5(double *logLambda5, double *order) const;
985 
994  double ZeroNf4NLO(double *logLambda4, double *logLambda5_in) const;
995 
1004  double ZeroNf3NLO(double *logLambda3, double *logLambda4_in) const;
1005 
1011  double logLambda5(orders order) const;
1012 
1020  double logLambdaNLO(const double nfNEW, const double nfORG, const double logLambdaORG) const;
1021 
1032  double logLambda(const double muMatching, const double mf,
1033  const double nfNEW, const double nfORG,
1034  const double logLambdaORG, orders order) const;
1035 
1042  double threCorrForMass(const double nf_f, const double nf_i) const;
1043 
1052  double MrunTMP(const double mu_f, const double mu_i, const double m, const orders order) const;
1053 
1061  double Mp2MbarTMP(double *mu, double *params) const;
1062 };
1063 
1064 #endif /* QCD_H */
QCD::TAU
Definition: QCD.h:316
BParameter
A class for the bag parameters.
Definition: BParameter.h:151
QCD::NEUTRINO_3
Definition: QCD.h:315
QCD::ZeroNf6NLO
double ZeroNf6NLO(double *logLambda6, double *logLambda5_in) const
A member for calculating the difference in across the six-five flavour threshold using AlsWithLambda...
Definition: QCD.cpp:806
QCD::computeFBd
bool computeFBd
Switch for computing from .
Definition: QCD.h:941
QCD::getBKd3
BParameter getBKd3() const
Definition: QCD.h:657
QCD::logLambdaNLO
double logLambdaNLO(const double nfNEW, const double nfORG, const double logLambdaORG) const
used for computation of at FULLNLO.
Definition: QCD.cpp:865
QCD::BOTTOM
Definition: QCD.h:329
QCD::NOLEPTON
Definition: QCD.h:317
QCD::ZeroNf5
double ZeroNf5(double *logLambda5, double *order) const
A member for calculating the difference in using AlsWithLambda() and the input value of given as a ...
Definition: QCD.cpp:812
Meson
A class for mesons.
Definition: Meson.h:315
QCD::CacheSize
static const int CacheSize
Defines the depth of the cache.
Definition: QCD.h:945
QCD::Als
virtual double Als(const double mu, const orders order=FULLNLO, bool Nf_thr=true) const
Definition: QCD.cpp:637
QCD::mub
double mub
The threshold between five- and four-flavour theory in GeV.
Definition: QCD.h:929
QCD::MS2DRqmass
double MS2DRqmass(const double MSscale, const double MSbar) const
Converts a quark mass from the scheme to the scheme.
Definition: QCD.cpp:1313
QCD
A class for parameters related to QCD, hadrons and quarks.
Definition: QCD.h:304
QCD::AlsByOrder
virtual double AlsByOrder(const double mu, const orders order=FULLNLO, bool Nf_thr=true) const
Definition: QCD.cpp:658
Particle
A class for particles.
Definition: Particle.h:26
QCD::unknownParameterWarning
bool unknownParameterWarning
A flag to stop the unknown parameter warning after the first time.
Definition: QCD.h:951
QCD::RHO_P
Definition: QCD.h:352
QCD::MAls
double MAls
The mass scale in GeV at which the strong coupling measurement is provided.
Definition: QCD.h:926
QCD::setOptionalParameter
void setOptionalParameter(std::string name, double value)
A method to set the parameter value for the parameters that are specific to only one set of observabl...
Definition: QCD.h:458
QCD::B_S
Definition: QCD.h:345
QCD::Beta1
double Beta1(const double nf) const
The coefficient for a certain number of flavours .
Definition: QCD.cpp:471
QCD::initializeBParameter
void initializeBParameter(std::string name_i) const
A method to initialize B Parameter and the corresponding meson.
Definition: QCD.cpp:192
QCD::mesonsMap
std::map< const QCD::meson, Meson > mesonsMap
The map of defined mesons.
Definition: QCD.h:954
QCD::CheckFlags
virtual bool CheckFlags() const
A method to check the sanity of the set of model flags.
Definition: QCD.cpp:399
QCD::Nf
double Nf(const double mu) const
The number of active flavour at scale .
Definition: QCD.cpp:438
QCD::initializeMeson
void initializeMeson(QCD::meson meson_i) const
A method to initialize a meson.
Definition: QCD.cpp:236
QCD::getBD
BParameter getBD() const
For getting the bag parameters corresponding to the operator basis in process in the meson system.
Definition: QCD.h:630
QCD::computeFBp
bool computeFBp
Switch for computing from .
Definition: QCD.h:942
QCD::computemt
bool computemt
Switch for computing the mass of the top quark.
Definition: QCD.h:920
QCD::dFdA_NA
double dFdA_NA
Definition: QCD.h:933
QCD::UP
Definition: QCD.h:324
QCD::D_P
Definition: QCD.h:342
QCD::Mp2Mbar
double Mp2Mbar(const double mp, const orders order=FULLNNLO) const
Converts a quark pole mass to the corresponding mass .
Definition: QCD.cpp:1270
QCD::addParameters
void addParameters(std::vector< std::string > params_i)
A method to add parameters that are specific to only one set of observables.
Definition: QCD.cpp:182
QCD::CHARM
Definition: QCD.h:326
QCD::TF
double TF
Definition: QCD.h:933
QCD::als_cache
double als_cache[9][CacheSize]
Cache for .
Definition: QCD.h:946
QCD::dFdF_NA
double dFdF_NA
Definition: QCD.h:933
QCD::getAlsM
double getAlsM() const
A get method to access the value of .
Definition: QCD.h:543
QCD::logLambda
double logLambda(const double nf, orders order) const
Computes with nf flavours in GeV.
Definition: QCD.cpp:977
QCD::FlagCsi
bool FlagCsi
A flag to determine whether and or (false) and (default, true) are used as inputs.
Definition: QCD.h:955
QCD::NEUTRINO_2
Definition: QCD.h:313
QCD::setParameter
virtual void setParameter(const std::string name, const double &value)
A method to set the value of a parameter of QCD.
Definition: QCD.cpp:273
QCD::P_P
Definition: QCD.h:338
OrderScheme.h
QCD::ELECTRON
Definition: QCD.h:312
QCD::orderToString
std::string orderToString(const orders order) const
Converts an object of the enum type "orders" to the corresponding string.
Definition: QCD.cpp:83
QCD::AlsOLD
double AlsOLD(const double mu, const orders order=FULLNLO) const
Computes the running strong coupling in the scheme. In the cases of LO, NLO and FULLNNLO,...
Definition: QCD.cpp:721
QCD::MassOfNf
double MassOfNf(int nf) const
The Mbar mass of the heaviest quark in the theory with Nf active flavour.
Definition: QCD.cpp:620
QCD::mp2mbar_cache
double mp2mbar_cache[5][CacheSize]
Cache for pole mass to msbar mass conversion.
Definition: QCD.h:950
QCD::mtpole
double mtpole
The pole mass of the top quark.
Definition: QCD.h:927
QCD::Mbar2Mp
double Mbar2Mp(const double mbar, const orders order=FULLNNLO) const
Converts the mass to the pole mass.
Definition: QCD.cpp:1221
QCD::mrun_cache
double mrun_cache[10][CacheSize]
Cache for running quark mass.
Definition: QCD.h:949
QCD::CheckParameters
virtual bool CheckParameters(const std::map< std::string, double > &DPars)
A method to check if all the mandatory parameters for QCD have been provided in model initialization.
Definition: QCD.cpp:335
QCD::Beta0
double Beta0(const double nf) const
The coefficient for a certain number of flavours .
Definition: QCD.cpp:466
BParameter.h
QCD::Beta2
double Beta2(const double nf) const
The coefficient for a certain number of flavours .
Definition: QCD.cpp:476
QCD::getCF
double getCF() const
A get method to access the Casimir factor of QCD.
Definition: QCD.h:597
QCD::PostUpdate
virtual bool PostUpdate()
The post-update method for QCD.
Definition: QCD.cpp:143
QCD::Init
virtual bool Init(const std::map< std::string, double > &DPars)
Initializes the QCD parameters found in the argument.
Definition: QCD.cpp:107
QCD::muc
double muc
The threshold between four- and three-flavour theory in GeV.
Definition: QCD.h:930
QCD::Als4
double Als4(const double mu) const
The value of at any scale with the number of flavours .
Definition: QCD.cpp:536
QCD::BParameterMap
std::map< std::string, BParameter > BParameterMap
Definition: QCD.h:937
QCD::Update
virtual bool Update(const std::map< std::string, double > &DPars)
The update method for QCD.
Definition: QCD.cpp:125
QCD::RHO
Definition: QCD.h:351
QCD::dAdA_NA
double dAdA_NA
Definition: QCD.h:933
QCD::K_star
Definition: QCD.h:348
QCD::meson
meson
An enum type for mesons.
Definition: QCD.h:336
QCD::B_P
Definition: QCD.h:344
QCD::TOP
Definition: QCD.h:328
QCD::OMEGA
Definition: QCD.h:353
QCD::zeta3
double zeta3
computed with the GSL.
Definition: QCD.h:940
QCD::Gamma1
double Gamma1(const double nf) const
The coefficient used to compute the running of a mass.
Definition: QCD.cpp:1013
QCD::getBBs
BParameter getBBs() const
For getting the bag parameters corresponding to the operator basis in process in the meson system.
Definition: QCD.h:619
QCD::getMesons
Meson getMesons(const QCD::meson m) const
A get method to access a meson as an object of the type Meson.
Definition: QCD.h:524
QCD::Beta3
double Beta3(const double nf) const
The coefficient for a certain number of flavours .
Definition: QCD.cpp:484
QCD::Gamma0
double Gamma0(const double nf) const
The coefficient used to compute the running of a mass.
Definition: QCD.cpp:1008
QCD::getMut
double getMut() const
A get method to access the threshold between six- and five-flavour theory in GeV.
Definition: QCD.h:561
QCD::getMtpole
double getMtpole() const
A get method to access the pole mass of the top quark.
Definition: QCD.h:588
QCD::zeta2
double zeta2
computed with the GSL.
Definition: QCD.h:939
Model.h
QCD::getMuc
double getMuc() const
A get method to access the threshold between four- and three-flavour theory in GeV.
Definition: QCD.h:579
Model
A class for the template of models.
Definition: Model.h:26
QCD::setNc
void setNc(double Nc)
A set method to change the number of colours .
Definition: QCD.h:514
QCD::threCorrForMass
double threCorrForMass(const double nf_f, const double nf_i) const
The threshold correction for running of a mass when crossing a flavour threshold.
Definition: QCD.cpp:1025
QCD::B_C
Definition: QCD.h:346
QCD::CacheShift
void CacheShift(double cache[][5], int n) const
A member used to manage the caching for this class.
QCD::getQuarks
Particle getQuarks(const QCD::quark q) const
A get method to access a quark as an object of the type Particle.
Definition: QCD.h:534
QCD::getMAls
double getMAls() const
A get method to access the mass scale at which the strong coupling constant measurement is provided.
Definition: QCD.h:552
QCD::optionalParameters
std::map< std::string, double > optionalParameters
A map for containing the list and values of the parameters that are used only by a specific set of ob...
Definition: QCD.h:952
QCD::getBBd
BParameter getBBd() const
For getting the bag parameters corresponding to the operator basis in process in the meson system.
Definition: QCD.h:608
QCD::quark
quark
An enum type for quarks.
Definition: QCD.h:323
QCD::D_0
Definition: QCD.h:341
QCD::K_P
Definition: QCD.h:340
QCD::BelowTh
double BelowTh(const double mu) const
The active flavour threshold below the scale as defined in QCD::Thresholds().
Definition: QCD.cpp:429
QCD::requireYd
bool requireYd
Switch for generating the Yukawa couplings to the down-type quarks.
Definition: QCD.h:922
QCD::QCD
QCD()
Constructor.
Definition: QCD.cpp:30
QCD::Mp2MbarTMP
double Mp2MbarTMP(double *mu, double *params) const
The member used for finding the numerical solution to the pole mass from the mass.
Definition: QCD.cpp:1263
QCD::D_star_P
Definition: QCD.h:350
QCD::QCDvars
static std::string QCDvars[NQCDvars]
An array containing the labels under which all QCD parameters are stored in a vector of ModelParamete...
Definition: QCD.h:363
orders
orders
An enum type for orders in QCD.
Definition: OrderScheme.h:31
QCD::computeBs
bool computeBs
Switch for computing from .
Definition: QCD.h:944
QCD::PreUpdate
virtual bool PreUpdate()
The pre-update method for QCD.
Definition: QCD.cpp:116
QCD::getBK
BParameter getBK() const
For getting the bag parameters corresponding to the operator basis in process in the meson system.
Definition: QCD.h:641
QCD::Thresholds
double Thresholds(const int i) const
For accessing the active flavour threshold scales.
Definition: QCD.cpp:406
QCD::logLambdaNLO_cache
double logLambdaNLO_cache[9][CacheSize]
Definition: QCD.h:948
QCD::Gamma2
double Gamma2(const double nf) const
The coefficient used to compute the running of a mass.
Definition: QCD.cpp:1018
QCD::P_0
Definition: QCD.h:337
QCD::K_star_P
Definition: QCD.h:349
QCD::getMub
double getMub() const
A get method to access the threshold between five- and four-flavour theory in GeV.
Definition: QCD.h:570
QCD::NA
double NA
Definition: QCD.h:933
QCD::K_0
Definition: QCD.h:339
QCD::ZeroNf4NLO
double ZeroNf4NLO(double *logLambda4, double *logLambda5_in) const
A member for calculating the difference in across the four-five flavour threshold using AlsWithLambd...
Definition: QCD.cpp:817
QCD::Mrun
double Mrun(const double mu, const double m, const orders order=FULLNNLO) const
Computes a running quark mass from .
Definition: QCD.cpp:1064
QCD::STRANGE
Definition: QCD.h:327
QCD::requireYu
bool requireYu
Switch for generating the Yukawa couplings to the up-type quarks.
Definition: QCD.h:921
QCD::getBKd1
BParameter getBKd1() const
Definition: QCD.h:649
QCD::FullOrder
orders FullOrder(orders order) const
Return the FULLORDER enum corresponding to order.
Definition: QCD.cpp:603
QCD::PHI
Definition: QCD.h:347
QCD::computeBd
bool computeBd
Switch for computing from .
Definition: QCD.h:943
QCD::getOptionalParameter
double getOptionalParameter(std::string name) const
A method to get parameters that are specific to only one set of observables.
Definition: QCD.h:448
QCD::setFlagStr
virtual bool setFlagStr(const std::string name, const std::string value)
A method to set a flag of QCD.
Definition: QCD.cpp:393
QCD::B_D
Definition: QCD.h:343
Model::name
std::string name
The name of the model.
Definition: Model.h:267
QCD::AboveTh
double AboveTh(const double mu) const
The active flavour threshold above the scale as defined in QCD::Thresholds().
Definition: QCD.cpp:420
QCD::getNc
double getNc() const
A get method to access the number of colours .
Definition: QCD.h:505
QCD::NfThresholdCorrections
double NfThresholdCorrections(double mu, double M, double als, int nf, orders order) const
Threshold corrections in matching with from eq. (34) of hep-ph/0512060.
Definition: QCD.cpp:583
QCD::Nc
double Nc
The number of colours.
Definition: QCD.h:932
Meson.h
QCD::ZeroNf3NLO
double ZeroNf3NLO(double *logLambda3, double *logLambda4_in) const
A member for calculating the difference in across the three-four flavour threshold using AlsWithLamb...
Definition: QCD.cpp:823
QCD::AlsWithLambda
double AlsWithLambda(const double mu, const orders order) const
Computes the running strong coupling in the scheme with the use of .
Definition: QCD.cpp:578
QCD::realorder
orders realorder
Definition: QCD.h:956
QCD::MESON_END
Definition: QCD.h:354
QCD::CA
double CA
Definition: QCD.h:933
QCD::unknownParameters
std::vector< std::string > unknownParameters
A vector for containing the names of the parameters that are not being used but specified in the conf...
Definition: QCD.h:953
QCD::AlsWithInit
double AlsWithInit(const double mu, const double alsi, const double mu_i, const orders order) const
Computes the running strong coupling from in the scheme, where it is forbidden to across a flavour...
Definition: QCD.cpp:498
QCD::CF
double CF
Definition: QCD.h:933
FULLNNLO
Definition: OrderScheme.h:38
QCD::Mrun4
double Mrun4(const double mu_f, const double mu_i, const double m) const
The running of a mass with the number of flavours .
Definition: QCD.cpp:1199
QCD::DOWN
Definition: QCD.h:325
QCD::logLambda5_cache
double logLambda5_cache[4][CacheSize]
Definition: QCD.h:947
QCD::setFlag
virtual bool setFlag(const std::string name, const bool value)
A method to set a flag of QCD.
Definition: QCD.cpp:380
FULLNLO
Definition: OrderScheme.h:37
QCD::MrunTMP
double MrunTMP(const double mu_f, const double mu_i, const double m, const orders order) const
A function to calculate the running of the mass between flavour thresholds.
Definition: QCD.cpp:1162
QCD::NQCDvars
static const int NQCDvars
The number of model parameters in QCD.
Definition: QCD.h:357
QCD::getUnknownParameters
std::vector< std::string > getUnknownParameters()
A method to get the vector of the parameters that have been specified in the configuration file but n...
Definition: QCD.h:467
QCD::NEUTRINO_1
Definition: QCD.h:311
QCD::quarks
Particle quarks[6]
The vector of all SM quarks.
Definition: QCD.h:934
QCD::logLambda5
double logLambda5(orders order) const
for .
Definition: QCD.cpp:829
QCD::MU
Definition: QCD.h:314
QCD::mut
double mut
The threshold between six- and five-flavour theory in GeV.
Definition: QCD.h:928
QCD::AlsM
double AlsM
The strong coupling constant at the mass scale MAls, .
Definition: QCD.h:925
QCD::lepton
lepton
An enum type for leptons.
Definition: QCD.h:310