ThePEG
1.8.0
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
MatrixElement
ME2to2Base.h
1
// -*- C++ -*-
2
//
3
// ME2to2Base.h is a part of ThePEG - Toolkit for HEP Event Generation
4
// Copyright (C) 1999-2011 Leif Lonnblad
5
//
6
// ThePEG is licenced under version 2 of the GPL, see COPYING for details.
7
// Please respect the MCnet academic guidelines, see GUIDELINES for details.
8
//
9
#ifndef ThePEG_ME2to2Base_H
10
#define ThePEG_ME2to2Base_H
11
// This is the declaration of the ME2to2Base class.
12
13
#include "ThePEG/MatrixElement/MEBase.h"
14
#include "ThePEG/MatrixElement/Tree2toNDiagram.h"
15
#include "ThePEG/Interface/Switch.fh"
16
17
namespace
ThePEG {
18
32
class
ME2to2Base
:
public
MEBase
{
33
34
public
:
35
41
ME2to2Base
()
42
:
theScaleChoice
(0),
theLastTHat
(
ZERO
),
theLastUHat
(
ZERO
),
43
theLastPhi
(0.0) {}
44
48
virtual
~ME2to2Base
();
50
51
public
:
52
59
virtual
int
nDim
()
const
{
return
1; }
60
68
virtual
bool
generateKinematics
(
const
double
* r);
69
75
virtual
CrossSection
dSigHatDR
()
const
;
76
80
virtual
Energy2
scale
()
const
;
81
87
virtual
void
setKinematics
();
89
94
virtual
double
getCosTheta
(
double
cthmin,
double
cthmax,
const
double
* r);
95
100
int
scaleChoice
()
const
{
return
theScaleChoice
; }
101
102
public
:
103
109
Energy2
tHat
()
const
{
return
theLastTHat
; }
110
114
Energy2
uHat
()
const
{
return
theLastUHat
; }
115
119
double
phi
()
const
{
return
theLastPhi
; }
121
122
public
:
123
130
void
persistentOutput
(
PersistentOStream
& os)
const
;
131
137
void
persistentInput
(
PersistentIStream
& is,
int
version);
139
143
static
void
Init
();
144
145
protected
:
146
152
void
tHat
(Energy2 e2) {
theLastTHat
= e2; }
153
157
void
uHat
(Energy2 e2) {
theLastUHat
= e2; }
158
162
void
phi
(
double
phi
) {
theLastPhi
=
phi
; }
164
165
protected
:
166
171
static
Switch<ME2to2Base,int>
&
interfaceScaleChoice
();
172
173
private
:
174
178
int
theScaleChoice
;
179
183
Energy2
theLastTHat
;
184
188
Energy2
theLastUHat
;
189
193
double
theLastPhi
;
194
195
196
private
:
197
201
static
AbstractClassDescription<ME2to2Base>
initME2to2Base
;
202
206
ME2to2Base
&
operator=
(
const
ME2to2Base
&);
207
208
};
209
210
}
211
212
213
namespace
ThePEG {
214
221
template
<>
222
struct
BaseClassTrait<ME2to2Base,1>:
public
ClassTraitsType {
224
typedef
MEBase
NthBase
;
225
};
226
231
template
<>
232
struct
ClassTraits<ME2to2Base>:
public
ClassTraitsBase<ME2to2Base> {
234
static
string
className
() {
return
"ThePEG::ME2to2Base"
; }
235
};
236
239
}
240
241
#endif
/* ThePEG_ME2to2Base_H */
Generated on Mon Jul 2 2012 16:06:47 for ThePEG by
1.8.1.1