ROOTPWA
Main Page
Modules
Namespaces
Classes
Files
File List
File Members
pwa2000
libpp
massDep.h
Go to the documentation of this file.
1
#ifndef MASSDEP_H
2
#define MASSDEP_H
3
4
5
#include <iostream>
6
#include <complex>
7
#include <vector>
8
9
#include "
particle.h
"
10
#include "
matrix.h
"
11
12
13
class
particle
;
14
15
16
class
massDep
{
17
public
:
18
massDep
() { }
19
virtual
~massDep
() { }
20
virtual
massDep
*
create
()
const
= 0;
21
virtual
massDep
*
clone
()
const
= 0;
22
23
virtual
void
print
() { std::cout <<
"massDep"
; }
24
virtual
std::complex<double>
val
(
const
particle
&
p
) = 0;
25
};
26
27
28
class
breitWigner
:
public
massDep
{
29
public
:
30
breitWigner
() { }
31
virtual
~breitWigner
() { }
32
breitWigner
(
const
breitWigner
&) { }
33
breitWigner
*
create
()
const
{
return
new
breitWigner
(); }
34
breitWigner
*
clone
()
const
{
return
new
breitWigner
(*
this
); }
35
36
virtual
void
print
() { std::cout <<
"breitWigner"
; }
37
std::complex<double>
val
(
const
particle
&
p
);
38
};
39
40
41
class
rhoPrime
:
public
massDep
{
42
public
:
43
rhoPrime
() { }
44
virtual
~rhoPrime
() { }
45
rhoPrime
(
const
rhoPrime
&) { }
46
rhoPrime
*
create
()
const
{
return
new
rhoPrime
(); }
47
rhoPrime
*
clone
()
const
{
return
new
rhoPrime
(*
this
); }
48
49
virtual
void
print
() { std::cout <<
"rhoPrime"
; }
50
std::complex<double>
val
(
const
particle
&
p
);
51
};
52
53
54
class
flatRange
:
public
massDep
{
55
public
:
56
flatRange
() :
mlow
(0),
mhigh
(10) { }
57
virtual
~flatRange
() { }
58
flatRange
(
const
flatRange
& b) {
mlow
=b.
mlow
;
mhigh
=b.
mhigh
; }
59
60
flatRange
*
create
()
const
{ std::cerr <<
"flatRange::create "
<< std::endl;
return
new
flatRange
(); }
61
flatRange
*
clone
()
const
{
return
new
flatRange
(*
this
); }
62
63
virtual
void
print
() { std::cout <<
"flatRange"
; }
64
std::complex<double>
val
(
const
particle
&
p
);
65
66
void
setRange
(
double
low,
double
high){
67
//std::cerr << low << "..." << high << std::endl;
68
mlow
=low*0.001;
mhigh
=high*0.001;
69
//std::cerr << mlow << "..." << mhigh << std::endl;
70
}
71
72
private
:
73
double
mlow
;
74
double
mhigh
;
75
};
76
77
78
class
flat
:
public
massDep
{
79
public
:
80
flat
() { }
81
virtual
~flat
() { }
82
flat
(
const
flat
&) { }
83
flat
*
create
()
const
{
return
new
flat
(); }
84
flat
*
clone
()
const
{
return
new
flat
(*
this
); }
85
86
virtual
void
print
() { std::cout <<
"flat"
; }
87
std::complex<double>
val
(
const
particle
&
p
);
88
89
};
90
91
97
class
AMP_M
:
public
massDep
{
98
99
protected
:
100
int
_Pmax
;
101
int
_Nmax
;
102
matrix<std::complex<double>
>
_rho
;
103
matrix<std::complex<double>
>
_M
;
104
matrix<std::complex<double>
>
_T
;
105
matrix<std::complex<double>
>
_f
;
106
std::vector<matrix<std::complex<double> > >
_a
;
107
std::vector<matrix<std::complex<double> > >
_c
;
108
matrix<double>
_sP
;
109
110
public
:
111
int
ves_sheet
;
112
113
AMP_M
();
114
virtual
~AMP_M
() { }
115
AMP_M
(
const
AMP_M
&) { }
116
virtual
massDep
*
create
()
const
{
return
new
AMP_M
(); }
117
virtual
massDep
*
clone
()
const
{
return
new
AMP_M
(*
this
); }
118
119
virtual
void
print
() { std::cout <<
"AMP_M"
; }
120
std::complex<double>
val
(
const
particle
&
p
);
121
};
122
123
128
class
AMP_ves
:
public
AMP_M
{
129
public
:
130
AMP_ves
() :
AMP_M
() {
ves_sheet
= 1; }
131
virtual
~AMP_ves
() { }
132
AMP_ves
(
const
AMP_ves
&) { }
133
virtual
massDep
*
create
()
const
{
return
new
AMP_ves
(); }
134
virtual
massDep
*
clone
()
const
{
return
new
AMP_ves
(*
this
); }
135
136
virtual
void
print
() { std::cout <<
"AMP_ves"
; }
137
std::complex<double>
val
(
const
particle
&
p
);
138
};
139
140
155
class
AMP_kach
:
public
AMP_M
{
156
public
:
157
AMP_kach
();
158
virtual
~AMP_kach
() { }
159
AMP_kach
(
const
AMP_kach
&);
160
virtual
massDep
*
create
()
const
{
return
new
AMP_kach
(); }
161
virtual
massDep
*
clone
()
const
{
return
new
AMP_kach
(*
this
); }
162
163
virtual
void
print
() { std::cout <<
"AMP_kach"
; }
164
//std::complex<double> val(const particle& p);
165
};
166
167
//-------
168
// K-PI S-WAVE PARAMETRISATION
169
// SOURCE: NP B296 493 (see also Dima's fortran code)
170
// Here used formula exp(-i*a)*sin(a) + BW*exp(-2.*i*a)
171
// with BW parameters M=1.437 and W=0.355 .
172
// That gives amplitude and phase which coincide rouphly
173
// with pictures from article
174
//-------
175
// not properly implemented, so please don't use it yet
176
// take a simple BW for the K_0(1430) instead
177
class
AMP_LASS
:
public
massDep
{
178
public
:
179
AMP_LASS
() { }
180
virtual
~AMP_LASS
() { }
181
AMP_LASS
(
const
AMP_LASS
&) { }
182
AMP_LASS
*
create
()
const
{
return
new
AMP_LASS
(); }
183
AMP_LASS
*
clone
()
const
{
return
new
AMP_LASS
(*
this
); }
184
185
virtual
void
print
() { std::cout <<
"AMP_LASS"
; }
186
std::complex<double>
val
(
const
particle
&
p
);
187
};
188
189
190
#endif
Generated by
1.8.1.2