BOSS
7.0.9
BESIII Offline Software System
Loading...
Searching...
No Matches
BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtMassAmp.cc
Go to the documentation of this file.
1
//-----------------------------------------------------------------------
2
// File and Version Information:
3
// $Id: EvtMassAmp.cc,v 1.2 2011/01/06 22:57:56 pingrg Exp $
4
//
5
// Environment:
6
// This software is part of the EvtGen package developed jointly
7
// for the BaBar and CLEO collaborations. If you use all or part
8
// of it, please give an appropriate acknowledgement.
9
//
10
// Copyright Information:
11
// Copyright (C) 1998 Caltech, UCSB
12
//
13
// Module creator:
14
// Alexei Dvoretskii, Caltech, 2001-2002.
15
//-----------------------------------------------------------------------
16
#include "EvtGenBase/EvtPatches.hh"
17
18
#include "EvtGenBase/EvtMassAmp.hh"
19
20
EvtMassAmp::EvtMassAmp
(
const
EvtPropBreitWignerRel
& prop,
const
EvtTwoBodyVertex
& vd)
21
:
EvtAmplitude
<
EvtPoint1D
>()
22
,_prop(prop), _vd(vd), _vb(0)
23
,_useBirthFact(
false
), _useDeathFact(
false
)
24
,_useBirthFactFF(
false
), _useDeathFactFF(
false
)
25
,_fixUpMassForMax(
false
),_addfactor(0.)
26
{}
27
28
EvtMassAmp::EvtMassAmp
(
const
EvtMassAmp
& other)
29
:
EvtAmplitude
<
EvtPoint1D
>(
other
)
30
,_prop(
other
._prop), _vd(
other
._vd)
31
,_vb(
other
._vb ? new
EvtTwoBodyVertex
(*
other
._vb) : 0)
32
,_useBirthFact(
other
._useBirthFact)
33
,_useDeathFact(
other
._useDeathFact)
34
,_useBirthFactFF(
other
._useBirthFactFF)
35
,_useDeathFactFF(
other
._useDeathFactFF)
36
,_fixUpMassForMax(
other
._fixUpMassForMax)
37
,_addfactor(
other
._addfactor)
38
{}
39
40
41
EvtMassAmp::~EvtMassAmp
()
42
{
43
if
(_vb)
delete
_vb;
44
}
45
46
47
EvtComplex
EvtMassAmp::amplitude
(
const
EvtPoint1D
& p)
const
48
{
49
// Modified vertex
50
51
double
m = p.
value
();
52
// keep things from crashing..
53
54
if
( m< (_vd.
mA
()+_vd.
mB
()) )
return
EvtComplex
(0.,0.);
55
56
EvtTwoBodyKine
vd(_vd.
mA
(),_vd.
mB
(),m);
57
58
// Compute mass-dependent width for relativistic propagator
59
60
EvtPropBreitWignerRel
bw(_prop.
m0
(),_prop.
g0
()*_vd.
widthFactor
(vd));
61
EvtComplex
amp = bw.evaluate(m);
62
63
64
// Birth vertex factors
65
66
if
(_useBirthFact) {
67
68
assert(_vb);
69
if
( (m+_vb->
mB
()) < _vb->
mAB
() ) {
70
EvtTwoBodyKine
vb(m,_vb->
mB
(),_vb->
mAB
());
71
double
phsp= _vb->
phaseSpaceFactor
(vb,
EvtTwoBodyKine::AB
);
72
amp *= phsp;
73
74
if
( _fixUpMassForMax ) {
75
amp *= sqrt((vb.p() / _vb->
pD
()));
76
}
77
if
(_useBirthFactFF) {
78
79
assert(_vb);
80
amp *= _vb->
formFactor
(vb);
81
}
82
}
83
else
{
84
if
( _vb->
L
() != 0 ) amp=0.;
85
}
86
}
87
88
89
// Decay vertex factors
90
91
if
(_useDeathFact) {
92
amp *= _vd.
phaseSpaceFactor
(vd,
EvtTwoBodyKine::AB
);
93
if
( _fixUpMassForMax ) {
94
amp *= sqrt((vd.p() / _vd.
pD
()));
95
}
96
}
97
if
(_useDeathFactFF) amp *= _vd.
formFactor
(vd);
98
99
// AddFactorPn
100
101
if
(fabs(_addfactor) > 0.00000001){
//addFactorPn, pingrg-2011-1-6
102
assert(_vb);
103
double
phsp;
104
if
( (m+_vb->
mB
()) < _vb->
mAB
() ) {
105
EvtTwoBodyKine
vb(m,_vb->
mB
(),_vb->
mAB
());
106
phsp= vb.p(
EvtTwoBodyKine::AB
);
107
}
else
{
108
if
( _vb->
L
() != 0 ) phsp=0.;
109
}
110
111
amp *= pow(phsp,_addfactor);
112
// std::cout<<"EvtMassAmp::addFactorPn= "<<pow(phsp,_addfactor)<<std::endl;
113
}
114
115
return
amp;
116
}
117
118
119
120
121
122
false
#define false
Definition:
BesCxxPolicy/BesCxxPolicy-00-01-01/CxxFeatures/config.h:22
EvtAmplitude
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtAmplitude.hh:18
EvtComplex
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtComplex.hh:28
EvtMassAmp
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtMassAmp.hh:29
EvtMassAmp::EvtMassAmp
EvtMassAmp(const EvtPropBreitWignerRel &prop, const EvtTwoBodyVertex &vd)
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtMassAmp.cc:20
EvtMassAmp::~EvtMassAmp
virtual ~EvtMassAmp()
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtMassAmp.cc:41
EvtMassAmp::amplitude
virtual EvtComplex amplitude(const EvtPoint1D &p) const
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtMassAmp.cc:47
EvtPoint1D
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtPoint1D.hh:16
EvtPoint1D::value
double value() const
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtPoint1D.hh:29
EvtPropBreitWignerRel
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtPropBreitWignerRel.hh:18
EvtPropagator::g0
double g0() const
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtPropagator.hh:38
EvtPropagator::m0
double m0() const
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtPropagator.hh:37
EvtTwoBodyKine
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtTwoBodyKine.hh:17
EvtTwoBodyKine::AB
@ AB
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtTwoBodyKine.hh:21
EvtTwoBodyVertex
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtTwoBodyVertex.hh:21
EvtTwoBodyVertex::mAB
double mAB() const
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtTwoBodyVertex.hh:37
EvtTwoBodyVertex::formFactor
double formFactor(EvtTwoBodyKine x) const
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtTwoBodyVertex.cc:77
EvtTwoBodyVertex::L
int L() const
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtTwoBodyVertex.hh:34
EvtTwoBodyVertex::pD
double pD() const
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtTwoBodyVertex.hh:38
EvtTwoBodyVertex::widthFactor
double widthFactor(EvtTwoBodyKine x) const
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtTwoBodyVertex.cc:57
EvtTwoBodyVertex::mA
double mA() const
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtTwoBodyVertex.hh:35
EvtTwoBodyVertex::mB
double mB() const
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtTwoBodyVertex.hh:36
EvtTwoBodyVertex::phaseSpaceFactor
double phaseSpaceFactor(EvtTwoBodyKine x, EvtTwoBodyKine::Index) const
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtTwoBodyVertex.cc:69
EvtCyclic3::other
Index other(Index i, Index j)
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtCyclic3.cc:118
source
Generator
BesEvtGen
BesEvtGen-00-04-08
src
EvtGen
EvtGenBase
EvtMassAmp.cc
Generated by
1.9.6