herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
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
18namespace Herwig {
19
20using namespace ThePEG;
21
35
36public:
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
61public:
62
70
76 void persistentInput(PersistentIStream & is, int version);
78
85 static void Init();
86
87protected:
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
121private:
122
128
129private:
130
134 Energy _minMass;
135
139 Energy _maxMass;
140
141};
142
143}
144
145#endif /* HERWIG_BtoSGammaHadronicMass_H */
The BtoSGammaHadronicMass class is the base class for the implementation of models of the hadronic ma...
Energy maxMass() const
Maximum mass.
Energy minMass() const
Minimum mass.
virtual void dataBaseOutput(ofstream &os, bool header, bool create) const
Output the setup information for the particle database.
virtual Energy hadronicMass(Energy mb, Energy mquark)=0
Virtual member which must be implemented in classes inheriting from this class to return the hadronic...
BtoSGammaHadronicMass()
The default constructor.
Energy _minMass
The minimum value of the hadronic mass.
Energy _maxMass
The maximum value of the hadronic mass.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
BtoSGammaHadronicMass & operator=(const BtoSGammaHadronicMass &)=delete
The assignment operator is private and must never be called.
static void Init()
The standard Init function used to initialize the interfaces.
InvEnergy exponentialFermiFunction(Energy scale, Energy lambda, double a, InvEnergy norm, Energy2 lambda1) const
Exponential function of the form, , where taken from hep-ph/9805303.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
-*- C++ -*-
constexpr double pow(double x, ExponentT p)
constexpr auto sqr(const T &x) -> decltype(x *x)