CGEM BOSS
6.6.5.i
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtFlatte.cc
Go to the documentation of this file.
1
//--------------------------------------------------------------------------
2
//
3
// Environment:
4
// This software is part of the EvtGen package developed jointly
5
// for the BaBar and CLEO collaborations. If you use all or part
6
// of it, please give an appropriate acknowledgement.
7
//
8
// Copyright Information: See EvtGen/COPYRIGHT
9
// Copyright (C) 1998 Caltech, UCSB
10
//
11
// Module: EvtFlatte.cc
12
//
13
// Description: resonance-defining class
14
//
15
// Modification history:
16
//
17
// ponyisi 18 Feb 2008 created
18
//
19
//------------------------------------------------------------------------
20
//
21
#include "
EvtGenBase/EvtPatches.hh
"
22
#include <math.h>
23
#include "
EvtGenBase/EvtVector4R.hh
"
24
#include "
EvtGenBase/EvtKine.hh
"
25
#include "
EvtGenBase/EvtComplex.hh
"
26
#include "
EvtGenBase/EvtFlatte.hh
"
27
#include "
EvtGenBase/EvtReport.hh
"
28
#include "
EvtGenBase/EvtConst.hh
"
29
30
EvtFlatte::~EvtFlatte
(){}
31
32
//operator
33
34
EvtFlatte
&
EvtFlatte::operator =
(
const
EvtFlatte
&
n
)
35
{
36
if
( &
n
==
this
)
return
*
this
;
37
_p4_p =
n
._p4_p;
38
_p4_d1 =
n
._p4_d1;
39
_p4_d2 =
n
._p4_d2;
40
_ampl =
n
._ampl;
41
_theta =
n
._theta;
42
_mass =
n
._mass;
43
_params =
n
._params;
44
// _m1a = n._m1a;
45
// _m1b = n._m1b;
46
// _g1 = n._g1;
47
// _m2a = n._m2a;
48
// _m2b = n._m2b;
49
// _g2 = n._g2;
50
return
*
this
;
51
}
52
53
//constructor
54
55
EvtFlatte::EvtFlatte
(
const
EvtVector4R
& p4_p,
const
EvtVector4R
& p4_d1,
56
const
EvtVector4R
& p4_d2,
double
ampl,
57
double
theta,
double
mass
,
58
vector<EvtFlatteParam>& params
59
// double m1a, double m1b, double g1,
60
// double m2a, double m2b, double g2
61
):
62
_p4_p(p4_p),_p4_d1(p4_d1), _p4_d2(p4_d2), _ampl(ampl), _theta(theta),
63
_mass(
mass
),
64
_params(params)
65
// _m1a(m1a), _m1b(m1b), _g1(g1),
66
// _m2a(m2a), _m2b(m2b), _g2(g2)
67
{}
68
69
//amplitude function
70
71
EvtComplex
EvtFlatte::resAmpl
() {
72
73
double
pi180inv = 1.0/
EvtConst::radToDegrees
;
74
75
// EvtComplex ampl(cos(_theta*pi180inv), sin(_theta*pi180inv));
76
// ampl *= _ampl;
77
78
// SCALARS ONLY
79
double
mR = (_p4_d1+_p4_d2).
mass
();
80
81
EvtComplex
w;
82
83
for
(vector<EvtFlatteParam>::const_iterator param = _params.begin();
84
param != _params.end();
85
++param) {
86
87
double
m1 = (*param).m1();
double
m2 = (*param).m2();
88
double
g = (*param).g();
89
w += (g*g
90
*sqrtCplx((1-((m1-m2)*(m1-m2))/(mR*mR))*
91
(1-((m1+m2)*(m1+m2))/(mR*mR))));
92
// cout << m1 << " " << mR << " " << w << endl;
93
}
94
95
EvtComplex
denom = _mass*_mass - mR*mR -
EvtComplex
(0,1)*w;
96
EvtComplex
ampl = _ampl*
EvtComplex
(
cos
(_theta*pi180inv),
sin
(_theta*pi180inv))/denom;
97
// cout << abs(1/denom) << endl;
98
return
ampl;
99
}
100
101
sin
double sin(const BesAngle a)
Definition
BesAngle.h:210
cos
double cos(const BesAngle a)
Definition
BesAngle.h:213
mass
double mass
Definition
CosmicGenerator.cxx:138
n
const Int_t n
Definition
DataBase/tau_mode.c:65
EvtComplex.hh
EvtConst.hh
EvtFlatte.hh
EvtKine.hh
EvtPatches.hh
EvtReport.hh
EvtVector4R.hh
EvtComplex
Definition
EvtComplex.hh:28
EvtConst::radToDegrees
static const double radToDegrees
Definition
EvtConst.hh:30
EvtFlatte
Definition
EvtFlatte.hh:48
EvtFlatte::resAmpl
EvtComplex resAmpl()
Definition
EvtFlatte.cc:71
EvtFlatte::~EvtFlatte
virtual ~EvtFlatte()
Definition
EvtFlatte.cc:30
EvtFlatte::EvtFlatte
EvtFlatte(const EvtVector4R &p4_p, const EvtVector4R &p4_d1, const EvtVector4R &p4_d2, double ampl, double theta, double mass, vector< EvtFlatteParam > ¶ms)
Definition
EvtFlatte.cc:55
EvtFlatte::operator=
EvtFlatte & operator=(const EvtFlatte &)
Definition
EvtFlatte.cc:34
EvtFlatte::mass
double mass()
Definition
EvtFlatte.hh:81
EvtVector4R
Definition
EvtVector4R.hh:29
6.6.5.i
Generator
BesEvtGen
BesEvtGen-00-01-96-slc6tag
src
EvtGen
EvtGenBase
EvtFlatte.cc
Generated by
1.12.0