File: SigmaNewGaugeBosons.h

package info (click to toggle)
pythia8 8.1.65-1
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 22,660 kB
  • sloc: cpp: 59,593; xml: 30,509; php: 6,649; sh: 796; makefile: 353; ansic: 33
file content (185 lines) | stat: -rw-r--r-- 5,254 bytes parent folder | download
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
// SigmaNewGaugeBosons.h is a part of the PYTHIA event generator.
// Copyright (C) 2012 Torbjorn Sjostrand.
// PYTHIA is licenced under the GNU GPL version 2, see COPYING for details.
// Please respect the MCnet Guidelines, see GUIDELINES for details.

// Header file for new-gauge-boson-process differential cross sections.
// Contains classes derived from SigmaProcess via Sigma1Process.

#ifndef Pythia8_SigmaNewGaugeBosons_H
#define Pythia8_SigmaNewGaugeBosons_H

#include "PythiaComplex.h"
#include "SigmaProcess.h"

namespace Pythia8 {
 
//==========================================================================

// An intermediate class for f fbar -> Z'/W' -> WW/WZ -> 4 fermions.
// Copied from SigmaEW for gauge-boson-pair production.

class Sigma1ffbarZprimeWprime: public Sigma1Process {

public:

  // Constructor.
  Sigma1ffbarZprimeWprime() {}

protected:

  // Internal products. 
  Vec4    pRot[7];
  complex hA[7][7];
  complex hC[7][7];

  // Calculate and store internal products.
  void setupProd( Event& process, int i1, int i2, int i3, int i4, 
    int i5, int i6);   

  // Evaluate the F function of Gunion and Kunszt.
  complex fGK(int i1, int i2, int i3, int i4, int i5, int i6); 

  // Evaluate the Xi function of Gunion and Kunszt.
  double xiGK( double tHnow, double uHnow, double s3now, double s4now);

  // Evaluate the Xj function of Gunion and Kunszt.
  double xjGK( double tHnow, double uHnow, double s3now, double s4now);

private:

};
 
//==========================================================================

// A derived class for f fbar -> gamma*/Z0/Z'0.

class Sigma1ffbar2gmZZprime : public Sigma1ffbarZprimeWprime {

public:

  // Constructor.
  Sigma1ffbar2gmZZprime() {}

  // Initialize process. 
  virtual void initProc(); 

  // Calculate flavour-independent parts of cross section.
  virtual void sigmaKin();

  // Evaluate sigmaHat(sHat). 
  virtual double sigmaHat();

  // Select flavour, colour and anticolour.
  virtual void setIdColAcol();

  // Evaluate weight for Z' decay angle.
  virtual double weightDecay( Event& process, int iResBeg, int iResEnd); 

  // Info on the subprocess.
  virtual string name()       const {return "f fbar -> gamma*/Z0/Zprime0";}
  virtual int    code()       const {return 3001;}
  virtual string inFlux()     const {return "ffbarSame";}
  virtual int    resonanceA() const {return 23;}
  virtual int    resonanceB() const {return 32;}

private:

  // Parameters set at initialization or for each new event. 
  int    gmZmode;
  double mRes, GammaRes, m2Res, GamMRat, sin2tW, cos2tW, thetaWRat, 
         mZ, GammaZ, m2Z, GamMRatZ, afZp[20], vfZp[20], coupZpWW,
         anglesZpWW, gamSum, gamZSum, ZSum, gamZpSum, ZZpSum, ZpSum,
         gamNorm, gamZNorm, ZNorm, gamZpNorm, ZZpNorm, ZpNorm;

  // Pointer to properties of the particle species, to access decay channels.
  ParticleDataEntry* particlePtr;

};

//==========================================================================

// A derived class for f fbar' -> W'+-.

class Sigma1ffbar2Wprime : public Sigma1ffbarZprimeWprime {

public:

  // Constructor.
  Sigma1ffbar2Wprime() {}

  // Initialize process. 
  virtual void initProc(); 

  // Calculate flavour-independent parts of cross section.
  virtual void sigmaKin();

  // Evaluate sigmaHat(sHat). 
  virtual double sigmaHat();

  // Select flavour, colour and anticolour.
  virtual void setIdColAcol();

  // Evaluate weight for W decay angle.
  virtual double weightDecay( Event& process, int iResBeg, int iResEnd); 

  // Info on the subprocess.
  virtual string name()       const {return "f fbar' -> W'+-";}
  virtual int    code()       const {return 3021;}
  virtual string inFlux()     const {return "ffbarChg";}
  virtual int    resonanceA() const {return 34;}

private:

  // Parameters set at initialization. 
  double mRes, GammaRes, m2Res, GamMRat, thetaWRat, sigma0Pos, sigma0Neg,
         aqWp, vqWp, alWp, vlWp, coupWpWZ, anglesWpWZ;

  // Pointer to properties of the particle species, to access decay channels.
  ParticleDataEntry* particlePtr;

};
//==========================================================================

// A derived class for f fbar' -> R^0 (horizontal gauge boson).

class Sigma1ffbar2Rhorizontal : public Sigma1Process {

public:

  // Constructor.
  Sigma1ffbar2Rhorizontal() {}

  // Initialize process. 
  virtual void initProc(); 

  // Calculate flavour-independent parts of cross section.
  virtual void sigmaKin();

  // Evaluate sigmaHat(sHat). 
  virtual double sigmaHat();

  // Select flavour, colour and anticolour.
  virtual void setIdColAcol();

  // Info on the subprocess.
  virtual string name()       const {return "f fbar' -> R^0";}
  virtual int    code()       const {return 3041;}
  virtual string inFlux()     const {return "ffbar";}
  virtual int    resonanceA() const {return 41;}

private:

  // Parameters set at initialization. 
  double mRes, GammaRes, m2Res, GamMRat, thetaWRat, sigma0Pos, sigma0Neg;

  // Pointer to properties of the particle species, to access decay channels.
  ParticleDataEntry* particlePtr;

};
 
//==========================================================================

} // end namespace Pythia8

#endif // Pythia_SigmaNewGaugeBosons_H