herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
KinematicHelpers.h
1// -*- C++ -*-
2//
3// KinematicHelpers.h is a part of Herwig - A multi-purpose Monte Carlo event generator
4// Copyright (C) 2018-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_KinematicHelpers_H
10#define HERWIG_KinematicHelpers_H
11
12namespace QTildeKinematics {
13
14
15
16inline Energy2 pT2_FSR(Energy2 qt2, double z, Energy2 m02, Energy2 m12, Energy2 m22,
17 Energy2 q12, Energy2 q22) {
18 const double z1z = z*(1.-z);
19 return z1z*(z1z*qt2 + m02 -m12-m22) - q12*sqr(1.-z) - q22*sqr(z);
20 //return z1z*(z1z*qt2 + m02) - q12*(1.-z) - q22*z;
21}
22
23inline Energy2 pT2_ISR(Energy2 qt2, double z, Energy2 m22) {
24 return sqr(1.-z)*qt2 - m22*z;
25}
26
27inline Energy2 pT2_Decay(Energy2 qt2, double z, Energy2 m02, Energy2 m22) {
28 return sqr(1.-z)*(qt2 - m02) - m22*z;
29}
30
31
32
33inline Energy pT_FSR(Energy2 qt2, double z, Energy2 m02, Energy2 m12, Energy2 m22,
34 Energy2 q12, Energy2 q22) {
35 return sqrt( pT2_FSR(qt2,z,m02,m12,m22,q12,q22) );
36}
37
38
39inline Energy pT_ISR(Energy2 qt2, double z, Energy2 m22) {
40 return sqrt( pT2_ISR(qt2,z,m22) );
41}
42
43inline Energy pT_Decay(Energy2 qt2, double z, Energy2 m02, Energy2 m22) {
44 return sqrt( pT2_Decay(qt2,z,m02,m22) );
45}
46
47
48inline Energy2 q2_FSR(Energy2 pt2, double z, Energy2 m12, Energy2 m22) {
49 return m12/z + m22/(1.-z) + pt2/z/(1.-z);
50}
51
52// 0 -> 1 (= spacelike children) 2(=timelike children);
53inline Energy2 q2_ISR_new(Energy2 pt2, double z, Energy2 m02, Energy2 m22) {
54 return -1./(1.-z)*(pt2 +z * m22 -z*(1.-z)*m02);
55}
56
57inline Energy2 pT2_ISR_new(Energy2 qt2, double z,Energy2 m02, Energy2 m12, Energy2 m22,
58 Energy2 q02, Energy2 q22){
59 return sqr(1.-z)*(qt2 - q02) + (1.-z)*m22 -q22 -(1.-z)*(m12-m02);
60}
61
62inline Energy pT_ISR_new(Energy2 qt2, double z,Energy2 m02, Energy2 m12, Energy2 m22,
63 Energy2 q02, Energy2 q22){
64 return sqrt( pT2_ISR_new(qt2,z,m02,m12,m22,q02,q22));
65}
66
67
68}
69
70#endif
Qty< 0, 1, 0 > Energy
double sqrt(int x)
constexpr auto sqr(const T &x) -> decltype(x *x)