1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
//-*-C++-*-
//-*-Higgs.h-*-
// Written by James Monk and Andrew Pilkington
/////////////////////////////////////////////////////////////////////////////
#ifndef HIGGS_HH
#define HIGGS_HH
#include "GeneratorInterface/ExhumeInterface/interface/CrossSection.h"
namespace Exhume {
class Higgs : public CrossSection {
public:
Higgs(const edm::ParameterSet &);
double SubProcess() override;
void SetPartons() override;
void SetSubParameters() override;
double SubParameterWeight() override;
void MaximiseSubParameters() override;
double SubParameterRange() override;
void SetHiggsMass(const double &);
inline double GetC() { return (C); };
inline std::complex<double> GetPropagator() { return (Propagator()); };
void SetHiggsDecay(const int &);
private:
double HiggsWidth_();
void SetC();
inline std::complex<double> Propagator() {
//See hep-ph 9505211
return (I * (1.0 + I * HiggsWidth / HiggsMass) / (sHat - HiggsMass2 + I * HiggsWidth * sHat / HiggsMass));
};
inline std::complex<double> GluGlu2HiggsAmp() {
return (GGHConst * sHat * AlphaS_ * (Fsf(sHat * FsfTop) + Fsf(sHat * FsfBottom)));
};
std::complex<double> GGHConst;
double AlphaS_, FsfTop, FsfBottom, NLOConst;
double HiggsMass2, HiggsWidth, TotWidth;
double C, One;
double *BR;
};
} // namespace Exhume
#endif
|