herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
BtoSGammaHadronicMass.h
1 // -*- C++ -*-
2 //
3 // BtoSGammaHadronicMass.h is a part of Herwig - A multi-purpose Monte Carlo event generator
4 // Copyright (C) 2002-2019 The Herwig Collaboration
5 //
6 // Herwig is licenced under version 3 of the GPL, see COPYING for details.
7 // Please respect the MCnet academic guidelines, see GUIDELINES for details.
8 //
9 #ifndef HERWIG_BtoSGammaHadronicMass_H
10 #define HERWIG_BtoSGammaHadronicMass_H
11 //
12 // This is the declaration of the BtoSGammaHadronicMass class.
13 //
14 
15 #include "ThePEG/Interface/Interfaced.h"
16 #include "BtoSGammaHadronicMass.fh"
17 
18 namespace Herwig {
19 
20 using namespace ThePEG;
21 
35 
36 public:
37 
41  BtoSGammaHadronicMass() : _minMass(825*MeV),_maxMass(5300*MeV) {}
42 
51  virtual Energy hadronicMass(Energy mb,Energy mquark) =0;
52 
59  virtual void dataBaseOutput(ofstream & os,bool header,bool create) const;
60 
61 public:
62 
69  void persistentOutput(PersistentOStream & os) const;
70 
76  void persistentInput(PersistentIStream & is, int version);
78 
85  static void Init();
86 
87 protected:
88 
94  Energy minMass() const {return _minMass;}
95 
99  Energy maxMass() const {return _maxMass;}
101 
114  InvEnergy exponentialFermiFunction(Energy scale,Energy lambda, double a,
115  InvEnergy norm,Energy2 lambda1 ) const {
116  double x(scale/lambda);
117  return norm*pow(1.-x,a)*exp(-3.*sqr(lambda)/lambda1*x);
118  }
120 
121 private:
122 
127  BtoSGammaHadronicMass & operator=(const BtoSGammaHadronicMass &) = delete;
128 
129 private:
130 
134  Energy _minMass;
135 
139  Energy _maxMass;
140 
141 };
142 
143 }
144 
145 #endif /* HERWIG_BtoSGammaHadronicMass_H */
Energy _minMass
The minimum value of the hadronic mass.
constexpr double pow(double x, ExponentT p)
The BtoSGammaHadronicMass class is the base class for the implementation of models of the hadronic ma...
BtoSGammaHadronicMass()
The default constructor.
constexpr auto sqr(const T &x) -> decltype(x *x)
Energy maxMass() const
Maximum mass.
Energy _maxMass
The maximum value of the hadronic mass.
Energy minMass() const
Minimum mass.
-*- C++ -*-
InvEnergy exponentialFermiFunction(Energy scale, Energy lambda, double a, InvEnergy norm, Energy2 lambda1) const
Exponential function of the form, , where taken from hep-ph/9805303.