CGEM BOSS
6.6.5.i
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtBlattWeisskopf.cc
Go to the documentation of this file.
1
#include "
EvtGenBase/EvtPatches.hh
"
2
/*******************************************************************************
3
* Project: BaBar detector at the SLAC PEP-II B-factory
4
* Package: EvtGenBase
5
* File: $Id: EvtBlattWeisskopf.cc,v 1.1.1.2 2007/10/26 05:03:14 pingrg Exp $
6
* Author: Alexei Dvoretskii,
[email protected]
, 2001-2002
7
*
8
* Copyright (C) 2002 Caltech
9
*******************************************************************************/
10
11
#include <iostream>
12
#include <assert.h>
13
#include <math.h>
14
#include "
EvtGenBase/EvtBlattWeisskopf.hh
"
15
#include "
EvtGenBase/EvtReport.hh
"
16
using
std::endl;
17
18
EvtBlattWeisskopf::EvtBlattWeisskopf
(
int
LL,
double
R,
double
p0)
19
: _LL(LL), _radial(R), _p0(p0)
20
{
21
if
(R < 0) {
22
23
report
(
INFO
,
"EvtGen"
) <<
"Radius "
<< R <<
" negative"
<< endl;
24
assert(0);
25
}
26
27
_radial = R;
28
29
// compute formula for nominal momentum
30
31
_F0 = compute(_p0);
32
if
(_F0 <= 0) {
33
34
report
(
INFO
,
"EvtGen"
) <<
"Invalid nominal form factor computed "
<< _F0 << endl;
35
assert(0);
36
}
37
}
38
39
EvtBlattWeisskopf::EvtBlattWeisskopf
(
const
EvtBlattWeisskopf
& other)
40
: _LL(other._LL), _radial(other._radial), _p0(other._p0), _F0(other._F0)
41
{}
42
43
EvtBlattWeisskopf::~EvtBlattWeisskopf
()
44
{}
45
46
double
EvtBlattWeisskopf::operator()
(
double
p)
const
47
{
48
double
ret = compute(p)/_F0;
49
// report(INFO,"EvtGen") << p << " " << _p0 << " " << _F0 << " " << _LL << " " << _radial << " " << ret << endl;
50
return
ret;
51
}
52
53
// Blatt-Weisskopf form factors
54
// see e.g. hep-ex/0011065
55
// Dalitz Analysis of the Decay D0->K-pi+pi0 (CLEO)
56
//
57
// p - momentum of either daugher in the meson rest frame,
58
// the mass of the meson is used
59
// pAB - momentum of either daughter in the candidate rest frame
60
// the mass of the candidate is used
61
// R - meson radial parameter
62
//
63
// In the CLEO paper R=5 GeV-1 for D0, R=1.5 for intermediate resonances
64
65
double
EvtBlattWeisskopf::compute(
double
p)
const
66
{
67
if
(p < 0) {
68
69
report
(
INFO
,
"EvtGen"
) <<
"Momentum "
<< p <<
" negative in form factor calculation"
<< endl;
70
assert(0);
71
}
72
else
{
73
74
double
x
= p*p*_radial*_radial;
75
76
if
(0 == _LL)
return
1.;
77
else
78
if
(1 == _LL)
return
sqrt(1.0/(1.0+x));
79
else
80
if
(2 == _LL)
return
sqrt(1.0/(1.0+x/3.0+x*x/9.0));
81
else
{
82
report
(
INFO
,
"EvtGen"
) <<
"Angular momentum "
<< _LL <<
" not implemented"
<< endl;
83
assert(0);
84
}
85
}
86
}
87
x
Double_t x[10]
Definition
DataBase/tau_mode.c:57
EvtBlattWeisskopf.hh
EvtPatches.hh
report
ostream & report(Severity severity, const char *facility)
Definition
EvtReport.cc:36
EvtReport.hh
INFO
@ INFO
Definition
EvtReport.hh:52
EvtBlattWeisskopf
Definition
EvtBlattWeisskopf.hh:16
EvtBlattWeisskopf::~EvtBlattWeisskopf
~EvtBlattWeisskopf()
Definition
EvtBlattWeisskopf.cc:43
EvtBlattWeisskopf::operator()
double operator()(double p) const
Definition
EvtBlattWeisskopf.cc:46
EvtBlattWeisskopf::EvtBlattWeisskopf
EvtBlattWeisskopf(int LL, double R, double p0)
Definition
EvtBlattWeisskopf.cc:18
6.6.5.i
Generator
BesEvtGen
BesEvtGen-00-01-96-slc6tag
src
EvtGen
EvtGenBase
EvtBlattWeisskopf.cc
Generated by
1.12.0